openapi: 3.0.1
info:
  title: Abills admins API
  version: 0.0.32
servers:
  - url: https://demo.abills.net.ua:9443/api.cgi
tags:
  - name: users
    description: Работа с пользователями
  - name: groups
    description: Группы пользователей
  - name: tp
    description: Тарифные планы
  - name: msgs
    description: Msgs
  - name: internet
    description: Internet
  - name: iptv
    description: Iptv
  - name: abon
    description: Abon
  - name: districts
    description: Районы
  - name: streets
    description: Улицы
  - name: builds
    description: Дома
  - name: payments
    description: Оплаты
  - name: fees
    description: Списания
  - name: online
    description: Сессии пользователя
  - name: version
    description: Версии
  - name: equipment
    description: Работа с оборудованием
  - name: ureports
    description: Работа с оповещениями    
paths:
  /ureports/user/list/: 
    get:
      tags:
        - ureports
      summary: Список пользователей с включенными оповещениями
      operationId: ureportsUserList
      parameters:
        - name: tpId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: tpName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: destination
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: type
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: status
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: uid
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: reportsCount
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: pageRows
          in: query
          description: Количество записей
          schema:
            type: integer
            default: 100000
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UreportsUserList"
      security:
        - KEY: []
  /ureports/user/{UID}/:
    post:
      tags:
        - ureports
      summary: Добавить оповещения пользователю
      operationId: ureportsAddUser
      parameters:
        - name: UID
          in: path
          description: UID пользователя
          required: true
          schema:
            type: integer
      requestBody:
        content:
          "*/*":
            schema:
              $ref: "#/components/schemas/UreportsUserRequest"
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UreportsAddUserResponse"
        400:
          description: Нет поля ip
          content:
            application/json:
              schema:
                type: object
                properties:
                  errno:
                    type: integer
                    example: 10202
                  errstr:
                    type: string
                    example: No field tpId
      security:
        - KEY: []
    put:
      tags:
        - ureports
      summary: изменить оповещения пользователю
      operationId: ureportsChangeUser
      parameters:
        - name: UID
          in: path
          description: UID пользователя
          required: true
          schema:
            type: integer
      requestBody:
        content:
          "*/*":
            schema:
              $ref: "#/components/schemas/UreportsUserRequest"
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UreportsChangeUserResponse"
        400:
          description: Нет поля ip
          content:
            application/json:
              schema:
                type: object
                properties:
                  errno:
                    type: integer
                    example: 10205
                  errstr:
                    type: string
                    example: No field tpId
      security:
        - KEY: []
      x-codegen-request-body-name: body
    delete:
      tags:
        - ureports
      summary: Удалить оповещения пользователю
      operationId: ureportsDeleteUser
      parameters:
        - name: UID
          in: path
          description: UID пользователя
          required: true
          schema:
            type: integer
      responses:
        200:
          description: Нет поля ip
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: string
                    example: OK
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /equipment/onu/list/:
    get:
      tags:
        - equipment
      summary: Список ONU
      operationId: getOnuList
      parameters:
        - name: branch
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: branchDesc
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: vlanId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: onuId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: onuVlan
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: onuDesc
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: onuBillingDesc
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: oltRxPower
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: onuDhcpPort
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: onuGraph
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasIp
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: onuSnmpId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: dateTime
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: serverVlan
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: gid
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: traffic
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: login
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: userMac
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: macBehindOnu
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: distance
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: externalSystemLink
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OnuList"
      security:
        - KEY: []
  /equipment/box/list/:
    get:
      tags:
        - equipment
      summary: Список OLT
      operationId: getOltList
      parameters:
        - name: sort
          in: query
          description: Сортировка по одному параметру выше
          schema:
            type: string
        - name: pageRows
          in: query
          description: Количество записей
          schema:
            type: integer
            default: 100000
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OltList"
      security:
        - KEY: []
  /equipment/used/ports/:
    get:
      tags:
        - equipment
      summary: Список использованных портов
      operationId: getUsedPorts
      parameters:
        - name: nasId
          in: query
          description: Поиск по nasId
          schema:
            type: string
        - name: portsOnly
          in: query
          description: только порты
          schema:
            type: boolean
        - name: fullList
          in: query
          description: полный список
          schema:
            type: boolean
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UsedPorts"
      security:
        - KEY: []
  /equipment/nas/types/:
    get:
      tags:
        - equipment
      summary: Список типов серверов доступа
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NasTypesList"
      security:
        - KEY: []
  /equipment/nas/list/extra/:
    get:
      tags:
        - equipment
      summary: Список серверов доступа с дополнительной иформацией
      operationId: getNAsListExtra
      parameters:
        - name: type
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: systemId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: typeId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: vendorId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: vendorName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasType
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: modelName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: snmpTpl
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: modelId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: status
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: disable
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: typeName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: ports
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: portsWithExtra
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: mac
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: portShift
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: autoPortShift
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: fdbUsersPortNumberIndex
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: eponSupportedOnus
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: gponSupportedOnus
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: geponSupportedOnus
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: defaultOnuRegTemplateEpon
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: defaultOnuRegTemplateGpon
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasIp
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: mngHostPort
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: mngUser
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasMngUser
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: nasMngUserPassword
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasGid
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: nasGroupName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: districtId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: streetId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: locationId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: domainId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: domainName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: coordx
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: coordy
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: revision
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: snmpVersion
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: serverVlan
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: lastActivity
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: internetVlan
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: tr069Vlan
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: iptvVlan
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: nasDescr
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasIndentifier
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasAlive
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: nasDescr
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasIndentifier
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasAlive
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: nasRadPairs
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasEntrance
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: zabbixHostid
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NasListExtra"
      security:
        - KEY: []
  /equipment/nas/list/:
    get:
      tags:
        - equipment
      summary: Список серверов доступа
      operationId: getNAsList
      parameters:
        - name: nasName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasType
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: disable
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: mac
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasIp
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: mngHostPort
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: mngUser
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasMngUser
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: nasMngUserPassword
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: gid
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: nasGroupName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: districtId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: locationId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: domainId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: descr
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasIndentifier
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: alive
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: nasRadPairs
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasEntrance
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasFloor
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: addressFull
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: zabbixHostid
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
        - name: short
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NasList"
      security:
        - KEY: []
  /equipment/nas/:
    post:
      tags:
        - equipment
      summary: Добавить сервер доступа
      operationId: nasAdd
      requestBody:
        content:
          "*/*":
            schema:
              $ref: "#/components/schemas/NasRequest"
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NasAddResponse200"
        400:
          description: Нет поля ip
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NasAddResponse400"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /equipment/nas/{ID}/:
    put:
      tags:
        - equipment
      summary: Изменить сервер доступа
      operationId: nasChange
      parameters:
        - name: ID
          in: path
          description: ID сервера доступа
          required: true
          schema:
            type: integer
      requestBody:
        content:
          "*/*":
            schema:
              $ref: "#/components/schemas/NasRequest"
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NasChangeResponse"
        400:
          description: Нет поля ip
          content:
            application/json:
              schema:
                type: object
                properties:
                  errno:
                    type: integer
                    example: 205
                  errstr:
                    type: string
                    example: No field ip
      security:
        - KEY: []
      x-codegen-request-body-name: body
    delete:
      tags:
        - equipment
      summary: Удалить сервер доступа
      operationId: nasDelete
      parameters:
        - name: ID
          in: path
          description: ID сервера доступа
          required: true
          schema:
            type: integer
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: string
                    example: OK
      security:
        - KEY: []
  /equipment/nas/groups/list/:
    get:
      tags:
        - equipment
      summary: Список групп серверов доступа
      operationId: getNasGroups
      parameters:
        - name: sort
          in: query
          description: Сортировка по одному параметру выше
          schema:
            type: string
        - name: pageRows
          in: query
          description: Количество записей
          schema:
            type: integer
            default: 100000
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NasGroupsList"
      security:
        - KEY: []
  /equipment/nas/groups/add/:
    post:
      tags:
        - equipment
      summary: Добавить группу серверов доступа
      operationId: nasGroupAdd
      requestBody:
        content:
          "*/*":
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: Test API
                comments:
                  type: string
                  example: created as example for REST API
                disable:
                  type: number
                  example: 1
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NasGroupAddResponse200"
        400:
          description: Нет поля ip
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NasAddResponse400"
      security:
        - KEY: []
  /equipment/nas/groups/{ID}/:
    put:
      tags:
        - equipment
      summary: Изменить группу серверов доступа
      operationId: nasGroupChange
      parameters:
        - name: ID
          in: path
          description: ID группы сервера доступа
          required: true
          schema:
            type: integer
      requestBody:
        content:
          "*/*":
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: Test API
                comments:
                  type: string
                  example: changed as example for REST API
                disable:
                  type: number
                  example: 1
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NasGroupChangeResponse200"
        400:
          description: Нет поля ip
          content:
            application/json:
              schema:
                type: object
                properties:
                  affected:
                    type: integer
                    example: 0
                  total:
                    type: integer
                    example: 0
                  errno:
                    type: integer
                    example: 2
                  errstr:
                    type: string
                    example: ERROR_NOT_EXIST
      security:
        - KEY: []
      x-codegen-request-body-name: body
    delete:
      tags:
        - equipment
      summary: Удалить группу серверов доступа
      operationId: nasGroupDelete
      parameters:
        - name: ID
          in: path
          description: ID группы сервера доступа
          required: true
          schema:
            type: integer
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                type: object
                properties:
                  affected:
                    type: number
                    example: 1
                  total:
                    type: number
                    example: 0
      security:
        - KEY: []
  /equipment/nas/ip/pools/:
    get:
      tags:
        - equipment
      summary: Список IP pools к серверам доступа
      operationId: getIpPoolsList
      parameters:
        - name: id
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: poolName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: firstIp
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: lastIp
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: ip
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: lastIpNum
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: IpCount
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: ipFree
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: priority
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: speed
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: name
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nas
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: netmask
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: gateway
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: static
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: activeNasId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: ipSkip
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: comments
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: dns
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: vlan
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: guest
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nextPool
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: static
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: showAllColumns
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: ipv6Prefix
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: ipv6Mask
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: ipv6Temp
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: ipv6Pd
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: ipv6PdMask
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: ipv6PdTemp
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: pageRows
          in: query
          description: Количество записей
          schema:
            type: integer
            default: 100000
        - name: sort
          in: query
          description: Сортировка по одному параметру выше
          schema:
            type: string
            default: false
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NasIpPools"
      security:
        - KEY: []
    post:
      tags:
        - equipment
      summary: Добавить IP pool к серверу доступа
      operationId: nasIpPoolsAdd
      requestBody:
        content:
          "*/*":
            schema:
              type: object
              properties:
                poolId:
                  type: number
                  example: 1
                nasId:
                  type: number
                  example: 2
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                properties:
                  name:
                    type: string
                    example: Test API
                  comments:
                    type: string
                    example: changed as example for REST API
                  disable:
                    type: number
                    example: 1
        400:
          description: Нет поля ip
          content:
            application/json:
              schema:
                properties:
                  errno:
                    type: number
                    example: 209
                  errstr:
                    type: string
                    example: No field nasId
      security:
        - KEY: []
  /equipment/nas/ip/pools/{nasId}/{poolId}:
    delete:
      tags:
        - equipment
      summary: Удалить IP pool привязанный к серверу доступа
      operationId: nasIpPoolsDelete
      parameters:
        - name: nasId
          in: path
          description: ID сервера доступа
          required: true
          schema:
            type: integer
        - name: nasId
          in: path
          description: ID сервера доступа
          required: true
          schema:
            type: integer
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: string
                    example: OK
      security:
        - KEY: []
  /users/login:
    post:
      tags:
        - users
      summary: Авторизация пользователя
      operationId: loginUser
      requestBody:
        content:
          "*/*":
            schema:
              $ref: "#/components/schemas/UserLogin"
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/inline_response_200"
      x-codegen-request-body-name: body
  /users/:
    post:
      tags:
        - users
      summary: Добавить нового пользователя
      operationId: addUser
      requestBody:
        description: Параметры, которые нужно указать
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/User"
        required: true
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserCreated"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /users/all:
    get:
      tags:
        - users
      summary: Получить всех пользователей
      parameters:
        - name: fio
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: fio2
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: fio3
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: deposit
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: extDeposit
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: extBillId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: credit
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: creditDate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: loginStatus
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: phone
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: email
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: floor
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: entrance
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: addressFlat
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: pasportDate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: pasportNum
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: pasportGrant
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: city
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: zip
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: gid
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: companyId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: companyName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: contractId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: contractSufix
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: contractDate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: expire
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: reduction
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: lastPayment
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: lastFees
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: registration
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: reductionDate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: comments
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: billId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: activate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: acceptRules
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: password
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: birthDate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: taxNumber
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: pageRows
          in: query
          description: Количество записей
          schema:
            type: integer
            default: 100000
        - name: sort
          in: query
          description: Сортировка по одному параметру выше
          schema:
            type: string
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserList"
      security:
        - KEY: []
  /users/{UID}:
    get:
      tags:
        - users
      summary: Получить пользователя по UID
      description: Возвращает пользователя
      operationId: getUserByUID
      parameters:
        - name: UID
          in: path
          description: UID пользователя в биллинге
          required: true
          schema:
            type: integer
            format: int64
        - name: showPassword
          in: query
          description: Параметр который возвращает пароль пользователя
          schema:
            type: boolean
            default: false
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/User"
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
    put:
      tags:
        - users
      summary: Обновить информацию о пользователе
      operationId: updateUser
      parameters:
        - name: UID
          in: path
          description: UID пользователь
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/User"
        required: true
      responses:
        400:
          description: Invalid ID supplied
          content: {}
      security:
        - KEY: []
      x-codegen-request-body-name: body
    delete:
      tags:
        - users
      summary: Удалить пользователя
      operationId: deleteUser
      parameters:
        - name: UID
          in: path
          description: UID пользователя
          required: true
          schema:
            type: integer
            format: int64
      responses:
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
  /users/{UID}/pi:
    get:
      tags:
        - users
      summary: Получить персональную информацию о пользователе
      description: Возвращает персональную информацию пользователя
      operationId: getUserPiByUID
      parameters:
        - name: UID
          in: path
          description: UID пользователя в биллинге
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserPi"
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
    put:
      tags:
        - users
      summary: Изменение персональной информации пользователю
      operationId: changeUserPi
      parameters:
        - name: UID
          in: path
          description: UID пользователь
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserPi"
        required: true
      responses:
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
      x-codegen-request-body-name: body
    post:
      tags:
        - users
      summary: Добавление персональной информации пользователю
      operationId: addUserPi
      parameters:
        - name: UID
          in: path
          description: UID пользователь
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserPi"
        required: true
      responses:
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /users/{UID}/contacts:
    get:
      tags:
        - users
      summary: Получить контакты пользователя по UID
      description: Возвращает контакты пользователя
      operationId: getUserContactsByUID
      parameters:
        - name: UID
          in: path
          description: UID пользователя в биллинге
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ContactsArray"
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
    post:
      tags:
        - users
      summary: Добавление контакта пользователю
      operationId: updateUserContact
      parameters:
        - name: UID
          in: path
          description: UID пользователь
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserContactAdd"
        required: true
      responses:
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /users/{UID}/contacts/{ID}:
    put:
      tags:
        - users
      summary: Обновить контакт пользователю
      operationId: updateUserConctact
      parameters:
        - name: UID
          in: path
          description: UID пользователь
          required: true
          schema:
            type: integer
            format: int64
        - name: ID
          in: path
          description: ID контакта
          required: true
          schema:
            type: integer
            format: int64
      responses:
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
    delete:
      tags:
        - users
      summary: Удалить контакт пользователя
      operationId: deleteUserContact
      parameters:
        - name: UID
          in: path
          description: UID пользователя
          required: true
          schema:
            type: integer
            format: int64
        - name: ID
          in: path
          description: ID контакта
          required: true
          schema:
            type: integer
            format: int64
      responses:
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
  /users/contacts:
    post:
      tags:
        - users
      summary: Получить контакты
      description: Возвращает контакты пользователей
      operationId: getContacts
      requestBody:
        description: Параметры для фильтрации контактов
        content:
          "*/*":
            schema:
              $ref: "#/components/schemas/Contacts"
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ContactsArray"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /users/internet/all:
    get:
      tags:
        - internet
      summary: Получить всех пользователей
      parameters:
        - name: cid
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: cpeMac
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: vlan
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: serverVlan
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: joinService
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: simultaneonsly
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: speed
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: port
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: allFilterId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: filterId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: tpId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: tpNum
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: tpName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: monthFee
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: abonDistribution
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: dayFee
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: personalTp
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: paymentType
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: disable
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: ipnActivate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: dayTrafLimit
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: weekTrafLimit
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: totalTrafLimit
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: feesMethod
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: nasIp
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: fio
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: fio2
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: fio3
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: deposit
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: extDeposit
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: extBillId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: credit
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: creditDate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: loginStatus
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: phone
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: email
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: floor
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: entrance
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: addressFlat
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: pasportDate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: pasportNum
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: pasportGrant
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: city
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: zip
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: gid
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: companyId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: companyName
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: contractId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: contractSufix
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: contractDate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: expire
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: reduction
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: lastPayment
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: lastFees
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: registration
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: reductionDate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: comments
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: billId
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: activate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: acceptRules
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: password
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: birthDate
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: taxNumber
          in: query
          description: Параметр который возвращает биллинг
          schema:
            type: boolean
            default: false
        - name: pageRows
          in: query
          description: Количество записей
          schema:
            type: integer
            default: 100000
        - name: sort
          in: query
          description: Сортировка по одному параметру выше
          schema:
            type: string
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserInternetList"
      security:
        - KEY: []
  /users/{UID}/internet:
    get:
      tags:
        - internet
      summary: Получить список ТП Internet пользователя
      description: Возвращает ТП интернет пользователя
      operationId: getUserInternetByUID
      parameters:
        - name: UID
          in: path
          description: UID пользователя в биллинге
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserInternetList"
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
    post:
      tags:
        - internet
      summary: Добавление ТП Internet пользователю
      operationId: addUserInternetDepracted
      deprecated: true
      parameters:
        - name: UID
          in: path
          description: UID пользователь
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserInternet"
        required: true
      responses:
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /internet/{UID}/{ID}/warnings:
    get:
      tags:
        - internet
      summary: Информация о списаниях
      operationId: userInternetWarnings
      parameters:
        - name: UID
          in: path
          description: UID пользователя
          required: true
          schema:
            type: number
        - name: ID
          in: path
          description: ID услуги
          required: true
          schema:
            type: number
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InternetWarnings"
      security:
        - USER_SID: []
  /internet/{UID}/activate:
    post:
      tags:
        - internet
      summary: Добавление ТП Интернет пользователю
      operationId: addUserInternet
      parameters:
        - name: UID
          in: path
          description: UID пользователь
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserInternetActivate"
        required: true
      responses:
        200:
          description: Успешно добавлено
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: string
                    example: Successfully added
        400:
          description: Нет поля tpId
          content:
            text/json:
              schema:
                type: object
                properties:
                  errno:
                    type: integer
                    example: 100
                  errstr:
                    type: string
                    example: No field tpId
      security:
        - KEY: []
    put:
      tags:
        - internet
      summary: Изменение  ТП Internet пользователю
      operationId: changeUserInternet
      parameters:
        - name: UID
          in: path
          description: UID пользователь
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserInternetChange"
        required: true
      responses:
        200:
          description: Успешно изменено
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: string
                    example: Successfully changed
        400:
          description: Нет id услуги
          content:
            text/json:
              schema:
                type: object
                properties:
                  errno:
                    type: integer
                    example: 102
                  errstr:
                    type: string
                    example: No field id
      security:
        - KEY: []
  /users/{UID}/internet/{ID}:
    get:
      tags:
        - internet
      summary: Информация об интернет услуге пользователя по ID услуги
      operationId: internetInfoUser
      parameters:
        - name: UID
          in: path
          description: UID пользователь
          required: true
          schema:
            type: integer
            format: int64
        - name: ID
          in: path
          description: ID услуги
          required: true
          schema:
            type: integer
            format: int64
      responses:
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
  /users/{UID}/iptv:
    get:
      tags:
        - iptv
      summary: Получить список ТП Iptv пользователя
      description: Возвращает ТП Iptv пользователя
      operationId: getUserIptvByUID
      parameters:
        - name: UID
          in: path
          description: UID пользователя в биллинге
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserIptvList"
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
  /users/{UID}/iptv/{ID}:
    get:
      tags:
        - iptv
      summary: Информация об Iptv услуге пользователя по ID услуги
      operationId: iptvInfoUser
      parameters:
        - name: UID
          in: path
          description: UID пользователь
          required: true
          schema:
            type: integer
            format: int64
        - name: ID
          in: path
          description: ID услуги
          required: true
          schema:
            type: integer
            format: int64
      responses:
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
  /msgs/:
    post:
      tags:
        - msgs
      summary: Добавить сообщение
      operationId: addMsgs
      requestBody:
        description: Параметры, которые нужно указать
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Msgs"
        required: true
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiSuccessAddResponse"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /msgs/{ID}:
    get:
      tags:
        - msgs
      summary: Получить сообщение по ID
      description: Возвращает сообщение
      operationId: getMsgsInfoByID
      parameters:
        - name: ID
          in: path
          description: ID сообщения
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Msgs"
        404:
          description: Сообщение не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
  /msgs/list:
    post:
      tags:
        - msgs
      summary: Получить список сообщений
      operationId: msgsList
      requestBody:
        description: Параметры, по которым можно фильтровать сообщения
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Msgs"
        required: true
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiSuccessAddResponse"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /msgs/{ID}/reply:
    get:
      tags:
        - msgs
      summary: Ответы на сообщение
      operationId: repliesListToMsgs
      parameters:
        - name: ID
          in: path
          description: ID сообщения
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MsgsRepliesList"
      security:
        - KEY: []
    post:
      tags:
        - msgs
      summary: Ответить на сообщение
      operationId: addReplyToMsgs
      parameters:
        - name: ID
          in: path
          description: ID сообщения
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        description: Параметры, которые нужно указать
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MsgsReply"
        required: true
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiSuccessAddResponse"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /msgs/reply/{REPLY_ID}/attachment:
    post:
      tags:
        - msgs
      summary: Прикрепление файла к ответу
      operationId: addAttachmentToReply
      parameters:
        - name: replyId
          in: path
          description: ID ответа на сообщение
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        description: Параметры, которые нужно указать
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MsgsReplyAttachment"
        required: true
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiSuccessAddResponse"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /msgs/chapters:
    get:
      tags:
        - msgs
      summary: Получить список разделов
      operationId: chaptersList
      responses:
        200:
          description: успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MsgsChapter"
      security:
        - KEY: []
  /groups:
    get:
      tags:
        - groups
      summary: Получить группы пользователей
      description: Возвращает группы пользователей
      operationId: getGroupsList
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Groups"
      security:
        - KEY: []
  /tp/{tpID}:
    get:
      tags:
        - tp
      summary: Получить информацию по тарифному плану
      description: Возвращает тарифный план
      operationId: getTpInfo
      parameters:
        - name: tpID
          in: path
          description: tpID тарифного плана
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Tp"
        404:
          description: Тарифный план не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
  /tp/{tpID}/intervals/:
    get:
      tags:
        - tp
      summary: Получить информацию по интервалам ТП
      description: Возвращает интервалы ТП
      operationId: getTpIntervalsInfo
      parameters:
        - name: tpID
          in: path
          description: tpID тарифного плана
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TpIntervals"
        404:
          description: Тарифный план не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
  /districts:
    get:
      tags:
        - districts
      summary: Получить районы
      description: Возвращает список районов
      operationId: getDistricts
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DistrictsArray"
      security:
        - KEY: []
    post:
      tags:
        - districts
      summary: Добавление района
      operationId: addDistrict
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Districts"
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiSuccessAddResponse"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /districts/{ID}:
    get:
      tags:
        - districts
      summary: Получить информацию о районе
      operationId: getDistrictInfo
      parameters:
        - name: ID
          in: path
          description: ID района
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Districts"
      security:
        - KEY: []
    put:
      tags:
        - districts
      summary: Обновить информацию о районе
      operationId: updateDistrict
      parameters:
        - name: ID
          in: path
          description: ID района
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Districts"
        required: true
      responses:
        400:
          description: Invalid ID supplied
          content: {}
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /streets:
    get:
      tags:
        - streets
      summary: Получить улицы
      description: Возвращает список улиц
      operationId: getStreets
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StreetsArray"
      security:
        - KEY: []
    post:
      tags:
        - streets
      summary: Добавление района
      operationId: addStreet
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Streets"
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiSuccessAddResponse"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /streets/{ID}:
    get:
      tags:
        - streets
      summary: Получить информацию о улице
      description: Возвращает улицу
      operationId: getStreetInfo
      parameters:
        - name: ID
          in: path
          description: ID улицы
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Streets"
      security:
        - KEY: []
    put:
      tags:
        - streets
      summary: Обновить информацию о улице
      operationId: updateStreet
      parameters:
        - name: ID
          in: path
          description: ID улицы
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Streets"
        required: true
      responses:
        400:
          description: Invalid ID supplied
          content: {}
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /builds:
    get:
      tags:
        - builds
      summary: Получить дома
      description: Возвращает список домов
      operationId: getBuilds
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/BuildsArray"
      security:
        - KEY: []
    post:
      tags:
        - builds
      summary: Добавление дома
      operationId: addBuild
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Builds"
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiSuccessAddResponse"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /builds/{ID}:
    get:
      tags:
        - builds
      summary: Получить информацию о доме
      description: Возвращает дом
      operationId: getBuildInfo
      parameters:
        - name: ID
          in: path
          description: ID дома
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Builds"
      security:
        - KEY: []
    put:
      tags:
        - builds
      summary: Обновить информацию о доме
      operationId: updateBuild
      parameters:
        - name: ID
          in: path
          description: ID дома
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Builds"
        required: true
      responses:
        400:
          description: Invalid ID supplied
          content: {}
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /payments/types:
    get:
      tags:
        - payments
      summary: Получить список типов оплат
      description: Возвращает список типов оплат
      operationId: getPaymentTypesList
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PaymentTypesArray"
      security:
        - KEY: []
  /payments/users/{UID}:
    get:
      tags:
        - payments
      summary: Получить список оплат пользователя
      description: Возвращает список оплат пользователя
      operationId: getUserPayments
      parameters:
        - name: UID
          in: path
          description: UID пользователя
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserPaymentsArray"
      security:
        - KEY: []
    post:
      tags:
        - payments
      summary: Добавление оплаты пользователю
      operationId: addUserPayment
      parameters:
        - name: UID
          in: path
          description: UID пользователя
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserPaymentAdd"
        required: true
      responses:
        400:
          description: Invalid ID supplied
          content: {}
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /fees/types:
    get:
      tags:
        - fees
      summary: Получить список типов списания
      description: Возвращает список типов списания
      operationId: getFeesTypesList
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FeesTypesArray"
      security:
        - KEY: []
  /fees/users/{UID}:
    get:
      tags:
        - fees
      summary: Получить список списаний пользователя
      description: Возвращает список списаний пользователя
      operationId: getUserFees
      parameters:
        - name: UID
          in: path
          description: UID пользователя
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserFeesArray"
      security:
        - KEY: []
  /fees/users/{UID}/{SUM}:
    post:
      tags:
        - fees
      summary: Добавление списания пользователю
      operationId: addUserFee
      parameters:
        - name: UID
          in: path
          description: UID пользователя
          required: true
          schema:
            type: integer
            format: int64
        - name: SUM
          in: path
          description: Сумма списания
          required: true
          schema:
            type: integer
            format: int64
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserFeeAdd"
        required: true
      responses:
        400:
          description: Invalid ID supplied
          content: {}
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /abon/tariffs:
    get:
      tags:
        - abon
      summary: Получить список ТП
      description: Возвращает список ТП
      operationId: getAbonTps
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbonTpsArray"
      security:
        - KEY: []
    post:
      tags:
        - abon
      summary: Добавление ТП
      operationId: addAbonTp
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AbonAddTp"
        required: true
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiSuccessAddResponse"
      security:
        - KEY: []
      x-codegen-request-body-name: body
  /abon/tariffs/{ID}:
    get:
      tags:
        - abon
      summary: Получить информацию о ТП
      description: Возвращает информацию о ТП
      operationId: getAbonTp
      parameters:
        - name: ID
          in: path
          description: ID ТП
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbonTp"
      security:
        - KEY: []
  /abon/tariffs/{ID}/users/{UID}:
    post:
      tags:
        - abon
      summary: Добавление ТП пользователю
      operationId: addAbonTpToUser
      parameters:
        - name: ID
          in: path
          description: ID ТП
          required: true
          schema:
            type: integer
            format: int64
        - name: UID
          in: path
          description: UID пользователя
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiSuccessAddResponse"
      security:
        - KEY: []
    delete:
      tags:
        - abon
      summary: Удаление ТП пользователя
      description: Удаление ТП пользователя
      operationId: getUserAbonTps
      parameters:
        - name: ID
          in: path
          description: ID ТП
          required: true
          schema:
            type: integer
            format: int64
        - name: UID
          in: path
          description: UID пользователя
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content: {}
      security:
        - KEY: []
  /abon/users:
    get:
      tags:
        - abon
      summary: Получить список пользователей Abon
      description: Возвращает список пользователей Abon
      operationId: getUsersAbon
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AbonUsersArray"
      security:
        - KEY: []
  /online/{UID}:
    get:
      tags:
        - online
      summary: Получить сессии пользователя по UID
      description: Возвращает сессии пользователя
      operationId: getUserSessions
      parameters:
        - name: UID
          in: path
          description: UID пользователя в биллинге
          required: true
          schema:
            type: integer
            format: int64
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OnlineSessionsArray"
        404:
          description: Пользователь не найден
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ApiResponse"
      security:
        - KEY: []
  /version:
    get:
      tags:
        - version
      summary: Получить версии биллинга и API
      operationId: getVersion
      responses:
        200:
          description: Успешное выполнение
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Version"
      security:
        - KEY: []
components:
  schemas:
    User:
      type: object
      properties:
        login:
          type: string
          example: testUser
        password:
          type: string
          example: "123456"
        createBill:
          type: integer
    UserPi:
      type: object
      properties:
        fio:
          type: string
          description: Фамилия
          example: Петренко
        fio2:
          type: string
          description: Имя
          example: Иван
        fio3:
          type: string
          description: Отчество
          example: Петрович
        comments:
          type: string
        email:
          type: string
        phone:
          type: string
    UserContactAdd:
      type: object
      properties:
        value:
          type: string
          description: Контакт - email, телефон
          example: 1234567889
        typeId:
          type: integer
          description: Вид контакта
          example: 2
        priority:
          type: integer
          description: Приоритет
          example: 1
    UserCreated:
      type: object
      properties:
        preAdd:
          type: integer
          example: 1
        total:
          type: integer
          example: 0
        insertId:
          type: string
          example: "17"
        uid:
          type: string
          example: "32"
        affected:
          type: integer
          example: 1
        login:
          type: string
          example: testUser
    UserInternetList:
      type: array
      items:
        $ref: "#/components/schemas/UserInternetList_inner"
    UserInternet:
      type: object
      properties:
        tpId:
          type: integer
          example: 41
        cid:
          type: string
          example: 14:11:11:11:11:c1
        activate:
          type: string
          example: 0000-00-00
        expire:
          type: string
          example: 0000-00-00
    UserInternetActivate:
      type: object
      properties:
        tpId:
          type: integer
          example: 41
        status:
          type: integer
          example: 1
          default: 0
        cid:
          type: string
          example: 14:11:11:11:11:c1
        serviceExpire:
          type: string
          example: 0000-00-00
          default: 0000-00-00
        serviceActivate:
          type: string
          example: 0000-00-00
          default: 0000-00-00
        statusDays:
          type: string
          default: ""
        personalTp:
          type: integer
          default: 0
        comments:
          type: string
          example: Абонент попросил 2 услугу
          default: ""
        staticIpPool:
          type: string
          default: ""
        port:
          type: integer
          default: 0
        nasId:
          type: integer
          default: 0
        serverVlan:
          type: string
          default: ""
        vlan:
          type: integer
          default: 0
        ipv6Mask:
          type: integer
          default: 32
        ivp6:
          type: string
          default: "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
        ipv6Prefix:
          type: integer
        ipv6PrefixMask:
          type: integer
          default: 32
        staticIpv6Pool:
          type: string
          default: ""
    UserInternetChange:
      type: object
      properties:
        id:
          type: integer
          example: 41
        status:
          type: integer
          example: 1
          default: 0
        cid:
          type: string
          example: 14:11:11:11:11:c1
        serviceExpire:
          type: string
          example: 0000-00-00
          default: 0000-00-00
        serviceActivate:
          type: string
          example: 0000-00-00
          default: 0000-00-00
        statusDays:
          type: string
          default: ""
        personalTp:
          type: integer
          default: 0
        comments:
          type: string
          example: Абонент попросил 2 услугу
          default: ""
        staticIpPool:
          type: string
          default: ""
        port:
          type: integer
          default: 0
        nasId:
          type: integer
          default: 0
        serverVlan:
          type: string
          default: ""
        vlan:
          type: integer
          default: 0
        ipv6Mask:
          type: integer
          default: 32
        ivp6:
          type: string
          default: "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
        ipv6Prefix:
          type: integer
        ipv6PrefixMask:
          type: integer
          default: 32
        staticIpv6Pool:
          type: string
          default: ""
    UserIptvList:
      type: array
      items:
        $ref: "#/components/schemas/UserIptvList_inner"
    Contacts:
      type: object
      properties:
        value:
          type: string
          example: test@gmail.com
        type:
          type: string
          description: _SHOW - отобразить поле
          example: _SHOW
        typeName:
          type: string
          example: _SHOW
    ContactsArray:
      type: array
      items:
        $ref: "#/components/schemas/ContactsArray_inner"
    Tp:
      type: object
      properties:
        id:
          type: integer
          example: 2
        tpId:
          type: integer
          example: 83
        dayFee:
          type: integer
        monthFee:
          type: integer
        module:
          type: string
          example: Internet
        changePrice:
          type: integer
        activPrice:
          type: integer
        serviceId:
          type: integer
        status:
          type: integer
    TpIntervals:
      type: array
      items:
        $ref: "#/components/schemas/TpIntervals_inner"
    Groups:
      type: array
      items:
        $ref: "#/components/schemas/Groups_inner"
    Msgs:
      type: object
      properties:
        uid:
          type: integer
          example: 11135
        chapter:
          type: integer
          example: 2
        message:
          type: string
          example: Test message
        state:
          type: integer
          example: 0
        subject:
          type: string
          example: Message subject
        priority:
          type: integer
          example: 2
    MsgsReply:
      type: object
      properties:
        aid:
          type: integer
          example: 2
        replyText:
          type: string
          example: Reply text
    MsgsRepliesList:
      type: array
      items:
        $ref: "#/components/schemas/MsgsRepliesList_inner"
    MsgsReplyAttachment:
      type: object
      properties:
        filename:
          type: string
          example: Test.txt
        filesize:
          type: integer
          example: 12
        content:
          type: string
          example: "  Test content"
        contentType:
          type: string
          example: text/plain
        messageType:
          type: integer
          example: 1
    MsgsChapter:
      type: array
      items:
        $ref: "#/components/schemas/MsgsChapter_inner"
    Districts:
      type: object
      properties:
        name:
          type: string
          example: пос.Зуевка
        city:
          type: string
          example: Харцызск
        zip:
          type: string
    DistrictsArray:
      type: array
      items:
        $ref: "#/components/schemas/DistrictsArray_inner"
    Streets:
      type: object
      properties:
        name:
          type: string
          example: ул.Цэемовская
        districtId:
          type: integer
          example: 2
        secondName:
          type: string
    StreetsArray:
      type: array
      items:
        $ref: "#/components/schemas/StreetsArray_inner"
    Builds:
      type: object
      properties:
        streetId:
          type: integer
          example: 2
        number:
          type: string
    BuildsArray:
      type: array
      items:
        $ref: "#/components/schemas/BuildsArray_inner"
    PaymentTypesArray:
      type: array
      items:
        $ref: "#/components/schemas/PaymentTypesArray_inner"
    UserPaymentsArray:
      type: array
      items:
        $ref: "#/components/schemas/UserPaymentsArray_inner"
    UserPaymentAdd:
      type: object
      properties:
        sum:
          type: integer
          example: 500
        method:
          type: integer
          example: 6
        billId:
          type: integer
          example: 10
    FeesTypesArray:
      type: array
      items:
        $ref: "#/components/schemas/FeesTypesArray_inner"
    UserFeesArray:
      type: array
      items:
        $ref: "#/components/schemas/UserFeesArray_inner"
    UserFeeAdd:
      type: object
      properties:
        method:
          type: integer
          example: 6
        billId:
          type: integer
          example: 10
        describe:
          type: string
    AbonTpsArray:
      type: array
      items:
        $ref: "#/components/schemas/AbonTpsArray_inner"
    AbonAddTp:
      type: object
      properties:
        price:
          type: integer
          example: 100
        period:
          type: integer
          example: 1
        name:
          type: string
          example: Test abon TP
        description:
          type: string
          example: Test description
    AbonTp:
      type: object
      properties:
        id:
          type: integer
          example: 1
        name:
          type: string
          example: Test abon TP
        price:
          type: integer
          example: 100
        userPortal:
          type: integer
          example: 0
        userCount:
          type: integer
          example: 10
        discount:
          type: integer
          example: 0
        paymentType:
          type: integer
          example: 0
        periodAlignment:
          type: integer
          example: 1
        nextAbonDate:
          type: string
          example: 2021-10-01
        description:
          type: string
    AbonUsersArray:
      type: array
      items:
        $ref: "#/components/schemas/AbonUsersArray_inner"
    OnlineSessionsArray:
      type: array
      items:
        $ref: "#/components/schemas/OnlineSessionsArray_inner"
    Version:
      type: object
      properties:
        version:
          type: string
          example: 0.91.0
        apiVersion:
          type: string
          example: "0.01"
        billing:
          type: string
          example: Abills
    ApiResponse:
      type: object
      properties:
        errstr:
          type: string
          example: ERROR_NOT_EXIST
        errno:
          type: integer
          example: 2
    ApiSuccessAddResponse:
      type: object
      properties:
        total:
          type: integer
          example: 0
        affected:
          type: integer
          example: 1
        insertId:
          type: integer
          example: 37
    UserLogin:
      type: object
      properties:
        login:
          type: string
          example: testuser
        password:
          type: string
          example: testuser
    inline_response_200:
      type: object
      properties:
        login:
          type: string
          example: testuser
        sid:
          type: string
          example: sW44EJZLyWDMeXAV
        uid:
          type: string
          example: "5690"
    UserInternetList_inner:
      type: object
      properties:
        id:
          type: integer
          example: 2
        tpName:
          type: string
          example: Премиум до 100м
        tpId:
          type: integer
          example: 41
        internetStatus:
          type: integer
          example: 0
        cid:
          type: string
          example: 14:11:11:11:11:c1
        monthFee:
          type: integer
          example: 250
        dayFee:
          type: integer
          example: 0
    UserIptvList_inner:
      type: object
      properties:
        id:
          type: integer
          example: 2
        tpName:
          type: string
          example: Премиум Iptvportal
        tpId:
          type: integer
          example: 41
        serviceStatus:
          type: integer
          example: 0
        monthFee:
          type: integer
          example: 250
        dayFee:
          type: integer
          example: 0
        serviceId:
          type: integer
          example: 0
        subscribeId:
          type: integer
          example: 0
        filterId:
          type: integer
          example: 0
    ContactsArray_inner:
      type: object
      properties:
        id:
          type: integer
          example: 1
        uid:
          type: string
          example: "132"
        value:
          type: string
          example: test@gmail.com
        typeName:
          type: string
          example: Email
    TpIntervals_inner:
      type: object
      properties:
        begin:
          type: string
          example: 00:00:00
        end:
          type: string
          example: 23:59:59
        id:
          type: integer
          example: 2
        tarif:
          type: string
        trafficClasses:
          type: string
        day:
          type: integer
    Groups_inner:
      type: object
      properties:
        id:
          type: integer
          example: 53
        name:
          type: string
          example: Должники
        descr:
          type: string
        domainId:
          type: integer
        disableChgTp:
          type: integer
          example: 1
    MsgsRepliesList_inner:
      type: object
      properties:
        id:
          type: integer
          example: 2
        text:
          type: string
          example: Reply text
        aid:
          type: integer
          example: 2
        admin:
          type: string
          example: abills
        datetime:
          type: string
          example: 2021-08-09 13:25:41
        mainMsg:
          type: integer
          example: 40
    MsgsChapter_inner:
      type: object
      properties:
        id:
          type: integer
          example: 2
        name:
          type: string
          example: Первый раздел
        responsible:
          type: integer
          example: 1
        innerChapter:
          type: integer
          example: 0
        autoclose:
          type: integer
          example: 50
    DistrictsArray_inner:
      type: object
      properties:
        id:
          type: integer
          example: 10
        name:
          type: string
          example: пос.Зуевка
        city:
          type: string
          example: Харцызск
        zip:
          type: string
        streetCount:
          type: integer
          example: 31
    StreetsArray_inner:
      type: object
      properties:
        id:
          type: integer
          example: 10
        streetName:
          type: string
          example: ул.Цэемовская
        districtId:
          type: integer
          example: 2
        buildCount:
          type: integer
          example: 31
    BuildsArray_inner:
      type: object
      properties:
        id:
          type: integer
          example: 10
        streetName:
          type: string
          example: ул.Цэемовская
        streetId:
          type: integer
          example: 2
        number:
          type: string
          example: "31"
    PaymentTypesArray_inner:
      type: object
      properties:
        id:
          type: integer
          example: 10
        name:
          type: string
          example: Credit card
        feesType:
          type: integer
          example: 0
        color:
          type: string
    UserPaymentsArray_inner:
      type: object
      properties:
        id:
          type: integer
          example: 10
        sum:
          type: integer
          example: 500
        regDate:
          type: string
          example: 2021-07-02 07:46:01
        method:
          type: integer
          example: 6
        innerDescribe:
          type: string
    FeesTypesArray_inner:
      type: object
      properties:
        id:
          type: integer
          example: 10
        name:
          type: string
          example: Пеня
        sum:
          type: integer
          example: 500
        defaultDescribe:
          type: string
    UserFeesArray_inner:
      type: object
      properties:
        id:
          type: integer
          example: 10
        sum:
          type: integer
          example: 500
        regDate:
          type: string
          example: 2021-07-02 07:46:01
        method:
          type: integer
          example: 2
        dsc:
          type: string
          example: "Internet: М/А Премиум до 100м (41) - Распределение абонплаты"
    AbonTpsArray_inner:
      type: object
      properties:
        tpId:
          type: integer
          example: 1
        name:
          type: string
          example: Test abon TP
        price:
          type: integer
          example: 100
        userPortal:
          type: integer
          example: 0
        userCount:
          type: integer
          example: 10
        discount:
          type: integer
          example: 0
        paymentType:
          type: integer
          example: 0
        periodAlignment:
          type: integer
          example: 1
        nextAbonDate:
          type: string
          example: 2021-10-01
        description:
          type: string
    AbonUsersArray_inner:
      type: object
      properties:
        tpId:
          type: integer
          example: 1
        tpName:
          type: string
          example: Test abon TP
        price:
          type: integer
          example: 100
        serviceCount:
          type: integer
          example: 1
        date:
          type: string
          example: 2021-08-11
        nextAbon:
          type: string
          example: 2021-09-01
        uid:
          type: integer
          example: 11135
        login:
          type: string
          example: "3433"
    OnlineSessionsArray_inner:
      type: object
      properties:
        clientIpNum:
          type: integer
          example: 3232238092
        nasId:
          type: integer
          example: 12
        duration:
          type: string
          example: 838:59:59
        status:
          type: integer
          example: 10
        userName:
          type: string
          example: userName
        clientIp:
          type: string
          example: 192.168.10.12
        acctSessionId:
          type: string
          example: Akie6VpiYU
    OnuList:
      type: array
      items:
        type: object
        properties:
          id:
            type: number
            example: 3
          dhcpPort:
            type: string
            example: 0/01/3/002
          nasId:
            type: number
            example: 17
          onuId:
            type: number
            example: 2
          onuSnmpId:
            type: number
            example: 268501760
          ponType:
            type: string
            example: gpon
          snmpId:
            type: number
            example: 268501760
          vlan:
            type: number
            example: 0
    NasListExtra:
      type: array
      items:
        type: object
        properties:
          disable:
            type: integer
            format: int32
            example: 0
          id:
            type: integer
            format: int32
            example: 200
          mac:
            type: string
            example: B6:E6:3D:BD:13:F3
          modelId:
            type: integer
            format: int32
            example: 200
          nasAlive:
            type: integer
            format: int32
            example: 0
          nasId:
            type: integer
            format: int32
            example: 3
          nasIp:
            type: string
            example: 10.1.0.15
          nasType:
            type: string
            example: eltex
          vendorId:
            type: integer
            format: int32
            example: 1
          vendorName:
            type: string
            example: Cisco
    OltList:
      type: array
      items:
        type: object
        properties:
          id:
            type: number
            example: 3
          marking:
            type: string
            example: example
          datetime:
            type: string
            example: 2020-12-01 12:14:12
          serial:
            type: string
            example: example
    NasGroupsList:
      type: array
      items:
        type: object
        properties:
          comments:
            type: string
            example: Hello world
          disable:
            type: number
            example: 0
          gid:
            type: number
            example: 26
          id:
            type: number
            example: 26
          name:
            type: string
            example: test api
    NasList:
      type: array
      items:
        type: object
        properties:
          authType:
            type: number
            example: 0
          descr:
            type: string
            example: 000
          extAcct:
            type: number
            example: 0
          id:
            type: number
            example: 3
          mac:
            type: string
            example: B6:E6:3D:BD:13:F3
          nasAlive:
            type: number
            example: 0
          nasDisable:
            type: number
            example: 0
          nasGroupName:
            type: string
            example: ""
          nasId:
            type: number
            example: 3
          nasIdentifier:
            type: string
            example: ""
          nasIp:
            type: string
            example: 10.1.0.15
          nasMngIpPort:
            type: string
            example: ":::"
          nasMngPassword:
            type: string
            example: ""
          nasMngUser:
            type: string
            example: ""
          nasName:
            type: string
            example: Asterisk
          nasRadPairs:
            type: string
            example: ERX-Service-Activate:1+='svc-global-pppoe(15242880
    UserList:
      type: array
      items:
        type: object
        properties:
          deposit:
            type: number
            example: 36579.21
          fio:
            type: string
            example: Иванов Иван
          uid:
            type: integer
            example: 1
          gid:
            type: integer
            example: 1
          login:
            type: string
            example: testuser
          billId:
            type: integer
            example: 12
    NasIpPools:
      type: array
      items:
        type: object
        properties:
          activeNasId:
            type: number
            example: 0
          comments:
            type: string
            example: ""
          dns:
            type: string
            example: 8.8.8.89.9.9.9
          firstIp:
            type: string
            example: 192.168.5.2
          gateway:
            type: number
            example: 3232236801
          guest:
            type: number
            example: 0
          id:
            type: number
            example: 61
          ip:
            type: number
            example: 3232236802
          ipCount:
            type: number
            example: 21
          ipSkip:
            type: string
            example: 192.168.5.13
          ipv6Mask:
            type: number
            example: 64
          ipv6Pd:
            type: string
            example: "2001:db8::"
          ipv6PdMask:
            type: number
            example: 64
          ipv6PdTemp:
            type: string
            example:
          ipv6Prefix:
            type: string
            example: "2001:2:1:a::"
          ipv6Temp:
            type: string
            example:
          lastIp:
            type: string
            example: 192.168.5.22
          lastIpNum:
            type: number
            example: 3232236822
          name:
            type: string
            example: test123
          nasId:
            type: string
            example:
          nasName:
            type: string
            example:
          netmask:
            type: number
            example: 4294967280
          nextPool:
            type: number
            example: 0
          poolName:
            type: string
            example: test123
          priority:
            type: number
            example: 0
          speed:
            type: number
            example: 0
          static:
            type: number
            example: 0
          vlan:
            type: number
            example: 0
    UreportsUserList:
      type: array
      items:
        type: object
        properties:
          destination: 
            type: string
            example: ''
          reportsCount: 
            type: number
            example: 0
          status: 
            type: number
            example: 0
          tpId: 
            type: number
            example: 31
          tpName: 
            type: string
            example: test
          type: 
            type: number
            example: 1
          uid: 
            type: number
            example: 6922
    NasTypesList:
      type: array
      items:
        type: object
        properties:
          id:
            type: string
            example: cisco_isg
          name:
            type: string
            example: Cisco ISG
    NasRequest:
      type: object
      properties:
        nasName:
          type: number
          example: Asterik
        ip:
          type: string
          example: 0.0.0.0
        nasIdentifier:
          type: string
          example: openbts_1111
        nasDescribe:
          type: string
          example: test nas
        nasType:
          type: string
          example: asterisk
        nasAuthType:
          type: number
          example: 1
        nasMngIpPort:
          type: string
          example: 10.11.0.1:3799:22
        nasMngUser:
          type: string
          example: abills
        nasMngPassword:
          type: string
          example: test
        nasRadPairs:
          type: string
          example: ERX-Service-Activate:1+='svc-global-pppoe(15242880, 15242880)',
        nasAlive:
          type: number
          example: 300
        nasDisable:
          type: number
          example: 0
        nasExtAcct:
          type: number
          example: 0
        addressBuild:
          type: string
          example: 10
        addressFlat:
          type: string
          example: 1
        addressStreet:
          type: string
          example: 2
        locationId:
          type: number
          example: 1
        floor:
          type: number
          example: 1
        zip:
          type: string
          example: ""
        city:
          type: string
          example: Lviv
        country:
          type: number
          example: 1
        gid:
          type: number
          example: 2
        mac:
          type: string
          example: B6:E6:3D:BD:13:F3
        changed:
          type: string
          example: 2022-06-16 16:19:18
        extrance:
          type: string
          example: ""
        zabbixHostid:
          type: integer
          example: 0
    NasChangeResponse:
      type: object
      properties:
        addressBuild:
          type: string
          example: 3
        addressFlat:
          type: string
          example: 2
        addressStreet:
          type: string
          example: 1
        affected:
          type: integer
          example: 0
        alive:
          type: integer
          example: 0
        authType:
          type: integer
          example: 0
        changed:
          type: string
          example: 2022-08-31 21:43:18
        changesLog:
          type: string
          example: NAS_ID:250 NAS_TYPE accel_ppp->asterik;NAS_NAME joao->tester;IP 3373547590->201.20.64.70
        city:
          type: string
          example: ""
        country:
          type: integer
          example: ""
        descr:
          type: string
          example: test
        disable:
          type: integer
          example: 0
        domainId:
          type: integer
          example: 0
        entrance:
          type: string
          example: ""
        extAcct:
          type: integer
          example: 0
        floor:
          type: string
          example: 1
        gid:
          type: integer
          example: 0
        id:
          type: integer
          example: 250
        ip:
          type: integer
          example: 3373547590
        locationId:
          type: integer
          example: 0
        mac:
          type: string
          example: ""
        mngHostPort:
          type: string
          example: "::::"
        mngPassword:
          type: string
          example: ""
        mngUser:
          type: string
          example: ""
        name:
          type: string
          example: tester
        nasAlive:
          type: integer
          example: 0
        nasAuthType:
          type: integer
          example: 0
        nasDescribe:
          type: string
          example: test nas
        nasDisable:
          type: integer
          example: 0
        nasExtAcct:
          type: integer
          format: int32
          example: 0
        nasId:
          type: integer
          example: 250
        nasIdentifier:
          type: string
          example: openbts_1111
        nasIp:
          type: string
          example: 201.20.64.70
        nasMngIpPort:
          type: string
          example: ":::"
        nasMngPassword:
          type: string
          example: ""
        nasMngUser:
          type: string
          example: ""
        nasName:
          type: string
          example: tester
        nasRadPairs:
          type: string
          example: ERX-Service-Activate:1+='svc-global-pppoe(15242880, 15242880)',
        nasType:
          type: string
          example: asterik
        radPairs:
          type: string
          example: ERX-Service-Activate:1+='svc-global-pppoe(15242880, 15242880)',
        total:
          type: integer
          example: 1
        zabbixHostid:
          type: integer
          example: 0
        zip:
          type: string
          example: ""
    UreportsUserRequest:
      type: object
      properties:
        tpId: 
          type: number
          example: 1
        type: 
          type: string
          example: '10, 2'
        status: 
          type: number
          example: 0
        destination1:
          type: number
          example: 1
        destination2:
          type: number
          example: 1
        destinationX:
          type: number
          example: 1
        reports:
          type: object
          properties:
            value1:
              type: number
              example: 1
            value2:
              type: number
              example: 1
            valueX:
              type: number
              example: 1
    UreportsAddUserResponse:
      type: object
      properties:
        userAddResult:
          type: string
          example: OK
        reportsAddResult:
          type: string
          example: OK
    UreportsChangeUserResponse:
      type: object
      properties:
        userChangeResult:
          type: string
          example: OK
        reportsAddResult:
          type: string
          example: OK
    NasGroupAddResponse200:
      type: object
      properties:
        affected:
          type: integer
          format: int32
          example: 1
        insertId:
          type: integer
          format: int32
          example: 253
        total:
          type: integer
          format: int32
          example: 0
    NasAddResponse200:
      type: object
      properties:
        affected:
          type: integer
          format: int32
          example: 1
        insertId:
          type: integer
          format: int32
          example: 253
        nasId:
          type: integer
          format: int32
          example: 253
        total:
          type: integer
          format: int32
          example: 0
    NasGroupChangeResponse200:
      type: object
      properties:
        affected:
          type: number
          example: 0
        changesLog:
          type: string
          example: "NAS_GROUP_ID: NAME test ap->test api1;COMMENTS Hello world->Hello world1"
        comments:
          type: string
          example: Hello world1
        default:
          type: number
          example: 0
        disable:
          type: number
          example: 0
        domainId:
          type: number
          example: 0
        id:
          type: number
          example: 28
        mainPage:
          type: string
          example:
        name:
          type: string
          example: test api1
        total:
          type: number
          example: 1
    NasAddResponse400:
      type: object
      properties:
        affected:
          type: string
          example:
        nasId:
          type: string
          example:
        total:
          type: integer
          format: int32
          example: 0
        errno:
          type: integer
          format: int32
          example: 7
        errstr:
          type: string
          example: ERROR_DUPLICATE
    InternetWarnings:
      type: object
      properties:
        messageType:
          type: string
          example: success
        warning:
          type: string
          example: следующее списание через 7 дней
        daysToFee:
          type: string
          example: "2"
        sum:
          type: integer
          example: 150
        abonDate:
          type: string
          example: 2021-10-01
    UsedPorts:
      type: object
      properties:
        5c:F4:Ab:C6:Db:De:
          type: array
          items:
            type: object
            properties:
              nasMngPassword:
                type: string
                example: ""
              authType:
                type: integer
                example: 1
              nasName:
                type: string
                example: zyxel_lab
              nasDisable:
                type: integer
                example: 0
              id:
                type: integer
                example: 100
              ip:
                type: string
                example: "172.17.0.2"
              disable:
                type: integer
                example: 0
              nasIp:
                type: string
                example: "172.17.0.2"
              nasId:
                type: number
                example: 100
              nasAlive:
                type: number
                example: 0
              mac:
                type: string
                example: 5c:f4:ab:c6:db:de
              nasType:
                type: string
                example: dhcp
              nasRadPairs:
                type: string
                example: ""
  securitySchemes:
    KEY:
      type: apiKey
      name: KEY
      in: header