{
  "openapi": "3.0.0",
  "info": {
    "title": "api/boards",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "/"
    },
    {
      "url": "https://api.ati.su"
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "paths": {
    "/v2/boards/public/boards/create": {
      "post": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegratorBoardInfo"
                }
              }
            },
            "description": "Данные о площадке",
            "x-nullable": false
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SingleErrorModel"
                }
              }
            },
            "description": "Ошибка валидации или другая",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardsForIntegrator_Create",
        "requestBody": {
          "content": {
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/IntegratorBodyCreateRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IntegratorBodyCreateRequest"
              }
            },
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/IntegratorBodyCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/IntegratorBodyCreateRequest"
              }
            }
          },
          "description": "Параметры площадки",
          "required": true
        },
        "summary": "Создать площадку\n            "
      }
    },
    "/v1.0/boards/external/board/create": {
      "post": {
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalBoardInfo"
                }
              }
            },
            "description": "Данные о площадке",
            "x-nullable": false
          },
          "400": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionResult"
                }
              }
            },
            "description": "Ошибка валидации или другая",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardExternal_Create",
        "requestBody": {
          "content": {
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalBoardCreateRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalBoardCreateRequest"
              }
            },
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalBoardCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalBoardCreateRequest"
              }
            }
          },
          "description": "Параметры площадки",
          "required": true
        },
        "summary": "Создать площадку\n            "
      }
    },
    "/v2/boards/public/boards/{id}": {
      "get": {
        "parameters": [
          {
            "description": "ID площадки",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-nullable": false
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegratorBoardInfo"
                }
              }
            },
            "description": "Данные о площадке",
            "x-nullable": false
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SingleErrorModel"
                }
              }
            },
            "description": "Ошибка валидации или другая",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardsForIntegrator_GetBoardInfo",
        "summary": "Загрузить информацию по площадке\n            "
      }
    },
    "/v1.0/boards/external/board/{id}": {
      "get": {
        "parameters": [
          {
            "description": "ID площадки",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-nullable": false
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalBoardInfo"
                }
              }
            },
            "description": "Данные о площадке",
            "x-nullable": false
          },
          "400": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionResult"
                }
              }
            },
            "description": "Ошибка валидации или другая",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardExternal_Load",
        "summary": "Загрузить информацию по площадке\n            "
      }
    },
    "/v2/boards/public/boards/list": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ExtendedIntegratorBoardInfo"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список площадок с их данными",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardsForIntegrator_GetUserBoards",
        "summary": "Список площадок, на которые пользователь может добавлять грузы или машины\n            "
      }
    },
    "/v1.0/boards/external/board/list": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ExtendedExternalBoardInfo"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список площадок с их данными",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardExternal_GetUserBoards",
        "summary": "Список площадок, на которые пользователь может добавлять грузы или машины\n            "
      }
    },
    "/v2/boards/public/boards/canAdd": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IntegratorBoardInfo"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список площадок с их данными",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardsForIntegrator_GetUserCanAdd",
        "summary": "Список площадок, на которые пользователь может добавлять грузы или машины\n            "
      }
    },
    "/v1.0/boards/external/board/canAdd": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ExternalBoardInfo"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список площадок с их данными",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardExternal_GetUserCanAdd",
        "summary": "Список площадок, на которые пользователь может добавлять грузы или машины\n            "
      }
    },
    "/v2/boards/public/boards/canView": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IntegratorBoardInfo"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список площадок с их данными",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardsForIntegrator_GetUserCanView",
        "summary": "Получает список площадок, на которых участник может видеть грузы/машины\n            "
      }
    },
    "/v1.0/boards/external/board/canView": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ExternalBoardInfo"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список площадок с их данными",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardExternal_GetUserCanView",
        "summary": "Получает список площадок, на которых участник может видеть грузы/машины\n            "
      }
    },
    "/v2/boards/public/boards/my": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список ID площадок",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardsForIntegrator_GetMyBoards",
        "summary": "Получает список ID площадок, принадлежащих участнику ATI.SU.\n            "
      }
    },
    "/v1.0/boards/external/board/my": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список ID площадок",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardExternal_GetMyBoards",
        "summary": "Получает список ID площадок, принадлежащих участнику ATI.SU.\n            "
      }
    },
    "/v2/boards/public/boards/participating": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список ID площадок",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardsForIntegrator_GetParticipatingBoards",
        "summary": "Получает список ID площадок, на которых состоит участник ATI.SU.\n            "
      }
    },
    "/v1.0/boards/external/board/participating": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список ID площадок",
            "x-nullable": false
          }
        },
        "tags": [
          "Площадки"
        ],
        "operationId": "BoardExternal_GetParticipatingBoards",
        "summary": "Получает список ID площадок, на которых состоит участник ATI.SU.\n            "
      }
    },
    "/v2/boards/public/participants/invite": {
      "post": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "ID приглашения",
            "x-nullable": false
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SingleErrorModel"
                }
              }
            },
            "description": "Ошибка валидации",
            "x-nullable": false
          }
        },
        "tags": [
          "Участники"
        ],
        "operationId": "ParticipantsForIntegrator_InviteToBoard",
        "requestBody": {
          "content": {
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateParticipantForIntegratorRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateParticipantForIntegratorRequest"
              }
            },
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateParticipantForIntegratorRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateParticipantForIntegratorRequest"
              }
            }
          },
          "required": true
        },
        "summary": "Пригласить участника ATI.SU на площадку (создание участника площадки с типом Invited)\n             "
      }
    },
    "/v1.0/boards/external/invite": {
      "post": {
        "parameters": [
          {
            "description": "код участника в ATI.SU",
            "in": "query",
            "name": "atiId",
            "schema": {
              "type": "string"
            },
            "x-nullable": false
          },
          {
            "description": "ID площадки",
            "in": "query",
            "name": "board",
            "schema": {
              "type": "string"
            },
            "x-nullable": false
          },
          {
            "description": "ID контакта",
            "in": "query",
            "name": "contactId",
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "x-nullable": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "ID приглашения",
            "x-nullable": false
          },
          "400": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionResult"
                }
              }
            },
            "description": "Ошибка валидации или другая",
            "x-nullable": false
          }
        },
        "tags": [
          "Приглашения"
        ],
        "operationId": "InviteExternal_InviteToBoard",
        "summary": "Пригласить участника ATI.SU на площадку\n            "
      }
    },
    "/v2/boards/public/participants/invite/my": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ExternalInviteV2"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список приглашений",
            "x-nullable": false
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionResult"
                }
              }
            },
            "description": "Ошибка валидации или другая",
            "x-nullable": false
          }
        },
        "tags": [
          "Участники"
        ],
        "operationId": "ParticipantsForIntegrator_Get",
        "summary": "Получает список приглашений\n            "
      }
    },
    "/v1.0/boards/external/invite/my": {
      "get": {
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ExternalInvite"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список приглашений",
            "x-nullable": false
          },
          "400": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionResult"
                }
              }
            },
            "description": "Ошибка валидации или другая",
            "x-nullable": false
          }
        },
        "tags": [
          "Приглашения"
        ],
        "operationId": "InviteExternal_Get",
        "summary": "Получает список приглашений\n            "
      }
    },
    "/v2/boards/public/participants/list": {
      "post": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IntegratorParticipantSearchResults"
                }
              }
            },
            "description": "Список участий",
            "x-nullable": false
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SingleErrorModel"
                }
              }
            },
            "description": "Ошибка валидации или другая",
            "x-nullable": false
          }
        },
        "tags": [
          "Участники"
        ],
        "operationId": "ParticipantsForIntegrator_GetBoardParticipants",
        "requestBody": {
          "content": {
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ParticipantListForIntegratorRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParticipantListForIntegratorRequest"
              }
            },
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ParticipantListForIntegratorRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ParticipantListForIntegratorRequest"
              }
            }
          },
          "required": true
        },
        "summary": "Получить список участников площадки\n            "
      }
    },
    "/v1.0/boards/external/participants/board/{id}/{offset}/{limit}": {
      "get": {
        "parameters": [
          {
            "description": "ID площадки",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            },
            "x-nullable": false
          },
          {
            "description": "Отступ (для постраничного вывода)",
            "in": "path",
            "name": "offset",
            "required": true,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "x-nullable": true
          },
          {
            "description": "Ограничение количества (для постраничного вывода)",
            "in": "path",
            "name": "limit",
            "required": true,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "x-nullable": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ExternalParticipantsSearchResults"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Список участников площадки",
            "x-nullable": false
          },
          "400": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionResult"
                }
              }
            },
            "description": "Ошибка валидации или другая",
            "x-nullable": false
          }
        },
        "tags": [
          "Участники"
        ],
        "description": "Если не указывать offset и limit - вернёт всех участников",
        "operationId": "ParticipantsExternal_GetBoardParticipants",
        "summary": "Получить список участников площадки\n            "
      }
    },
    "/v2/boards/public/participants/modify": {
      "post": {
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "description": "успешно/не успешно",
            "x-nullable": false
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SingleErrorModel"
                }
              }
            },
            "description": "Ошибка валидации или другая",
            "x-nullable": false
          }
        },
        "tags": [
          "Участники"
        ],
        "description": "Для любой смены участия, в том числе для принятия приглашения (смена Type с \"Invited\" на \"User\")\nНе от всякого типа можно перейти к другому.\nНапример, удалённого пользователя участником не сделать, а участника площадки нельзя сделать обратно\nприглашённым.\nНе все поля можно поменять, например, права участия может менять только владелец площадки,\nа не участник. ( `ViewParticipants`, `ViewContent`, `CanAdd` ).\n            ",
        "operationId": "ParticipantsForIntegrator_ModifyParticipant",
        "requestBody": {
          "content": {
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ParticipantModifyForIntegratorRequestV2"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParticipantModifyForIntegratorRequestV2"
              }
            },
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ParticipantModifyForIntegratorRequestV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ParticipantModifyForIntegratorRequestV2"
              }
            }
          },
          "description": "Запрос с изменениями",
          "required": true
        },
        "summary": "Поменять параметры участника площадки\n            "
      }
    },
    "/v1.0/boards/external/participants/modify": {
      "post": {
        "responses": {
          "200": {
            "content": {
              "*/*": {
                "schema": {
                  "type": "boolean"
                }
              }
            },
            "description": "успешно/не успешно",
            "x-nullable": false
          },
          "400": {
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ExceptionResult"
                }
              }
            },
            "description": "Ошибка валидации или другая",
            "x-nullable": false
          }
        },
        "tags": [
          "Участники"
        ],
        "description": "Для любой смены участия, в том числе для принятия приглашения (смена Type с \"Invited\" на \"User\")\nНе от всякого типа можно перейти к другому.\nНапример, удалённого пользователя участником не сделать, а участника площадки нельзя сделать обратно приглашённым.\nТак же в принятии приглашений нельзя менять права участия ( ViewParticipants, ViewContent, CanAdd ),\nтак как они выставляются от пригласившего.\n            ",
        "operationId": "ParticipantsExternal_ModifyParticipant",
        "requestBody": {
          "content": {
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalParticipantModifyRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalParticipantModifyRequest"
              }
            },
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalParticipantModifyRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalParticipantModifyRequest"
              }
            }
          },
          "description": "Запрос, описывающий изменения",
          "required": true
        },
        "summary": "Меняет параметры участника площадки\n            "
      }
    }
  },
  "components": {
    "schemas": {
      "BoardExchangeDirection": {
        "description": "Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию)\n            \n* `exchange` — Обмен грузами/машинами\n* `input` — Грузы/машины для владельца площадки\n* `output` - Грузы/машины от владельца площадки\n            ",
        "enum": [
          "input",
          "output",
          "exchange"
        ],
        "type": "string",
        "x-enumNames": [
          "Input",
          "Output",
          "Exchange"
        ]
      },
      "BoardType": {
        "description": "Тип содержимого на площадке\n* `loads` - Площадка с грузами\n* `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)\n            ",
        "enum": [
          "loads",
          "trucks"
        ],
        "type": "string",
        "x-enumNames": [
          "Loads",
          "Trucks"
        ]
      },
      "BoolAndReason": {
        "description": "\"Расширенный\" вариант boolean\n            ",
        "properties": {
          "Reason": {
            "description": "Причина, по которой да или нет\n            ",
            "type": "string"
          },
          "Value": {
            "description": "Да/нет\n            ",
            "type": "boolean"
          }
        },
        "required": [
          "Value",
          "Reason"
        ],
        "type": "object"
      },
      "CreateParticipantForIntegratorRequest": {
        "properties": {
          "ati_id": {
            "description": "код участника в ATI.SU\n            ",
            "type": "string"
          },
          "board_id": {
            "description": "ID площадки\n            ",
            "type": "string"
          },
          "contact_id": {
            "description": "ID контакта\n            ",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "ati_id",
          "board_id"
        ],
        "type": "object"
      },
      "ErrorModel": {
        "properties": {
          "error": {
            "description": "Код ошибки",
            "type": "string"
          },
          "reason": {
            "description": "Текст ошибки",
            "type": "string"
          }
        },
        "required": [
          "error",
          "reason"
        ],
        "type": "object"
      },
      "ExceptionResult": {
        "description": "Возвращаемое значение в случае ошибок\n            ",
        "properties": {
          "Code": {
            "description": "В некоторых случаях (валидация) - ID ошибки, например ApplicationAlreadyCreated в случае \"вы уже подали заявку на\nэту площадку\"\n            ",
            "type": "string"
          },
          "Message": {
            "description": "Человекочитаемый текст ошибки\n            ",
            "type": "string"
          }
        },
        "required": [
          "Message",
          "Code"
        ],
        "type": "object"
      },
      "ExtendedExternalBoardInfo": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ExternalBoardInfo"
          },
          {
            "description": "            ",
            "properties": {
              "AuctionsCount": {
                "description": "Количество содержимого (грузов) с аукционами на площадке\nПример: `5`\n            ",
                "format": "int32",
                "type": "integer"
              },
              "CanAdd": {
                "description": "Есть ли право добавлять грузы\nПример: `false`\n            ",
                "type": "boolean"
              },
              "CanView": {
                "description": "Есть ли право просматривать грузы\nПример: `true`\n            ",
                "type": "boolean"
              },
              "ContentCount": {
                "description": "Количество грузов или машин на площадке\nПример: `34`\n            ",
                "format": "int64",
                "type": "integer"
              },
              "ParticipantsCount": {
                "description": "Количество участников площадки\nПример: `15`\n            ",
                "format": "int64",
                "type": "integer"
              },
              "TendersCount": {
                "description": "Количество тендеров на площадке\nПример: `2`\n            ",
                "format": "int32",
                "type": "integer"
              }
            },
            "required": [
              "CanView",
              "CanAdd"
            ],
            "type": "object"
          }
        ]
      },
      "ExtendedIntegratorBoardInfo": {
        "allOf": [
          {
            "$ref": "#/components/schemas/IntegratorBoardInfo"
          },
          {
            "description": "            ",
            "properties": {
              "auctions_count": {
                "description": "Количество содержимого (грузов) с аукционами на площадке\nПример: `5`\n            ",
                "format": "int32",
                "type": "integer"
              },
              "can_add": {
                "description": "Есть ли право добавлять грузы\nПример: `false`\n            ",
                "type": "boolean"
              },
              "can_view": {
                "description": "Есть ли право просматривать грузы\nПример: `true`\n            ",
                "type": "boolean"
              },
              "content_count": {
                "description": "Количество грузов или машин на площадке\nПример: `34`\n            ",
                "format": "int64",
                "type": "integer"
              },
              "participants_count": {
                "description": "Количество участников площадки\nПример: `15`\n            ",
                "format": "int64",
                "type": "integer"
              },
              "tenders_count": {
                "description": "Количество тендеров на площадке\nПример: `2`\n            ",
                "format": "int32",
                "type": "integer"
              }
            },
            "required": [
              "can_view",
              "can_add"
            ],
            "type": "object"
          }
        ]
      },
      "ExternalBoardCreateRequest": {
        "properties": {
          "AllDepartmentsAllowed": {
            "description": "Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения\nЕсли передано true, то DepartmentsIds должен быть null или пустым\nПример: true\n            ",
            "type": "boolean"
          },
          "BoardExchangeDirection": {
            "$ref": "#/components/schemas/BoardExchangeDirection"
          },
          "BoardType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoardType"
              }
            ],
            "description": "Тип площадки\n* `loads` - Площадка с грузами\n* `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)\n            "
          },
          "Color": {
            "description": "Цвет плашки площадки\nПример: `\"#FF00FF\"`\n            ",
            "type": "string"
          },
          "DepartmentsIds": {
            "description": "Перечень подразделений компании, которым доступна площадка.\nВ случае, если передан не пустой перечень значение AllDepartmentsAllowed должно быть false.\nОтветственный контакт ResponsibleContactId должен состоять (принадлежать) хотя бы одному из указанных подразделений\nПример: `[100302, 100303]`\n            ",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "Description": {
            "description": "Описание площадки (можно использовать тэги \"b\", \"i\", \"span\", \"u\", \"ul\", \"li\", \"br\")\nПример: `\"Лучшая площадка из всех созданных\"`\n            ",
            "type": "string"
          },
          "NameForUsers": {
            "description": "Публичное имя, видимое участникам площадки (до 50 символов)\nПример: `\"Приходите, покупайте\"`\n            ",
            "type": "string"
          },
          "PrivateName": {
            "description": "Имя, которое видит только владелец площадки (до 50 символов)\nПример: `\"Покупайте, приходите\"`\n            ",
            "type": "string"
          },
          "Public": {
            "description": "Открытая площадка или закрытая. На открытую может подать заявку на вступление любой пользователь. На закрытую можно\nпопасть только по приглашению владельца.\nПример: `true`\n            ",
            "type": "boolean"
          },
          "ResponsibleContactId": {
            "description": "ID контакта ответственного пользователя\nПример: `1`\n            ",
            "format": "int32",
            "type": "integer"
          },
          "Rules": {
            "description": "Правила участия, которые требуется принять участникам при вступлении (можно использовать тэги \"b\", \"i\", \"span\", \"u\", \"ul\", \"li\", \"br\")\nПример: `\"Только красные машины\"`\n            ",
            "type": "string"
          }
        },
        "required": [
          "NameForUsers",
          "PrivateName",
          "Description",
          "Rules",
          "Color",
          "BoardExchangeDirection",
          "BoardType",
          "Public",
          "AllDepartmentsAllowed",
          "DepartmentsIds"
        ],
        "type": "object"
      },
      "ExternalBoardInfo": {
        "description": "Информация о площадке\n            ",
        "properties": {
          "AllDepartmentsAllowed": {
            "description": "Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения\nПример: true\n            ",
            "type": "boolean"
          },
          "AvailableForContact": {
            "description": "Площадка доступна для данного контакта\nПример: `true`\n            ",
            "type": "boolean"
          },
          "BoardExchangeDirection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoardExchangeDirection"
              }
            ],
            "description": "Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию)\n* `exchange` — Обмен грузами/машинами\n* `input` — Грузы/машины для владельца площадки\n* `output` - Грузы/машины от владельца площадки\n            "
          },
          "BoardType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoardType"
              }
            ],
            "description": "Тип площадки\n* `loads` - Площадка с грузами\n* `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)\n            "
          },
          "Color": {
            "description": "Цвет площадки\nПример: `\"#FF00FF\"`\n            ",
            "type": "string"
          },
          "CreatedOn": {
            "description": "Время создания площадки (timestamp)\nПример: `1556201954901`\n            ",
            "format": "date-time",
            "type": "string"
          },
          "DepartmentsIds": {
            "description": "Перечень подразделений компании, которым доступна площадка\nПример: `[100302, 100303]`\n            ",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "ID": {
            "description": "ID площадки (строка 24 символа)\nПример: `\"507f1f77bcf86cd799439011\"`\n            ",
            "type": "string"
          },
          "LogoUrl": {
            "description": "Относительный путь к логотипу площадки [устарело]\nПример: `\"board/defaultlogo/68/5cc1a5c255b56480407c43e1\"`\n            ",
            "type": "string"
          },
          "Name": {
            "description": "Название площадки\nПример: `\"Образцово-показательная площадка\"`\n            ",
            "type": "string"
          },
          "OwnerFirm": {
            "description": "Код участника ATI.SU создавшего площадку\nПример: `1111111`\n            ",
            "format": "int32",
            "type": "integer"
          },
          "UpdatedOn": {
            "description": "Последнее время изменения площадки (Timestamp)\nПример: `1556201954901`\n            ",
            "format": "date-time",
            "type": "string"
          },
          "ViewOnlyOwn": {
            "description": "Участник может видеть только свои грузы/машины\nПример: `true`\n            ",
            "type": "boolean"
          }
        },
        "required": [
          "ID",
          "Name",
          "Color",
          "CreatedOn",
          "ViewOnlyOwn",
          "UpdatedOn",
          "LogoUrl",
          "BoardType",
          "BoardExchangeDirection",
          "OwnerFirm",
          "AvailableForContact",
          "AllDepartmentsAllowed",
          "DepartmentsIds"
        ],
        "type": "object"
      },
      "ExternalInvite": {
        "description": "Информация о приглашении на площадку\n            ",
        "properties": {
          "BoardInfo": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalBoardInfo"
              }
            ],
            "description": "Информация о площадке, на которую создано приглашение\n            "
          },
          "Participant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ExternalParticipantInfo"
              }
            ],
            "description": "Параметры участия на площадке\n            "
          }
        },
        "required": [
          "BoardInfo",
          "Participant"
        ],
        "type": "object"
      },
      "ExternalInviteV2": {
        "description": "Информация о приглашении на площадку\n            ",
        "properties": {
          "board_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegratorBoardInfo"
              }
            ],
            "description": "Информация о площадке, на которую создано приглашение\n            "
          },
          "participant": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IntegratorParticipantInfo"
              }
            ],
            "description": "Параметры участия на площадке\n            "
          }
        },
        "required": [
          "board_info",
          "participant"
        ],
        "type": "object"
      },
      "ExternalParticipantInfo": {
        "description": "Детали участия пользователя на площадке\n            ",
        "properties": {
          "AtiID": {
            "description": "код в ATI.SU участника\n            ",
            "type": "string"
          },
          "BoardID": {
            "description": "ID площадки\n            ",
            "type": "string"
          },
          "CanAdd": {
            "description": "Может ли добавлять грузы/машины на площадку\n            ",
            "type": "boolean"
          },
          "CreatedOn": {
            "description": "Дата вступления (приглашения) на площадку\n            ",
            "format": "date-time",
            "type": "string"
          },
          "ResponsibleContactId": {
            "description": "ID контакта, ответственного за площадку\n            ",
            "format": "int32",
            "type": "integer"
          },
          "SenderAtiID": {
            "description": "код в ATI.SU пригласившего (владельца площадки)\n            ",
            "type": "string"
          },
          "Type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ParticipationType"
              }
            ],
            "description": "Тип участия\n            "
          },
          "TypeChanged": {
            "description": "Время последней смены типа участия\n            ",
            "format": "date-time",
            "type": "string"
          },
          "ViewContent": {
            "description": "Может ли видеть грузы/машины площадки\n            ",
            "type": "boolean"
          },
          "ViewParticipants": {
            "description": "Может ли видеть других участников площадки\n            ",
            "type": "boolean"
          }
        },
        "required": [
          "BoardID",
          "AtiID",
          "SenderAtiID",
          "CreatedOn",
          "Type",
          "TypeChanged"
        ],
        "type": "object"
      },
      "ExternalParticipantsSearchResults": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SearchResultsOfExternalParticipantInfo"
          },
          {
            "description": "Результаты поиска участников\n            ",
            "type": "object"
          }
        ]
      },
      "IntegratorBoardInfo": {
        "description": "Информация о площадке (api v2)\n            ",
        "properties": {
          "all_departments_allowed": {
            "description": "Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения\nПример: true\n            ",
            "type": "boolean"
          },
          "available_for_contact": {
            "description": "Площадка доступна для данного контакта\nПример: `true`\n            ",
            "type": "boolean"
          },
          "board_exchange_direction": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoardExchangeDirection"
              }
            ],
            "description": "Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию)\n* `exchange` — Обмен грузами/машинами\n* `input` — Грузы/машины для владельца площадки\n* `output` - Грузы/машины от владельца площадки\n            "
          },
          "board_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoardType"
              }
            ],
            "description": "Тип площадки\n* `loads` - Площадка с грузами\n* `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)\n            "
          },
          "color": {
            "description": "Цвет площадки\nПример: `\"#FF00FF\"`\n            ",
            "type": "string"
          },
          "created_on": {
            "description": "Время создания площадки (timestamp)\nПример: `1556201954901`\n            ",
            "format": "date-time",
            "type": "string"
          },
          "departments_ids": {
            "description": "Перечень подразделений компании, которым доступна площадка\nПример: `[100302, 100303]`\n            ",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "id": {
            "description": "ID площадки (строка 24 символа)\nПример: `\"507f1f77bcf86cd799439011\"`\n            ",
            "type": "string"
          },
          "name": {
            "description": "Название площадки\nПример: `\"Образцово-показательная площадка\"`\n            ",
            "type": "string"
          },
          "owner_firm": {
            "description": "Код участника ATI.SU создавшего площадку\nПример: `1111111`\n            ",
            "format": "int32",
            "type": "integer"
          },
          "updated_on": {
            "description": "Последнее время изменения площадки (Timestamp)\nПример: `1556201954901`\n            ",
            "format": "date-time",
            "type": "string"
          },
          "view_only_own": {
            "description": "Участник может видеть только свои грузы/машины\nПример: `true`\n            ",
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "color",
          "created_on",
          "view_only_own",
          "updated_on",
          "board_type",
          "board_exchange_direction",
          "owner_firm",
          "available_for_contact",
          "all_departments_allowed",
          "departments_ids"
        ],
        "type": "object"
      },
      "IntegratorBodyCreateRequest": {
        "properties": {
          "all_departments_allowed": {
            "description": "Площадка доступна всем подразделениям компании. Такую площадку могут видеть все сотрудники, независимо от их подразделения\nЕсли передано true, то DepartmentsIds должен быть null или пустым\nПример: true\n            ",
            "type": "boolean"
          },
          "board_exchange_direction": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoardExchangeDirection"
              }
            ],
            "description": "Направление обмена информацией на площадке (влияет на права доступа участников по умолчанию)\n* `exchange` — Обмен грузами/машинами\n* `input` — Грузы/машины для владельца площадки\n* `output` - Грузы/машины от владельца площадки\n            "
          },
          "board_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoardType"
              }
            ],
            "description": "Тип площадки\n* `loads` - Площадка с грузами\n* `trucks` - Площадка с машинами (зарезервировано, в данный момент такая возможность ещё не доступна)\n            "
          },
          "color": {
            "description": "Цвет плашки площадки\nПример: `\"#FF00FF\"`\n            ",
            "type": "string"
          },
          "departments_ids": {
            "description": "Перечень подразделений компании, которым доступна площадка.\nВ случае, если передан не пустой перечень значение AllDepartmentsAllowed должно быть false.\nОтветственный контакт ResponsibleContactId должен состоять (принадлежать) хотя бы одному из указанных подразделений\nПример: `[100302, 100303]`\n            ",
            "items": {
              "format": "int32",
              "type": "integer"
            },
            "type": "array"
          },
          "description": {
            "description": "Описание площадки (можно использовать тэги \"b\", \"i\", \"span\", \"u\", \"ul\", \"li\", \"br\")\nПример: `\"Лучшая площадка из всех созданных\"`\n            ",
            "type": "string"
          },
          "name_for_users": {
            "description": "Публичное имя, видимое участникам площадки (до 50 символов)\nПример: `\"Приходите, покупайте\"`\n            ",
            "type": "string"
          },
          "private_name": {
            "description": "Имя, которое видит только владелец площадки (до 50 символов)\nПример: `\"Покупайте, приходите\"`\n            ",
            "type": "string"
          },
          "public": {
            "description": "Открытая площадка или закрытая. На открытую может подать заявку на вступление любой пользователь. На закрытую можно\nпопасть только по приглашению владельца.\nПример: `true`\n            ",
            "type": "boolean"
          },
          "responsible_contact_id": {
            "description": "ID контакта ответственного пользователя\nПример: `1`\n            ",
            "format": "int32",
            "type": "integer"
          },
          "rules": {
            "description": "Правила участия, которые требуется принять участникам при вступлении (можно использовать тэги \"b\", \"i\", \"span\", \"u\", \"ul\", \"li\", \"br\")\nПример: `\"Только красные машины\"`\n            ",
            "type": "string"
          }
        },
        "required": [
          "name_for_users",
          "private_name",
          "description",
          "rules",
          "color",
          "board_exchange_direction",
          "board_type",
          "public",
          "all_departments_allowed",
          "departments_ids"
        ],
        "type": "object"
      },
      "IntegratorParticipantInfo": {
        "description": "Детали участия пользователя на площадке\n            ",
        "properties": {
          "ati_id": {
            "description": "код в ATI.SU участника\n            ",
            "type": "string"
          },
          "board_id": {
            "description": "ID площадки\n            ",
            "type": "string"
          },
          "can_add": {
            "description": "Может ли добавлять грузы/машины на площадку\n            ",
            "type": "boolean"
          },
          "created_on": {
            "description": "Дата вступления (приглашения) на площадку\n            ",
            "format": "date-time",
            "type": "string"
          },
          "responsible_contact_id": {
            "description": "ID контакта, ответственного за площадку\n            ",
            "format": "int32",
            "type": "integer"
          },
          "sender_ati_id": {
            "description": "код в ATI.SU пригласившего (владельца площадки)\n            ",
            "type": "string"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ParticipationType"
              }
            ],
            "description": "Тип участия\n            "
          },
          "type_changed": {
            "description": "Время последней смены типа участия\n            ",
            "format": "date-time",
            "type": "string"
          },
          "view_content": {
            "description": "Может ли видеть грузы/машины площадки\n            ",
            "type": "boolean"
          },
          "view_participants": {
            "description": "Может ли видеть других участников площадки\n            ",
            "type": "boolean"
          }
        },
        "required": [
          "board_id",
          "ati_id",
          "sender_ati_id",
          "created_on",
          "type",
          "type_changed"
        ],
        "type": "object"
      },
      "IntegratorParticipantSearchResults": {
        "description": "Страница с результатами поиска\n            ",
        "properties": {
          "result": {
            "description": "Массив результатов\n            ",
            "items": {
              "$ref": "#/components/schemas/IntegratorParticipantInfo"
            },
            "type": "array"
          },
          "total_count": {
            "description": "Всего результатов, количество\n            ",
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "result",
          "total_count"
        ],
        "type": "object"
      },
      "ParticipantListForIntegratorRequest": {
        "properties": {
          "board_ids": {
            "description": "Отфильтровать по площадкам\n            ",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "limit": {
            "description": "Ограничение количества для постраничных запросов\n            ",
            "format": "int32",
            "type": "integer"
          },
          "offset": {
            "description": "Отступ для постраничных запросов\n            ",
            "format": "int32",
            "type": "integer"
          },
          "only_my": {
            "description": "Показывать только свои участия\n            ",
            "type": "boolean"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ParticipationType"
              }
            ],
            "description": "Отфильтровать по типу участия\n            \n* `user` - Полноценный участник площадки\n* `revoked` - Приглашение отозвано\n* `rejected` - Отказ от приглашения\n* `invited` - Участник приглашён на площадку\n* `invitedViewed` - Приглашение просмотрено\n* `rejectedViewed` - Отказ просмотрен\n* `left` - Участник покинул площадку\n* `deleted` - Участник удалён с площадки\n* `firmDeleted` - Участник удалён из ATI.SU\n* `owner` - Владелец площадки \n             "
          }
        },
        "required": [
          "only_my",
          "board_ids"
        ],
        "type": "object"
      },
      "ParticipantModifyForIntegratorRequestV2": {
        "description": "Описание требуемых изменений участника площадки\n            ",
        "properties": {
          "ati_id": {
            "description": "ID участника ATI\n            ",
            "type": "string"
          },
          "board_id": {
            "description": "ID площадки\n            ",
            "type": "string"
          },
          "can_add": {
            "description": "Может ли добавлять грузы/машины на площадку\n            ",
            "type": "boolean"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ParticipationType"
              }
            ],
            "description": "Тип участия на площадке\n            \n* `user` - Полноценный участник площадки\n* `revoked` - Приглашение отозвано\n* `rejected` - Отказ от приглашения\n* `invited` - Участник приглашён на площадку\n* `invitedViewed` - Приглашение просмотрено\n* `rejectedViewed` - Отказ просмотрен\n* `left` - Участник покинул площадку\n* `deleted` - Участник удалён с площадки\n* `firmDeleted` - Участник удалён из ATI.SU\n* `owner` - Владелец площадки \n             "
          },
          "view_content": {
            "description": "Может ли видеть грузы/машины площадки\n            ",
            "type": "boolean"
          },
          "view_participants": {
            "description": "Может ли видеть других участников площадки\n            ",
            "type": "boolean"
          }
        },
        "required": [
          "board_id",
          "ati_id"
        ],
        "type": "object"
      },
      "ParticipationType": {
        "description": "Тип участия пользователя на площадке\n            ",
        "enum": [
          "user",
          "tempRevoked",
          "revoked",
          "tempDeleted",
          "tempRejected",
          "rejected",
          "revokedViewed",
          "invited",
          "invitedViewed",
          "rejectedViewed",
          "left",
          "deleted",
          "firmDeleted",
          "owner"
        ],
        "type": "string",
        "x-enumFlags": true,
        "x-enumNames": [
          "User",
          "TempRevoked",
          "Revoked",
          "TempDeleted",
          "TempRejected",
          "Rejected",
          "RevokedViewed",
          "Invited",
          "InvitedViewed",
          "RejectedViewed",
          "Left",
          "Deleted",
          "FirmDeleted",
          "Owner"
        ]
      },
      "SearchResultsOfExternalParticipantInfo": {
        "description": "Страница с результатами поиска\n            ",
        "properties": {
          "Available": {
            "allOf": [
              {
                "$ref": "#/components/schemas/BoolAndReason"
              }
            ],
            "description": "Если запрос включал в себя обращение к другим сервисам - может содержать дополнительный флаг о доступности данных\n            "
          },
          "Result": {
            "description": "Массив результатов\n            ",
            "items": {
              "$ref": "#/components/schemas/ExternalParticipantInfo"
            },
            "type": "array"
          },
          "TotalCount": {
            "description": "Всего результатов, количество\n            ",
            "format": "int32",
            "type": "integer"
          },
          "UserCount": {
            "description": "Пользователей среди результатов\n            ",
            "format": "int32",
            "type": "integer"
          }
        },
        "required": [
          "Result",
          "Available"
        ],
        "type": "object"
      },
      "SingleErrorModel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ErrorModel"
          },
          {
            "properties": {
              "details": {
                "additionalProperties": {},
                "description": "Детали ошибки при валидации запроса.\nПоле может отсутствовать в ответе, если для данного типа ошибки оно не предусмотрено",
                "type": "object"
              },
              "errors_list": {
                "description": "Список ошибок.\nПоле может отсутствовать в ответе, если для данного типа ошибки оно не предусмотрено",
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            },
            "required": [
              "details",
              "errors_list"
            ],
            "type": "object"
          }
        ]
      },
      "ExternalParticipantModifyRequest": {
        "description": "Описание требуемых изменений участника площадки\n            ",
        "properties": {
          "AtiID": {
            "description": "ID участника ATI\n            ",
            "type": "string"
          },
          "BoardID": {
            "description": "ID площадки\n            ",
            "type": "string"
          },
          "CanAdd": {
            "description": "Может ли добавлять грузы/машины на площадку\n            ",
            "type": "boolean"
          },
          "Type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ParticipationType"
              }
            ],
            "description": "Тип участия на площадке\n            "
          },
          "ViewContent": {
            "description": "Может ли видеть грузы/машины площадки\n            ",
            "type": "boolean"
          },
          "ViewParticipants": {
            "description": "Может ли видеть других участников площадки\n            ",
            "type": "boolean"
          }
        },
        "required": [
          "BoardID",
          "AtiID"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Authorization: Bearer {authorizationToken}"
      }
    }
  }
}