{
  "components": {
    "parameters": {},
    "schemas": {
      "Blob": {
        "properties": {
          "contentHash": {
            "description": "Хэш содержимого для контроля целостности",
            "type": "string"
          },
          "createdAt": {
            "description": "Когда загружен, ISO 8601",
            "type": "string"
          },
          "createdBy": {
            "description": "Кто загрузил",
            "type": "string"
          },
          "folderId": {
            "description": "Папка; null — корень",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Идентификатор файла хранилища",
            "type": "string"
          },
          "kind": {
            "description": "Назначение файла",
            "enum": [
              "generated_document",
              "approved_document",
              "signed_document",
              "facsimile",
              "avatar",
              "attachment",
              "evidence",
              "template_pdf",
              "team_logo",
              "generic"
            ],
            "type": "string"
          },
          "metadata": {
            "description": "Произвольные метаданные"
          },
          "mimeType": {
            "description": "MIME-тип",
            "type": "string"
          },
          "name": {
            "description": "Имя файла",
            "type": "string"
          },
          "retentionUntil": {
            "description": "Срок обязательного хранения, ISO 8601",
            "type": [
              "string",
              "null"
            ]
          },
          "sealed": {
            "description": "Запечатан ли файл (защита от изменения и удаления)",
            "type": "boolean"
          },
          "sizeBytes": {
            "description": "Размер в байтах",
            "type": "number"
          },
          "teamId": {
            "description": "Команда-владелец",
            "type": "string"
          }
        },
        "required": [
          "id",
          "teamId",
          "folderId",
          "name",
          "mimeType",
          "sizeBytes",
          "contentHash",
          "kind",
          "sealed",
          "retentionUntil",
          "createdBy",
          "createdAt"
        ],
        "type": "object"
      },
      "BlobDeleteResult": {
        "properties": {
          "ok": {
            "description": "Файл помечен удалённым",
            "type": "boolean"
          }
        },
        "required": [
          "ok"
        ],
        "type": "object"
      },
      "BlobList": {
        "items": {
          "$ref": "#/components/schemas/Blob"
        },
        "type": "array"
      },
      "BlobNotFound": {
        "properties": {
          "error": {
            "description": "Код ошибки",
            "type": "string"
          }
        },
        "required": [
          "error"
        ],
        "type": "object"
      },
      "File": {
        "additionalProperties": true,
        "properties": {
          "createdAt": {
            "description": "Когда создан, ISO 8601",
            "type": "string"
          },
          "createdBy": {
            "description": "Кто создал",
            "type": "string"
          },
          "description": {
            "description": "Описание файла",
            "type": [
              "string",
              "null"
            ]
          },
          "folderId": {
            "description": "Папка; null — корень",
            "type": [
              "string",
              "null"
            ]
          },
          "icon": {
            "description": "Иконка файла",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "Идентификатор файла",
            "type": "string"
          },
          "key": {
            "description": "Машинный ключ",
            "type": "string"
          },
          "kind": {
            "description": "Тип файла",
            "type": "string"
          },
          "name": {
            "description": "Название файла",
            "type": "string"
          },
          "teamId": {
            "description": "Команда-владелец",
            "type": "string"
          },
          "updatedAt": {
            "description": "Когда обновлён, ISO 8601",
            "type": "string"
          }
        },
        "required": [
          "id",
          "kind",
          "key",
          "name",
          "folderId",
          "teamId",
          "createdBy",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "FileList": {
        "items": {
          "$ref": "#/components/schemas/File"
        },
        "type": "array"
      },
      "FilesCreateFolderRequest": {
        "properties": {
          "cloudSync": {
            "description": "Синхронизация с облаком; null — выключить",
            "properties": {
              "path": {
                "description": "Папка в облаке для синхронизации",
                "minLength": 1,
                "type": "string"
              },
              "provider": {
                "description": "Облачное хранилище: dropbox или yandex",
                "enum": [
                  "dropbox",
                  "yandex"
                ],
                "type": "string"
              }
            },
            "required": [
              "provider",
              "path"
            ],
            "type": [
              "object",
              "null"
            ]
          },
          "name": {
            "description": "Название папки",
            "type": "string"
          },
          "parentId": {
            "description": "Родительская папка; null — корень",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "FilesCreateRequest": {
        "properties": {
          "description": {
            "description": "Описание файла",
            "type": [
              "string",
              "null"
            ]
          },
          "folderId": {
            "description": "Папка; null — корень",
            "type": [
              "string",
              "null"
            ]
          },
          "icon": {
            "description": "Иконка файла",
            "type": [
              "string",
              "null"
            ]
          },
          "key": {
            "description": "Машинный ключ; по умолчанию генерируется",
            "type": "string"
          },
          "kind": {
            "description": "Тип файла: шаблон, реестр, оговорка или папка",
            "enum": [
              "document",
              "registry",
              "clause",
              "folder"
            ],
            "type": "string"
          },
          "name": {
            "description": "Название файла",
            "type": "string"
          },
          "templates": {
            "description": "Шаблоны ведёт template-service; поле не принимается",
            "not": {},
            "type": "null"
          }
        },
        "required": [
          "kind",
          "name"
        ],
        "type": "object"
      },
      "FilesFolder": {
        "additionalProperties": true,
        "properties": {
          "createdAt": {
            "description": "Когда создана, ISO 8601",
            "type": "string"
          },
          "createdBy": {
            "description": "Кто создал",
            "type": "string"
          },
          "id": {
            "description": "Идентификатор папки",
            "type": "string"
          },
          "name": {
            "description": "Название папки",
            "type": "string"
          },
          "parentId": {
            "description": "Родительская папка; null — корень",
            "type": [
              "string",
              "null"
            ]
          },
          "teamId": {
            "description": "Команда-владелец",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "teamId"
        ],
        "type": "object"
      },
      "FilesFolderChildrenList": {
        "description": "Файлы и подпапки внутри папки",
        "items": {
          "additionalProperties": true,
          "properties": {
            "id": {
              "description": "Идентификатор элемента",
              "type": "string"
            },
            "kind": {
              "description": "Тип элемента",
              "type": "string"
            },
            "name": {
              "description": "Название элемента",
              "type": "string"
            }
          },
          "required": [
            "id",
            "kind",
            "name"
          ],
          "type": "object"
        },
        "type": "array"
      },
      "FilesFolderList": {
        "items": {
          "$ref": "#/components/schemas/FilesFolder"
        },
        "type": "array"
      },
      "FilesFolderOk": {
        "additionalProperties": true,
        "properties": {
          "success": {
            "description": "Папка удалена",
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "FilesMoveRequest": {
        "properties": {
          "folderId": {
            "description": "Целевая папка; null — переместить в корень",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "folderId"
        ],
        "type": "object"
      },
      "FilesOk": {
        "properties": {
          "success": {
            "description": "Файл удалён",
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "FilesUpdateFolderRequest": {
        "properties": {
          "cloudSync": {
            "description": "Синхронизация с облаком; null — выключить",
            "properties": {
              "path": {
                "description": "Папка в облаке для синхронизации",
                "minLength": 1,
                "type": "string"
              },
              "provider": {
                "description": "Облачное хранилище: dropbox или yandex",
                "enum": [
                  "dropbox",
                  "yandex"
                ],
                "type": "string"
              }
            },
            "required": [
              "provider",
              "path"
            ],
            "type": [
              "object",
              "null"
            ]
          },
          "name": {
            "description": "Новое название",
            "type": "string"
          },
          "parentId": {
            "description": "Новая родительская папка; null — корень",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "FilesUpdateRequest": {
        "properties": {
          "description": {
            "description": "Новое описание",
            "type": [
              "string",
              "null"
            ]
          },
          "icon": {
            "description": "Новая иконка",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "description": "Новое название",
            "type": "string"
          },
          "templates": {
            "description": "Шаблоны ведёт template-service; поле не принимается",
            "not": {},
            "type": "null"
          }
        },
        "type": "object"
      },
      "ProblemDetails": {
        "description": "Ошибка в формате Problem Details (RFC 9457)",
        "properties": {
          "code": {
            "description": "Стабильный машиночитаемый код ошибки",
            "type": "string"
          },
          "detail": {
            "description": "Пояснение для человека",
            "type": "string"
          },
          "errors": {
            "description": "Ошибки валидации по полям",
            "items": {
              "properties": {
                "name": {
                  "description": "Имя поля",
                  "type": "string"
                },
                "pointer": {
                  "description": "JSON Pointer на поле",
                  "type": "string"
                },
                "reason": {
                  "description": "Причина",
                  "type": "string"
                },
                "rule": {
                  "description": "Нарушенное правило",
                  "type": "string"
                }
              },
              "required": [
                "reason"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "instance": {
            "description": "Путь запроса, в котором возникла ошибка",
            "type": "string"
          },
          "request_id": {
            "description": "Идентификатор запроса для обращения в поддержку",
            "type": "string"
          },
          "status": {
            "description": "HTTP-статус",
            "type": "integer"
          },
          "title": {
            "description": "Краткое описание",
            "type": "string"
          },
          "trace_id": {
            "description": "Идентификатор трассы",
            "type": "string"
          },
          "type": {
            "description": "URI типа ошибки, ведёт на описание в документации",
            "format": "uri",
            "type": "string"
          }
        },
        "required": [
          "type",
          "title",
          "status",
          "code"
        ],
        "type": "object"
      },
      "ShelfAddFilesRequest": {
        "properties": {
          "fileIds": {
            "description": "Файлы архива, которые добавить в подборку",
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "fileIds"
        ],
        "type": "object"
      },
      "ShelfAdded": {
        "properties": {
          "added": {
            "description": "Сколько файлов добавлено",
            "type": "number"
          }
        },
        "required": [
          "added"
        ],
        "type": "object"
      },
      "ShelfCreateFolderRequest": {
        "properties": {
          "kind": {
            "description": "smart — наполняется по правилу, manual — подборка вручную",
            "enum": [
              "smart",
              "manual"
            ],
            "type": "string"
          },
          "layout": {
            "description": "Раскладка папки: подпапки по годам, кварталам, месяцам и т. д.",
            "enum": [
              "none",
              "year",
              "quarter",
              "month",
              "party",
              "kind",
              "document"
            ],
            "type": "string"
          },
          "name": {
            "description": "Название папки",
            "maxLength": 120,
            "minLength": 1,
            "type": "string"
          },
          "rule": {
            "description": "Правило умной папки в формате @legalstack/logic: { match, conditions }"
          }
        },
        "required": [
          "name",
          "kind"
        ],
        "type": "object"
      },
      "ShelfFolder": {
        "properties": {
          "createdAt": {
            "description": "Когда создана, ISO 8601",
            "type": "string"
          },
          "createdBy": {
            "description": "Автор папки",
            "type": "string"
          },
          "id": {
            "description": "Идентификатор папки",
            "type": "string"
          },
          "kind": {
            "description": "Вид папки",
            "enum": [
              "smart",
              "manual"
            ],
            "type": "string"
          },
          "layout": {
            "description": "Раскладка папки: подпапки по годам, кварталам, месяцам и т. д.",
            "enum": [
              "none",
              "year",
              "quarter",
              "month",
              "party",
              "kind",
              "document"
            ],
            "type": "string"
          },
          "name": {
            "description": "Название",
            "type": "string"
          },
          "rule": {
            "description": "Правило умной папки"
          },
          "updatedAt": {
            "description": "Когда изменена, ISO 8601",
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "kind",
          "layout",
          "createdBy",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "ShelfOk": {
        "properties": {
          "ok": {
            "description": "Операция выполнена",
            "type": "boolean"
          }
        },
        "required": [
          "ok"
        ],
        "type": "object"
      },
      "ShelfPreferences": {
        "properties": {
          "scopes": {
            "description": "Порядок и видимость режимов архива",
            "items": {
              "properties": {
                "key": {
                  "description": "Режим списка: all, signed, active, … или идентификатор своей папки",
                  "type": "string"
                },
                "layout": {
                  "description": "Раскладка папки: подпапки по годам, кварталам, месяцам и т. д.",
                  "enum": [
                    "none",
                    "year",
                    "quarter",
                    "month",
                    "party",
                    "kind",
                    "document"
                  ],
                  "type": "string"
                },
                "pinned": {
                  "description": "Держать на полке",
                  "type": "boolean"
                },
                "visible": {
                  "description": "Показывать в меню",
                  "type": "boolean"
                }
              },
              "required": [
                "key",
                "visible",
                "pinned"
              ],
              "type": "object"
            },
            "maxItems": 64,
            "type": "array"
          }
        },
        "required": [
          "scopes"
        ],
        "type": "object"
      },
      "ShelfPreferencesRequest": {
        "properties": {
          "scopes": {
            "description": "Порядок и видимость режимов архива",
            "items": {
              "properties": {
                "key": {
                  "description": "Режим списка: all, signed, active, … или идентификатор своей папки",
                  "type": "string"
                },
                "layout": {
                  "description": "Раскладка папки: подпапки по годам, кварталам, месяцам и т. д.",
                  "enum": [
                    "none",
                    "year",
                    "quarter",
                    "month",
                    "party",
                    "kind",
                    "document"
                  ],
                  "type": "string"
                },
                "pinned": {
                  "description": "Держать на полке",
                  "type": "boolean"
                },
                "visible": {
                  "description": "Показывать в меню",
                  "type": "boolean"
                }
              },
              "required": [
                "key",
                "visible",
                "pinned"
              ],
              "type": "object"
            },
            "maxItems": 64,
            "type": "array"
          }
        },
        "required": [
          "scopes"
        ],
        "type": "object"
      },
      "ShelfUpdateFolderRequest": {
        "properties": {
          "layout": {
            "description": "Раскладка папки: подпапки по годам, кварталам, месяцам и т. д.",
            "enum": [
              "none",
              "year",
              "quarter",
              "month",
              "party",
              "kind",
              "document"
            ],
            "type": "string"
          },
          "name": {
            "description": "Новое название",
            "maxLength": 120,
            "minLength": 1,
            "type": "string"
          },
          "rule": {
            "description": "Правило умной папки в формате @legalstack/logic: { match, conditions }"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "dpop": {
        "bearerFormat": "JWT",
        "description": "Access token, привязанный к ключу клиента по RFC 9449: заголовок `Authorization: DPoP <token>` и заголовок `DPoP` с доказательством для каждого запроса. Сервер выдаёт `DPoP-Nonce`, который клиент включает в доказательство.",
        "scheme": "dpop",
        "type": "http"
      },
      "mutualTLS": {
        "description": "Access token, привязанный к клиентскому сертификату по RFC 8705: заголовок `Authorization: Bearer <token>` поверх mTLS-соединения тем же сертификатом.",
        "type": "mutualTLS"
      },
      "oauth2": {
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://app.legalstack.ru/oauth/authorize",
            "scopes": {
              "files:admin": "Full files administration",
              "files:delete": "Soft-delete blobs (sealed blobs require retention expiry)",
              "files:read": "Read files (documents, registries, folders, clauses, blobs)",
              "files:seal": "Apply WORM retention to blobs",
              "files:write": "Manage files (write blobs)"
            },
            "tokenUrl": "https://api.legalstack.ru/oauth/token"
          },
          "clientCredentials": {
            "scopes": {
              "files:admin": "Full files administration",
              "files:delete": "Soft-delete blobs (sealed blobs require retention expiry)",
              "files:read": "Read files (documents, registries, folders, clauses, blobs)",
              "files:seal": "Apply WORM retention to blobs",
              "files:write": "Manage files (write blobs)"
            },
            "tokenUrl": "https://api.legalstack.ru/oauth/token"
          }
        },
        "type": "oauth2"
      }
    }
  },
  "info": {
    "title": "LegalStack Files API",
    "version": "1.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/v1/files/blobs": {
      "get": {
        "operationId": "get_api_v1_files_blobs",
        "parameters": [
          {
            "description": "Назначение файла",
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "description": "Назначение файла",
              "enum": [
                "generated_document",
                "approved_document",
                "signed_document",
                "facsimile",
                "avatar",
                "attachment",
                "evidence",
                "template_pdf",
                "team_logo",
                "generic"
              ],
              "type": "string"
            }
          },
          {
            "description": "Фильтр по папке; null — только корень",
            "in": "query",
            "name": "folderId",
            "required": false,
            "schema": {
              "description": "Фильтр по папке; null — только корень",
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "description": "Максимум записей, до 500",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "description": "Максимум записей, до 500",
              "exclusiveMinimum": 0,
              "maximum": 500,
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobList"
                }
              }
            },
            "description": "Blob-файлы команды"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:read"
            ]
          }
        ],
        "summary": "Список файлов хранилища команды (фильтры kind и folderId)",
        "tags": [
          "files:blobs"
        ]
      }
    },
    "/api/v1/files/blobs/{fileId}": {
      "delete": {
        "operationId": "delete_api_v1_files_blobs_fileId",
        "parameters": [
          {
            "description": "Идентификатор файла хранилища",
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Идентификатор файла хранилища",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobDeleteResult"
                }
              }
            },
            "description": "Файл помечен удалённым"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobDeleteResult"
                }
              }
            },
            "description": "Файл не найден или запечатан"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:delete"
            ]
          }
        ],
        "summary": "Удалить файл хранилища (мягкое удаление; файлы на сроке хранения удалить нельзя)",
        "tags": [
          "files:blobs"
        ]
      },
      "get": {
        "operationId": "get_api_v1_files_blobs_fileId",
        "parameters": [
          {
            "description": "Идентификатор файла хранилища",
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Идентификатор файла хранилища",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Blob"
                }
              }
            },
            "description": "Метаданные файла"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobNotFound"
                }
              }
            },
            "description": "Файл не найден"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:read"
            ]
          }
        ],
        "summary": "Метаданные файла хранилища",
        "tags": [
          "files:blobs"
        ]
      }
    },
    "/api/v1/files/blobs/{fileId}/download": {
      "get": {
        "operationId": "get_api_v1_files_blobs_fileId_download",
        "parameters": [
          {
            "description": "Идентификатор файла хранилища",
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Идентификатор файла хранилища",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Содержимое файла"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobNotFound"
                }
              }
            },
            "description": "Файл не найден"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:read"
            ]
          }
        ],
        "summary": "Скачать файл из хранилища",
        "tags": [
          "files:blobs"
        ]
      }
    },
    "/api/v1/files/files": {
      "get": {
        "operationId": "get_api_v1_files_files",
        "parameters": [
          {
            "description": "Тип файла: шаблон, реестр, оговорка или папка",
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "description": "Тип файла: шаблон, реестр, оговорка или папка",
              "enum": [
                "document",
                "registry",
                "clause",
                "folder"
              ],
              "type": "string"
            }
          },
          {
            "description": "Фильтр по папке; null — только корень",
            "in": "query",
            "name": "folderId",
            "required": false,
            "schema": {
              "description": "Фильтр по папке; null — только корень",
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileList"
                }
              }
            },
            "description": "Файлы команды"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:read"
            ]
          }
        ],
        "summary": "Список файлов (фильтры kind и folderId)",
        "tags": [
          "files"
        ]
      },
      "post": {
        "operationId": "post_api_v1_files_files",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FilesCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/File"
                }
              }
            },
            "description": "Создано"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:write"
            ]
          }
        ],
        "summary": "Создать файл",
        "tags": [
          "files"
        ]
      }
    },
    "/api/v1/files/files/{fileId}": {
      "delete": {
        "operationId": "delete_api_v1_files_files_fileId",
        "parameters": [
          {
            "description": "Идентификатор файла",
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Идентификатор файла",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FilesOk"
                }
              }
            },
            "description": "Удалено"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:write"
            ]
          }
        ],
        "summary": "Удалить файл",
        "tags": [
          "files"
        ]
      },
      "get": {
        "operationId": "get_api_v1_files_files_fileId",
        "parameters": [
          {
            "description": "Идентификатор файла",
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Идентификатор файла",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/File"
                }
              }
            },
            "description": "Файл"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:read"
            ]
          }
        ],
        "summary": "Получить файл",
        "tags": [
          "files"
        ]
      },
      "patch": {
        "operationId": "patch_api_v1_files_files_fileId",
        "parameters": [
          {
            "description": "Идентификатор файла",
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Идентификатор файла",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FilesUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/File"
                }
              }
            },
            "description": "Обновлено"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:write"
            ]
          }
        ],
        "summary": "Обновить файл",
        "tags": [
          "files"
        ]
      }
    },
    "/api/v1/files/files/{fileId}/move": {
      "post": {
        "operationId": "post_api_v1_files_files_fileId_move",
        "parameters": [
          {
            "description": "Идентификатор файла",
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Идентификатор файла",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FilesMoveRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/File"
                }
              }
            },
            "description": "Перемещено"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:write"
            ]
          }
        ],
        "summary": "Переместить файл",
        "tags": [
          "files"
        ]
      }
    },
    "/api/v1/files/folders": {
      "get": {
        "operationId": "get_api_v1_files_folders",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FilesFolderList"
                }
              }
            },
            "description": "Папки команды"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:read"
            ]
          }
        ],
        "summary": "Список папок",
        "tags": [
          "files:folders"
        ]
      },
      "post": {
        "operationId": "post_api_v1_files_folders",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FilesCreateFolderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FilesFolder"
                }
              }
            },
            "description": "Папка создана"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:write"
            ]
          }
        ],
        "summary": "Создать папку",
        "tags": [
          "files:folders"
        ]
      }
    },
    "/api/v1/files/folders/{folderId}": {
      "delete": {
        "operationId": "delete_api_v1_files_folders_folderId",
        "parameters": [
          {
            "description": "Идентификатор папки",
            "in": "path",
            "name": "folderId",
            "required": true,
            "schema": {
              "description": "Идентификатор папки",
              "type": "string"
            }
          },
          {
            "description": "Что делать с содержимым: refuse — отказать при непустой папке (по умолчанию), detach — вынести в корень, cascade — удалить вместе с папкой",
            "in": "query",
            "name": "onChildren",
            "required": false,
            "schema": {
              "description": "Что делать с содержимым: refuse — отказать при непустой папке (по умолчанию), detach — вынести в корень, cascade — удалить вместе с папкой",
              "enum": [
                "refuse",
                "detach",
                "cascade"
              ],
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FilesFolderOk"
                }
              }
            },
            "description": "Папка удалена"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:write"
            ]
          }
        ],
        "summary": "Удалить папку",
        "tags": [
          "files:folders"
        ]
      },
      "patch": {
        "operationId": "patch_api_v1_files_folders_folderId",
        "parameters": [
          {
            "description": "Идентификатор папки",
            "in": "path",
            "name": "folderId",
            "required": true,
            "schema": {
              "description": "Идентификатор папки",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FilesUpdateFolderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FilesFolder"
                }
              }
            },
            "description": "Папка обновлена"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:write"
            ]
          }
        ],
        "summary": "Обновить папку",
        "tags": [
          "files:folders"
        ]
      }
    },
    "/api/v1/files/folders/{folderId}/children": {
      "get": {
        "operationId": "get_api_v1_files_folders_folderId_children",
        "parameters": [
          {
            "description": "Идентификатор папки",
            "in": "path",
            "name": "folderId",
            "required": true,
            "schema": {
              "description": "Идентификатор папки",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FilesFolderChildrenList"
                }
              }
            },
            "description": "Содержимое папки"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:read"
            ]
          }
        ],
        "summary": "Содержимое папки",
        "tags": [
          "files:folders"
        ]
      }
    },
    "/api/v1/files/shelf/folders": {
      "post": {
        "operationId": "post_api_v1_files_shelf_folders",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShelfCreateFolderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShelfFolder"
                }
              }
            },
            "description": "Папка создана"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:write"
            ]
          }
        ],
        "summary": "Создать папку архива — умную (по правилу) или подборку",
        "tags": [
          "files:shelf"
        ]
      }
    },
    "/api/v1/files/shelf/folders/{folderId}": {
      "delete": {
        "operationId": "delete_api_v1_files_shelf_folders_folderId",
        "parameters": [
          {
            "description": "Идентификатор папки полки",
            "in": "path",
            "name": "folderId",
            "required": true,
            "schema": {
              "description": "Идентификатор папки полки",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShelfOk"
                }
              }
            },
            "description": "Папка удалена"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:write"
            ]
          }
        ],
        "summary": "Удалить папку архива; файлы остаются в архиве",
        "tags": [
          "files:shelf"
        ]
      },
      "patch": {
        "operationId": "patch_api_v1_files_shelf_folders_folderId",
        "parameters": [
          {
            "description": "Идентификатор папки полки",
            "in": "path",
            "name": "folderId",
            "required": true,
            "schema": {
              "description": "Идентификатор папки полки",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShelfUpdateFolderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShelfFolder"
                }
              }
            },
            "description": "Папка изменена"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:write"
            ]
          }
        ],
        "summary": "Изменить папку архива",
        "tags": [
          "files:shelf"
        ]
      }
    },
    "/api/v1/files/shelf/folders/{folderId}/files": {
      "post": {
        "operationId": "post_api_v1_files_shelf_folders_folderId_files",
        "parameters": [
          {
            "description": "Идентификатор папки полки",
            "in": "path",
            "name": "folderId",
            "required": true,
            "schema": {
              "description": "Идентификатор папки полки",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShelfAddFilesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShelfAdded"
                }
              }
            },
            "description": "Файлы добавлены"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:write"
            ]
          }
        ],
        "summary": "Добавить файлы архива в подборку",
        "tags": [
          "files:shelf"
        ]
      }
    },
    "/api/v1/files/shelf/folders/{folderId}/files/{fileId}": {
      "delete": {
        "operationId": "delete_api_v1_files_shelf_folders_folderId_files_fileId",
        "parameters": [
          {
            "description": "Идентификатор папки полки",
            "in": "path",
            "name": "folderId",
            "required": true,
            "schema": {
              "description": "Идентификатор папки полки",
              "type": "string"
            }
          },
          {
            "description": "Идентификатор файла архива",
            "in": "path",
            "name": "fileId",
            "required": true,
            "schema": {
              "description": "Идентификатор файла архива",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShelfOk"
                }
              }
            },
            "description": "Файл убран"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:write"
            ]
          }
        ],
        "summary": "Убрать файл из подборки; сам файл остаётся в архиве",
        "tags": [
          "files:shelf"
        ]
      }
    },
    "/api/v1/files/shelf/preferences": {
      "put": {
        "operationId": "put_api_v1_files_shelf_preferences",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShelfPreferencesRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShelfPreferences"
                }
              }
            },
            "description": "Настройки сохранены"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Некорректный запрос: не прошла валидация параметров или тела"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Токен отсутствует, недействителен или истёк"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            },
            "description": "Недостаточно прав или scope"
          }
        },
        "security": [
          {
            "dpop": []
          },
          {
            "oauth2": [
              "files:read"
            ]
          }
        ],
        "summary": "Сохранить личный порядок и видимость режимов архива",
        "tags": [
          "files:shelf"
        ]
      }
    }
  },
  "servers": [
    {
      "description": "Публичный API LegalStack",
      "url": "https://api.legalstack.ru"
    }
  ],
  "tags": [
    {
      "description": "Единые операции над файлами (шаблоны, реестры, папки, базы знаний, автоматизации, формы, проверки).",
      "name": "files",
      "x-displayName": "Управление файлами"
    },
    {
      "description": "Хранилище файлов: загрузка, скачивание, хранение без права изменения (WORM).",
      "name": "files:blobs",
      "x-displayName": "Хранилище"
    },
    {
      "description": "Папки для всех типов файлов в едином дереве.",
      "name": "files:folders",
      "x-displayName": "Папки"
    },
    {
      "description": "Архив: умные папки, подборки опечатанных экземпляров и личный порядок режимов.",
      "name": "files:shelf",
      "x-displayName": "Архив"
    }
  ],
  "webhooks": {}
}
