{
  "base_url": "https://web.readest.com/api",
  "name": "readest-sync-api",
  "methods": {
    "pullChanges": {
      "path": "/sync",
      "method": "GET",
      "required_params": ["since", "type", "book", "meta_hash"],
      "expected_status": [200, 400, 301, 401, 403]
    },
    "pushChanges": {
      "path": "/sync",
      "method": "POST",
      "required_params": ["books", "notes", "configs"],
      "optional_params": ["statBooks", "statPages"],
      "payload": ["books", "notes", "configs", "statBooks", "statPages"],
      "expected_status": [200, 201, 301, 400, 401, 403]
    },
    "pullBooks": {
      "path": "/sync?type=books",
      "method": "GET",
      "required_params": ["since"],
      "expected_status": [200, 400, 301, 401, 403]
    },
    "getDownloadUrl": {
      "path": "/storage/download",
      "method": "GET",
      "required_params": ["fileKey"],
      "expected_status": [200, 400, 301, 401, 403, 404]
    },
    "listFiles": {
      "path": "/storage/list",
      "method": "GET",
      "required_params": ["bookHash"],
      "expected_status": [200, 400, 301, 401, 403]
    },
    "deleteFile": {
      "path": "/storage/delete",
      "method": "DELETE",
      "required_params": ["fileKey"],
      "expected_status": [200, 400, 301, 401, 403, 404]
    },
    "getUploadUrl": {
      "path": "/storage/upload",
      "method": "POST",
      "required_params": ["fileName", "fileSize", "bookHash"],
      "payload": ["fileName", "fileSize", "bookHash"],
      "expected_status": [200, 400, 301, 401, 403]
    }
  }
}
