{
  "openapi": "3.0.3",
  "info": {
    "title": "SmartKey Konektor API",
    "version": "1.0.0",
    "description": "Jednotné API pro ovládání chytrých zámků. Chyby konektoru: 401/403/429/502. Business chyby cloudu: HTTP 200 + errcode."
  },
  "servers": [
    {
      "url": "https://connect.smartkey.cz"
    }
  ],
  "security": [
    {
      "clientId": [],
      "clientSecret": []
    }
  ],
  "components": {
    "securitySchemes": {
      "clientId": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Client-Id"
      },
      "clientSecret": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Client-Secret"
      }
    }
  },
  "paths": {
    "/api/v3/user/register": {
      "post": {
        "tags": [
          "User APIs"
        ],
        "summary": "Založí virtuální uživatelský účet (heslo posílejte jako MD5). Vrácené uživatelské jméno použijte jako receiverUsername při poslání eKey.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "username": {
                    "type": "string",
                    "description": "username，only numbers and English letters allowed，this api will return a prefixed username, please GET Access Token with the prefixed username"
                  },
                  "password": {
                    "type": "string",
                    "description": "Password(32 chars, low case, md5 encrypted )"
                  }
                },
                "required": [
                  "username",
                  "password"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/user/resetPassword": {
      "post": {
        "tags": [
          "User APIs"
        ],
        "summary": "Resetuje heslo virtuálního uživatelského účtu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "username": {
                    "type": "string",
                    "description": "The prefixed username return by cloud API: User register"
                  },
                  "password": {
                    "type": "string",
                    "description": "New password(32 chars, low case, md5 encrypted )"
                  }
                },
                "required": [
                  "username",
                  "password"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/user/list": {
      "post": {
        "tags": [
          "User APIs"
        ],
        "summary": "Vrátí seznam virtuálních účtů založených přes API.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "startDate": {
                    "type": "integer",
                    "description": "query by register time，start time (timestamp in millisecond)"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "query by register time，end time (timestamp in millisecond)"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page no, start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Items per page, max 200"
                  }
                },
                "required": [
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/user/delete": {
      "post": {
        "tags": [
          "User APIs"
        ],
        "summary": "Smaže virtuální uživatelský účet.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "username": {
                    "type": "string",
                    "description": "The prefixed username return by cloud API: User register"
                  }
                },
                "required": [
                  "username"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/initialize": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Inicializuje zámek do cloudu (páruje se přes SDK).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockData": {
                    "type": "string",
                    "description": "Lock Data，must be get from the callback function of Lock initialie method of APP SDK"
                  },
                  "lockAlias": {
                    "type": "string",
                    "description": "Lock alias"
                  },
                  "groupId": {
                    "type": "integer",
                    "description": "group ID，refer to cloud API: Add group"
                  },
                  "nbInitSuccess": {
                    "type": "integer",
                    "description": "Is NB-IoT lock inited Successfully? 1-yes, 0-no. Only NB-IoT lock need this parameter."
                  }
                },
                "required": [
                  "lockData"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/list": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Vrátí seznam všech zámků účtu (jen zámky, kde je účet hlavním správcem).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockAlias": {
                    "type": "string",
                    "description": "Search by lock alias, fuzzy matching"
                  },
                  "groupId": {
                    "type": "integer",
                    "description": "Group ID，search by group, refer to: Add group for detail"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page no, start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Items per page, default 20, max 1000"
                  }
                },
                "required": [
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/detail": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Vrátí detailní informace o zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/delete": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Smaže zámek.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/updateLockData": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Resetuje data zámku – zneplatní všechny eKey a kódy (destruktivní!).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "lockData": {
                    "type": "string",
                    "description": "Lock data from APP SDK"
                  }
                },
                "required": [
                  "lockId",
                  "lockData"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/rename": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Přejmenuje zámek.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "lockAlias": {
                    "type": "string",
                    "description": "New lock alias"
                  }
                },
                "required": [
                  "lockId",
                  "lockAlias"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/changeAdminKeyboardPwd": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Změní hlavní (admin) číselný kód zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "password": {
                    "type": "string",
                    "description": "New super passcode"
                  },
                  "changeType": {
                    "type": "integer",
                    "description": "Method: 1-via phone bluetooth，must call APP SDK method first, 2-via gateway or WiFi lock , if it's a WiFi lock or it's connected to gateway, you can call this api directly, The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "password"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/transfer": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Převede zámek na jiný účet (nevratné!).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "receiverUsername": {
                    "type": "string",
                    "description": "The receiver's username"
                  },
                  "lockIdList": {
                    "type": "string",
                    "description": "Lock ID list, example:[1234,3332]"
                  }
                },
                "required": [
                  "receiverUsername",
                  "lockIdList"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/updateElectricQuantity": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Nahraje stav baterie naměřený přes SDK.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "electricQuantity": {
                    "type": "integer",
                    "description": "Lock battery"
                  }
                },
                "required": [
                  "lockId",
                  "electricQuantity"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/setAutoLockTime": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Nastaví čas automatického zamčení v sekundách.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "seconds": {
                    "type": "integer",
                    "description": "The lock will automatically locked after the specific seconds, this parameter set 0 or -1 mean close auto lock"
                  },
                  "type": {
                    "type": "integer",
                    "description": "method: 1-via phone bluetooth，must call Set auto lock time method of APP SDK before you request this API 2-via gateway or WiFi lock , you can call this api directly if it's a WiFi lock or it's connected to gateway. The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "seconds",
                  "type"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/configurePassageMode": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Nastaví průchozí režim (zámek zůstává odemčený v daných časech).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "passageMode": {
                    "type": "integer",
                    "description": "Passage mode: 1-on, 2-off"
                  },
                  "cyclicConfig": {
                    "type": "array",
                    "description": "Converting a list of records from a JsonArray to a String, please refer to the example above. Cycle time setting， can only set a maximum of five time periods."
                  },
                  "autoUnlock": {
                    "type": "integer",
                    "description": "Auto unlock:1-on, 2-off, set to 1 then the lock will auto unlock at the time the passage mode start"
                  },
                  "type": {
                    "type": "integer",
                    "description": "Method: 1-via phone bluetooth，you should config via APP SDK before you request this API 2-via gateway or WiFi lock ，you can call this api directly if it's a WiFi lock or it's connected to gateway. The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "passageMode",
                  "type"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/getPassageModeConfiguration": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Vrátí konfiguraci průchozího režimu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/setHotelCardSector": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Nastaví sektor hotelových karet.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "sector": {
                    "type": "string",
                    "description": "Hotel card sector，for example：1,2,3,4,5,6,7,8,9,10 for sectors 1 to 10"
                  }
                },
                "required": [
                  "lockId",
                  "sector"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/updateSetting": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Zapíše nastavení zámku (vyžaduje gateway).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "type": {
                    "type": "integer",
                    "description": "The item to be set：2-Privacy lock、3-Tamper alert、4-Reset button、6-Lock sound、7-Open direction、8-Sound volume、10-Wifi lock's power saving、11-Door unclosed alarm time setting Note: Wifi lock's power saving mode can only be set via bluetooth, it can't be set it via gateway."
                  },
                  "value": {
                    "type": "integer",
                    "description": "Value: 1-on、2-off; Open direction：1-left open、2-right open; Sound volume: 1 to 5 Door unclosed alarm time: In seconds, 0 mean off, need door sensor"
                  },
                  "changeType": {
                    "type": "integer",
                    "description": "Method: 1-via phone bluetooth, you should call APP SDK method first 2- via gateway or WiFi lock , you can call this api directly if it's a WiFi lock or it's connected to gateway"
                  }
                },
                "required": [
                  "lockId",
                  "type",
                  "value"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/querySetting": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Přečte nastavení zámku – parametr type určuje položku (vyžaduje gateway).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "type": {
                    "type": "integer",
                    "description": "The item to be queried: 2-Privacy lock、3-Tamper alert、4-Reset button、7-Open direction"
                  }
                },
                "required": [
                  "lockId",
                  "type"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/getWorkingMode": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Vrátí nastavené provozní hodiny zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/configWorkingMode": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Nastaví provozní hodiny zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID"
                  },
                  "workingMode": {
                    "type": "string",
                    "description": "Working status, 1: working all day, 2: not working all day, 3: custom"
                  },
                  "type": {
                    "type": "string",
                    "description": "Method: 1-via phone bluetooth，should call APP SDK method to add card first. 2-via gateway or WiFi lock ，you can call this api with type = 2 directly if it's a WiFi lock or it's connected to gateway. The default value is 1."
                  },
                  "cyclicConfig": {
                    "type": "string",
                    "description": "Time period configuration"
                  }
                },
                "required": [
                  "lockId",
                  "workingMode",
                  "type"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/getExtraSetting": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Vrátí zámek podle zadaných parametrů.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID"
                  },
                  "type": {
                    "type": "integer",
                    "description": "0 - Retrieve information from the cloud 1 - Retrieve the latest unauthorized alarm information via gateway or Wi-Fi lock"
                  }
                },
                "required": [
                  "lockId",
                  "type"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/updateUnauthorizedAttemptAlert": {
      "post": {
        "tags": [
          "Lock APIs"
        ],
        "summary": "Upraví vlastnosti zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "integer",
                    "description": "1- Update via Bluetooth; 2- Update via gateway or Wi-Fi lock"
                  },
                  "lockId": {
                    "type": "string",
                    "description": "Lock ID"
                  },
                  "unauthorizedAttemptAlertFlag": {
                    "type": "integer",
                    "description": "Unauthorized alarm, 1 - On, 0 - Off"
                  },
                  "unauthorizedAttemptAlertCount": {
                    "type": "integer",
                    "description": "Unauthorized alerts, number of failures, 0 indicates off."
                  },
                  "unauthorizedAttemptAlertLockTime": {
                    "type": "integer",
                    "description": "Unauthorized alarm, lock time, unit - seconds"
                  },
                  "unauthorizedAttemptAlertPwd": {
                    "type": "integer",
                    "description": "Unauthorized alarm, password flag: 1 - on, 0 - off"
                  },
                  "unauthorizedAttemptAlertCard": {
                    "type": "integer",
                    "description": "Unauthorized alarm, IC card flag: 1 - On, 0 - Off"
                  },
                  "unauthorizedAttemptAlertFingerprint": {
                    "type": "integer",
                    "description": "Unauthorized access alarm, fingerprint indicator, 1 - open, 0 - closed"
                  }
                },
                "required": [
                  "type",
                  "lockId",
                  "unauthorizedAttemptAlertFlag",
                  "unauthorizedAttemptAlertCount",
                  "unauthorizedAttemptAlertLockTime"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/key/send": {
      "post": {
        "tags": [
          "Ekey APIs"
        ],
        "summary": "Odešle eKey (mobilní klíč) uživateli. startDate=0 a endDate=0 znamená trvalý klíč; createUser=1 založí účet příjemce automaticky.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "receiverUsername": {
                    "type": "string",
                    "description": "The receiver's username"
                  },
                  "keyName": {
                    "type": "string",
                    "description": "Key name"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond)"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond)"
                  },
                  "remarks": {
                    "type": "string",
                    "description": "Comment"
                  },
                  "remoteEnable": {
                    "type": "integer",
                    "description": "Is remote unlock enabled: 1-yes, 2-no"
                  },
                  "keyRight": {
                    "type": "integer",
                    "description": "Is an authorized ekey: 1-yes, 0-no，the default value is 0"
                  },
                  "createUser": {
                    "type": "integer",
                    "description": "Auto create SmartKey account if receiverUsername is not a registered SmartKey account: 1-yes, 2-no (default), this parameter take effect only when receiverUsername is a mobile number or email, the created account's password is the last six characters of the username."
                  }
                },
                "required": [
                  "lockId",
                  "receiverUsername",
                  "keyName",
                  "startDate",
                  "endDate"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/key/list": {
      "post": {
        "tags": [
          "Ekey APIs"
        ],
        "summary": "Vrátí seznam eKey, které účet obdržel.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockAlias": {
                    "type": "string",
                    "description": "Search by lock alias, fuzzy matching"
                  },
                  "groupId": {
                    "type": "integer",
                    "description": "Search by group ID, refer to cloud API: Add group for details"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page no, start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Items per page, max 1000"
                  }
                },
                "required": [
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/key/get": {
      "post": {
        "tags": [
          "Ekey APIs"
        ],
        "summary": "Vrátí eKey (mobilní klíč) podle zadaných parametrů.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/listKey": {
      "post": {
        "tags": [
          "Ekey APIs"
        ],
        "summary": "Vrátí seznam všech eKey vydaných k zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search keywords, fuzzy search by key name"
                  },
                  "keyRight": {
                    "type": "integer",
                    "description": "Whether the ekey is authorized or not: 0 - No, 1 - Yes, used to filter authorized administrator electronic keys, return all ekeys without this parameter"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page no, start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Items per page, max 200"
                  },
                  "orderBy": {
                    "type": "integer",
                    "description": "Sort by: 0-by name, 1-reverse order by time, 2-reverse order by name"
                  }
                },
                "required": [
                  "lockId",
                  "pageNo",
                  "pageSize",
                  "orderBy"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/key/delete": {
      "post": {
        "tags": [
          "Ekey APIs"
        ],
        "summary": "Smaže eKey (mobilní klíč).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "keyId": {
                    "type": "integer",
                    "description": "Ekey ID"
                  }
                },
                "required": [
                  "keyId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/key/freeze": {
      "post": {
        "tags": [
          "Ekey APIs"
        ],
        "summary": "Dočasně zmrazí eKey (mobilní klíč) – přestane fungovat, lze odmrazit.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "keyId": {
                    "type": "integer",
                    "description": "Ekey ID"
                  }
                },
                "required": [
                  "keyId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/key/unfreeze": {
      "post": {
        "tags": [
          "Ekey APIs"
        ],
        "summary": "Odmrazí dříve zmrazený eKey (mobilní klíč).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "keyId": {
                    "type": "integer",
                    "description": "Ekey ID"
                  }
                },
                "required": [
                  "keyId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/key/update": {
      "post": {
        "tags": [
          "Ekey APIs"
        ],
        "summary": "Upraví vlastnosti eKey.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "keyId": {
                    "type": "integer",
                    "description": "Ekey ID"
                  },
                  "keyName": {
                    "type": "string",
                    "description": "Ekey name will be modifed"
                  },
                  "remoteEnable": {
                    "type": "integer",
                    "description": "Is remote unlock enabled: 1-yes, 2-no"
                  }
                },
                "required": [
                  "keyId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/key/changePeriod": {
      "post": {
        "tags": [
          "Ekey APIs"
        ],
        "summary": "Změní časovou platnost eKey.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "keyId": {
                    "type": "integer",
                    "description": "Ekey ID"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond)"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond)"
                  }
                },
                "required": [
                  "keyId",
                  "startDate",
                  "endDate"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/key/authorize": {
      "post": {
        "tags": [
          "Ekey APIs"
        ],
        "summary": "Povýší eKey na autorizovaného správce zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "keyId": {
                    "type": "integer",
                    "description": "ekey ID"
                  }
                },
                "required": [
                  "lockId",
                  "keyId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/key/unauthorize": {
      "post": {
        "tags": [
          "Ekey APIs"
        ],
        "summary": "Odebere eKey práva správce.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "keyId": {
                    "type": "integer",
                    "description": "Ekey ID"
                  }
                },
                "required": [
                  "lockId",
                  "keyId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/key/getUnlockLink": {
      "post": {
        "tags": [
          "Ekey APIs"
        ],
        "summary": "Vytvoří webový odkaz pro odemčení bez aplikace.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/keyboardPwd/get": {
      "post": {
        "tags": [
          "Passcode APIs"
        ],
        "summary": "Vygeneruje náhodný číselný kód – funguje na klávesnici okamžitě i bez gateway (kód počítá algoritmus zámku).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "keyboardPwdType": {
                    "type": "integer",
                    "description": "Passcode type，refer to section 2.1"
                  },
                  "keyboardPwdName": {
                    "type": "string",
                    "description": "Passcode name"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond)"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond)"
                  }
                },
                "required": [
                  "lockId",
                  "keyboardPwdType",
                  "startDate"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        },
        "description": "Doporučeno pro rezervace, hosty a jednorázové vstupy: kód počítá algoritmus zámku, nezabírá paměť zámku, nepotřebuje bránu, funguje ihned a nemusí se mazat. Platnost je na celé hodiny; kód typu období (keyboardPwdType=3) musí být poprvé použit do 24 h od začátku platnosti."
      }
    },
    "/api/v3/keyboardPwd/add": {
      "post": {
        "tags": [
          "Passcode APIs"
        ],
        "summary": "Vytvoří vlastní číselný kód. addType=1 se zapíše při Bluetooth synchronizaci aplikací, addType=2 okamžitě přes gateway.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "keyboardPwd": {
                    "type": "integer",
                    "description": "Passcode"
                  },
                  "keyboardPwdName": {
                    "type": "string",
                    "description": "Passcode name"
                  },
                  "keyboardPwdType": {
                    "type": "integer",
                    "description": "Keyboard password type：2-permanent, 3-period, default value is 3"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond), must be required if keyboard password type is 3-period"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond), must be required if keyboard password type is 3-period"
                  },
                  "addType": {
                    "type": "integer",
                    "description": "Způsob zápisu: 2 = přes bránu/WiFi zámek (POUŽÍVEJTE VŽDY), 1 = čeká na Bluetooth synchronizaci aplikací (kód se bez aplikace do zámku nezapíše), 4 = WiFi zámek v úsporném režimu (asynchronně).",
                    "example": 2
                  }
                },
                "required": [
                  "lockId",
                  "keyboardPwd",
                  "addType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        },
        "description": "Vlastní kód se fyzicky zapisuje do zámku a zabírá jeho paměť (cca 250 kódů na zámek). VŽDY posílejte addType=2 (přes bránu); výchozí addType=1 kód do zámku nezapíše (čeká na Bluetooth synchronizaci aplikací), i když v cloudu vypadá jako platný. Zapisujte sekvenčně, nejdříve ~24 h před platností, kontrolujte errcode (HTTP je vždy 200) a prošlé kódy mažte přes keyboardPwd/delete (deleteType=2). Pro rezervace a jednorázové vstupy použijte keyboardPwd/get."
      }
    },
    "/api/v3/lock/listKeyboardPwd": {
      "post": {
        "tags": [
          "Passcode APIs"
        ],
        "summary": "Vrátí seznam všech číselných kódů zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search keywords, fuzzy search by passcode name or precise match by passcode"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page no, start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Items per page, max 200"
                  },
                  "orderBy": {
                    "type": "integer",
                    "description": "Sort by: 0-by name, 1-reverse order by time, 2-reverse order by name"
                  }
                },
                "required": [
                  "lockId",
                  "pageNo",
                  "pageSize",
                  "orderBy"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/keyboardPwd/delete": {
      "post": {
        "tags": [
          "Passcode APIs"
        ],
        "summary": "Smaže číselný kód.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "keyboardPwdId": {
                    "type": "integer",
                    "description": "Passcode ID"
                  },
                  "deleteType": {
                    "type": "integer",
                    "description": "Method: 1-delete with App via Bluetooth, you should delete via bluetooth first 2-delete via WiFi gateway , you can call this api directly if it's a WiFi lock or it's connected to gateway. The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "keyboardPwdId",
                  "deleteType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/keyboardPwd/change": {
      "post": {
        "tags": [
          "Passcode APIs"
        ],
        "summary": "Změní číselný kód.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "keyboardPwdId": {
                    "type": "integer",
                    "description": "Passcode ID"
                  },
                  "keyboardPwdName": {
                    "type": "string",
                    "description": "New passcode name"
                  },
                  "newKeyboardPwd": {
                    "type": "string",
                    "description": "The new passcode"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The start time of the new passcode (timestamp in millisecond)"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The end time of the new passcode (timestamp in millisecond)"
                  },
                  "changeType": {
                    "type": "integer",
                    "description": "Method: 1-via phone bluetooth, you should call APP SDK method first 2- via gateway or WiFi lock , you can call this api directly if it's a WiFi lock or it's connected to gateway The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "keyboardPwdId",
                  "changeType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/unlock": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Vzdáleně odemkne zámek (vyžaduje gateway).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/lock": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Vzdáleně zamkne zámek (vyžaduje gateway).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/queryOpenState": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Zjistí, zda jsou dveře odemčené/zamčené (vyžaduje gateway).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/queryDate": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Přečte aktuální čas zámku (vyžaduje gateway).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/updateDate": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Synchronizuje čas zámku (vyžaduje gateway).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/queryElectricQuantity": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Přečte aktuální stav baterie ze zámku (vyžaduje gateway).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/gateway/list": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Vrátí seznam gateway účtu včetně stavu online/offline.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "pageNo": {
                    "type": "integer",
                    "description": "Page no, start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Items per page, max 200"
                  },
                  "orderBy": {
                    "type": "integer",
                    "description": "Sort by: 0-by name, 1-reverse order by time, 2-reverse order by name"
                  }
                },
                "required": [
                  "pageNo",
                  "pageSize",
                  "orderBy"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/gateway/delete": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Smaže gateway.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gatewayId": {
                    "type": "integer",
                    "description": "Gateway ID"
                  }
                },
                "required": [
                  "gatewayId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/gateway/rename": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Přejmenuje gateway.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gatewayId": {
                    "type": "integer",
                    "description": "gateway id"
                  },
                  "gatewayName": {
                    "type": "string",
                    "description": "new gateway name"
                  }
                },
                "required": [
                  "gatewayId",
                  "gatewayName"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/gateway/transfer": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Převede gateway na jiný účet (nevratné!).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "receiverUsername": {
                    "type": "string",
                    "description": "The receiver's username, must be a registered account."
                  },
                  "gatewayIdList": {
                    "type": "string",
                    "description": "Gateway ID list, example:[1234,3332]"
                  }
                },
                "required": [
                  "receiverUsername",
                  "gatewayIdList"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/gateway/listByLock": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Vrátí seznam gateway přiřazených k zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/gateway/listLock": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Vrátí seznam zámků připojených k gateway.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gatewayId": {
                    "type": "integer",
                    "description": "Gateway ID"
                  }
                },
                "required": [
                  "gatewayId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/gateway/listDevice": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Vrátí seznam zařízení připojených ke gateway.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gatewayId": {
                    "type": "integer",
                    "description": "Gateway ID"
                  }
                },
                "required": [
                  "gatewayId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/gateway/detail": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Vrátí detailní informace o gateway.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gatewayId": {
                    "type": "integer",
                    "description": "GatewayId, from init gateway API"
                  }
                },
                "required": [
                  "gatewayId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/gateway/isInitSuccess": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Ověří podle MAC adresy, zda byla gateway úspěšně inicializována.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gatewayNetMac": {
                    "type": "string",
                    "description": "The Mac which you will get when calling the APP SDK method to add a gateway"
                  }
                },
                "required": [
                  "gatewayNetMac"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/gateway/uploadDetail": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Upload detail info of gateway",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gatewayId": {
                    "type": "integer",
                    "description": "Gateway ID, returned by: Gateway init"
                  },
                  "modelNum": {
                    "type": "string",
                    "description": "Product model"
                  },
                  "hardwareRevision": {
                    "type": "string",
                    "description": "Hardware version"
                  },
                  "firmwareRevision": {
                    "type": "string",
                    "description": "Firmware version"
                  },
                  "networkName": {
                    "type": "string",
                    "description": "The network name gateway connected to"
                  }
                },
                "required": [
                  "gatewayId",
                  "modelNum",
                  "hardwareRevision",
                  "firmwareRevision",
                  "networkName"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/gateway/upgradeCheck": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Zkontroluje dostupnost aktualizace firmwaru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gatewayId": {
                    "type": "integer",
                    "description": "Gateway ID"
                  }
                },
                "required": [
                  "gatewayId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/gateway/setUpgradeMode": {
      "post": {
        "tags": [
          "Gateway APIs"
        ],
        "summary": "Nastaví gateway.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gatewayId": {
                    "type": "integer",
                    "description": "Gateway ID"
                  }
                },
                "required": [
                  "gatewayId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/identityCard/add": {
      "post": {
        "tags": [
          "IC Card APIs"
        ],
        "summary": "Přidá IC kartu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "cardNumber": {
                    "type": "string",
                    "description": "Card number (1) card number returned by by APP SDK； (2) read from card reader."
                  },
                  "cardName": {
                    "type": "string",
                    "description": "Card name"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond), when startDate and endDate all set to 0 it will be permanent."
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond), when startDate and endDate all set to 0 it will be permanent."
                  },
                  "cardType": {
                    "type": "integer",
                    "description": "Card type：1-noraml card、4-cyclic(default value is 1)"
                  },
                  "cyclicConfig": {
                    "type": "array",
                    "description": "Recurring time period, the valid time period of each week day must be the same, for example: [{\"weekDay\":1, \"startTime\":480,\"endTime\":1080},{\"weekDay\":2, \"startTime\":480,\"endTime\":1080}] for valid from 8:00 to 18:00 in Monday and Tuesday."
                  },
                  "addType": {
                    "type": "integer",
                    "description": "Method: 1-via phone bluetooth，should call APP SDK method to add card first. 2-via gateway or WiFi lock ，you can call this api directly if it's a WiFi lock or it's connected to gateway. The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "cardNumber",
                  "startDate",
                  "endDate",
                  "addType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/identityCard/list": {
      "post": {
        "tags": [
          "IC Card APIs"
        ],
        "summary": "Vrátí stránkovaný seznam IC karty.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search keywords, fuzzy search by IC card name"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page no, start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Items per page，max 200"
                  },
                  "orderBy": {
                    "type": "integer",
                    "description": "Sort by: 0-by name, 1-reverse order by time, 2-reverse order by name"
                  }
                },
                "required": [
                  "lockId",
                  "pageNo",
                  "pageSize",
                  "orderBy"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/identityCard/delete": {
      "post": {
        "tags": [
          "IC Card APIs"
        ],
        "summary": "Smaže IC kartu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "cardId": {
                    "type": "integer",
                    "description": "Card ID，get from Cloud API: Add card"
                  },
                  "deleteType": {
                    "type": "integer",
                    "description": "Method: 1-delete with App via Bluetooth, you should delete via bluetooth first 2-delete via gateway or WiFi lock, you can call this api directly if it's a WiFi lock or it's connected to gateway. The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "cardId",
                  "deleteType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/identityCard/changePeriod": {
      "post": {
        "tags": [
          "IC Card APIs"
        ],
        "summary": "Změní časovou platnost IC karty.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "cardId": {
                    "type": "integer",
                    "description": "Card ID，get from Cloud API: Add card"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond), you can't change it to permanent"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond), you can't change it to permanent"
                  },
                  "cyclicConfig": {
                    "type": "array",
                    "description": "Recurring time period, the valid time period of each week day must be the same, for example: [{\"weekDay\":1, \"startTime\":480,\"endTime\":1080},{\"weekDay\":2, \"startTime\":480,\"endTime\":1080}] for valid from 8:00 to 18:00 in Monday and Tuesday."
                  },
                  "changeType": {
                    "type": "integer",
                    "description": "Method: 1-via phone bluetooth, you should call APP SDK method first 2- via gateway or WiFi lock , you can call this api directly if it's a WiFi lock or it's connected to gateway The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "cardId",
                  "startDate",
                  "endDate",
                  "changeType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/identityCard/clear": {
      "post": {
        "tags": [
          "IC Card APIs"
        ],
        "summary": "Smaže všechny IC karty na zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/identityCard/rename": {
      "post": {
        "tags": [
          "IC Card APIs"
        ],
        "summary": "Přejmenuje IC kartu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID"
                  },
                  "cardId": {
                    "type": "integer",
                    "description": "Card ID，get from Cloud API: Add card"
                  },
                  "cardName": {
                    "type": "string",
                    "description": "New card name"
                  }
                },
                "required": [
                  "lockId",
                  "cardId",
                  "cardName"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/fingerprint/add": {
      "post": {
        "tags": [
          "Fingerprint APIs"
        ],
        "summary": "Přidá otisk prstu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "fingerprintNumber": {
                    "type": "integer",
                    "description": "Fingerprint number, get from Adding a fingerprint via APP SDK"
                  },
                  "fingerprintType": {
                    "type": "integer",
                    "description": "Fingerprint type: 1-normal, 4-recurring"
                  },
                  "fingerprintName": {
                    "type": "string",
                    "description": "Fingerprint name"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond), when startDate and endDate all set to 0 it will be permanent."
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond), when startDate and endDate all set to 0 it will be permanent."
                  },
                  "cyclicConfig": {
                    "type": "array",
                    "description": "Recurring time period, the valid time period of each week day must be the same, for example: [{\"weekDay\":1, \"startTime\":480,\"endTime\":1080},{\"weekDay\":2, \"startTime\":480,\"endTime\":1080}] for valid from 8:00 to 18:00 in Monday and Tuesday."
                  }
                },
                "required": [
                  "lockId",
                  "fingerprintNumber",
                  "fingerprintType",
                  "startDate",
                  "endDate"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/fingerprint/list": {
      "post": {
        "tags": [
          "Fingerprint APIs"
        ],
        "summary": "Vrátí stránkovaný seznam otisku prstu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search keywords, fuzzy search by fingerprint name"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page no, start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Items per page，max 200"
                  },
                  "orderBy": {
                    "type": "integer",
                    "description": "Sort by: 0-by name, 1-reverse order by time, 2-reverse order by name"
                  }
                },
                "required": [
                  "lockId",
                  "pageNo",
                  "pageSize",
                  "orderBy"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/fingerprint/delete": {
      "post": {
        "tags": [
          "Fingerprint APIs"
        ],
        "summary": "Smaže otisk prstu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "fingerprintId": {
                    "type": "integer",
                    "description": "Fingerprint ID，get from cloud API: Add fingerprint"
                  },
                  "deleteType": {
                    "type": "integer",
                    "description": "Method: 1-delete with App via Bluetooth, you should delete via bluetooth first 2-delete via gateway or WiFi lock, you can call this api directly if it's a WiFi lock or it's connected to gateway. The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "fingerprintId",
                  "deleteType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/fingerprint/changePeriod": {
      "post": {
        "tags": [
          "Fingerprint APIs"
        ],
        "summary": "Změní časovou platnost otisku prstu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "fingerprintId": {
                    "type": "integer",
                    "description": "Fingerprint ID, get from cloud API: Add fingerprint"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond), you can't change it to permanent"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond), you can't change it to permanent"
                  },
                  "cyclicConfig": {
                    "type": "array",
                    "description": "Recurring time period, the valid time period of each week day must be the same, for example: [{\"weekDay\":1, \"startTime\":480,\"endTime\":1080},{\"weekDay\":2, \"startTime\":480,\"endTime\":1080}] for valid from 8:00 to 18:00 in Monday and Tuesday."
                  },
                  "changeType": {
                    "type": "integer",
                    "description": "Method: 1-via phone bluetooth, you should call APP SDK method first 2- via gateway or WiFi lock , you can call this api directly if it's a WiFi lock or it's connected to gateway The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "fingerprintId",
                  "startDate",
                  "endDate",
                  "changeType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/fingerprint/clear": {
      "post": {
        "tags": [
          "Fingerprint APIs"
        ],
        "summary": "Smaže všechny otisku prstu na zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/fingerprint/rename": {
      "post": {
        "tags": [
          "Fingerprint APIs"
        ],
        "summary": "Přejmenuje otisk prstu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID"
                  },
                  "fingerprintId": {
                    "type": "integer",
                    "description": "fingerprint id"
                  },
                  "fingerprintName": {
                    "type": "string",
                    "description": "new fingerprint name"
                  }
                },
                "required": [
                  "lockId",
                  "fingerprintId",
                  "fingerprintName"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/face/getFeatureDataByPhoto": {
      "post": {
        "tags": [
          "Face APIs"
        ],
        "summary": "Vrátí záznam obličeje podle zadaných parametrů.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "image": {
                    "type": "string",
                    "description": "Face photo, size limit: 300KB～2MB, format: jpg、png、bmp"
                  }
                },
                "required": [
                  "lockId",
                  "image"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/face/add": {
      "post": {
        "tags": [
          "Face APIs"
        ],
        "summary": "Přidá záznam obličeje.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "name": {
                    "type": "string",
                    "description": "Face name"
                  },
                  "faceNumber": {
                    "type": "string",
                    "description": "Face Number Face Number return by APP SDK； Don't need this parameter if add face via gateway or WiFi lock"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond), when startDate and endDate all set to 0 it will be permanent."
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond), when startDate and endDate all set to 0 it will be permanent."
                  },
                  "type": {
                    "type": "integer",
                    "description": "1-normal，4-cyclic(default value is 1)"
                  },
                  "cyclicConfig": {
                    "type": "array",
                    "description": "Cyclic operation time setting (need to pass only for cyclic type)"
                  },
                  "featureData": {
                    "type": "string",
                    "description": "Face feature data, Gained by Get feature data by photo API，this parameter will be used in remote add face"
                  },
                  "addType": {
                    "type": "integer",
                    "description": "Method: 1-via phone bluetooth，should call APP SDK method to add face first. 2-via gateway or WiFi lock ，you can call this api directly if it's a WiFi lock or it's connected to gateway. The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "startDate",
                  "endDate",
                  "addType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/face/list": {
      "post": {
        "tags": [
          "Face APIs"
        ],
        "summary": "Vrátí stránkovaný seznam záznamu obličeje.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search string (name fuzzy matching)"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page no, start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Items per page，max 200"
                  }
                },
                "required": [
                  "lockId",
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/face/delete": {
      "post": {
        "tags": [
          "Face APIs"
        ],
        "summary": "Smaže záznam obličeje.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "faceId": {
                    "type": "integer",
                    "description": "Face ID，generated from Add face API"
                  },
                  "type": {
                    "type": "integer",
                    "description": "Method: 1-delete with App via Bluetooth, you should delete via bluetooth first 2-delete via gateway or WiFi lock, you can call this api directly if it's a WiFi lock or it's connected to gateway. The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "faceId",
                  "type"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/face/changePeriod": {
      "post": {
        "tags": [
          "Face APIs"
        ],
        "summary": "Změní časovou platnost záznamu obličeje.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "faceId": {
                    "type": "integer",
                    "description": "Face ID, generated from Add face API"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond), you can't change it to permanent"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond), you can't change it to permanent"
                  },
                  "cyclicConfig": {
                    "type": "string",
                    "description": "Recurring time period, the valid time period of each week day must be the same, for example: [{\"weekDay\":1, \"startTime\":480,\"endTime\":1080},{\"weekDay\":2, \"startTime\":480,\"endTime\":1080}] for valid from 8:00 to 18:00 in Monday and Tuesday."
                  },
                  "type": {
                    "type": "integer",
                    "description": "Method: 1-via phone bluetooth, you should call APP SDK method first 2- via gateway or WiFi lock , you can call this api directly if it's a WiFi lock or it's connected to gateway The default value is 1."
                  }
                },
                "required": [
                  "lockId",
                  "faceId",
                  "startDate",
                  "endDate",
                  "type"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/face/clear": {
      "post": {
        "tags": [
          "Face APIs"
        ],
        "summary": "Smaže všechny záznamu obličeje na zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/face/rename": {
      "post": {
        "tags": [
          "Face APIs"
        ],
        "summary": "Přejmenuje záznam obličeje.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID"
                  },
                  "faceId": {
                    "type": "integer",
                    "description": "Face ID，generated from Add face API"
                  },
                  "name": {
                    "type": "string",
                    "description": "New face name"
                  }
                },
                "required": [
                  "lockId",
                  "faceId",
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lockRecord/list": {
      "post": {
        "tags": [
          "Unlock record APIs"
        ],
        "summary": "Vrátí historii odemykání zámku (kdo, kdy a čím odemkl) v zadaném časovém rozsahu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "Start time, search by operate time(timestamp in millisecond)"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "End time, search by operate time (timestamp in millisecond)"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page no, start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Items per page, max 200"
                  },
                  "uid": {
                    "type": "integer",
                    "description": "User ID，for searching the operation records of a certain user"
                  },
                  "recordType": {
                    "type": "integer",
                    "description": "Record type：-5-face、-4-QR code、4-keyboard password、7-IC card、8-fingerprint、55-remote，Default return all records"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search key string：face number、QR code number、password、IC card number、fingerprint number、remote Mac"
                  }
                },
                "required": [
                  "lockId",
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lockRecord/upload": {
      "post": {
        "tags": [
          "Unlock record APIs"
        ],
        "summary": "Nahraje záznamy odemknutí načtené ze zámku přes SDK.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "records": {
                    "type": "string",
                    "description": "Lock records, please make sure it's read from lock by APP SDK."
                  }
                },
                "required": [
                  "lockId",
                  "records"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lockRecord/delete": {
      "post": {
        "tags": [
          "Unlock record APIs"
        ],
        "summary": "Smaže záznam odemknutí.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "recordIdList": {
                    "type": "array",
                    "description": "Records Id list，from Lock record list API"
                  }
                },
                "required": [
                  "lockId",
                  "recordIdList"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lockRecord/clear": {
      "post": {
        "tags": [
          "Unlock record APIs"
        ],
        "summary": "Smaže všechny záznamů odemykání na zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/group/add": {
      "post": {
        "tags": [
          "Group APIs"
        ],
        "summary": "Přidá skupinu zámků.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Group name"
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/group/list": {
      "post": {
        "tags": [
          "Group APIs"
        ],
        "summary": "Vrátí stránkovaný seznam skupiny zámků.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "orderBy": {
                    "type": "integer",
                    "description": "Sort by: 0-by name, 1-reverse order by time, 2-reverse order by name"
                  }
                },
                "required": [
                  "orderBy"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/setGroup": {
      "post": {
        "tags": [
          "Group APIs"
        ],
        "summary": "Přiřadí zámek do skupiny.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "string",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "groupId": {
                    "type": "string",
                    "description": "Group ID, from Get gruop list API, this parameter set 0 cancel grouping"
                  }
                },
                "required": [
                  "lockId",
                  "groupId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/group/delete": {
      "post": {
        "tags": [
          "Group APIs"
        ],
        "summary": "Smaže skupinu zámků.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupId": {
                    "type": "string",
                    "description": "Group ID"
                  }
                },
                "required": [
                  "groupId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/group/update": {
      "post": {
        "tags": [
          "Group APIs"
        ],
        "summary": "Upraví vlastnosti skupiny zámků.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupId": {
                    "type": "string",
                    "description": "Group ID"
                  },
                  "name": {
                    "type": "string",
                    "description": "New group name"
                  }
                },
                "required": [
                  "groupId",
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/group/setDeviceGroup": {
      "post": {
        "tags": [
          "Group APIs"
        ],
        "summary": "Nastaví skupinu zámků.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "deviceType": {
                    "type": "string",
                    "description": "Equipment type 0: Lock. 1: Electricity meter. 2: Water meter."
                  },
                  "deviceId": {
                    "type": "string",
                    "description": "Device ID"
                  },
                  "groupId": {
                    "type": "string",
                    "description": "Group ID, returned by the \" Get Group List \" interface; passing 0 cancels the group."
                  }
                },
                "required": [
                  "deviceType",
                  "deviceId",
                  "groupId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/upgradeCheck": {
      "post": {
        "tags": [
          "Lock upgrade APIs"
        ],
        "summary": "Zkontroluje dostupnost aktualizace firmwaru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/upgradeRecheck": {
      "post": {
        "tags": [
          "Lock upgrade APIs"
        ],
        "summary": "Přepne zařízení do režimu aktualizace firmwaru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "lockData": {
                    "type": "string",
                    "description": "Lock data, get from APP SDK"
                  }
                },
                "required": [
                  "lockId",
                  "lockData"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/wirelessKeypad/add": {
      "post": {
        "tags": [
          "Wireless Keyboard APIs"
        ],
        "summary": "Přidá bezdrátovou klávesnici.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "wirelessKeypadNumber": {
                    "type": "string",
                    "description": "Wireless keypad serial number"
                  },
                  "wirelessKeypadName": {
                    "type": "string",
                    "description": "Wireless keypad name"
                  },
                  "wirelessKeypadMac": {
                    "type": "string",
                    "description": "Wireless keypad MAC"
                  },
                  "wirelessKeypadFeatureValue": {
                    "type": "string",
                    "description": "Feature value of wireless keypad"
                  },
                  "electricQuantity": {
                    "type": "integer",
                    "description": "Wireless keypad battery"
                  }
                },
                "required": [
                  "lockId",
                  "wirelessKeypadNumber",
                  "wirelessKeypadName",
                  "wirelessKeypadMac",
                  "wirelessKeypadFeatureValue"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/wirelessKeypad/listByLock": {
      "post": {
        "tags": [
          "Wireless Keyboard APIs"
        ],
        "summary": "Vrátí seznam bezdrátové klávesnice přiřazených k zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/wirelessKeypad/delete": {
      "post": {
        "tags": [
          "Wireless Keyboard APIs"
        ],
        "summary": "Smaže bezdrátovou klávesnici.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wirelessKeypadId": {
                    "type": "integer",
                    "description": "Wireless keypad ID，generated by Add wireless keypad"
                  }
                },
                "required": [
                  "wirelessKeypadId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/wirelessKeypad/rename": {
      "post": {
        "tags": [
          "Wireless Keyboard APIs"
        ],
        "summary": "Přejmenuje bezdrátovou klávesnici.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wirelessKeypadId": {
                    "type": "integer",
                    "description": "Wireless keypad ID，generated by Add wireless keypad"
                  },
                  "wirelessKeypadName": {
                    "type": "string",
                    "description": "New wireless keypad name"
                  }
                },
                "required": [
                  "wirelessKeypadId",
                  "wirelessKeypadName"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/wirelessKeypad/upgradeCheck": {
      "post": {
        "tags": [
          "Wireless Keyboard APIs"
        ],
        "summary": "Zkontroluje dostupnost aktualizace firmwaru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wirelessKeypadId": {
                    "type": "integer",
                    "description": "wireless keypad ID"
                  },
                  "slotNumber": {
                    "type": "integer",
                    "description": "slot number"
                  }
                },
                "required": [
                  "wirelessKeypadId",
                  "slotNumber"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/wirelessKeypad/upgradeSuccess": {
      "post": {
        "tags": [
          "Wireless Keyboard APIs"
        ],
        "summary": "Ověří, zda se aktualizace firmwaru povedla.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wirelessKeypadId": {
                    "type": "integer",
                    "description": "wireless keypad ID"
                  },
                  "slotNumber": {
                    "type": "integer",
                    "description": "slot number"
                  },
                  "featureValue": {
                    "type": "string",
                    "description": "feature value"
                  }
                },
                "required": [
                  "wirelessKeypadId",
                  "slotNumber"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/remote/add": {
      "post": {
        "tags": [
          "Remote APIs"
        ],
        "summary": "Přidá dálkový ovladač.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "number": {
                    "type": "string",
                    "description": "Remote serial number"
                  },
                  "name": {
                    "type": "string",
                    "description": "Name"
                  },
                  "mac": {
                    "type": "string",
                    "description": "Mac"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond)"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond)"
                  },
                  "type": {
                    "type": "integer",
                    "description": "Type: 1-normal, 4-recurring"
                  },
                  "cyclicConfig": {
                    "type": "array",
                    "description": "Recurring time period, the valid time period of each week day must be the same, for example: [{\"weekDay\":1, \"startTime\":480,\"endTime\":1080},{\"weekDay\":2, \"startTime\":480,\"endTime\":1080}] for valid from 8:00 to 18:00 in Monday and Tuesday."
                  },
                  "electricQuantity": {
                    "type": "integer",
                    "description": "Battery"
                  },
                  "firmwareInfo": {
                    "type": "object",
                    "description": "Fireware info"
                  }
                },
                "required": [
                  "lockId",
                  "number",
                  "mac",
                  "startDate",
                  "endDate",
                  "electricQuantity",
                  "firmwareInfo"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/remote/listByLock": {
      "post": {
        "tags": [
          "Remote APIs"
        ],
        "summary": "Vrátí seznam dálkového ovladače přiřazených k zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "orderBy": {
                    "type": "integer",
                    "description": "Sort by: 0-by name, 1-reverse order by time, 2-reverse order by name"
                  }
                },
                "required": [
                  "lockId",
                  "orderBy"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/remote/delete": {
      "post": {
        "tags": [
          "Remote APIs"
        ],
        "summary": "Smaže dálkový ovladač.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remoteId": {
                    "type": "integer",
                    "description": "remote ID，generated by Add remote"
                  }
                },
                "required": [
                  "remoteId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/remote/clear": {
      "post": {
        "tags": [
          "Remote APIs"
        ],
        "summary": "Smaže všechny dálkového ovladače na zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/remote/update": {
      "post": {
        "tags": [
          "Remote APIs"
        ],
        "summary": "Upraví vlastnosti dálkového ovladače.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remoteId": {
                    "type": "integer",
                    "description": "remote ID，generated by Add remote"
                  },
                  "name": {
                    "type": "string",
                    "description": "New remote name"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond)"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond)"
                  },
                  "cyclicConfig": {
                    "type": "array",
                    "description": "Recurring time period, the valid time period of each week day must be the same, for example: [{\"weekDay\":1, \"startTime\":480,\"endTime\":1080},{\"weekDay\":2, \"startTime\":480,\"endTime\":1080}] for valid from 8:00 to 18:00 in Monday and Tuesday."
                  },
                  "changeType": {
                    "type": "integer",
                    "description": "Method: 1-via phone bluetooth, you should call APP SDK method first 2- via gateway or WiFi lock , you can call this api directly if it's a WiFi lock or it's connected to gateway The default value is 1."
                  }
                },
                "required": [
                  "remoteId",
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/remote/upgradeCheck": {
      "post": {
        "tags": [
          "Remote APIs"
        ],
        "summary": "Zkontroluje dostupnost aktualizace firmwaru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remoteId": {
                    "type": "integer",
                    "description": "Remote ID"
                  },
                  "modelNum": {
                    "type": "string",
                    "description": "product model"
                  },
                  "hardwareRevision": {
                    "type": "string",
                    "description": "hardware version number"
                  },
                  "firmwareRevision": {
                    "type": "string",
                    "description": "firmware version number"
                  }
                },
                "required": [
                  "remoteId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/remote/upgradeSuccess": {
      "post": {
        "tags": [
          "Remote APIs"
        ],
        "summary": "Ověří, zda se aktualizace firmwaru povedla.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "remoteId": {
                    "type": "integer",
                    "description": "remote ID"
                  },
                  "featureValue": {
                    "type": "string",
                    "description": "feature value"
                  }
                },
                "required": [
                  "remoteId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/standaloneDoorSensor/add": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Přidá položku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Name"
                  },
                  "doorSensorData": {
                    "type": "string",
                    "description": "Independent door sensor data must be generated by the APP SDK initial interface."
                  },
                  "wifiName": {
                    "type": "string",
                    "description": "WIFI name"
                  }
                },
                "required": [
                  "name",
                  "doorSensorData",
                  "wifiName"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/standaloneDoorSensor/list": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Vrátí stránkovaný seznam položky.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "pageNo": {
                    "type": "integer",
                    "description": "Page numbers start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Number of pages per page, maximum 200"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search door sensor name"
                  }
                },
                "required": [
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/standaloneDoorSensor/configNetwork": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Nastaví konfiguraci položky.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "doorSensorId": {
                    "type": "integer",
                    "description": "Door sensor ID"
                  },
                  "doorSensorData": {
                    "type": "string",
                    "description": "Independent door sensor data must be generated by configuring the network interface in the APP SDK."
                  },
                  "wifiName": {
                    "type": "string",
                    "description": "WIFI name"
                  }
                },
                "required": [
                  "doorSensorId",
                  "doorSensorData",
                  "wifiName"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/standaloneDoorSensor/listRecord": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Vrátí historii záznamů položky.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "doorSensorId": {
                    "type": "integer",
                    "description": "Door sensor ID"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page numbers start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Number of pages per page, maximum 200"
                  }
                },
                "required": [
                  "doorSensorId",
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/standaloneDoorSensor/update": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Upraví vlastnosti položky.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "doorSensorId": {
                    "type": "integer",
                    "description": "Standalone door sensor ID"
                  },
                  "name": {
                    "type": "string",
                    "description": "Name"
                  }
                },
                "required": [
                  "doorSensorId",
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/standaloneDoorSensor/delete": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Smaže položku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "doorSensorId": {
                    "type": "integer",
                    "description": "Door sensor ID"
                  }
                },
                "required": [
                  "doorSensorId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/standaloneDoorSensor/addDoorSensorUser": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Přidá položku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "doorSensorId": {
                    "type": "integer",
                    "description": "Door sensor ID"
                  },
                  "account": {
                    "type": "string",
                    "description": "Account"
                  },
                  "username": {
                    "type": "string",
                    "description": "Username"
                  }
                },
                "required": [
                  "doorSensorId",
                  "account",
                  "username"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/standaloneDoorSensor/listDoorSensorUser": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Vrátí stránkovaný seznam položky.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "doorSensorId": {
                    "type": "integer",
                    "description": "door sensor ID"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Query Username"
                  }
                },
                "required": [
                  "doorSensorId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/standaloneDoorSensor/deleteDoorSensorUser": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Smaže položku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "Share ID"
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/standaloneDoorSensor/configAlertFlag": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Nastaví konfiguraci položky.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "doorSensorId": {
                    "type": "integer",
                    "description": "Door sensor ID"
                  },
                  "notCloseAlertFlag": {
                    "type": "integer",
                    "description": "Door not closed reminder indicator: Value range 1 - Open, 2 - Closed"
                  },
                  "notCloseAlertSecondNum": {
                    "type": "integer",
                    "description": "Door not closed reminder time, unit: seconds, range: 1~900 seconds."
                  },
                  "longTimeNotOpenAlertFlag": {
                    "type": "integer",
                    "description": "Long-term inactivity reminder indicator: Value range 1 - On, 2 - Off"
                  },
                  "longTimeNotOpenDayNum": {
                    "type": "integer",
                    "description": "Long-term door inactivity reminder time, unit: days, range: 1-15 days."
                  }
                },
                "required": [
                  "doorSensorId",
                  "notCloseAlertFlag",
                  "longTimeNotOpenAlertFlag"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/standaloneDoorSensor/getAlertFlag": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Vrátí položku podle zadaných parametrů.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "doorSensorId": {
                    "type": "integer",
                    "description": "DS3 ID"
                  }
                },
                "required": [
                  "doorSensorId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/doorSensor/add": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Přidá dveřní senzor.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "name": {
                    "type": "string",
                    "description": "Door sensor name"
                  },
                  "electricQuantity": {
                    "type": "integer",
                    "description": "Door sensor battery level"
                  },
                  "firmwareInfo": {
                    "type": "object",
                    "description": "Door sensor firmware verion info"
                  },
                  "mac": {
                    "type": "string",
                    "description": "Door sensor MAC"
                  },
                  "number": {
                    "type": "string",
                    "description": "Door sensor number"
                  }
                },
                "required": [
                  "lockId",
                  "electricQuantity",
                  "firmwareInfo",
                  "mac",
                  "number"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/doorSensor/query": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Zjistí aktuální stav dveřního senzoru (vyžaduje gateway).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/doorSensor/delete": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Smaže dveřní senzor.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "doorSensorId": {
                    "type": "integer",
                    "description": "Door sensor ID, generated by Add door sensor"
                  }
                },
                "required": [
                  "doorSensorId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/doorSensor/update": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Upraví vlastnosti dveřního senzoru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "doorSensorId": {
                    "type": "integer",
                    "description": "Door sensor id, generated by Add door sensor"
                  },
                  "name": {
                    "type": "string",
                    "description": "New door sensor name"
                  }
                },
                "required": [
                  "doorSensorId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/doorSensor/upgradeCheck": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Zkontroluje dostupnost aktualizace firmwaru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "doorSensorId": {
                    "type": "integer",
                    "description": "door sensor ID"
                  },
                  "modelNum": {
                    "type": "string",
                    "description": "product model"
                  },
                  "hardwareRevision": {
                    "type": "string",
                    "description": "hardware version number"
                  },
                  "firmwareRevision": {
                    "type": "string",
                    "description": "firmware version number"
                  }
                },
                "required": [
                  "doorSensorId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/doorSensor/upgradeSuccess": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Ověří, zda se aktualizace firmwaru povedla.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "doorSensorId": {
                    "type": "integer",
                    "description": "door Sensor ID"
                  }
                },
                "required": [
                  "doorSensorId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/doorSensor/listRecord": {
      "post": {
        "tags": [
          "Standalone Door Sensor"
        ],
        "summary": "Vrátí historii záznamů dveřního senzoru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID，Generate by lock initialize"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page numbers start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Number of pages per page: 20 by default, 200 by maximum."
                  }
                },
                "required": [
                  "lockId",
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/registerNb": {
      "post": {
        "tags": [
          "NB-IoT APIs"
        ],
        "summary": "Zaregistruje nový virtuální zámek pro příjem eKey.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "nbNodeId": {
                    "type": "string",
                    "description": "NB-IoT node id"
                  },
                  "nbCardNumber": {
                    "type": "string",
                    "description": "NB-IoT card number"
                  },
                  "nbOperator": {
                    "type": "string",
                    "description": "NB-IoT operator：46011-China Telecom、46000-China mobile、21401-Vodafone、50212-Maxis"
                  },
                  "nbRssi": {
                    "type": "integer",
                    "description": "NB RSSI, reference: >20 is strong, 10<i<20 is medium, <-10 is weak"
                  }
                },
                "required": [
                  "lockId",
                  "nbNodeId",
                  "nbCardNumber",
                  "nbOperator",
                  "nbRssi"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/getNbDeviceInfo": {
      "post": {
        "tags": [
          "NB-IoT APIs"
        ],
        "summary": "Vrátí zámek podle zadaných parametrů.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/lock/getNbPlatformIpAndPort": {
      "post": {
        "tags": [
          "NB-IoT APIs"
        ],
        "summary": "Vrátí zámek podle zadaných parametrů.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/qrCode/add": {
      "post": {
        "tags": [
          "QR code APIs"
        ],
        "summary": "Vytvoří QR kód pro odemčení zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "name": {
                    "type": "string",
                    "description": "Qr code name"
                  },
                  "type": {
                    "type": "integer",
                    "description": "QR code type, 1-period, 2-permanent, 4-cyclic"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond)"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond)"
                  },
                  "refreshTime": {
                    "type": "integer",
                    "description": "QR code refresh time, minutes per unit of time, default value is 10, maximum 1440"
                  },
                  "cyclicConfig": {
                    "type": "string",
                    "description": "Recurring time period, the valid time period of each week day must be the same, for example: [{\"weekDay\":1, \"startTime\":480,\"endTime\":1080},{\"weekDay\":2, \"startTime\":480,\"endTime\":1080}] for valid from 8:00 to 18:00 in Monday and Tuesday."
                  },
                  "addType": {
                    "type": "integer",
                    "description": "Adding method for random QR code: 0- Cloud method. If left blank, the default is 0. A QR code is generated from the cloud. The QR code is generated by the cloud's algorithm rules and can be generated without the lock being connected to a gateway. Adding methods for custom QR code: 1- Add via SDK Blu"
                  },
                  "qrCodeNumber": {
                    "type": "string",
                    "description": "This parameter is required when adding a custom QR code: Custom QR codes added via APP Bluetooth or gateway require a QR code field. The QR code cannot be larger than 4294967295 and cannot be smaller than 65535. Developers must ensure the QR code number is unique. Recommendation: Developers can dire"
                  }
                },
                "required": [
                  "lockId",
                  "type",
                  "addType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/qrCode/list": {
      "post": {
        "tags": [
          "QR code APIs"
        ],
        "summary": "Vrátí stránkovaný seznam QR kódu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page no, start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Items per page, max 200"
                  },
                  "name": {
                    "type": "string",
                    "description": "QRcode‘s name"
                  }
                },
                "required": [
                  "lockId",
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/qrCode/getData": {
      "post": {
        "tags": [
          "QR code APIs"
        ],
        "summary": "Vrátí QR kód podle zadaných parametrů.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "qrCodeId": {
                    "type": "integer",
                    "description": "QR code ID, generated by Add QR code"
                  }
                },
                "required": [
                  "qrCodeId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/qrCode/update": {
      "post": {
        "tags": [
          "QR code APIs"
        ],
        "summary": "Upraví vlastnosti QR kódu.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "qrCodeId": {
                    "type": "integer",
                    "description": "QR code id, generated by Add QR code"
                  },
                  "name": {
                    "type": "string",
                    "description": "Qr code name"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond)"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond)"
                  },
                  "refreshTime": {
                    "type": "integer",
                    "description": "QR code refresh time, time in minutes"
                  },
                  "cyclicConfig": {
                    "type": "string",
                    "description": "Recurring time period, the valid time period of each week day must be the same, for example: [{\"weekDay\":1, \"startTime\":480,\"endTime\":1080},{\"weekDay\":2, \"startTime\":480,\"endTime\":1080}] for valid from 8:00 to 18:00 in Monday and Tuesday."
                  },
                  "type": {
                    "type": "integer",
                    "description": "QR code types: 1-Time-limited, 2-Permanent, 4-Recurring"
                  },
                  "changeType": {
                    "type": "integer",
                    "description": "Modification methods: 1- Modify via APP Bluetooth. You must modify via APP Bluetooth first before calling this interface. 2- Modify remotely via gateway or WiFi lock. If it is a WiFi lock or connected to a gateway, you can pass to 2 and directly call this interface to modify from the lock. 0- Cloud "
                  }
                },
                "required": [
                  "qrCodeId",
                  "type",
                  "changeType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/qrCode/delete": {
      "post": {
        "tags": [
          "QR code APIs"
        ],
        "summary": "Smaže QR kód.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "qrCodeId": {
                    "type": "integer",
                    "description": "QR code ID, generated by Add QR code"
                  },
                  "deleteType": {
                    "type": "integer",
                    "description": "Deletion methods: 1- Delete via APP Bluetooth. You must delete via APP Bluetooth first before calling this interface. 2- Delete remotely via gateway or WiFi lock. If it is a WiFi lock or connected to a gateway, you can send to 2 and directly call this interface to delete from the lock. 0- Cloud meth"
                  }
                },
                "required": [
                  "lockId",
                  "qrCodeId",
                  "deleteType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/qrCode/clear": {
      "post": {
        "tags": [
          "QR code APIs"
        ],
        "summary": "Smaže všechny QR kódu na zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "type": {
                    "type": "integer",
                    "description": "Clearing methods: 1- Clear via APP Bluetooth. You must clear via APP Bluetooth first before calling this interface. 2- Clear remotely via gateway or WiFi lock. If it is a WiFi lock or connected to a gateway, you can pass to 2 and directly call this interface to clear from the lock. 0- Cloud method. "
                  }
                },
                "required": [
                  "lockId",
                  "type"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/wifiLock/updateNetwork": {
      "post": {
        "tags": [
          "WiFi lock APIs"
        ],
        "summary": "Nahraje síťovou konfiguraci WiFi zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  },
                  "networkName": {
                    "type": "string",
                    "description": "The network name lock connected to"
                  },
                  "wifiMac": {
                    "type": "string",
                    "description": "Wifi Mac"
                  },
                  "rssi": {
                    "type": "integer",
                    "description": "Wifi RSSI"
                  },
                  "useStaticIp": {
                    "type": "boolean",
                    "description": "Use static IP or not"
                  },
                  "ip": {
                    "type": "string",
                    "description": "Static IP address"
                  },
                  "subnetMask": {
                    "type": "string",
                    "description": "Subnet mask"
                  },
                  "defaultGateway": {
                    "type": "string",
                    "description": "Default gateway"
                  },
                  "preferredDns": {
                    "type": "string",
                    "description": "Preferred DNS"
                  },
                  "alternateDns": {
                    "type": "string",
                    "description": "Alternate DNS"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/wifiLock/detail": {
      "post": {
        "tags": [
          "WiFi lock APIs"
        ],
        "summary": "Vrátí síťové informace WiFi zámku (IP, síla signálu).",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "Lock ID, generated by Lock init"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/palmVein/list": {
      "post": {
        "tags": [
          "Palm Vein APIs"
        ],
        "summary": "Vrátí stránkovaný seznam záznamu dlaně.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "id of a lock"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search string (name fuzzy matching)"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page no, start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Items per page, max 200"
                  }
                },
                "required": [
                  "lockId",
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/palmVein/add": {
      "post": {
        "tags": [
          "Palm Vein APIs"
        ],
        "summary": "Přidá záznam dlaně.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "the id of a lock"
                  },
                  "name": {
                    "type": "string",
                    "description": "name of this palm vein"
                  },
                  "number": {
                    "type": "string",
                    "description": "number"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond)"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond)"
                  },
                  "type": {
                    "type": "integer",
                    "description": "1、Normal、4-Recurring，type = 1 by default."
                  },
                  "cyclicConfig": {
                    "type": "array",
                    "description": "Recurring time period, the valid time period of each week day must be the same, for example: [{\"weekDay\":1, \"startTime\":480,\"endTime\":1080},{\"weekDay\":2, \"startTime\":480,\"endTime\":1080}] for valid from 8:00 to 18:00 in Monday and Tuesday."
                  }
                },
                "required": [
                  "lockId",
                  "number",
                  "startDate",
                  "endDate"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/palmVein/rename": {
      "post": {
        "tags": [
          "Palm Vein APIs"
        ],
        "summary": "Přejmenuje záznam dlaně.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "id of a palm vein"
                  },
                  "name": {
                    "type": "string",
                    "description": "new name"
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/palmVein/changePeriod": {
      "post": {
        "tags": [
          "Palm Vein APIs"
        ],
        "summary": "Změní časovou platnost záznamu dlaně.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "id of a palm vein"
                  },
                  "startDate": {
                    "type": "integer",
                    "description": "The time when it becomes valid (timestamp in millisecond)"
                  },
                  "endDate": {
                    "type": "integer",
                    "description": "The time when it is expired (timestamp in millisecond)"
                  },
                  "cyclicConfig": {
                    "type": "array",
                    "description": "Recurring time period, the valid time period of each week day must be the same, for example: [{\"weekDay\":1, \"startTime\":480,\"endTime\":1080},{\"weekDay\":2, \"startTime\":480,\"endTime\":1080}] for valid from 8:00 to 18:00 in Monday and Tuesday."
                  },
                  "type": {
                    "type": "integer",
                    "description": "Method: 1-APP, 2-remote synchronous delivery, 4-WiFi wake-up asynchronous delivery; if not transmitted, the default APP is deleted"
                  }
                },
                "required": [
                  "id",
                  "startDate",
                  "endDate"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/palmVein/delete": {
      "post": {
        "tags": [
          "Palm Vein APIs"
        ],
        "summary": "Smaže záznam dlaně.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "id of a palm vein"
                  },
                  "type": {
                    "type": "integer",
                    "description": "Method: 1-APP, 2-remote synchronous delivery, 4-WiFi wake-up asynchronous delivery; do not transmit the default APP"
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/palmVein/clear": {
      "post": {
        "tags": [
          "Palm Vein APIs"
        ],
        "summary": "Smaže všechny záznamu dlaně na zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lockId": {
                    "type": "integer",
                    "description": "id of a lock"
                  }
                },
                "required": [
                  "lockId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/listGroup": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Vrátí stránkovaný seznam elektroměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/addGroup": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Přidá elektroměr.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/deleteGroup": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Smaže elektroměr.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/renameGroup": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Přejmenuje elektroměr.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/setGroup": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Přiřadí zámek do skupiny.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/list": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Vrátí stránkovaný seznam elektroměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupId": {
                    "type": "integer",
                    "description": "Group ID"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search criteria include searching by meter name and a list of meter IDs."
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page numbers start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Number of pages per page, maximum 1000"
                  }
                },
                "required": [
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/add": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Přidá elektroměr.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mac": {
                    "type": "string",
                    "description": "Electricity Meter MAC"
                  },
                  "name": {
                    "type": "integer",
                    "description": "Electricity meter name"
                  }
                },
                "required": [
                  "mac",
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/detail": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Vrátí detailní informace o elektroměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "integer",
                    "description": "Electricity meter ID"
                  }
                },
                "required": [
                  "electricMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/syncState": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Meter reading",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  }
                },
                "required": [
                  "electricMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/recharge": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Administrator recharge",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "rechargeAmount": {
                    "type": "number",
                    "description": "Recharge amount"
                  },
                  "rechargeKwh": {
                    "type": "number",
                    "description": "Recharge battery"
                  }
                },
                "required": [
                  "electricMeterId",
                  "rechargeAmount",
                  "rechargeKwh"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/updatePrice": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Upraví vlastnosti elektroměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "price": {
                    "type": "number",
                    "description": "Unit price"
                  }
                },
                "required": [
                  "electricMeterId",
                  "price"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/controlOnOff": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Turn the power meter on/off",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "onOff": {
                    "type": "integer",
                    "description": "Power-on status: 0 - No 1 - Yes"
                  }
                },
                "required": [
                  "electricMeterId",
                  "onOff"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/clear": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Smaže všechny elektroměru na zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  }
                },
                "required": [
                  "electricMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/rename": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Přejmenuje elektroměr.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "name": {
                    "type": "string",
                    "description": "Electricity meter name"
                  }
                },
                "required": [
                  "electricMeterId",
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/listOperationRecords": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Vrátí stránkovaný seznam elektroměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "recordType": {
                    "type": "string",
                    "description": "Operation types: 1: Recharge, 2: Power off, 3: Power on, 4: Meter reading, 5: Unit price modification, 6: Reset"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search results"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page numbers start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Number of pages per page, maximum 1000"
                  }
                },
                "required": [
                  "electricMeterId",
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/listRecords": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Vrátí historii záznamů elektroměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "dateType": {
                    "type": "integer",
                    "description": "Date type, 0: day, 1: month, 2: year"
                  },
                  "dateStr": {
                    "type": "string",
                    "description": "dateType = 0 indicates a query by day, and dateStr must be accurate to the day: 2024-09-06; dateType = 1 indicates a query by month, and dateStr must be accurate to the month: 2024-09; dateType = 2 indicates a query by year, and dateStr must be accurate to the year: 2024"
                  }
                },
                "required": [
                  "electricMeterId",
                  "dateType",
                  "dateStr"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/updateMaxPower": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Upraví vlastnosti elektroměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "maxPower": {
                    "type": "integer",
                    "description": "Maximum power"
                  }
                },
                "required": [
                  "electricMeterId",
                  "maxPower"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/updatePayMode": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Upraví vlastnosti elektroměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "payMode": {
                    "type": "integer",
                    "description": "0 - Energy Metering Mode 1 - Prepaid"
                  },
                  "price": {
                    "type": "number",
                    "description": "Unit price, required under prepaid model"
                  }
                },
                "required": [
                  "electricMeterId",
                  "payMode"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/upgradeCheck": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Zkontroluje dostupnost aktualizace firmwaru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  }
                },
                "required": [
                  "electricMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/upgradeSuccess": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Ověří, zda se aktualizace firmwaru povedla.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  }
                },
                "required": [
                  "electricMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/syncSameAdmin": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "蓝牙广播抄表",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/gatewayList": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Gateway associated with the electricity meter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  }
                },
                "required": [
                  "electricMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/createExecuteToken": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Generate an executeToken that can be used for top-ups.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "rechargeKwh": {
                    "type": "number",
                    "description": "Recharge amount"
                  },
                  "rechargeAmount": {
                    "type": "string",
                    "description": "Recharge amount"
                  }
                },
                "required": [
                  "electricMeterId",
                  "rechargeKwh",
                  "rechargeAmount"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/decodeBleAdvertising": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Bluetooth broadcast meter reading",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mac": {
                    "type": "string",
                    "description": "Electricity Meter MAC"
                  },
                  "executeResponse": {
                    "type": "integer",
                    "description": "Broadcast data obtained from the SDK"
                  }
                },
                "required": [
                  "mac",
                  "executeResponse"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/catOneDetail": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Obtain 4G meter network info",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  }
                },
                "required": [
                  "electricMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeter/configCatOneInfo": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Nastaví konfiguraci elektroměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "catOneNodeId": {
                    "type": "string",
                    "description": "Module number"
                  },
                  "catOneCardNumber": {
                    "type": "string",
                    "description": "Card number"
                  },
                  "catOneOperator": {
                    "type": "string",
                    "description": "Carriers: CHN-CT - China Telecom, CHINAMOBILE - China Mobile, CHINA MOBILE - China Mobile, CHN-UNICOM - China Unicom"
                  },
                  "catOneImsi": {
                    "type": "string",
                    "description": "Phone number"
                  },
                  "catOneRssi": {
                    "type": "integer",
                    "description": "Signal value"
                  },
                  "catOneApn": {
                    "type": "string",
                    "description": "APN"
                  }
                },
                "required": [
                  "electricMeterId",
                  "catOneNodeId",
                  "catOneCardNumber",
                  "catOneOperator",
                  "catOneImsi",
                  "catOneRssi"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/listGroup": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Vrátí stránkovaný seznam vodoměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/addGroup": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Přidá vodoměr.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/deleteGroup": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Smaže vodoměr.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/renameGroup": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Přejmenuje vodoměr.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/setGroup": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Přiřadí zámek do skupiny.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/list": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Vrátí stránkovaný seznam vodoměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupId": {
                    "type": "integer",
                    "description": "Water Meter ID"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search criteria include searching by meter name and meter number/water meter ID list."
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page numbers start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Number of pages per page, maximum 1000"
                  }
                },
                "required": [
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/add": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Přidá vodoměr.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mac": {
                    "type": "string",
                    "description": "Water Meter MAC"
                  },
                  "name": {
                    "type": "integer",
                    "description": "Water meter name"
                  }
                },
                "required": [
                  "mac",
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/detail": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Vrátí detailní informace o vodoměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "integer",
                    "description": "Water Meter ID"
                  }
                },
                "required": [
                  "waterMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/syncState": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Meter reading",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  }
                },
                "required": [
                  "waterMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/recharge": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Administrator recharge",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "rechargeAmount": {
                    "type": "number",
                    "description": "recharge money amount"
                  },
                  "rechargeM3": {
                    "type": "number",
                    "description": "recharge water amount"
                  }
                },
                "required": [
                  "waterMeterId",
                  "rechargeAmount",
                  "rechargeM3"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/updatePrice": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Upraví vlastnosti vodoměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "price": {
                    "type": "number",
                    "description": "Unit price"
                  }
                },
                "required": [
                  "waterMeterId",
                  "price"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/controlOnOff": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Turn the water meter on/off",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "onOff": {
                    "type": "integer",
                    "description": "Water supply status: 0 - No 1 - Yes"
                  }
                },
                "required": [
                  "waterMeterId",
                  "onOff"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/clear": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Smaže všechny vodoměru na zámku.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  }
                },
                "required": [
                  "waterMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/rename": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Přejmenuje vodoměr.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "name": {
                    "type": "string",
                    "description": "Water meter name"
                  }
                },
                "required": [
                  "waterMeterId",
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/listOperationRecords": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Vrátí stránkovaný seznam vodoměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "recordType": {
                    "type": "string",
                    "description": "Operation types: 1: Recharge, 2: Water outage, 3: Water supply restored, 4: Meter reading, 5: Price modification, 6: Reset."
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search terms"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page numbers start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Number of pages per page, maximum 1000"
                  }
                },
                "required": [
                  "waterMeterId",
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/listRecords": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Vrátí historii záznamů vodoměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "dateType": {
                    "type": "integer",
                    "description": "Date type, 0: day, 1: month, 2: year"
                  },
                  "dateStr": {
                    "type": "string",
                    "description": "Search criteria: 2024-09-06, 2024-09, or 2024"
                  }
                },
                "required": [
                  "waterMeterId",
                  "dateType",
                  "dateStr"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/updateTotal": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Upraví vlastnosti vodoměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "totalM3": {
                    "type": "number",
                    "description": "Total water consumption"
                  }
                },
                "required": [
                  "waterMeterId",
                  "totalM3"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/updatePayMode": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Upraví vlastnosti vodoměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "payMode": {
                    "type": "integer",
                    "description": "0 - Energy Metering 1 - Prepaid"
                  },
                  "price": {
                    "type": "number",
                    "description": "Unit price, required under prepaid model"
                  }
                },
                "required": [
                  "waterMeterId",
                  "payMode"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/upgradeCheck": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Zkontroluje dostupnost aktualizace firmwaru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  }
                },
                "required": [
                  "waterMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/upgradeSuccess": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Ověří, zda se aktualizace firmwaru povedla.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  }
                },
                "required": [
                  "waterMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/syncSameAdmin": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "蓝牙广播抄表",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/gatewayList": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Gateway associated with the water meter",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  }
                },
                "required": [
                  "waterMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/createExecuteToken": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Generate an executeToken that can be used for top-ups.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "rechargeM3": {
                    "type": "number",
                    "description": "Recharge warter amount"
                  },
                  "rechargeAmount": {
                    "type": "string",
                    "description": "Recharge money amount"
                  }
                },
                "required": [
                  "waterMeterId",
                  "rechargeM3",
                  "rechargeAmount"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/decodeBleAdvertising": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Bluetooth broadcast meter reading",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mac": {
                    "type": "string",
                    "description": "Water Meter MAC"
                  },
                  "executeResponse": {
                    "type": "integer",
                    "description": "Broadcast data obtained from the SDK"
                  }
                },
                "required": [
                  "mac",
                  "executeResponse"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/addTask": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Přidá vodoměr.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "taskType": {
                    "type": "integer",
                    "description": "Task types: 1-Set remaining water volume, 2-Reset, 3-Recharge, 4-Water cut-off, 5-Water restoration"
                  },
                  "rechargeAmount": {
                    "type": "number",
                    "description": "Recharge amount"
                  },
                  "rechargeM3": {
                    "type": "number",
                    "description": "Water recharge"
                  },
                  "remainderM3": {
                    "type": "number",
                    "description": "Set remaining water volume"
                  }
                },
                "required": [
                  "waterMeterId",
                  "taskType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/cancelTask": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Cancel task",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "integer",
                    "description": "Water Meter ID"
                  },
                  "id": {
                    "type": "integer",
                    "description": "Task ID"
                  }
                },
                "required": [
                  "waterMeterId",
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/finishTask": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Complete a task",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "integer",
                    "description": "Water Meter ID"
                  },
                  "id": {
                    "type": "integer",
                    "description": "Task ID"
                  }
                },
                "required": [
                  "waterMeterId",
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/listTask": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Vrátí stránkovaný seznam vodoměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "usedFlag": {
                    "type": "integer",
                    "description": "1: Used, 0: Not used"
                  }
                },
                "required": [
                  "waterMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/catOneDetail": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Obtain 4G meter network info",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  }
                },
                "required": [
                  "waterMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeter/configCatOneInfo": {
      "post": {
        "tags": [
          "Admin APIs"
        ],
        "summary": "Nastaví konfiguraci vodoměru.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "catOneNodeId": {
                    "type": "string",
                    "description": "Module number"
                  },
                  "catOneCardNumber": {
                    "type": "string",
                    "description": "card number"
                  },
                  "catOneOperator": {
                    "type": "string",
                    "description": "Carriers: CHN-CT - China Telecom, CHINAMOBILE - China Mobile, CHINA MOBILE - China Mobile, CHN-UNICOM - China Unicom"
                  },
                  "catOneImsi": {
                    "type": "string",
                    "description": "Phone number"
                  },
                  "catOneRssi": {
                    "type": "integer",
                    "description": "signal value"
                  },
                  "catOneApn": {
                    "type": "string",
                    "description": "APN"
                  }
                },
                "required": [
                  "waterMeterId",
                  "catOneNodeId",
                  "catOneCardNumber",
                  "catOneOperator",
                  "catOneImsi",
                  "catOneRssi"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeterUser/listRecharge": {
      "post": {
        "tags": [
          "Tenant APIs"
        ],
        "summary": "Vrátí stránkovaný seznam položky.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "recordType": {
                    "type": "string",
                    "description": "Operation types: 1: Recharge, 2: Power off, 3: Power on, 4: Meter reading, 5: Unit price modification, 6: Reset"
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search results"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page numbers start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Number of pages per page, maximum 1000"
                  }
                },
                "required": [
                  "electricMeterId",
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeterUser/syncState": {
      "post": {
        "tags": [
          "Tenant APIs"
        ],
        "summary": "Meter reading by tenant",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "type": {
                    "type": "integer",
                    "description": "2- Through the gateway"
                  }
                },
                "required": [
                  "electricMeterId",
                  "type"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeterUser/recharge": {
      "post": {
        "tags": [
          "Tenant APIs"
        ],
        "summary": "Tenant recharge",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "type": {
                    "type": "integer",
                    "description": "2- Through the gateway"
                  },
                  "rechargeAmount": {
                    "type": "number",
                    "description": "Recharge amount"
                  },
                  "executeToken": {
                    "type": "string",
                    "description": "Token used by tenants when topping up"
                  }
                },
                "required": [
                  "electricMeterId",
                  "type",
                  "rechargeAmount",
                  "executeToken"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/electricMeterUser/listRecords": {
      "post": {
        "tags": [
          "Tenant APIs"
        ],
        "summary": "Vrátí historii záznamů položky.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "electricMeterId": {
                    "type": "string",
                    "description": "Electricity meter ID"
                  },
                  "dateType": {
                    "type": "integer",
                    "description": "Date type, 0: day, 1: month, 2: year"
                  },
                  "dateStr": {
                    "type": "string",
                    "description": "Search criteria: 2024-09-06, 2024-09, or 2024"
                  }
                },
                "required": [
                  "electricMeterId",
                  "dateType",
                  "dateStr"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeterUser/detail": {
      "post": {
        "tags": [
          "Tenant APIs"
        ],
        "summary": "Vrátí detailní informace o položky.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mac": {
                    "type": "string",
                    "description": "Water Meter MAC"
                  }
                },
                "required": [
                  "mac"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeterUser/syncState": {
      "post": {
        "tags": [
          "Tenant APIs"
        ],
        "summary": "Meter reading by tenant",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "integer",
                    "description": "2- Through the gateway"
                  },
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  }
                },
                "required": [
                  "type",
                  "waterMeterId"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeterUser/recharge": {
      "post": {
        "tags": [
          "Tenant APIs"
        ],
        "summary": "Tenant top-up",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "executeToken": {
                    "type": "string",
                    "description": "Token used by tenants when recharge"
                  },
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "type": {
                    "type": "integer",
                    "description": "2- Through the gateway"
                  },
                  "rechargeAmount": {
                    "type": "number",
                    "description": "Recharge amount"
                  }
                },
                "required": [
                  "executeToken",
                  "waterMeterId",
                  "type",
                  "rechargeAmount"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeterUser/listRecharge": {
      "post": {
        "tags": [
          "Tenant APIs"
        ],
        "summary": "Vrátí stránkovaný seznam položky.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "recordType": {
                    "type": "string",
                    "description": "Operation types: 1: Top up, 2: Water cut off, 3: Water supply restored, 4: Meter reading, 5: Price modification, 6: Reset."
                  },
                  "searchStr": {
                    "type": "string",
                    "description": "Search terms"
                  },
                  "pageNo": {
                    "type": "integer",
                    "description": "Page numbers start from 1"
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "Number of pages per page, maximum 1000"
                  }
                },
                "required": [
                  "waterMeterId",
                  "pageNo",
                  "pageSize"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    },
    "/api/v3/waterMeterUser/listRecords": {
      "post": {
        "tags": [
          "Tenant APIs"
        ],
        "summary": "Vrátí historii záznamů položky.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dateStr": {
                    "type": "string",
                    "description": "Search criteria: 2024-09-06, 2024-09, or 2024"
                  },
                  "waterMeterId": {
                    "type": "string",
                    "description": "Water Meter ID"
                  },
                  "dateType": {
                    "type": "integer",
                    "description": "Date type, 0: day, 1: month, 2: year"
                  }
                },
                "required": [
                  "waterMeterId",
                  "dateType"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Úspěch (errcode chybí nebo 0) nebo business chyba (errcode/errmsg)"
          }
        }
      }
    }
  }
}