openapi: 3.0.1
info:
  title: APIMon
  version: 1.0.0
servers:
  - url: http://<IP_адрес_кассы>:<порт_кассы>/api/v1/
tags:
  - name: Cash_status
    description: Статус данных кассы
    externalDocs:
      description: Find out more
      url: http://swagger.io

paths:
  /Cash_status:
    get:
      tags:
        - Cash_status
      summary: Метод запроса статусов кассового узла
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseTagsAll'
              examples: 
                Is_success TRUE:
                  value:
                    tags:
                      cash:
                        descr_cash:
                          num_cash: 9999
                          type: sco
                          name_cash: Гермес9999
                          guid_cash: 999001
                          cpu: intel(R) Ctltron(R) CPU J1900@1.99Ghz
                          ram: 1.68 / 3.85 GB
                          hdd: 26.00 / 117.00 GB
                          ip: 10.236.11.37
                          dhcp: false
                          dns: 10.228.1.8, 192.168.0.12
                          cur_version: 1.49.11
                          cur_build: build_1.49.11
                          first_build: build_1.38.3
                          first_time_change: 2023-11-20 18:45:58
                          last_time_change: 2024-09-04 19:24:01.087
                          inst_image: vga=789 new-quartz acpi=force reboot=acpi
                        status_cash:
                          lic: 2100.01.31
                          link_srv: true
                          last_receipt_time: 2024-09-04 19:24:01.087
                          downtime: 2024-09-04 19:24:01.087
                      kkt:
                        descr_kkt:
                          model_kkt: "СП802-Ф"
                          fw_kkt: 010.4.746 (006)
                          reg_num_fn: 1111111111031053
                        status_kkt:
                          ofd:
                            ofd_name: ОФД Таском
                            ofd_link: true
                            ofd: 7
                          paper: false
                          oism:
                            oism_name: ОИСМ Таском
                            oism_link: true
                      scale:
                        descr_scale:
                        status_scale:
                          weight: "00.000"
                      hardware: 
                        descr_hardware:
                          diskType: "ssd"
                          diskVolume: "842,00 GB / 982,00 GB"
                          pinPadModel: "Termina1"
                          pinPadVersion: "1.2"
                          sbpilotVersion: "1.2"
                          lastReboot: "2025-05-07 09:30"
                          lastMintReboot: "2025-05-07 09:30"
                        status_hardware:
                          link: true
                      trueApi: 
                        descr_trueApi:
                          commonModuleStatus: "доступен"
                          localModuleStatus: "доступен"
                          cdnStatuses: []
                        status_trueApi:
                          link: true
                      ext_systems:
                        vision:
                          descr_vision:
                          status_vision:
                            link: true
                        loya:
                          descr_loya:
                          status_loya:
                            link: true
                      user:
                        descr_user:
                          user_role_id: 10
                        status_user:
                    error:
                    is_success: true
                Is_success FALSE:
                  value:
                    error:
                      code: 333
                      descripton: Текстовое описание ошибки.
                    is_success: false

components:
  schemas:
    ResponseTagsAll:
      type: object
      description: Описание структуры ответа.
      properties:
        tags:
          type: object
          description: Блок содержащий в себе все передаваемые теги с данными.
          properties: 
            cash:
              $ref: '#/components/schemas/cash'
            kkt:
              $ref: '#/components/schemas/kkt'
            scale:
              $ref: '#/components/schemas/scale'
            vision:
              $ref: '#/components/schemas/vision'
            hardware:
              $ref: '#/components/schemas/hardware'
            trueApi:
              $ref: '#/components/schemas/trueApi'
            user:
              $ref: '#/components/schemas/user'
        error:
          type: string
          description: Блок с ошибкой. Если ошибок нет то передается false, если есть ошибка, то объект с данными.
          example: false
    cash:
      type: object
      properties:
        descr_cash:
          type: object
          properties: 
            num_cash:
              type: string
              example: 9999
              description: Номер кассы
            type:
              type: string
              example: sco
              description: Тип кассы -КСО, касса
            name_cash:
              type: string
              example: Гермес9999
              description: Наименование кассы
            guid_cash:
              type: string
              example: 999001
              description: Уникальный идентификатор кассы
            ram:
              type: string
              example: "1.68 / 3.85 GB"
              description: Используемый объем/Полный объем оперативной памяти
            cpu:
              type: string
              example: "intel(R) Ctltron(R) CPU J1900@1.99Ghz"
              description: Наименование/модель процессора/тактовая частота
            hdd:
              type: string
              example: "26.00 / 117.00 GB"
              description: Используемый объем/Полный объем HDD
            ip:
              type: string
              example: "10.236.11.37"
              description: IP Адрес кассового узла
            dhcp:
              type: boolean
              example: true/false
              description: true - включено динамическое получение сетевого адреса, false - включено статическое получение адреса.
            dns:
              type: string
              example: "10.228.1.8, 192.168.0.12"
              description: Прописанные или полученные по DHCP DNS адреса
            cur_version:
              type: string
              example: "1.49.11"
              description: Текущая версия ПО
            cur_build:
              type: string
              example: "build_1.49.11"
              description: Текущий номер сборки
            first_build:
              type: string
              example: "build_1.38.3"
              description: Первый номер сборки
            first_time_change:
              type: string
              example: 2023-11-20T18:45:58
              description: Время первого изменения
            last_time_change:
              type: string
              example: 2024-09-04T19:24:01.087
              description: Время последнего изменения
            inst_image:
              type: string
              example: vga=789 new-quartz acpi=force reboot=acpi
              description: Установленный образ
        status_cash:
          type: object
          properties: 
            lic:
              type: string
              example: "2100.01.31"
              description: Дата окончания действия лицензии.
            link_srv:
              type: boolean
              example: true
              description: Связь/обмен между кассой и сервером.
            last_receipt_time:
              type: string
              example:
              description: Время последней активности. Дата и время последней активности в открытом чеке (открытие чека или время добавления последнего товара в чек).
            downtime:
              type: string
              example:
              description: Время простоя кассы. Дата и время закрытия последнего чека.
    kkt:
      type: object
      description: Блок тег в котором перечислены все статусы сенсоров ККТ
      properties:
        descr_kkt:
          type: object
          description: Блок в котором перечислены сенсоры описывающие подключенный ККТ
          properties:
            model_kkt:
              type: string
              example: "СП802-Ф"
              description: Модель ККТ подключенного к кассе
            fw_kkt:
              type: string
              example: "010.4.746 (006)"
              description: Версия прошивки ККТ
            reg_num_fn:
              type: string
              example: "1111111111031053"
              description: Регистрационный номер ФН
        status_kkt:
          type: object
          properties:
            ofd:
              type: object
              description: Количество не отправленных чеков в ОФД.
              properties:
                ofd_name:
                  type: string
                  description: Наименование подключенного ОФД.
                  example: ОФД Таском
                ofd_link:
                  type: boolean
                  description: Связь с сервисом ОФД. true-Онлайн, false-Офлайн.
                  example: true 
                ofd:
                  type: string
                  description: Количество не отправленных чеков в ОФД. 0=нет неотправленных чеков.
                  example: 7
            oism:
              type: object
              properties:
                oism_name:
                  type: string
                  description: Наименование подключенного ОИСМ.
                  example: ОИСМ Таском
                oism_link:
                  type: boolean
                  description: Связь с сервисом ОИСМ. true-Онлайн, false-Офлайн.
                  example: true
            paper:
              type: boolean
              description: Бумага в ККТ. Запрос наличия бумаги в ККТ. true-бумага есть, false-бумага есть.
              example: true
    scale:
      type: object
      description: Блок с данными о подключенных прикассовых весах к кассе.
      properties:
        descr_scale:
          type: object
          description: Блок с описанием подлюченных весов.
          properties:
            model_scale:
              type: string
              example: DP Fox
              description: Наименование подключенных весов к кассе. Берется из конфига.
        status_scale:
          type: object
          description: Блок с данными о статусах весов.
          properties:
            weight:
              type: string
              example: 00,000 
    vision:
      type: object
      description: Блок с данными о статусах системы Vision
      properties:
        descr_vision:
          type: object
          properties:
            fw_camagent:
              type: string
              example: "1.2.3"
              description: Версия установленного камераагента на кассе. Заложено на будущее, пока отправляем null
        status_vision:
          type: object
          properties:
            link:
              type: boolean
              example: true
              description: Связь с Vision. Проверка наличия связи кассы и Vision.
    hardware:
      type: object
      description: Системная информация
      properties:
        diskType:
          type: string
          example: "ssd"
          description: Тип установленного накопителя.
        diskVolume:
          type: string
          example: "842,00 GB / 982,00 GB"
          description: Объем накопителя.
        pinPadModel:
          type: string
          example: "Termina1"
          description: Модель терминала.
        pinPadVersion:
          type: string
          example: "1.2"
          description: Версия терминала.
        sbpilotVersion:
          type: string
          example: "1.2"
          description: Версия sbpilot.
        lastReboot:
          type: string
          example: "2025-05-07 09:30"
          description: Дата и время последней перезагрузки.
        lastMintReboot:
          type: string
          example: "2025-05-07 09:30"
          description: Дата и время последней перезагрузки кассы.
    cdn:
      type: object
      description: Статус площадки Честный знак.
      properties:
        name:
          type: string
          example: "cdn03.crpt.ru"
          description: Url площадки.
        status:
          type: string
          example: "доступен"
          description: Статус площадки.
    trueApi:
      type: object
      description: Модули честного знака.
      properties:
        commonModuleStatus:
          type: string
          example: "доступен"
          description: Статус общего модуля.
        localModuleStatus:
          type: string
          example: "доступен"
          description: Статус локального модуля.
        cdnStatuses:
          type: array
          items:
            $ref: '#/components/schemas/cdn'
    user:
      type: object
      properties:
        descr_user:
          type: object
          properties:
            user_role_id:
              type: integer
              example: 10
              description: ID текущего  пользователя. 
        status_user:
          type: object
          properties:
            user:
              type: string
              example:
              description: Заложено на будущее, пока отправляем null
    Is_success FALSE:
      type: object
      description: Блок с ошибкой. Если ошибок нет то передается false, если есть ошибка, то объект с данными.
      properties:
        error:
          type: object
          description: Блок с ошибкой. Если ошибок нет то передается false, если есть ошибка, то объект с данными.
          properties:
            code:
              type: integer
              example: 333
              description: Код ошибки
            descripton:
              type: string
              description: Текстовое описание ошибки.
        is_success:
          type: boolean
          description:
          example: false 
    Is_success TRUE:
      type: object
      description: Блок с ошибкой. Если ошибок нет то передается false, если есть ошибка, то объект с данными.
      properties:
        error:
          type: string
          description: Блок с ошибкой. Если ошибок нет то передается false, если есть ошибка, то объект с данными.
          example: null
        is_success:
          type: boolean
          description: 
          example: true