{
  "swagger": "2.0",
  "info": {
    "description": "Описание интерфейса АПИ бизнес микросервиса по услуге ЭДО",
    "version": "1.6.1",
    "title": "BMS Service EDO",
    "contact": {
      "name": "Garifulin Fedor",
      "email": "GarifulinFO@msk.bcs.ru"
    }
  },
  "basePath": "/api/v1",
  "tags": [
    {
      "name": "service",
      "description": "Методы предназначенные для работы с услугой ЭДО"
    }
  ],
  "schemes": [
    "https"
  ],
  "paths": {
    "/remoteService/signersList": {
      "get": {
        "tags": [
          "service"
        ],
        "summary": "Метод получения списка подписантов по услуге ЭДО по филиалу",
        "description": "Метод включает в себя логику определения филиала сотрудника.",
        "operationId": "SignersList",
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "$ref": "#/definitions/SignersListRp"
            }
          },
          "204": {
            "description": "No content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/SignerListUnprocessableEntityRp"
            }
          },
          "424": {
            "description": "Failed Dependency",
            "schema": {
              "$ref": "#/definitions/FailedDependencyRp"
            }
          }
        }
      }
    },
    "/remoteService": {
      "post": {
        "tags": [
          "service"
        ],
        "summary": "Создание новой услуги ЭДО",
        "operationId": "CreateService",
        "description": "Метод включает в себя бизнесс логику для создание услуги в ЕВА",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "Параметры услуги ЭДО и информация о субъекте которому необходимо создать услугу",
            "required": true,
            "schema": {
              "$ref": "#/definitions/ServiceInfoRq"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/CreatedRp"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/UnprocessableEntityRp"
            }
          }
        }
      },
      "get": {
        "tags": [
          "service"
        ],
        "summary": "Получить информацию о услуге ЭДО",
        "operationId": "StatusService",
        "description": "Метод выполняет запрос в ЕВА на получение статуса услуги из ЕВА, если статус услуги \"Документы сформированы\" дополнительно выполняет запрос к МС Документы на получение идентификаторов документов",
        "produces": [
          "application/json"
        ],
        "parameters": [
          {
            "name": "masterId",
            "in": "query",
            "description": "Уникальный идентификатор клиента в ЕВА",
            "required": true,
            "type": "string",
            "format": "uuid"
          }
        ],
        "responses": {
          "200": {
            "description": "Created",
            "schema": {
              "$ref": "#/definitions/ServiceInfoRp"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "422": {
            "description": "Unprocessable Entity",
            "schema": {
              "$ref": "#/definitions/UnprocessableEntityRp"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "SignersListRp": {
      "type": "array",
      "description": "Список подписантов по услуге ЭДО",
      "items": {
        "$ref": "#/definitions/SignerInfo"
      },
      "example": [
        {
          "signerId": "2D458CDF-295A-44DB-22DD-333756C4CB00",
          "repDocId": "5D458CDF-295A-44DB-22DD-333756C4CB15",
          "signerInfo": "Смирнов Алексей Мцихайлович №2765 от 02.05.2017 до 03.05.2019",
          "isDefault": true
        },
        {
          "signerId": "2D458CDF-295A-44DB-22DD-333756C4CB00",
          "repDocId": "5D458CDF-295A-44DB-22DD-333756C4CB15",
          "signerInfo": "Смирнов Алексей Мцихайлович №2765 от 02.05.2017 до 03.05.2019",
          "isDefault": false
        },
        {
          "signerId": "2D458CDF-295A-44DB-22DD-333756C4CB00",
          "repDocId": "5D458CDF-295A-44DB-22DD-333756C4CB15",
          "signerInfo": "Смирнов Алексей Мцихайлович №2765 от 02.05.2017 до 03.05.2019",
          "isDefault": false
        }
      ]
    },
    "SignerInfo": {
      "type": "object",
      "description": "Информация о подписанте по услуге ЭДО",
      "properties": {
        "signerId": {
          "type": "string",
          "format": "uuid",
          "description": "Индивидуальный код сотрудника подписанта со стороны БКС"
        },
        "repDocId": {
          "type": "string",
          "format": "uuid",
          "description": "Уникальный идентификатор доверенности подписанта"
        },
        "docInfo": {
          "type": "string",
          "format": "$signerName||\\s||$number||\\sn||от||\\s||$startDate||\\s||до||\\s||$finishDate",
          "description": "Информация о подписанте по услуге ЭДО с информацией о документе"
        },
        "isDefault": {
          "type": "boolean",
          "description": "Признак того что текущий ФС является подписантом по услуге ЭДО"
        }
      },
      "example": {
        "signerId": "2D458CDF-295A-44DB-22DD-333756C4CB00",
        "signerInfo": "Смирнов Алексей Мцихайлович №2765 от 02.05.2017 до 03.05.2019",
        "isDefault": true
      }
    },
    "ServiceInfoRq": {
      "type": "object",
      "properties": {
        "masterId": {
          "type": "string",
          "format": "uuid",
          "example": "5D458CDF-295A-44DB-22DD-333756C4CB15",
          "description": "Уникальный идентификатор клиента из ЕВА"
        },
        "signerId": {
          "type": "string",
          "format": "uuid",
          "example": "2D458CDF-295A-44DB-22DD-333756C4CB00",
          "description": "Индивидуальный код сотрудника подписанта со стороны БКС"
        },
        "repDocId": {
          "type": "string",
          "format": "uuid",
          "example": "5D458CDF-295A-44DB-22DD-333756C4CB15",
          "description": "Уникальный идентификатор доверенности подписанта"
        }
      },
      "required": [
        "masterId",
        "signerId",
        "repDocId"
      ]
    },
    "UnprocessableEntityRp": {
      "type": "object",
      "properties": {
        "techMsg": {
          "type": "string",
          "description": "Техническое сообщение"
        },
        "userMsg": {
          "type": "string",
          "description": "Пользовательское сообщение"
        },
        "timestamp": {
          "type": "string",
          "format": "date-time",
          "example": "1989-12-31T21:00:00.000Z"
        },
        "data": {
          "description": "Блок содержащий в себе объект по которому производилось действие",
          "$ref": "#/definitions/ServiceEDO"
        }
      }
    },
    "CreatedRp": {
      "type": "object",
      "properties": {
        "serviceId": {
          "type": "string",
          "format": "uuid",
          "example": "2D458CDF-295A-44DB-22DD-333756C4CB15"
        },
        "status": {
          "type": "string",
          "example": "Черновик"
        }
      }
    },
    "ServiceInfoRp": {
      "$ref": "#/definitions/ServiceEDO"
    },
    "ServiceEDO": {
      "type": "object",
      "description": "Атрибуты услуги ЭДО",
      "properties": {
        "serviceId": {
          "type": "string",
          "format": "uuid",
          "example": "2D458CDF-295A-44DB-22DD-333756C4CB15",
          "description": "Уникальный идентификатор услуги ЭДО"
        },
        "masterId": {
          "type": "string",
          "format": "uuid",
          "example": "5D458CDF-295A-44DB-22DD-333756C4CB15",
          "description": "Уникальный идентификатор субъекта в ЕВА"
        },
        "status": {
          "type": "string",
          "description": "текущий статус услуги ЭДО",
          "enum": [
            "proceed",
            "done",
            "forbidden",
            "active"
          ],
          "example": "proceed"
        },
        "statusEVA": {
          "type": "string",
          "description": "текущий статус услуги ЭДО в ЕВА",
          "example": "Формирование документов"
        },
        "docList": {
          "$ref": "#/definitions/DocList"
        }
      },
      "required": [
        "serviceId",
        "masterId"
      ]
    },
    "DocList": {
      "type": "array",
      "description": "Список документов сформированных по услуге",
      "items": {
        "$ref": "#/definitions/DocInfo"
      }
    },
    "DocInfo": {
      "type": "object",
      "description": "Параметры сформированного документа по услуге",
      "properties": {
        "docId": {
          "type": "string",
          "description": "Уникальный идентификатор документа из МС Документы",
          "example": 123
        },
        "docName": {
          "type": "string",
          "description": "Наименование документа в архиве"
        },
        "createDate": {
          "type": "string",
          "format": "date-time",
          "example": "1989-12-31T21:00:00.000Z",
          "description": "Дата и время последнего измененного архива с документами в ЕВА"
        },
        "fileSize": {
          "type": "string",
          "example": "127 Кб",
          "description": "Размер документа находящегося в архиве"
        }
      }
    },
    "FailedDependencyRp": {
      "type": "object",
      "properties": {
        "dependency": {
          "type": "string",
          "enum": [
            "CRM",
            "EVA",
            "DICT"
          ]
        },
        "timestamp": {
          "type": "integer",
          "format": "date-time"
        },
        "reason": {
          "type": "string"
        }
      },
      "example": {
        "dependency": "EVA",
        "timestamp": 123456789,
        "reason": "Exception of type 'BCS.EFS.Utils.Exceptions.HttpStatusCodeException' was thrown"
      }
    },
    "SignerListUnprocessableEntityRp": {
      "allOf": [
        {
          "$ref": "#/definitions/UnprocessableEntityRp"
        },
        {
          "type": "object",
          "properties": {
            "individualId": {
              "type": "string",
              "format": "uuid",
              "description": "Индивидуальный код сотрудника в ЕВА"
            },
            "branchId": {
              "type": "string",
              "format": "uuid",
              "description": "Уникальный идентификатор офиса к которому относится сотрудник"
            }
          }
        }
      ],
      "example": {
        "techMsg": "UUID not valid",
        "userMsg": "Cannot get UUID",
        "timestamp": "1990-01-01T00:00:00+03:00",
        "data": {
          "individualId": "2D458CDF-295A-44DB-22DD-333756C4CB15",
          "branchId": "5D458CDF-295A-44DB-22DD-333756C4CB15"
        }
      }
    }
  },
  "externalDocs": {
    "description": "Find out more about BMS Service EDO",
    "url": "https://jira.bcs.ru:4464/confluence/display/EF/BMS+Service+EDO"
  }
}