{
  "openapi": "3.0.4",
  "info": {
    "title": "smart-me API",
    "version": "v1"
  },
  "paths": {
    "/AccessToken": {
      "put": {
        "tags": [
          "AccessToken"
        ],
        "summary": "Creates a Access Token to write on a Card (e.g. NFC)",
        "description": "Creates a Access Token to write on a Card (e.g. NFC)",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/AccessTokenToPut"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccessTokenToPut"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AccessTokenToPut"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AccessTokenToPut"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                }
              }
            }
          }
        }
      }
    },
    "/actions/{id}": {
      "get": {
        "tags": [
          "Actions"
        ],
        "summary": "Gets all available Actions of a Device",
        "description": "Gets all available Actions of a Device",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the device",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActionInformation"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActionInformation"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ActionInformation"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/actions": {
      "post": {
        "tags": [
          "Actions"
        ],
        "summary": "Set an action for the specified device.",
        "description": "Set an action for the specified device.",
        "requestBody": {
          "description": "The Action Data",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ActionToPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionToPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionToPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ActionToPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/AdditionalDeviceInformation/{id}": {
      "get": {
        "tags": [
          "AdditionalDeviceInformation"
        ],
        "summary": "Gets the additional information (e.g. Firmware Version) about a device.",
        "description": "Gets the additional information (e.g. Firmware Version) about a device.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the device",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionalDeviceInformation"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionalDeviceInformation"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionalDeviceInformation"
                }
              }
            }
          }
        }
      }
    },
    "/CustomDevice": {
      "get": {
        "tags": [
          "CustomDevice"
        ],
        "summary": "Gets all Custom Devices",
        "description": "Gets all Devices",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomDeviceToPost"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomDeviceToPost"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomDeviceToPost"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "CustomDevice"
        ],
        "summary": "Creates or updates a Custom Device or updates it's values.",
        "description": "Creates or updates a Custom Device or updates it's values.\n            A Custom Device can be any device that like to add some measurement values to the smart-me Cloud.\n            Only use a custom device for all non meters.\n            For a new device leave the ID empty. To create a device you have to set the DeviceEnergyType.\n            To update values, add the ID of the device and the values you like to set.  (See the Data Type Model for more Information)",
        "requestBody": {
          "description": "Device object with all the data",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomDeviceToPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomDeviceToPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomDeviceToPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomDeviceToPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomDeviceToPost"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomDeviceToPost"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomDeviceToPost"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/CustomDevice/{id}": {
      "get": {
        "tags": [
          "CustomDevice"
        ],
        "summary": "Gets a Custom Device by it's ID",
        "description": "Gets a Device by it's ID",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the device",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CustomDeviceToPost"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomDeviceToPost"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomDeviceToPost"
                }
              }
            }
          }
        }
      }
    },
    "/DeviceBySerial": {
      "get": {
        "tags": [
          "DeviceBySerial"
        ],
        "summary": "Gets a Device by it's Serial Number. The Serial is the part before the \"-\".",
        "description": "Gets a Device by it's Serial Number. The Serial is the part before the \"-\".",
        "parameters": [
          {
            "name": "serial",
            "in": "query",
            "description": "The Serial Number of the device",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Device"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Device"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Device"
                }
              }
            }
          }
        }
      }
    },
    "/Devices": {
      "get": {
        "tags": [
          "Devices"
        ],
        "summary": "Gets all Devices",
        "description": "Gets all Devices",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Device"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Device"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Device"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Devices"
        ],
        "summary": "Creates or updates a Device or updates it's values.",
        "description": "Creates or updates a Device or updates it's values.\n            For a new device leave the ID empty. To create a device you have to set the DeviceEnergyType.\n            To update values, add the ID of the device and the values you like to set.  (See the Data Type Model for more Information)",
        "requestBody": {
          "description": "Device object with all the data",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceToPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceToPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceToPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceToPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceToPost"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceToPost"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceToPost"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          }
        }
      }
    },
    "/Devices/{id}": {
      "get": {
        "tags": [
          "Devices"
        ],
        "summary": "Gets a Device by it's ID",
        "description": "Gets a Device by it's ID",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the device",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Device"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Device"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Device"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Devices"
        ],
        "summary": "Updates the On/Off Switch on a device.\nFor new implementations please use the \"actions\" command",
        "description": "Updates the On/Off Switch on a device\n            For new implementations please use the \"actions\" command",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the device",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "switchState",
            "in": "query",
            "description": "The new state of the switch",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "switchNumber",
            "in": "query",
            "description": "The number of the switch if there are multiple (1 for L1, 3 for L3)",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized"
          },
          "405": {
            "description": "MethodNotAllowed"
          }
        }
      }
    },
    "/DevicesByEnergy": {
      "get": {
        "tags": [
          "DevicesByEnergy"
        ],
        "summary": "Gets all Devices for an Energy Type",
        "description": "Gets all Devices for an Energy Type",
        "parameters": [
          {
            "name": "meterEnergyType",
            "in": "query",
            "description": "<p>Members: </p><ul><li><i>0</i> - MeterTypeUnknown</li><li><i>1</i> - MeterTypeElectricity</li><li><i>2</i> - MeterTypeWater</li><li><i>3</i> - MeterTypeGas</li><li><i>4</i> - MeterTypeHeat</li><li><i>5</i> - MeterTypeHCA</li><li><i>6</i> - MeterTypeAllMeters</li><li><i>7</i> - MeterTypeTemperature</li><li><i>8</i> - MeterTypeMBusGateway</li><li><i>9</i> - MeterTypeRS485Gateway</li><li><i>10</i> - MeterTypeCustomDevice</li><li><i>11</i> - MeterTypeCompressedAir</li><li><i>12</i> - MeterTypeSolarLog</li><li><i>13</i> - MeterTypeVirtualMeter</li></ul>",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/MeterEnergyType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Device"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Device"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Device"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/DevicesBySubType": {
      "get": {
        "tags": [
          "DevicesBySubType"
        ],
        "summary": "Gets all Devices by it's Sub Type (e.g. E-Charging Station)",
        "description": "Gets all Devices by it's Sub Type (e.g. E-Charging Station)",
        "parameters": [
          {
            "name": "meterSubType",
            "in": "query",
            "description": "<p>Members: </p><ul><li><i>0</i> - MeterSubTypeUnknown</li><li><i>1</i> - Cold / Cold Water Meter</li><li><i>2</i> - Heat / Hot Water Meter</li><li><i>3</i> - MeterSubTypeChargingStation</li><li><i>4</i> - MeterSubTypeElectricity</li><li><i>5</i> - MeterSubTypeWater</li><li><i>6</i> - MeterSubTypeGas</li><li><i>7</i> - Electricity / Heat meter</li><li><i>8</i> - A Temperature meter</li><li><i>9</i> - MeterSubTypeVirtualBattery</li></ul>",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/MeterSubType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Device"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Device"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Device"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/FastSendDeviceValues/{id}": {
      "get": {
        "tags": [
          "FastSendDeviceValues"
        ],
        "summary": "Force a device to send the data every second (if supported). This for about 30s.\nDon't use this call to force a device to send the data every second for a longer time.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Folder/{id}": {
      "get": {
        "tags": [
          "Folder"
        ],
        "summary": "Gets the Values for a folder or a meter",
        "description": "Gets the Values for a folder or a meter",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FolderData"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderData"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderData"
                }
              }
            }
          }
        }
      }
    },
    "/folder/assign": {
      "post": {
        "tags": [
          "FolderAssign"
        ],
        "summary": "Assign a folder (source) or meter to another folder (target). Can be used to create a folder structure.",
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "description": "The ID of the meter or folder that should be assign",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "target",
            "in": "query",
            "description": "The ID of the meter or folder that should be the parent",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/FolderMenu": {
      "get": {
        "tags": [
          "FolderMenu"
        ],
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FolderMenuConfiguration"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderMenuConfiguration"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderMenuConfiguration"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "FolderMenu"
        ],
        "summary": "Creates and updates the folder menu items",
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/FolderMenuConfiguration"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderMenuConfiguration"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderMenuConfiguration"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FolderMenuConfiguration"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/folder/settings/{id}": {
      "get": {
        "tags": [
          "FolderSettings"
        ],
        "summary": "Gets the settings of a folder or meter",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FolderSettings"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderSettings"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderSettings"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "FolderSettings"
        ],
        "summary": "Add or edit a folder or a meter. To add a new folder use and empty ID",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the folder or meter to edit. Use and empty ID to add a new folder",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The folder or meter data",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/FolderSettings"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderSettings"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderSettings"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FolderSettings"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FolderMenuItem"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderMenuItem"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderMenuItem"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "FolderSettings"
        ],
        "summary": "Deletes a folder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the folder",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/folder/visualizationtypes": {
      "get": {
        "tags": [
          "FolderSettings"
        ],
        "summary": "Gets the visualizations that can be set on a folder, with the parameters each of them expects",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VisualizationTypeInformation"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VisualizationTypeInformation"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VisualizationTypeInformation"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/gateway/mbus/{id}": {
      "get": {
        "tags": [
          "MBusGateway"
        ],
        "summary": "Gets the data for a M-BUS Gateway and all connected meters",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MBusGatewayDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MBusGatewayDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MBusGatewayDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "MBusGateway"
        ],
        "summary": "Changes the Name and the Baudrate of the M-BUS Gateway",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MBusGatewayPutDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MBusGatewayPutDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MBusGatewayPutDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MBusGatewayPutDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "MBusGateway"
        ],
        "summary": "Deletes the M-BUS Gateway. All connected Meters will not be deleted.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/gateway/mbus/{id}/meter/{index}": {
      "get": {
        "tags": [
          "MBusGateway"
        ],
        "summary": "Gets the data of a M-BUS Meter that is connected to a M-BUS Gatewaay",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the M-BUS Gateway",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "index",
            "in": "path",
            "description": "The index (position) of the M-BUS Meter in the Gateway Meters",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MBusMeterDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MBusMeterDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MBusMeterDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "MBusGateway"
        ],
        "summary": "Updates an existing M-BUS Meter on a M-BUS Gateway",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the M-BUS Gateway",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "index",
            "in": "path",
            "description": "The index (position) of the M-BUS Meter in the Gateway Meters.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MBusMeterPostAndPutDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MBusMeterPostAndPutDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MBusMeterPostAndPutDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MBusMeterPostAndPutDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "MBusGateway"
        ],
        "summary": "Deletes an M-BUS Meter Definition of a M-BUS Gateway. The Meter itself will not be deleted.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the Gateway",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "index",
            "in": "path",
            "description": "The Index of the Meter (position) to be deleted",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/gateway/mbus/{id}/meter": {
      "post": {
        "tags": [
          "MBusGateway"
        ],
        "summary": "Creates a new M-BUS Meter on a M-BUS Gateway",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the M-BUS Gateway",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MBusMeterPostAndPutDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MBusMeterPostAndPutDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MBusMeterPostAndPutDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MBusMeterPostAndPutDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/gateway/mbus/{id}/search": {
      "post": {
        "tags": [
          "MBusGateway"
        ],
        "summary": "Starts a search for conntected M-BUS Devices on the M-BUS Gateway",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/gateway/mbus/{id}/deleteallmeters": {
      "delete": {
        "tags": [
          "MBusGateway"
        ],
        "summary": "Deletes all (M-BUS) Meters of a M-BUS Gateway. The M-BUS Gateway will not be deleted.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/MeterFolderInformation/{id}": {
      "get": {
        "tags": [
          "MeterFolderInformation"
        ],
        "summary": "Beta: Gets the General Information for a Meter or a Folder",
        "description": "Beta: Gets the General Information for a Meter or a Folder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/MeterFolderInformation"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeterFolderInformation"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeterFolderInformation"
                }
              }
            }
          }
        }
      }
    },
    "/MeterFolderInformation": {
      "post": {
        "tags": [
          "MeterFolderInformation"
        ],
        "summary": "Sets the Name of a Meter or a Folder",
        "description": "Sets the Name of a Meter or a Folder",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MeterFolderInformationToPost"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MeterFolderInformationToPost"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MeterFolderInformationToPost"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MeterFolderInformationToPost"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/MeterValues/{id}": {
      "get": {
        "tags": [
          "MeterValues"
        ],
        "summary": "Gets the Values for a Meter at a given Date.\nThe first Value found before the given Date is returned.",
        "description": "Gets the Values for a Meter at a given Date. The first Value found before the given Date is returned.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "date",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceInPast"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceInPast"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceInPast"
                }
              }
            }
          }
        }
      }
    },
    "/oauth/applications": {
      "get": {
        "tags": [
          "OAuthApplications"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationsCollectionJson"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationsCollectionJson"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplicationsCollectionJson"
                }
              }
            }
          }
        }
      }
    },
    "/oauth/applications/public": {
      "post": {
        "tags": [
          "OAuthApplications"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              }
            }
          }
        }
      }
    },
    "/oauth/applications/confidential": {
      "post": {
        "tags": [
          "OAuthApplications"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJsonCreateAppWithSecretResultJson"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJsonCreateAppWithSecretResultJson"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJsonCreateAppWithSecretResultJson"
                }
              }
            }
          }
        }
      }
    },
    "/oauth/applications/device": {
      "post": {
        "tags": [
          "OAuthApplications"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceApplicationModificationJson"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceApplicationModificationJson"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceApplicationModificationJson"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceApplicationModificationJson"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAppJsonCreateAppWithSecretResultJson"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAppJsonCreateAppWithSecretResultJson"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAppJsonCreateAppWithSecretResultJson"
                }
              }
            }
          }
        }
      }
    },
    "/oauth/applications/public/{clientId}": {
      "put": {
        "tags": [
          "OAuthApplications"
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "OAuthApplications"
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              }
            }
          }
        }
      }
    },
    "/oauth/applications/confidential/{clientId}": {
      "put": {
        "tags": [
          "OAuthApplications"
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOrConfidentialApplicationModificationJson"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "OAuthApplications"
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
                }
              }
            }
          }
        }
      }
    },
    "/oauth/applications/device/{clientId}": {
      "put": {
        "tags": [
          "OAuthApplications"
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceApplicationModificationJson"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceApplicationModificationJson"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceApplicationModificationJson"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceApplicationModificationJson"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAppJson"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAppJson"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAppJson"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "OAuthApplications"
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAppJson"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAppJson"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceAppJson"
                }
              }
            }
          }
        }
      }
    },
    "/oauth/claimtree": {
      "get": {
        "tags": [
          "OAuthClaims"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClaimTreeNodeJsonSerializable"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClaimTreeNodeJsonSerializable"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ClaimTreeNodeJsonSerializable"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/oauth/refreshtokens": {
      "get": {
        "tags": [
          "OAuthRefreshToken"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OAuthRefreshTokenJson"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OAuthRefreshTokenJson"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OAuthRefreshTokenJson"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/oauth/refreshtokens/{id}": {
      "delete": {
        "tags": [
          "OAuthRefreshToken"
        ],
        "summary": "Revokes an existing refresh token for a user. The refresh token will be deleted.\nAn existing access token will still be valid but can not be refreshed anymore.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/Pico": {
      "get": {
        "tags": [
          "Pico"
        ],
        "summary": "Gets all pico charging stations for this user",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Device"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Device"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Device"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/pico/charging/{id}": {
      "get": {
        "tags": [
          "PicoCharging"
        ],
        "summary": "Gets the active charging data of a pico station",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PicoChargingData"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PicoChargingData"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PicoChargingData"
                }
              }
            }
          }
        }
      }
    },
    "/pico/history/{id}": {
      "get": {
        "tags": [
          "PicoChargingHistory"
        ],
        "summary": "Gets the last charging history for a pico station",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PicoChargingHistoryData"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PicoChargingHistoryData"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PicoChargingHistoryData"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/pico/tryenablecablelock/{id}": {
      "post": {
        "tags": [
          "PicoEnableFixCableLock"
        ],
        "summary": "Try to fix lock the cable of a pico. The pico must be online and a cable (without car) needs to be connected. Otherwise this will fail.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the pico",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/pico/loadmanagementgroup/{id}": {
      "get": {
        "tags": [
          "PicoLoadmanagementGroup"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PicoLoadmanagementGroupDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PicoLoadmanagementGroupDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PicoLoadmanagementGroupDto"
                }
              }
            }
          }
        }
      }
    },
    "/pico/loadmanagementgroup": {
      "get": {
        "tags": [
          "PicoLoadmanagementGroup"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PicoLoadmanagementGroupDto"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PicoLoadmanagementGroupDto"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PicoLoadmanagementGroupDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/pico/loadmanagementgroup/current/{serial}": {
      "post": {
        "tags": [
          "PicoLoadmanagementSetDynamicCurrent"
        ],
        "summary": "Sets the dynamic current of a load management group or a single station.",
        "parameters": [
          {
            "name": "serial",
            "in": "path",
            "description": "The serial number can be any pico serial in the group (e.g. 700001)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "current",
            "in": "query",
            "description": "The dynamic current of the group (in mA)",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/pico/loadmanagementgroup/threephasecurrent/{id}": {
      "post": {
        "tags": [
          "PicoLoadmanagementSetDynamicCurrent"
        ],
        "summary": "Sets the three-phase dynamic current for a load management group.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The load management group id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "PhaseL1",
            "in": "query",
            "description": "Represents the current for Phase L1 in milliamperes (mA).\nAcceptable values are 0 mA or between 6000 and 6’400’000 mA (inclusive).\nAll values must be multiples of 1000.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PhaseL2",
            "in": "query",
            "description": "Represents the current for Phase L1 in milliamperes (mA).\nAcceptable values are 0 mA or between 6000 and 6’400’000 mA (inclusive).\nAll values must be multiples of 1000.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PhaseL3",
            "in": "query",
            "description": "Represents the current for Phase L1 in milliamperes (mA).\nAcceptable values are 0 mA or between 6000 and 6’400’000 mA (inclusive).\nAll values must be multiples of 1000.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The three-phase dynamic current was successfully set"
          },
          "400": {
            "description": "Invalid request data"
          },
          "404": {
            "description": "Load management group not found"
          },
          "422": {
            "description": "Not all picos in the group support feature"
          }
        }
      }
    },
    "/pico/settings/{id}": {
      "get": {
        "tags": [
          "PicoSettings"
        ],
        "summary": "GET: api/pico/settings\n            \nReturns the settings of a pico charging station.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PicoSettingsDto"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PicoSettingsDto"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PicoSettingsDto"
                }
              }
            }
          }
        }
      }
    },
    "/RegisterForRealtimeApi": {
      "get": {
        "tags": [
          "RegisterForRealtimeApi"
        ],
        "summary": "Gets all registrations for the Realtime API.",
        "description": "Gets all registrations for the Realtime API.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegisterRealtimeApiData"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegisterRealtimeApiData"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RegisterRealtimeApiData"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "RegisterForRealtimeApi"
        ],
        "summary": "Creates a new registration for the realtime API. The Realtime API sends you the data of the registred devices as soon as we have them on the cloud.",
        "description": "Creates a new registration for the realtime API. The Realtime API sends you the data of the registred devices as soon as we have them on the cloud.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRealtimeApiData"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRealtimeApiData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRealtimeApiData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterRealtimeApiData"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/RegisterForRealtimeApi/{id}": {
      "delete": {
        "tags": [
          "RegisterForRealtimeApi"
        ],
        "summary": "Deletes a realtime API registration.",
        "description": "Deletes a realtime API registration.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the realtime API registration",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/SmartMeDeviceConfiguration/{id}": {
      "get": {
        "tags": [
          "SmartMeDeviceConfiguration"
        ],
        "summary": "Gets the configuration of a smart-me device.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SmartMeDeviceConfigurationContainer"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SmartMeDeviceConfigurationContainer"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SmartMeDeviceConfigurationContainer"
                }
              }
            }
          }
        }
      }
    },
    "/SmartMeDeviceConfiguration": {
      "post": {
        "tags": [
          "SmartMeDeviceConfiguration"
        ],
        "summary": "Sets the configuration of a smart-me device. The device needs to be online.",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SmartMeDeviceConfigurationContainer"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SmartMeDeviceConfigurationContainer"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SmartMeDeviceConfigurationContainer"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SmartMeDeviceConfigurationContainer"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/SubUser/{id}": {
      "get": {
        "tags": [
          "SubUser"
        ],
        "summary": "Get a sub user. The user must be assigned to the user that makes this call.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SubUserData"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubUserData"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubUserData"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "SubUser"
        ],
        "summary": "Delete a subuser",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/SubUser": {
      "post": {
        "tags": [
          "SubUser"
        ],
        "summary": "Creates or updates a subuser.\nTo create a new user set no ID (empty)",
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SubUserData"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubUserData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SubUserData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SubUserData"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/User": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Gets the information for the user.",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "User"
        ],
        "summary": "Triggers user account deletion.",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/folder/user/assign": {
      "post": {
        "tags": [
          "UserToFolderAssign"
        ],
        "summary": "Assign a user to a folder",
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "description": "The ID of the user that should be assign",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "target",
            "in": "query",
            "description": "The ID of the folder that should be the parent",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "oldFolder",
            "in": "query",
            "description": "The ID of the old folder (in case of a drag and drop to a new folder)",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      },
      "delete": {
        "tags": [
          "UserToFolderAssign"
        ],
        "summary": "Deletes a user to folder assignement",
        "parameters": [
          {
            "name": "source",
            "in": "query",
            "description": "The ID of the user that should be de-assign",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "target",
            "in": "query",
            "description": "The ID of the folder",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Values/{id}": {
      "get": {
        "tags": [
          "Values"
        ],
        "summary": "Gets all (last) values of a device",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the device",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ValuesData"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValuesData"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValuesData"
                }
              }
            }
          }
        }
      }
    },
    "/ValuesInPast/{id}": {
      "get": {
        "tags": [
          "ValuesInPast"
        ],
        "summary": "Gets all (last) values of a device\nThe first Value found before the given Date is returned.",
        "description": "Gets the Values for a device at a given Date. The first Value found before the given Date is returned.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the device",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "the date of the value",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ValuesData"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValuesData"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValuesData"
                }
              }
            }
          }
        }
      }
    },
    "/ValuesInPastMultiple/{id}": {
      "get": {
        "tags": [
          "ValuesInPastMultiple"
        ],
        "summary": "Gets multiple values of a device. This call needs a smart-me professional licence.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the device",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "The date when the first value should start",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "The date when the last value should start",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "interval",
            "in": "query",
            "description": "The interval in minutes betwenn the values. 0 means as fast as possible. Only 1000 values can be get in one call.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValuesData"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValuesData"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValuesData"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ValuesInPastMultipleInterpolated/{id}": {
      "get": {
        "tags": [
          "ValuesInPastMultipleInterpolated"
        ],
        "summary": "Gets multiple interpolated values of a device. This call needs a smart-me professional licence.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the device",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "The date when the first value should start",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "The date when the last value should start",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "thresholdSeconds",
            "in": "query",
            "description": "The threshold in seconds around which the interpolation will accept a real value.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "interval",
            "in": "query",
            "description": "The interval to interpolate values. Can be either 15min or 1 day (1440min)",
            "schema": {
              "$ref": "#/components/schemas/InterpolationInterval"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/InterpolatedValuesResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterpolatedValuesResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/InterpolatedValuesResult"
                }
              }
            }
          }
        }
      }
    },
    "/VirtualBillingMeterDeactivate": {
      "post": {
        "tags": [
          "VirtualBillingMeterDeactivate"
        ],
        "summary": "Beta: Virtual Meter API: Deactivates a Virtual Meter.",
        "description": "Beta: Virtual Meter API: Deactivates a Virtual Meter.",
        "requestBody": {
          "description": "The Meter to activate",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/VMeterToDeactivate"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VMeterToDeactivate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VMeterToDeactivate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VMeterToDeactivate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "BadRequest"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        }
      }
    },
    "/VirtualMeterCalculateFormula": {
      "get": {
        "tags": [
          "VirtualMeterCalculateFormula"
        ],
        "summary": "Calculates a virtual meter from a formula.\nA meter is coded as ID(\"METERID\")",
        "description": "Calculates a virtual meter from a formula.\n            \n             A meter is coded as ID(\"METERID\")\n             Ariphmetical operators:\n              ()  parentheses;\n              +   plus (a + b);\n              -  minus (a - b);\n              *  multiplycation symbol (a * b);\n              /  divide symbol (a / b);\n             Example: (ID(\"63ac09cb-4e5f-4f3e-bd27-ad8c30bdfc0c\") + ID(\"0209555e-9dc4-4e84-a166-a864488b4b12\")) * 2",
        "parameters": [
          {
            "name": "formula",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Device"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Device"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Device"
                }
              }
            }
          }
        }
      }
    },
    "/VirtualTariff": {
      "get": {
        "tags": [
          "VirtualTariff"
        ],
        "summary": "Gets all Virtual Tariffs of a user",
        "description": "Gets all Virtual Tariffs of a user",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VirtualTariffsOfFolder"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VirtualTariffsOfFolder"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VirtualTariffsOfFolder"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/VirtualTariff/{id}": {
      "get": {
        "tags": [
          "VirtualTariff"
        ],
        "summary": "Gets all virtual tariffs of a folder",
        "description": "Gets all virtual tariffs of a folder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the Folder",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/VirtualTariffsOfFolder"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VirtualTariffsOfFolder"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VirtualTariffsOfFolder"
                }
              }
            }
          }
        }
      }
    },
    "/VirtualTariffConsumption": {
      "get": {
        "tags": [
          "VirtualTariffConsumption"
        ],
        "summary": "Gets the consumption of a folder with a virtuall tariffs.",
        "description": "Gets the consumption of a folder with a virtuall tariffs.",
        "parameters": [
          {
            "name": "folderId",
            "in": "query",
            "description": "The ID of the Folder",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "The start date (UTC)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "The end date (UTC)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VirtualTariffConsumptionData"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VirtualTariffConsumptionData"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VirtualTariffConsumptionData"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/VirtualTariffsForProperty/{id}": {
      "get": {
        "tags": [
          "VirtualTariffsForProperty"
        ],
        "summary": "Gets all Virtual Tariffs for a property (folder)",
        "description": "Gets all Virtual Tariffs for a property (folder)",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VirtualTariffsOfFolder"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VirtualTariffsOfFolder"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VirtualTariffsOfFolder"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/VirtualTariffsStatusForProperty/{id}": {
      "get": {
        "tags": [
          "VirtualTariffsStatusForProperty"
        ],
        "summary": "Gets the calculation status for a virtual tariff property",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccessTokenToPut": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "description": "The ID of the User. The credentials provided must have permission to edit the user.\nIf no ID is provided, the user in the credentials is taken.",
            "format": "int64",
            "nullable": true
          },
          "cardId": {
            "type": "integer",
            "description": "The ID of the Card",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "Container Class for the Put action of an Access Token"
      },
      "ActionInformation": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The Name of this action",
            "nullable": true
          },
          "obisCode": {
            "type": "string",
            "description": "The Obis Code of this action. This is used as ID.",
            "nullable": true
          },
          "actionType": {
            "$ref": "#/components/schemas/ActionType"
          },
          "minValue": {
            "type": "number",
            "description": "The minimum value of this action (e.g. for an AnalogAction)",
            "format": "double",
            "nullable": true
          },
          "maxValue": {
            "type": "number",
            "description": "The maximum value of this action (e.g. for an AnalogAction)",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The Information about an Action of a device"
      },
      "ActionToPost": {
        "type": "object",
        "properties": {
          "deviceID": {
            "type": "string",
            "description": "The ID of the Device",
            "format": "uuid"
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ActionToPostItem"
            },
            "description": "List with all Actions for this device",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container Class for an action to post"
      },
      "ActionToPostItem": {
        "type": "object",
        "properties": {
          "obisCode": {
            "type": "string",
            "description": "The ObisCode (ID) of the Action",
            "nullable": true
          },
          "value": {
            "type": "number",
            "description": "The Value to Post",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Container class for an action item"
      },
      "ActionType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "Enumeration of the different action types of a device<p>Members: </p><ul><li><i>0</i> - OnOffAction</li><li><i>1</i> - AnalogAction</li></ul>",
        "format": "int32"
      },
      "AdditionalDeviceInformation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the device",
            "format": "uuid",
            "nullable": true
          },
          "hardwareVersion": {
            "type": "integer",
            "description": "The Hardware Version of a Meter.",
            "format": "int32",
            "nullable": true
          },
          "firmwareVersion": {
            "type": "integer",
            "description": "The Firmware Version of a Meter",
            "format": "int32",
            "nullable": true
          },
          "additionalMeterSerialNumber": {
            "type": "string",
            "description": "An additional Meter serial number. e.g. the number of a meter a smart-me device is connected to.",
            "nullable": true
          },
          "networkConnection": {
            "type": "string",
            "description": "The mode how the device is connected to the network. Valid values are:\nwifi, gprs, ltecatm1, ltenbiot, meshmobile, meshwifi",
            "nullable": true
          },
          "networkConnectionRSSI": {
            "type": "integer",
            "description": "The connection RSSI value (0 is bad, 100 is best)",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Additional Information For a device"
      },
      "ApplicationJson": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "allowedClaims": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ApplicationsCollectionJson": {
        "required": [
          "confidential",
          "device",
          "public"
        ],
        "type": "object",
        "properties": {
          "public": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
            },
            "nullable": true
          },
          "confidential": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
            },
            "nullable": true
          },
          "device": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationJson"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AutoExportSettings": {
        "type": "object",
        "properties": {
          "meterPointId": {
            "type": "string",
            "description": "The meter point id set by the user",
            "nullable": true
          },
          "exportFormat": {
            "type": "string",
            "description": "The export format",
            "nullable": true
          },
          "uploadType": {
            "type": "string",
            "description": "The upload type",
            "nullable": true
          },
          "exportInterval": {
            "$ref": "#/components/schemas/ExportInterval"
          }
        },
        "additionalProperties": false,
        "description": "Settings for the auto export functionality of a meter"
      },
      "ChargingStationSettingsAuthentication": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - We don't have an authentication. Plug and charge!</li><li><i>1</i> - The ecarup backend</li><li><i>2</i> - And external ocpp backend</li></ul>",
        "format": "int32"
      },
      "ChargingStationState": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "type": "integer",
        "description": "State of a (pico) charging station<p>Members: </p><ul><li><i>0</i> - Booting</li><li><i>1</i> - ReadyNoCarConnected</li><li><i>2</i> - ReadyCarConnected</li><li><i>3</i> - StartedWaitForCar</li><li><i>4</i> - Charging</li><li><i>5</i> - Installation</li><li><i>6</i> - Authorize</li><li><i>7</i> - Offline</li></ul>",
        "format": "int32"
      },
      "ChargingStopReason": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - Unknown</li><li><i>1</i> - CarDisconnected</li><li><i>2</i> - RemoteStop</li><li><i>3</i> - ErrorStop</li><li><i>4</i> - InstallationMode</li><li><i>5</i> - CableError</li><li><i>6</i> - DiodeError</li><li><i>7</i> - RcdError</li><li><i>8</i> - OverloadError</li></ul>",
        "format": "int32"
      },
      "ClaimTreeNodeJsonSerializable": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "description": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "inferiors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClaimTreeNodeJsonSerializable"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomDeviceToPost": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the device",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "The Name of the Device",
            "nullable": true
          },
          "serial": {
            "type": "integer",
            "description": "The Serial number",
            "format": "int64"
          },
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomDeviceValues"
            },
            "description": "The Values of the custom Device",
            "nullable": true
          },
          "valueDate": {
            "type": "string",
            "description": "The Date of the Value (in UTC). If this is null the Server Time is used.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container Class for the Web API"
      },
      "CustomDeviceValues": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The Name of the Value.",
            "nullable": true
          },
          "value": {
            "type": "number",
            "description": "The Value",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Container Class for the Custom Device Values"
      },
      "Device": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the device",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "The Name of the Device",
            "nullable": true
          },
          "serial": {
            "type": "integer",
            "description": "The Serial number",
            "format": "int64"
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Flag if the device is enabled. Disabled devices don't receive new values."
          },
          "deviceEnergyType": {
            "$ref": "#/components/schemas/MeterEnergyType"
          },
          "meterSubType": {
            "$ref": "#/components/schemas/MeterSubType"
          },
          "familyType": {
            "$ref": "#/components/schemas/MeterFamilyType"
          },
          "activePower": {
            "type": "number",
            "description": "The Actvie Power or current flow rate",
            "format": "double",
            "nullable": true
          },
          "activePowerL1": {
            "type": "number",
            "description": "The Actvie Power Phase L1",
            "format": "double",
            "nullable": true
          },
          "activePowerL2": {
            "type": "number",
            "description": "The Actvie Power Phase L2",
            "format": "double",
            "nullable": true
          },
          "activePowerL3": {
            "type": "number",
            "description": "The Actvie Power Phase L3",
            "format": "double",
            "nullable": true
          },
          "activePowerUnit": {
            "type": "string",
            "description": "The Unit of the Active Power Value",
            "nullable": true
          },
          "counterReading": {
            "type": "number",
            "description": "The Meter Counter Reading (Total Energy used)",
            "format": "double",
            "nullable": true
          },
          "counterReadingUnit": {
            "type": "string",
            "description": "The Unit of the Counter Reading",
            "nullable": true
          },
          "counterReadingT1": {
            "type": "number",
            "description": "The Meter Counter Reading Tariff 1",
            "format": "double",
            "nullable": true
          },
          "counterReadingT2": {
            "type": "number",
            "description": "The Meter Counter Reading Tariff 2",
            "format": "double",
            "nullable": true
          },
          "counterReadingT3": {
            "type": "number",
            "description": "The Meter Counter Reading Tariff 3",
            "format": "double",
            "nullable": true
          },
          "counterReadingT4": {
            "type": "number",
            "description": "The Meter Counter Reading Tariff 4",
            "format": "double",
            "nullable": true
          },
          "counterReadingImport": {
            "type": "number",
            "description": "The Meter Counter Reading only import",
            "format": "double",
            "nullable": true
          },
          "counterReadingExport": {
            "type": "number",
            "description": "The Meter Counter Reading only export",
            "format": "double",
            "nullable": true
          },
          "switchOn": {
            "type": "boolean",
            "description": "Flag if the Switch is on on this device.",
            "nullable": true
          },
          "switchPhaseL1On": {
            "type": "boolean",
            "description": "Flag if the Phase L1 is on on this device.",
            "nullable": true
          },
          "switchPhaseL2On": {
            "type": "boolean",
            "description": "Flag if the Phase L2 is on on this device.",
            "nullable": true
          },
          "switchPhaseL3On": {
            "type": "boolean",
            "description": "Flag if the Phase L3 is on on this device.",
            "nullable": true
          },
          "voltage": {
            "type": "number",
            "description": "The Voltage (in V)",
            "format": "double",
            "nullable": true
          },
          "voltageL1": {
            "type": "number",
            "description": "The Voltage Phase L1 (in V)",
            "format": "double",
            "nullable": true
          },
          "voltageL2": {
            "type": "number",
            "description": "The Voltage Phase L2 (in V)",
            "format": "double",
            "nullable": true
          },
          "voltageL3": {
            "type": "number",
            "description": "The Voltage Phase L3 (in V)",
            "format": "double",
            "nullable": true
          },
          "current": {
            "type": "number",
            "description": "The Current (in A)",
            "format": "double",
            "nullable": true
          },
          "currentL1": {
            "type": "number",
            "description": "The Current Phase L1 (in A)",
            "format": "double",
            "nullable": true
          },
          "currentL2": {
            "type": "number",
            "description": "The Current Phase L2 (in A)",
            "format": "double",
            "nullable": true
          },
          "currentL3": {
            "type": "number",
            "description": "The Current Phase L3 (in A)",
            "format": "double",
            "nullable": true
          },
          "powerFactor": {
            "type": "number",
            "description": "The Power Factor (cos phi). Range: 0 - 1",
            "format": "double",
            "nullable": true
          },
          "powerFactorL1": {
            "type": "number",
            "description": "The Power Factor (cos phi) Phase L1. Range: 0 - 1",
            "format": "double",
            "nullable": true
          },
          "powerFactorL2": {
            "type": "number",
            "description": "The Power Factor (cos phi) Phase L2. Range: 0 - 1",
            "format": "double",
            "nullable": true
          },
          "powerFactorL3": {
            "type": "number",
            "description": "The Power Factor (cos phi) Phase L3. Range: 0 - 1",
            "format": "double",
            "nullable": true
          },
          "temperature": {
            "type": "number",
            "description": "The Temperature (in degree celsius)",
            "format": "double",
            "nullable": true
          },
          "activeTariff": {
            "type": "integer",
            "description": "The Number of the Active Tariff",
            "format": "int32",
            "nullable": true
          },
          "digitalOutput1": {
            "type": "boolean",
            "description": "The digital output number 1",
            "nullable": true
          },
          "digitalOutput2": {
            "type": "boolean",
            "description": "The digital output number 2",
            "nullable": true
          },
          "analogOutput1": {
            "type": "integer",
            "description": "The analog output number 1 (PWM signal) (0 - 32183)",
            "format": "int32",
            "nullable": true
          },
          "analogOutput2": {
            "type": "integer",
            "description": "The analog output number 2 (PWM signal) (0 - 32183)",
            "format": "int32",
            "nullable": true
          },
          "digitalInput1": {
            "type": "boolean",
            "description": "The digital input number 1",
            "nullable": true
          },
          "digitalInput2": {
            "type": "boolean",
            "description": "The digital input number 2",
            "nullable": true
          },
          "valueDate": {
            "type": "string",
            "description": "Time of last successful connection the the smart-me Cloud.",
            "format": "date-time",
            "nullable": true
          },
          "additionalMeterSerialNumber": {
            "type": "string",
            "description": "An additional Meter serial number. e.g. the number of a meter a smart-me device is connected to.",
            "nullable": true
          },
          "flowRate": {
            "type": "number",
            "description": "The current flow rate (e.g. m3/h)",
            "format": "double",
            "nullable": true
          },
          "chargingStationState": {
            "$ref": "#/components/schemas/ChargingStationState"
          }
        },
        "additionalProperties": false,
        "description": "Container Class for the Web API"
      },
      "DeviceAppJson": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "allowedClaims": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "DeviceAppJsonCreateAppWithSecretResultJson": {
        "required": [
          "app",
          "secret"
        ],
        "type": "object",
        "properties": {
          "app": {
            "$ref": "#/components/schemas/DeviceAppJson"
          },
          "secret": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeviceApplicationModificationJson": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "allowedClaims": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeviceInPast": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the device",
            "format": "uuid"
          },
          "serial": {
            "type": "integer",
            "description": "The Serial number",
            "format": "int64"
          },
          "date": {
            "type": "string",
            "description": "The Date of the Values",
            "format": "date-time"
          },
          "counterReading": {
            "type": "number",
            "description": "The Meter Counter Reading (Total Energy used)",
            "format": "double",
            "nullable": true
          },
          "counterReadingUnit": {
            "type": "string",
            "description": "The Unit of the Counter Reading",
            "nullable": true
          },
          "counterReadingT1": {
            "type": "number",
            "description": "The Meter Counter Reading Tariff 1",
            "format": "double",
            "nullable": true
          },
          "counterReadingT2": {
            "type": "number",
            "description": "The Meter Counter Reading Tariff 2",
            "format": "double",
            "nullable": true
          },
          "counterReadingT3": {
            "type": "number",
            "description": "The Meter Counter Reading Tariff 3",
            "format": "double",
            "nullable": true
          },
          "counterReadingT4": {
            "type": "number",
            "description": "The Meter Counter Reading Tariff 4",
            "format": "double",
            "nullable": true
          },
          "counterReadingImport": {
            "type": "number",
            "description": "The Meter Counter Reading Import",
            "format": "double",
            "nullable": true
          },
          "counterReadingImportT1": {
            "type": "number",
            "description": "The Meter Counter Reading Import Tariff 1",
            "format": "double",
            "nullable": true
          },
          "counterReadingImportT2": {
            "type": "number",
            "description": "The Meter Counter Reading Import Tariff 2",
            "format": "double",
            "nullable": true
          },
          "counterReadingImportT3": {
            "type": "number",
            "description": "The Meter Counter Reading Import Tariff 3",
            "format": "double",
            "nullable": true
          },
          "counterReadingImportT4": {
            "type": "number",
            "description": "The Meter Counter Reading Import Tariff 4",
            "format": "double",
            "nullable": true
          },
          "counterReadingExport": {
            "type": "number",
            "description": "The Meter Counter Reading Export",
            "format": "double",
            "nullable": true
          },
          "counterReadingExportT1": {
            "type": "number",
            "description": "The Meter Counter Reading Export Tariff 1",
            "format": "double",
            "nullable": true
          },
          "counterReadingExportT2": {
            "type": "number",
            "description": "The Meter Counter Reading Export Tariff 2",
            "format": "double",
            "nullable": true
          },
          "counterReadingExportT3": {
            "type": "number",
            "description": "The Meter Counter Reading Export Tariff 3",
            "format": "double",
            "nullable": true
          },
          "counterReadingExportT4": {
            "type": "number",
            "description": "The Meter Counter Reading Export Tariff 4",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container Class for the Web API. Conatinas the MeterValues in the Past"
      },
      "DeviceToPost": {
        "type": "object",
        "properties": {
          "activePower": {
            "type": "number",
            "description": "The Active Power or current flow rate. In kW or m3/h",
            "format": "double",
            "nullable": true
          },
          "counterReading": {
            "type": "number",
            "description": "The Meter Counter Reading (Total Energy used) in kWh or m3.",
            "format": "double",
            "nullable": true
          },
          "counterReadingT1": {
            "type": "number",
            "description": "The Meter Counter Reading Tariff 1 in kWh or m3.",
            "format": "double",
            "nullable": true
          },
          "counterReadingT2": {
            "type": "number",
            "description": "The Meter Counter Reading Tariff 2 in kWh or m3.",
            "format": "double",
            "nullable": true
          },
          "counterReadingExport": {
            "type": "number",
            "description": "The Meter Counter Reading only export",
            "format": "double",
            "nullable": true
          },
          "counterReadingExportT1": {
            "type": "number",
            "description": "The Meter Counter Reading only export (Tariff 1)",
            "format": "double",
            "nullable": true
          },
          "counterReadingExportT2": {
            "type": "number",
            "description": "The Meter Counter Reading only export (Tariff 2)",
            "format": "double",
            "nullable": true
          },
          "temperature": {
            "type": "number",
            "description": "The Temperature (in degree celsius)",
            "format": "double",
            "nullable": true
          },
          "valueDate": {
            "type": "string",
            "description": "The Date of the Value (in UTC). If this is null the Server Time is used.",
            "format": "date-time",
            "nullable": true
          },
          "voltage": {
            "type": "number",
            "description": "The Voltage (in V)",
            "format": "double",
            "nullable": true
          },
          "voltageL1": {
            "type": "number",
            "description": "The Voltage Phase L1 (in V)",
            "format": "double",
            "nullable": true
          },
          "voltageL2": {
            "type": "number",
            "description": "The Voltage Phase L2 (in V)",
            "format": "double",
            "nullable": true
          },
          "voltageL3": {
            "type": "number",
            "description": "The Voltage Phase L3 (in V)",
            "format": "double",
            "nullable": true
          },
          "current": {
            "type": "number",
            "description": "The Current (in A)",
            "format": "double",
            "nullable": true
          },
          "currentL1": {
            "type": "number",
            "description": "The Current Phase L1 (in A)",
            "format": "double",
            "nullable": true
          },
          "currentL2": {
            "type": "number",
            "description": "The Current Phase L2 (in A)",
            "format": "double",
            "nullable": true
          },
          "currentL3": {
            "type": "number",
            "description": "The Current Phase L3 (in A)",
            "format": "double",
            "nullable": true
          },
          "powerFactor": {
            "type": "number",
            "description": "The Power Factor (cos phi). Range: 0 - 1",
            "format": "double",
            "nullable": true
          },
          "powerFactorL1": {
            "type": "number",
            "description": "The Power Factor (cos phi) Phase L1. Range: 0 - 1",
            "format": "double",
            "nullable": true
          },
          "powerFactorL2": {
            "type": "number",
            "description": "The Power Factor (cos phi) Phase L2. Range: 0 - 1",
            "format": "double",
            "nullable": true
          },
          "powerFactorL3": {
            "type": "number",
            "description": "The Power Factor (cos phi) Phase L3. Range: 0 - 1",
            "format": "double",
            "nullable": true
          },
          "digitalInput1": {
            "type": "boolean",
            "description": "The digital input number 1",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "The ID of the device",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "The Name of the Device",
            "nullable": true
          },
          "serial": {
            "type": "integer",
            "description": "The Serial number",
            "format": "int64"
          },
          "deviceEnergyType": {
            "$ref": "#/components/schemas/MeterEnergyType"
          },
          "meterSubType": {
            "$ref": "#/components/schemas/MeterSubType"
          }
        },
        "additionalProperties": false,
        "description": "Container Class for the Web API"
      },
      "DigitalInputType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - TariffInput</li><li><i>1</i> - DigitalInput</li></ul>",
        "format": "int32"
      },
      "DigitalOutputNoConnectionAction": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "Action types of a digital output when the device lost the connection.<p>Members: </p><ul><li><i>0</i> - Does nothing, keep the last state</li><li><i>1</i> - TurnOff</li><li><i>2</i> - TurnOn</li><li><i>3</i> - SetPwmValue</li></ul>",
        "format": "int32"
      },
      "DigitalOutputType": {
        "enum": [
          0,
          1,
          2,
          10,
          50,
          51,
          9999
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - Normal impulse output (Active Energy Import and Export)</li><li><i>1</i> - ImpulseOutputActiveEnergyImport</li><li><i>2</i> - ImpulseOutputActiveEnergyExport</li><li><i>10</i> - ImpulseOutputReactiveEnergy</li><li><i>50</i> - DigitalOutput</li><li><i>51</i> - AnalogPwmSignalOutput</li><li><i>9999</i> - Disabled</li></ul>",
        "format": "int32"
      },
      "ExportInterval": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - NoExport</li><li><i>1</i> - Hourly</li><li><i>2</i> - Daily</li><li><i>3</i> - Weekly</li><li><i>4</i> - Monthly</li><li><i>5</i> - QuaterYearly</li><li><i>6</i> - HalfYearly</li><li><i>7</i> - Yearly</li></ul>",
        "format": "int32"
      },
      "FolderData": {
        "type": "object",
        "properties": {
          "electricityCounterValue": {
            "type": "number",
            "description": "The Counter values for electricity (kWh)",
            "format": "double",
            "nullable": true
          },
          "electricityPower": {
            "type": "number",
            "description": "The Power for electricity (kW)",
            "format": "double",
            "nullable": true
          },
          "heatCounterValue": {
            "type": "number",
            "description": "The Counter values for Heat (kWh)",
            "format": "double",
            "nullable": true
          },
          "heatPower": {
            "type": "number",
            "description": "The Power for Heat (kW)",
            "format": "double",
            "nullable": true
          },
          "waterCounterValue": {
            "type": "number",
            "description": "The Counter values for Water (m3)",
            "format": "double",
            "nullable": true
          },
          "waterFlowRate": {
            "type": "number",
            "description": "The Flow Rate for Water (m3/h)",
            "format": "double",
            "nullable": true
          },
          "gasCounterValue": {
            "type": "number",
            "description": "The Counter values for Gas (m3)",
            "format": "double",
            "nullable": true
          },
          "gasFlowRate": {
            "type": "number",
            "description": "The Flow Rate for Gas (m3/h)",
            "format": "double",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container class for the folder API"
      },
      "FolderMenuConfiguration": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FolderMenuItem"
            },
            "nullable": true
          },
          "browserUtcTime": {
            "type": "string",
            "description": "The UTC time taken from the browser",
            "nullable": true
          },
          "browserTimeZoneName": {
            "type": "string",
            "description": "The time zone name taken from the browser",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container Class for the Web API representing a folder menu and it's items"
      },
      "FolderMenuItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the folder menu item",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The Name of the item",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "The Description of the folder",
            "nullable": true
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FolderMenuItem"
            },
            "description": "Children folder menu items (sub folder menu items)",
            "nullable": true
          },
          "folderType": {
            "$ref": "#/components/schemas/FolderType"
          },
          "icon": {
            "type": "string",
            "description": "The path to the Icon of this folder",
            "nullable": true
          },
          "userId": {
            "type": "string",
            "description": "The ID of the user of this folder (only for foldertype user)",
            "nullable": true
          },
          "meterSerialNumber": {
            "type": "string",
            "description": "The serial number if the folder menu item is a meter.\nSerial number is handled as a string, as javascript on client side cannot handle long integers properly.",
            "nullable": true
          },
          "autoExportSettings": {
            "$ref": "#/components/schemas/AutoExportSettings"
          }
        },
        "additionalProperties": false,
        "description": "A folder menu item"
      },
      "FolderSettings": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The Name of the folder or meter",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "The Description of the folder or meter",
            "nullable": true
          },
          "folderType": {
            "$ref": "#/components/schemas/FolderType"
          },
          "serialNumber": {
            "type": "integer",
            "description": "The serial number (meter only)",
            "format": "int64"
          },
          "enable": {
            "type": "boolean",
            "description": "Flag if the meter is enabled (folder not supported yet)",
            "nullable": true
          },
          "valueCorrection": {
            "type": "number",
            "description": "The value correction on this meter",
            "format": "double",
            "nullable": true
          },
          "valueCorrectionParentFolder": {
            "type": "number",
            "description": "The value correction on all parent folders. but not on the meter itself",
            "format": "double",
            "nullable": true
          },
          "parentFolderId": {
            "type": "string",
            "description": "The parent folder ID of this item",
            "format": "uuid",
            "nullable": true
          },
          "visualizationName": {
            "type": "string",
            "description": "The name of the visualization of the folder",
            "nullable": true
          },
          "visualizationType": {
            "$ref": "#/components/schemas/VisualizationTypeEnum"
          },
          "visualizationParameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VisualizationParameterSetting"
            },
            "description": "Which folder or meter fills each slot of the visualization. Only used when a visualization type is sent",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container for the folder settings"
      },
      "FolderType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          1000,
          1001,
          1002,
          20001
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - Folder</li><li><i>1</i> - Location</li><li><i>2</i> - Factory</li><li><i>3</i> - House</li><li><i>4</i> - Office</li><li><i>5</i> - Machine</li><li><i>6</i> - VirtualMeter</li><li><i>7</i> - ElecticityFolder</li><li><i>8</i> - WaterFolder</li><li><i>9</i> - HeatFolder</li><li><i>10</i> - GasFolder</li><li><i>11</i> - TemperatureFolder</li><li><i>12</i> - Sun</li><li><i>13</i> - Light</li><li><i>14</i> - Ice</li><li><i>15</i> - Sofa</li><li><i>16</i> - Food</li><li><i>17</i> - Coffee</li><li><i>18</i> - Car</li><li><i>19</i> - ChargingStation</li><li><i>1000</i> - Meter</li><li><i>1001</i> - User</li><li><i>1002</i> - Trash</li><li><i>20001</i> - Virtual PV Meter (Used for the Senero Project)</li></ul>",
        "format": "int32"
      },
      "InputConfigurationContainer": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "description": "The number of the Input. (1 for Input 1)",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The Name of the Input",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/DigitalInputType"
          },
          "onText": {
            "type": "string",
            "description": "The visualization text for an ON action",
            "nullable": true
          },
          "offText": {
            "type": "string",
            "description": "The visualization text for an OFF action",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Configuration for the input of a meter (digital inputs)"
      },
      "InputInformation": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "description": "The Number of this Input. Use this as ID to switch it on or off.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The Name of the Input",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Informations about the Inputs of a Meter or Folder"
      },
      "InterpolatedValuesData": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "string",
            "description": "The ID of the device",
            "format": "uuid"
          },
          "date": {
            "type": "string",
            "description": "The Date of the Value",
            "format": "date-time"
          },
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValueData"
            },
            "description": "All values",
            "nullable": true
          },
          "isInterpolated": {
            "type": "boolean"
          },
          "closestNonInterpolatedValueDate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "InterpolatedValuesResult": {
        "type": "object",
        "properties": {
          "interpolationQuality": {
            "type": "number",
            "description": "The quality of the interpolation (# interpolated samples) / (# sample points).\nA measure of how many points have to interpolated between two real values.",
            "format": "double"
          },
          "fractionOfInterpolatedResults": {
            "type": "number",
            "description": "The fraction of interpolated results as  (total # interpolated results) / (total # results)",
            "format": "double"
          },
          "isComplete": {
            "type": "boolean"
          },
          "lastAvailable": {
            "type": "string",
            "format": "date-time"
          },
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InterpolatedValuesData"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InterpolationInterval": {
        "enum": [
          15,
          1440
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>15</i> - FifteenMinutes</li><li><i>1440</i> - Day</li></ul>",
        "format": "int32"
      },
      "LoadSheddingEnum": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "Enumeration of the Load-Shedding state<p>Members: </p><ul><li><i>0</i> - MaxCurrent</li><li><i>1</i> - HalfCurrent</li><li><i>2</i> - MinCurrent</li><li><i>3</i> - NoCurrent</li></ul>",
        "format": "int32"
      },
      "LoadmanagementConnectionLostActionType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - NoAction</li><li><i>1</i> - MinCurrent</li><li><i>2</i> - DynamicCurrent</li></ul>",
        "format": "int32"
      },
      "MBusAddressingMode": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - Invalid</li><li><i>1</i> - Primary</li><li><i>2</i> - Secondary</li></ul>",
        "format": "int32"
      },
      "MBusBaudrate": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - Baud300</li><li><i>1</i> - Baud2400</li><li><i>2</i> - Baud9600</li><li><i>3</i> - Baud19200</li></ul>",
        "format": "int32"
      },
      "MBusGatewayDto": {
        "required": [
          "isAddingMetersAllowed",
          "lastSeen",
          "meters",
          "name",
          "readoutInterval",
          "serialNumber",
          "state"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "nullable": true
          },
          "lastSeen": {
            "type": "string",
            "format": "date-time"
          },
          "readoutInterval": {
            "$ref": "#/components/schemas/MBusReadoutIntervall"
          },
          "state": {
            "$ref": "#/components/schemas/MBusGatewayState"
          },
          "meters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MBusMeterDto"
            },
            "nullable": true
          },
          "isAddingMetersAllowed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "MBusGatewayPutDto": {
        "required": [
          "isAddingMetersAllowed",
          "name",
          "readoutInterval"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "readoutInterval": {
            "$ref": "#/components/schemas/MBusReadoutIntervall"
          },
          "isAddingMetersAllowed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "MBusGatewayState": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - LastReadoutOk</li><li><i>1</i> - SearchInProgress</li><li><i>2</i> - FailedOnOneOrMoreMeter</li><li><i>3</i> - TooManySearchErrors</li></ul>",
        "format": "int32"
      },
      "MBusMeterDto": {
        "required": [
          "addressingMode",
          "baudrate",
          "energyEnergySubType",
          "energyType",
          "id",
          "name",
          "primaryAddress",
          "secondaryAddress",
          "send_App_Reset",
          "send_SND_NKE",
          "state"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the Meter in the smart-me system. Guid.Empty if we don't have this meter in the system.",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "addressingMode": {
            "$ref": "#/components/schemas/MBusAddressingMode"
          },
          "primaryAddress": {
            "type": "integer",
            "format": "int32"
          },
          "secondaryAddress": {
            "type": "string",
            "nullable": true
          },
          "baudrate": {
            "$ref": "#/components/schemas/MBusBaudrate"
          },
          "send_SND_NKE": {
            "type": "boolean"
          },
          "send_App_Reset": {
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/MBusMeterState"
          },
          "energyType": {
            "$ref": "#/components/schemas/MBusMeterEnergyType"
          },
          "energyEnergySubType": {
            "$ref": "#/components/schemas/MBusMeterEnergySubType"
          }
        },
        "additionalProperties": false
      },
      "MBusMeterEnergySubType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - Unknown</li><li><i>1</i> - Cold</li><li><i>2</i> - Heat</li><li><i>3</i> - Electricity</li><li><i>4</i> - Water</li><li><i>5</i> - Gas</li><li><i>6</i> - ElectricityHeat</li><li><i>7</i> - Temperature</li></ul>",
        "format": "int32"
      },
      "MBusMeterEnergyType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          8,
          9
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - Unknown</li><li><i>1</i> - Electricity</li><li><i>2</i> - Water</li><li><i>3</i> - Gas</li><li><i>4</i> - Heat</li><li><i>5</i> - HCA</li><li><i>6</i> - Temperature</li><li><i>8</i> - CompressedAir</li><li><i>9</i> - SolarLog</li></ul>",
        "format": "int32"
      },
      "MBusMeterPostAndPutDto": {
        "required": [
          "addressingMode",
          "baudrate",
          "primaryAddress",
          "secondaryAddress",
          "send_App_Reset",
          "send_SND_NKE"
        ],
        "type": "object",
        "properties": {
          "addressingMode": {
            "$ref": "#/components/schemas/MBusAddressingMode"
          },
          "primaryAddress": {
            "type": "integer",
            "format": "int32"
          },
          "secondaryAddress": {
            "type": "string",
            "nullable": true
          },
          "baudrate": {
            "$ref": "#/components/schemas/MBusBaudrate"
          },
          "send_SND_NKE": {
            "type": "boolean"
          },
          "send_App_Reset": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "MBusMeterState": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - LastReadoutOk</li><li><i>1</i> - LastReadoutFailed</li><li><i>2</i> - ReadoutStarted</li><li><i>3</i> - CRCError</li></ul>",
        "format": "int32"
      },
      "MBusReadoutIntervall": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - Intervall_2s</li><li><i>1</i> - Intervall_10s</li><li><i>2</i> - Intervall_1min</li><li><i>3</i> - Intervall_5min</li><li><i>4</i> - Intervall_15min</li><li><i>5</i> - Intervall_30min</li><li><i>6</i> - Intervall_60min</li><li><i>7</i> - Intervall_6hours</li><li><i>8</i> - Intervall_12hours</li><li><i>9</i> - Intervall_24hours</li></ul>",
        "format": "int32"
      },
      "MeterDnsUpdateEnum": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "Enumeration for the DNS Update of a device ip<p>Members: </p><ul><li><i>0</i> - No DNS Update</li><li><i>1</i> - Do an DNS Update of the public ip address</li><li><i>2</i> - Do an DNS Update of the internal ip address</li></ul>",
        "format": "int32"
      },
      "MeterEnergyType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - MeterTypeUnknown</li><li><i>1</i> - MeterTypeElectricity</li><li><i>2</i> - MeterTypeWater</li><li><i>3</i> - MeterTypeGas</li><li><i>4</i> - MeterTypeHeat</li><li><i>5</i> - MeterTypeHCA</li><li><i>6</i> - MeterTypeAllMeters</li><li><i>7</i> - MeterTypeTemperature</li><li><i>8</i> - MeterTypeMBusGateway</li><li><i>9</i> - MeterTypeRS485Gateway</li><li><i>10</i> - MeterTypeCustomDevice</li><li><i>11</i> - MeterTypeCompressedAir</li><li><i>12</i> - MeterTypeSolarLog</li><li><i>13</i> - MeterTypeVirtualMeter</li></ul>",
        "format": "int32"
      },
      "MeterEventType": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23,
          24,
          25,
          26,
          27,
          28,
          29,
          30,
          31,
          32,
          33,
          257,
          65535
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>1</i> - This event is reserved for a meter value datalogger entry</li><li><i>2</i> - The meter has been restarted</li><li><i>3</i> - We have power down on all phases. The meter shuts down</li><li><i>4</i> - The power has been disconnected from phase 1 on the meter.</li><li><i>5</i> - The power has been disconnected from phase 2 on the meter.</li><li><i>6</i> - The power has been disconnected from phase 3 on the meter.</li><li><i>7</i> - The meter has detected a \"open cover\"</li><li><i>8</i> - The meter has detected a magnetic field. If this occurs, the meter must be visited due to a fraud mistake</li><li><i>9</i> - The RTC clock was adjusted.</li><li><i>10</i> - The voltage on all phases has exceeded the limit for overvoltage detection</li><li><i>11</i> - The voltage on all phases has exceeded the limit for undervoltage detection.</li><li><i>12</i> - The voltage on L1 has exceeded the limit for overvoltage detection</li><li><i>13</i> - The voltage on L2 has exceeded the limit for overvoltage detection</li><li><i>14</i> - The voltage on L3 has exceeded the limit for overvoltage detection</li><li><i>15</i> - A charging transaction from a pico charging station</li><li><i>16</i> - A panic message from the pico controller</li><li><i>17</i> - A panic message from the pico MID service</li><li><i>18</i> - Pico Warning: the RCD has triggered</li><li><i>19</i> - Pico Warning: the cable can not be locked</li><li><i>20</i> - Pico Warning: a diode failure</li><li><i>21</i> - Pico Warning: pico has detected a current overload</li><li><i>22</i> - Pico Warning: the internal temperature is too high</li><li><i>23</i> - A LogBook Entry when a parameter has changed (e.g. Impulse Values)</li><li><i>24</i> - A LogBook Entry when the device went down (with date/time) and comes up again (with date/time)</li><li><i>25</i> - A LogBook Entry when there was a general phase error. More Data in the error code field</li><li><i>26</i> - The general error was reset (everything is fine again)</li><li><i>27</i> - A fatal error (see details in the error code)</li><li><i>28</i> - The Magnet Field is fine again</li><li><i>29</i> - The tamper detection is fine again (cover is closed)</li><li><i>30</i> - The clock was adjusted with the old date/time and the new date/time</li><li><i>31</i> - The update of the MSP430 Firmware (with OldFirmware Version and NewFirmware Version)</li><li><i>32</i> - The update of the communication Module Firmware (with OldFirmware Version and NewFirmware Version)</li><li><i>33</i> - Event that the internal logbook of the meter is full</li><li><i>257</i> - Loadprofile (Datalogger values) with Active Energy import and export and the reactive energy. And the OCMF signature</li><li><i>65535</i> - InvalidValue</li></ul>",
        "format": "int32"
      },
      "MeterFamilyType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          14,
          16,
          17,
          18,
          19,
          21,
          65,
          70,
          1001,
          1002,
          1003
        ],
        "type": "integer",
        "description": "The Family Type of the meter (e.g. Smart-me connect meter)<p>Members: </p><ul><li><i>0</i> - The Family Type is unknown (S0 meters, ...). M-BUS Meters which have not been migrated to\n             yet still use this value.</li><li><i>1</i> - smart-me connect Meter (Plugin Power Meter)</li><li><i>2</i> - smart-me Meter (1-Phase DIN Rail Meter) without switch</li><li><i>3</i> - smart-me Meter (1-Phase DIN Rail Meter) with a Switch</li><li><i>4</i> - smart-me M-BUS Gateway V1</li><li><i>5</i> - Reserved for the retired smart-me RS-485 Gateway V1</li><li><i>6</i> - MeterFamilyTypeKamstrupModule</li><li><i>7</i> - MeterFamilyTypeSmartMe3PhaseMeter80A</li><li><i>8</i> - smart-me 3-Phase Meter 32A (with Switch)</li><li><i>9</i> - smart-me 3-Phase Meter Transformer Edition</li><li><i>10</i> - smart-me Landis Gyr Module</li><li><i>11</i> - Optical module for the FNN meters</li><li><i>12</i> - smart-me 3-Phase Meter 80A with the new WiFi (V2)</li><li><i>14</i> - smart-me 3-Phase Meter 80A with Mobile</li><li><i>16</i> - smart-me 1-Phase Meter 80A with the new WiFi (V2)</li><li><i>17</i> - smart-me 1-Phase Meter 32A with the new WiFi (V2)</li><li><i>18</i> - smart-me 1-Phase Meter 80A with GPRS</li><li><i>19</i> - smart-me 1-Phase Meter 32A with GPRS</li><li><i>21</i> - smart-me 3-Phase Meter Transformer Edition with mobile module</li><li><i>65</i> - smart-me 3-phase Meter Nimbus (3-point meter)</li><li><i>70</i> - Mithral hall charging station Version 1</li><li><i>1001</i> - REST API Meter</li><li><i>1002</i> - Virtual billing Meter (e.g. for smart-me washroom)</li><li><i>1003</i> - M-BUS Meter read out by a smart-me M-BUS Gateway</li></ul>",
        "format": "int32"
      },
      "MeterFolderInformation": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the Meter or Folder",
            "nullable": true
          },
          "isFolder": {
            "type": "boolean",
            "description": "Flag if it's a Folder or a Meter"
          },
          "outputInformations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OutputInformation"
            },
            "description": "Informations about the available Outputs",
            "nullable": true
          },
          "inputInformations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InputInformation"
            },
            "description": "Informations about the available Inputs",
            "nullable": true
          },
          "hardwareVersion": {
            "type": "integer",
            "description": "The Hardware Version of a Meter.",
            "format": "int32",
            "nullable": true
          },
          "firmwareVersion": {
            "type": "integer",
            "description": "The Firmware Version of a Meter",
            "format": "int32",
            "nullable": true
          },
          "communicationModuleHardwareVersion": {
            "type": "integer",
            "description": "The Version of the Communication Module (if exists)",
            "format": "int32",
            "nullable": true
          },
          "communicationModuleFirmwareVersion": {
            "type": "integer",
            "description": "The Version of the Communication Module (if exists)",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container Class for the Web API"
      },
      "MeterFolderInformationToPost": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the device or folder",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Name of the Meter or Folder",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container for a Meter or Folder Information to Post"
      },
      "MeterNetworkToCloudConnectionMode": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - NetworkToCloudConnectionMode_NoConnection</li><li><i>1</i> - NetworkToCloudConnectionMode_DirectWiFiConnection</li><li><i>2</i> - NetworkToCloudConnectionMode_GPRSConnection</li><li><i>3</i> - NetworkToCloudConnectionMode_NBIotConnection</li><li><i>4</i> - NetworkToCloudConnectionMode_LteCatM1Connection</li><li><i>5</i> - NetworkToCloudConnectionMode_MeshWiFiConnection</li><li><i>6</i> - NetworkToCloudConnectionMode_MeshMobileConnection</li></ul>",
        "format": "int32"
      },
      "MeterSubType": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - MeterSubTypeUnknown</li><li><i>1</i> - Cold / Cold Water Meter</li><li><i>2</i> - Heat / Hot Water Meter</li><li><i>3</i> - MeterSubTypeChargingStation</li><li><i>4</i> - MeterSubTypeElectricity</li><li><i>5</i> - MeterSubTypeWater</li><li><i>6</i> - MeterSubTypeGas</li><li><i>7</i> - Electricity / Heat meter</li><li><i>8</i> - A Temperature meter</li><li><i>9</i> - MeterSubTypeVirtualBattery</li></ul>",
        "format": "int32"
      },
      "OAuthRefreshTokenJson": {
        "required": [
          "applicationDisplayName",
          "applicationId",
          "expires",
          "id",
          "issued"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "applicationId": {
            "type": "string",
            "nullable": true
          },
          "applicationDisplayName": {
            "type": "string",
            "nullable": true
          },
          "issued": {
            "type": "string",
            "format": "date-time"
          },
          "expires": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "OutputConfigurationContainer": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "description": "The number of the Output. (1 for Output 1, 2 for Output 2)",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The Name of the Output",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/DigitalOutputType"
          },
          "digitalOutputNoConnectionAction": {
            "$ref": "#/components/schemas/DigitalOutputNoConnectionAction"
          },
          "s0PulseValue": {
            "$ref": "#/components/schemas/S0PulseValueType"
          }
        },
        "additionalProperties": false,
        "description": "Configuration for the outputs of a meter (analog/digital outputs)"
      },
      "OutputInformation": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "description": "The Number of this Output. Use this as ID to switch it on or off.",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "description": "The Name of the Output",
            "nullable": true
          },
          "obisCode": {
            "type": "string",
            "description": "The Obis Code for this Output",
            "nullable": true
          },
          "actionType": {
            "$ref": "#/components/schemas/ActionType"
          }
        },
        "additionalProperties": false,
        "description": "Informations about the Outputs of a Meter or Folder"
      },
      "PicoChargingData": {
        "type": "object",
        "properties": {
          "state": {
            "$ref": "#/components/schemas/ChargingStationState"
          },
          "activeChargingPower": {
            "type": "number",
            "description": "The power of the active charging (in kW)",
            "format": "double"
          },
          "activeChargingEnergy": {
            "type": "number",
            "description": "The energy used by this active charging (in kWh)",
            "format": "double"
          },
          "duration": {
            "type": "integer",
            "description": "The duration of this charging in seconds",
            "format": "int32"
          },
          "valueDate": {
            "type": "string",
            "description": "The date of this values",
            "format": "date-time"
          },
          "maxAllowedChargingCurrent": {
            "type": "integer",
            "description": "Max allowed charging current in A",
            "format": "int32"
          },
          "minStationCurrent": {
            "type": "integer",
            "description": "Min. current of the station in A",
            "format": "int32"
          },
          "maxStationCurrent": {
            "type": "integer",
            "description": "Max. current of the station in A",
            "format": "int32"
          },
          "maxLoadmanagementGroupCurrent": {
            "type": "integer",
            "description": "Max. current of the loadmanagement group of this station (if there is any) in A",
            "format": "int32"
          },
          "maxDynamicCurrent": {
            "type": "integer",
            "description": "Max. dynamic current (e.g. set over API or Modbus TCP) of this station or the loadmanagement group of the station if the station is in a group. in A",
            "format": "int32"
          },
          "currentL1": {
            "type": "number",
            "description": "The current on phase L1 in A",
            "format": "double"
          },
          "currentL2": {
            "type": "number",
            "description": "The current on phase L2 in A",
            "format": "double"
          },
          "currentL3": {
            "type": "number",
            "description": "The current on phase L3 in A",
            "format": "double"
          },
          "loadSheddingState": {
            "$ref": "#/components/schemas/LoadSheddingEnum"
          },
          "loadmanagementGroupName": {
            "type": "string",
            "description": "The name of the loadmanagement group. Or string.empty if the station is not in a group",
            "nullable": true
          },
          "connectionMode": {
            "$ref": "#/components/schemas/MeterNetworkToCloudConnectionMode"
          },
          "rssi": {
            "type": "integer",
            "description": "Received Signal Strength Indicator for the connection mode (wifi or mobile).\n-127 (min) to 0 (Max)",
            "format": "int32"
          },
          "lastWarningOrError": {
            "$ref": "#/components/schemas/MeterEventType"
          },
          "lastWarningOrErrorMessage": {
            "type": "string",
            "description": "The message of the last warning or error of the station.",
            "nullable": true
          },
          "lastWarningOrErrorTime": {
            "type": "string",
            "description": "The time when the LastWarningOrError happend",
            "format": "date-time",
            "nullable": true
          },
          "lastSeen": {
            "type": "string",
            "description": "The time when we last see the charging station",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container class for the pico charging station API"
      },
      "PicoChargingHistoryData": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "description": "The starttime of the charging (in UTC)",
            "format": "date-time",
            "readOnly": true
          },
          "duration": {
            "type": "integer",
            "description": "The duration in seconds",
            "format": "int32",
            "readOnly": true
          },
          "energyUsed": {
            "type": "number",
            "description": "The energy used (in kWh)",
            "format": "double",
            "readOnly": true
          },
          "transactionStopReason": {
            "$ref": "#/components/schemas/ChargingStopReason"
          }
        },
        "additionalProperties": false,
        "description": "Api container for the charging station history"
      },
      "PicoLoadmanagementGroupDto": {
        "required": [
          "changeFrom3PhaseTo1PhaseCurrentInA",
          "connectionLostActionType",
          "connectionLostDynamicCurrent",
          "enable1To3PhaseChange",
          "id",
          "max1PhaseChargingCurrentInA",
          "maxCurrent",
          "name",
          "numberOfStations"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the load management group",
            "nullable": true
          },
          "maxCurrent": {
            "type": "number",
            "description": "Maximum current limit of the fuse in amperes",
            "format": "double"
          },
          "connectionLostActionType": {
            "$ref": "#/components/schemas/LoadmanagementConnectionLostActionType"
          },
          "connectionLostDynamicCurrent": {
            "type": "number",
            "description": "Dynamic current limit in amperes to apply when connection is lost",
            "format": "double"
          },
          "changeFrom3PhaseTo1PhaseCurrentInA": {
            "type": "integer",
            "description": "Current threshold in amperes for switching from 3-phase to 1-phase charging",
            "format": "int32"
          },
          "enable1To3PhaseChange": {
            "type": "boolean",
            "description": "Enable automatic switching between 1-phase and 3-phase charging"
          },
          "max1PhaseChargingCurrentInA": {
            "type": "integer",
            "description": "Maximum charging current in amperes allowed during 1-phase charging",
            "format": "int32"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the load management group",
            "format": "uuid"
          },
          "numberOfStations": {
            "type": "integer",
            "description": "Number of charging stations in the load management group",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PicoSettingsDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the station",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "description": "The Serial number of the station",
            "nullable": true
          },
          "authenticationType": {
            "$ref": "#/components/schemas/ChargingStationSettingsAuthentication"
          },
          "displayBrightness": {
            "type": "integer",
            "description": "The Brightness of the LCD Matrix display. 0 = minimum, 255 = maximum",
            "format": "int32"
          },
          "minCurrent": {
            "type": "integer",
            "description": "The max current of this station (in A)",
            "format": "int32"
          },
          "maxCurrent": {
            "type": "integer",
            "description": "The max current of this station (in A)",
            "format": "int32"
          },
          "idleImageUrl": {
            "type": "string",
            "description": "The url of the idle image",
            "nullable": true
          },
          "loadmanagementGroupId": {
            "type": "string",
            "description": "The ID of the loadmanagement group",
            "format": "uuid"
          },
          "modbusTcp": {
            "type": "boolean",
            "description": "Flag if ModbusTcp is enabled"
          },
          "isEnabled": {
            "type": "boolean",
            "description": "Flag if the station is enabled. A disabled station does not store any data.\nNull leaves the flag unchanged.",
            "nullable": true
          },
          "carIdDetection": {
            "type": "boolean",
            "description": "Flag if the car id detection is enabled"
          },
          "fixCableLockEnable": {
            "type": "boolean",
            "description": "Enable the fix lock of the charging cable",
            "nullable": true
          },
          "internalIp": {
            "type": "string",
            "description": "The internal IP address",
            "nullable": true
          },
          "dnsName": {
            "type": "string",
            "description": "The DNS name of the pico's internal ip",
            "nullable": true
          },
          "ocppBackendUrl": {
            "type": "string",
            "nullable": true
          },
          "ocppBackendUsername": {
            "type": "string",
            "nullable": true
          },
          "ocppBackendPassword": {
            "type": "string",
            "nullable": true
          },
          "supportsLoadmanagementGroupConnectionLostAction": {
            "type": "boolean"
          },
          "supportsLoadmanagementGroupChangePhases": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "description": "DTO for the pico charging station settings"
      },
      "PublicOrConfidentialAppJson": {
        "type": "object",
        "properties": {
          "clientId": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "displayName": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "allowedClaims": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "readOnly": true
          },
          "redirectUris": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "PublicOrConfidentialAppJsonCreateAppWithSecretResultJson": {
        "required": [
          "app",
          "secret"
        ],
        "type": "object",
        "properties": {
          "app": {
            "$ref": "#/components/schemas/PublicOrConfidentialAppJson"
          },
          "secret": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PublicOrConfidentialApplicationModificationJson": {
        "type": "object",
        "properties": {
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "allowedClaims": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "redirectUris": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RealtimeApiRegistrationType": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - Disabled</li><li><i>1</i> - Single meter that we are looking for data</li><li><i>2</i> - Registration for a Server User. All devices of this users we are looking for new data.</li></ul>",
        "format": "int32"
      },
      "RegisterRealtimeApiData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the registration",
            "format": "uuid"
          },
          "registrationType": {
            "$ref": "#/components/schemas/RealtimeApiRegistrationType"
          },
          "meterId": {
            "type": "string",
            "description": "The ID of the Meter. Just used if the RegistrationType is \"SingleMeterRegistration\".",
            "format": "uuid",
            "nullable": true
          },
          "serialNumber": {
            "type": "string",
            "description": "The serial number of the Meter. Just used if the RegistrationType is \"SingleMeterRegistration\" and the MeterId is null.\nExample: 1 SME 01 63000000 or 6300000",
            "nullable": true
          },
          "apiUrl": {
            "type": "string",
            "description": "The URL of your endpoint. To this endpoint all the values are send to.",
            "nullable": true
          },
          "basicAuthUsername": {
            "type": "string",
            "description": "The Username (basic auth) of your endpoint. Leave empty of none.",
            "nullable": true
          },
          "basicAuthPassword": {
            "type": "string",
            "description": "The Password (basic auth) of your endpoint. Leave empty of none.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container class for the register realtime API API"
      },
      "S0PulseValueType": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "S0 Pulse values for the smart-me Meters<p>Members: </p><ul><li><i>0</i> - 1'000 pulses / kWh</li><li><i>1</i> - 10'000 pulses / kWh</li></ul>",
        "format": "int32"
      },
      "SmartMeDeviceConfigurationContainer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the device",
            "format": "uuid"
          },
          "uploadInterval": {
            "$ref": "#/components/schemas/UploadInterval"
          },
          "switchConfiguration": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SwitchConfigurationContainer"
            },
            "description": "The configuration for the phase switches",
            "nullable": true
          },
          "outputConfiguration": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OutputConfigurationContainer"
            },
            "description": "The configuration for the external outputs",
            "nullable": true
          },
          "inputConfiguration": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InputConfigurationContainer"
            },
            "description": "The configuration for the intput outputs",
            "nullable": true
          },
          "showReactiveEnergy": {
            "type": "boolean",
            "description": "Shows the reactive energy values (if the meter supports it).",
            "nullable": true
          },
          "enableModbusTcp": {
            "type": "boolean",
            "description": "Enables or disables Modbus TCP (if the meter supports it).",
            "nullable": true
          },
          "dnsUpdateState": {
            "$ref": "#/components/schemas/MeterDnsUpdateEnum"
          },
          "devicePinCode": {
            "type": "string",
            "description": "PIN code to enter on a external meter (e.g. for the FNN meters)",
            "nullable": true
          },
          "deviceEncryptionKey": {
            "type": "string",
            "description": "The encryption key used to decrypt messages received from an external meter (used only for the smart-me modules)",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "API Container class for the meter configuration"
      },
      "SubUserData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the user",
            "nullable": true
          },
          "username": {
            "type": "string",
            "description": "The username",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The Email adress",
            "nullable": true
          },
          "permissionLevel": {
            "$ref": "#/components/schemas/UserPermissionLevel"
          },
          "accessTimeStartDate": {
            "type": "string",
            "description": "The start date. From this date the user has access",
            "format": "date-time"
          },
          "accessEndDate": {
            "type": "string",
            "description": "The end date. until this date the user has access",
            "format": "date-time"
          },
          "newPassword": {
            "type": "string",
            "description": "If set this is used a new password",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container data for the sub user"
      },
      "SwitchConfigurationContainer": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "description": "The number of the phase. (e.g. 1 for Phase L1)",
            "format": "int32"
          },
          "canSwitchOff": {
            "type": "boolean",
            "description": "Flag if the switch can be turned off or is always on."
          }
        },
        "additionalProperties": false,
        "description": "The configuration for a phase switch"
      },
      "UploadInterval": {
        "enum": [
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>1</i> - UploadInterval_1s</li><li><i>2</i> - UploadInterval_5s</li><li><i>3</i> - UploadInterval_10s</li><li><i>4</i> - UploadInterval_30s</li><li><i>5</i> - UploadInterval_60s</li><li><i>6</i> - UploadInterval_5min</li><li><i>7</i> - UploadInterval_15min</li><li><i>8</i> - UploadInterval_30min</li><li><i>9</i> - UploadInterval_60min</li><li><i>10</i> - UploadInterval_6h</li><li><i>11</i> - UploadInterval_12h</li><li><i>12</i> - UploadInterval_24h</li></ul>",
        "format": "int32"
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID of the User",
            "format": "int64"
          },
          "idAsString": {
            "type": "string",
            "description": "The ID of the user as string",
            "nullable": true
          },
          "username": {
            "type": "string",
            "description": "The Username of the User",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "The EMail Address of the User",
            "nullable": true
          },
          "isAdmin": {
            "type": "boolean",
            "description": "Flag if this User is an Admin User"
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Additional Permissions",
            "nullable": true
          },
          "childUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            },
            "description": "The Users created by this users.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container Class for the Web API"
      },
      "UserPermissionLevel": {
        "enum": [
          0,
          1
        ],
        "type": "integer",
        "description": "The permission levle of the sub user<p>Members: </p><ul><li><i>0</i> - SelectedFolderAndSubfoldersMeters</li><li><i>1</i> - SelectedFolderOnly</li></ul>",
        "format": "int32"
      },
      "VMeterToDeactivate": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the Virtual meter to deactivate",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "Deactivates a virtual Meter"
      },
      "ValueData": {
        "type": "object",
        "properties": {
          "obis": {
            "type": "string",
            "description": "The Obis code of this value.\nA description you can find here:\nhttp://wiki.smart-me.com/index.php/Obis_codes",
            "nullable": true
          },
          "value": {
            "type": "number",
            "description": "The Value",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "API Container for a (Device) Value"
      },
      "ValuesData": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "string",
            "description": "The ID of the device",
            "format": "uuid"
          },
          "date": {
            "type": "string",
            "description": "The Date of the Value",
            "format": "date-time"
          },
          "values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValueData"
            },
            "description": "All values",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "API Container for a Meter Value"
      },
      "VirtualTariff": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "number",
            "description": "The Counter Value of this tariff",
            "format": "double"
          },
          "unit": {
            "type": "string",
            "nullable": true
          },
          "factor": {
            "type": "number",
            "description": "Says how many of the active power is used in this tariff. This is calculated from the last meter values.",
            "format": "double"
          },
          "type": {
            "$ref": "#/components/schemas/VirtualTariffType"
          }
        },
        "additionalProperties": false
      },
      "VirtualTariffConsumptionData": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The Name of this virtual tariff",
            "nullable": true
          },
          "tariffType": {
            "$ref": "#/components/schemas/VirtualTariffType"
          },
          "consumption": {
            "type": "number",
            "description": "The consumption (e.g. kWh) of this tariff",
            "format": "double"
          },
          "price": {
            "type": "number",
            "description": "The price of the energy in this timerange",
            "format": "double"
          },
          "currency": {
            "type": "string",
            "description": "The currency of the price",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Container class for the virtual tariff consumption"
      },
      "VirtualTariffType": {
        "enum": [
          0,
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - Battery</li><li><i>1</i> - Solar</li><li><i>2</i> - Normal</li><li><i>3</i> - VZevSolar</li></ul>",
        "format": "int32"
      },
      "VirtualTariffsOfFolder": {
        "type": "object",
        "properties": {
          "folderId": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of this folder",
            "nullable": true,
            "readOnly": true
          },
          "date": {
            "type": "string",
            "description": "The DateTime (UTC) of this virtual tarfifs",
            "format": "date-time",
            "readOnly": true
          },
          "virtualTariffs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VirtualTariff"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "VisualizationParameterInformation": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The key to send in the folder settings, e.g. GridMeterId",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "The name of the parameter in the language of the request",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "What this parameter is used for",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "One parameter of a visualization type"
      },
      "VisualizationParameterSetting": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The key of the parameter, e.g. GridMeterId. Use /folder/visualizationtypes to get the keys of a type",
            "nullable": true
          },
          "folderMeterId": {
            "type": "string",
            "description": "The ID of the folder or meter shown in this slot. An empty ID leaves the slot unused",
            "format": "uuid"
          }
        },
        "additionalProperties": false,
        "description": "One parameter of a folder visualization: which folder or meter fills a given slot"
      },
      "VisualizationTypeEnum": {
        "enum": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13
        ],
        "type": "integer",
        "description": "<p>Members: </p><ul><li><i>0</i> - It's a standard visualization (tiles)</li><li><i>1</i> - It's a simple energy flow (3 meters)</li><li><i>2</i> - The Electricy, Heat and Water view (3 meters)</li><li><i>3</i> - The simple virtual tariffs (1 Folder)</li><li><i>4</i> - House with multiple items (1 house, n items)</li><li><i>5</i> - The Electricy, Heat and Water view (3 meters) with a comparision to 3 refernece meters</li><li><i>6</i> - The Heat, Water temperature view (3 meters) with a comparision to 2 refernece meters</li><li><i>7</i> - The Electricy, Heat and Water view (3 meters) with a comparision to 3 refernece meters in a clean design</li><li><i>8</i> - House with multiple items (1 house, n items) in a clean design</li><li><i>9</i> - The Visualization of a virtual battery</li><li><i>10</i> - A Grid and a Solar meter and the calculation of the self-sufficiency rate and the self-consumption rate</li><li><i>11</i> - A consumpiton and production monitoring.</li><li><i>12</i> - An overview of all pico charging stations of the account (no parameters)</li><li><i>13</i> - The energy and financial performance of a ZEV (grid meter, 1-5 solar meters, 0-3 battery meters)</li></ul>",
        "format": "int32"
      },
      "VisualizationTypeInformation": {
        "type": "object",
        "properties": {
          "visualizationType": {
            "$ref": "#/components/schemas/VisualizationTypeEnum"
          },
          "name": {
            "type": "string",
            "description": "The name of the visualization",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "What the visualization shows",
            "nullable": true
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VisualizationParameterInformation"
            },
            "description": "The parameters of this visualization, in the order the configuration UI shows them",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "A visualization that can be set on a folder, and the parameters it expects"
      }
    },
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "description": "OAuth 2.0 authorization",
        "flows": {
          "clientCredentials": {
            "authorizationUrl": "/oauth/authorize",
            "tokenUrl": "/oauth/token",
            "scopes": {
              "user.read": "Read the user settings",
              "user.readwrite": "Read and write the user settings",
              "device.read": "Read data from the devices",
              "device.readswitch": "Read data from the device and controll the outputs",
              "device.readwrite": "Read data from the device and add/update the values",
              "auditlog.read": "Read the audit log",
              "partner.read": "Read the device of a partner",
              "partner.write": "Read and write the device of a partner",
              "partner.updatefirmware": "Update the firmware of all devices of a partner",
              "realtimeapi.read": "Read the realtime api registrations",
              "realtimeapi.readwrite": "Read and write the realtime api registrations",
              "oauthapp.write": "Write and change of oauth applications"
            }
          },
          "authorizationCode": {
            "authorizationUrl": "/oauth/authorize",
            "tokenUrl": "/oauth/token",
            "scopes": {
              "user.read": "Read the user settings",
              "user.readwrite": "Read and write the user settings",
              "device.read": "Read data from the devices",
              "device.readswitch": "Read data from the device and controll the outputs",
              "device.readwrite": "Read data from the device and add/update the values",
              "auditlog.read": "Read the audit log",
              "partner.read": "Read the device of a partner",
              "partner.write": "Read and write the device of a partner",
              "partner.updatefirmware": "Update the firmware of all devices of a partner",
              "realtimeapi.read": "Read the realtime api registrations",
              "realtimeapi.readwrite": "Read and write the realtime api registrations",
              "oauthapp.write": "Write and change of oauth applications"
            }
          }
        }
      },
      "Basic": {
        "type": "http",
        "description": "Basic authorization",
        "scheme": "Basic"
      }
    }
  },
  "security": [
    {
      "OAuth2": [ ]
    },
    {
      "Basic": [ ]
    }
  ],
  "tags": [
    {
      "name": "AccessToken"
    },
    {
      "name": "Actions"
    },
    {
      "name": "AdditionalDeviceInformation"
    },
    {
      "name": "CustomDevice"
    },
    {
      "name": "DeviceBySerial"
    },
    {
      "name": "Devices"
    },
    {
      "name": "DevicesByEnergy"
    },
    {
      "name": "DevicesBySubType"
    },
    {
      "name": "FastSendDeviceValues"
    },
    {
      "name": "Folder"
    },
    {
      "name": "FolderAssign"
    },
    {
      "name": "FolderMenu"
    },
    {
      "name": "FolderSettings"
    },
    {
      "name": "MBusGateway"
    },
    {
      "name": "MeterFolderInformation"
    },
    {
      "name": "MeterValues"
    },
    {
      "name": "OAuthApplications"
    },
    {
      "name": "OAuthClaims"
    },
    {
      "name": "OAuthRefreshToken"
    },
    {
      "name": "Pico"
    },
    {
      "name": "PicoCharging"
    },
    {
      "name": "PicoChargingHistory"
    },
    {
      "name": "PicoEnableFixCableLock"
    },
    {
      "name": "PicoLoadmanagementGroup"
    },
    {
      "name": "PicoLoadmanagementSetDynamicCurrent"
    },
    {
      "name": "PicoSettings"
    },
    {
      "name": "RegisterForRealtimeApi"
    },
    {
      "name": "SmartMeDeviceConfiguration"
    },
    {
      "name": "SubUser"
    },
    {
      "name": "User"
    },
    {
      "name": "UserToFolderAssign"
    },
    {
      "name": "Values"
    },
    {
      "name": "ValuesInPast"
    },
    {
      "name": "ValuesInPastMultiple"
    },
    {
      "name": "ValuesInPastMultipleInterpolated"
    },
    {
      "name": "VirtualBillingMeterDeactivate"
    },
    {
      "name": "VirtualMeterCalculateFormula"
    },
    {
      "name": "VirtualTariff"
    },
    {
      "name": "VirtualTariffConsumption"
    },
    {
      "name": "VirtualTariffsForProperty"
    },
    {
      "name": "VirtualTariffsStatusForProperty"
    }
  ]
}