openapi: 3.0.3
info:
  title: subscription
  version: 1.0.1776938023255
  description: Сервис subscription
  license:
    name: CC BY-NC-ND 4.0
    url: https://gitlab.infra.rtkit.dev/openapi/key/raw/main/LICENCE.md
tags:
  - name: offer(auth)
    description: Методы offer. Требуют авторизацию. Доступны из интернета
  - name: plan(auth)
    description: Методы plan. Требуют авторизацию. Доступны из интернета
  - name: privilege(auth)
    description: Методы privilege. Требуют авторизацию. Доступны из интернета
  - name: service(auth)
    description: Методы service. Требуют авторизацию. Доступны из интернета
  - name: subscription(auth)
    description: Методы subscription. Требуют авторизацию. Доступны из интернета
  - name: system(public)
    description: Методы system. Не требуют авторизацию. Доступны из интернета
paths:
  /subscription/api/v1/offer/count:
    get:
      summary: >-
        Метод получения количества коммерческих возможностей.

        Метод доступен для: admin, mrf, master, external_seller, ltp_first, owner, employee, service, application(subscription:read или subscription:edit)
      operationId: OfferService_GetOfferCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetOfferCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetOfferCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetOfferCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.types
          description: |-
            По типам

             - TYPE_UNKNOWN: Значение не указано
             - COMPANY: УК.
            Услуги, которые назначаются на управляющие компанию
             - RTK: Ростелеком.
            Услуги, которые Ростелеком подключает напрямую физическим лицам
             - SHARED: Общая.
            Услуги, которые видят клиенты обоих типов
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - COMPANY
                - RTK
                - SHARED
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.companyIds
          description: По идентификаторам компаний
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - offer(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  /subscription/api/v1/offer/list:
    get:
      summary: >-
        Метод получения списка коммерческих возможностей.

        Метод доступен для: admin, mrf, master, external_seller, ltp_first, owner, employee, service, application(subscription:read или subscription:edit)
      operationId: OfferService_GetOfferList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetOfferListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetOfferListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.types
          description: |-
            По типам

             - TYPE_UNKNOWN: Значение не указано
             - COMPANY: УК.
            Услуги, которые назначаются на управляющие компанию
             - RTK: Ростелеком.
            Услуги, которые Ростелеком подключает напрямую физическим лицам
             - SHARED: Общая.
            Услуги, которые видят клиенты обоих типов
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - COMPANY
                - RTK
                - SHARED
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.companyIds
          description: По идентификаторам компаний
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По идентификатору
             - PRICE: По цене
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - PRICE
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - offer(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  "/subscription/api/v1/offer/{id}":
    get:
      summary: >-
        Метод получения коммерческой возможности.

        Метод доступен для: admin, mrf, master, ltp_first, service, application(subscription:read или subscription:edit)
      operationId: OfferService_GetOffer
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetOfferResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор коммерческой возможности
          in: path
          required: true
          schema:
            type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - offer(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  /subscription/api/v1/plan/count:
    get:
      summary: >-
        Метод получения количества технологических планов.

        Метод доступен для: admin, service, mrf, master, ltp_first, service, application(subscription:read или subscription:edit)
      operationId: PlanService_GetPlanCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetPlanCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetPlanCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetPlanCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.text
          description: |-
            По тексту.
            Если значение не передано то поиск по нему не производится.
            # Поиск производится по полям:
            # - Название;
            # - Описание;
            # - Краткое описание
          in: query
          required: false
          schema:
            type: string
        - name: filter.rfIds
          description: По идентификаторам регионов
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - plan(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  /subscription/api/v1/plan/list:
    get:
      summary: >-
        Метод получения списка технологических планов.

        Метод доступен для: admin, service, mrf, master, ltp_first, service, application(subscription:read или subscription:edit)
      operationId: PlanService_GetPlanList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetPlanListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetPlanListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.text
          description: |-
            По тексту.
            Если значение не передано то поиск по нему не производится.
            # Поиск производится по полям:
            # - Название;
            # - Описание;
            # - Краткое описание
          in: query
          required: false
          schema:
            type: string
        - name: filter.rfIds
          description: По идентификаторам регионов
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По идентификатору
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - plan(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  "/subscription/api/v1/plan/{id}":
    get:
      summary: >-
        Метод получения технологического плана.

        Метод доступен для: admin, mrf, master, ltp_first, service, application(subscription:read или subscription:edit)
      operationId: PlanService_GetPlan
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetPlanResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - plan(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  "/subscription/api/v1/privilege/check/{orpon}/{flatNumber}/{privilegeType}":
    get:
      summary: >-
        Метод проверки привилегии.

        Метод доступен для: admin, master, service, ltp_first, application(subscription:read или subscription:edit)
      operationId: PrivilegeService_GetPrivilegeCheck
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetPrivilegeCheckResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: orpon
          description: |-
            ОРПОН.
            Идентификатор дома
          in: path
          required: true
          schema:
            type: string
            format: int64
        - name: flatNumber
          description: Номер квартиры
          in: path
          required: true
          schema:
            type: string
        - name: privilegeType
          description: Тип привилегии
          in: path
          required: true
          schema:
            type: string
            enum:
              - INTERCOM_USE
              - INTERCOM_OPEN
              - INTERCOM_CODE_USE
              - INTERCOM_RFID_USE
              - INTERCOM_EVENT_USE
              - INTERCOM_CAMERA_USE
              - INTERCOM_CAMERA_ARCHIVE
              - INTERCOM_CALLREDIRECT_APP
              - INTERCOM_CALLREDIRECT_PSTN
              - INTERCOM_CALLREDIRECT_SIP
              - BARRIER_USE
              - BARRIER_OPEN
              - BARRIER_CODE_USE
              - BARRIER_EVENT_USE
              - BARRIER_CAMERA_USE
              - BARRIER_CAMERA_ARCHIVE
              - FR_USE
              - TELEMETRY_USE
              - CAMERA_USE
              - CAMERA_ARCHIVE
              - INTERCOM_CMS_PHONES_USE
              - CAMERA_EVENT_USE
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - privilege(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  /subscription/api/v1/privilege/count:
    get:
      summary: >-
        Метод получения количества привилегий.

        Метод доступен для: admin, master, service, ltp_first, application(subscription:read или subscription:edit)
      operationId: PrivilegeService_GetPrivilegeCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetPrivilegeCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetPrivilegeCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetPrivilegeCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.flatNumbers
          description: Номера квартир
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.types
          description: >-
            По типам привилегий

             - TYPE_UNKNOWN: Значение не указано
             - INTERCOM_USE: Умный домофон.
            Базовые функции.

            Право доступа к разделу с домофонами и калиткаи.

            Действие.

            Закрывает услуги: get_devices_intercom
             - INTERCOM_OPEN: Умный домофон.
            Базовые функции.

            Право использовать функционал открытия двери домофона и калитки.

            Действие.

            Закрывает услуги: post_devices_open_intercom
             - INTERCOM_CODE_USE: Умный домофон.
            Коды.

            Право использовать функционал кодов домофонов и калиток.

            Действие.

            Закрывает услуги: get_devices_codes_intercom, post_devices_codes_intercom, delete_devices_codes_intercom
             - INTERCOM_RFID_USE: Умный домофон.
            Ключи.

            Право использовать функционал физических ключей домофонов и калиток.

            Действие.

            Закрывает услуги: get_devices_rfids_intercom, post_devices_rfids_barrier, delete_devices_rfids_barrier
             - INTERCOM_EVENT_USE: Умный домофон.
            События.

            Право использовать функционал журнала событий домофонов и калиток.

            Действие.

            Закрывает услуги: get_events_intercom
             - INTERCOM_CAMERA_USE: Умный домофон.
            Камеры.

            Право использовать функционал просмотра камер и лайв видео с домофонов и калиток.

            Действие.

            Закрывает услуги: get_devices_camera_intercom
             - INTERCOM_CAMERA_ARCHIVE: Умный домофон.
            Камеры.

            Право использовать функционал архива видео с камер домофонов и калиток.

            Действие.

            Закрывает услуги: get_video_archive_intercom
             - INTERCOM_CALLREDIRECT_APP: Умный домофон.
            Переадресация.

            Право перенаправления входящих вызова от домофона в приложения, используется только на сервере.

            Поведение.

            Закрывает услуги: devices_call_redirect_to_mobile_app_behavior
             - INTERCOM_CALLREDIRECT_PSTN: Умный домофон.
            Переадресация.

            Право перенаправление входящих вызовов от домофона на номера ТФОП, используется только на сервере.

            Поведение.

            Закрывает услуги: devices_call_redirect_to_pstn_behavior
             - INTERCOM_CALLREDIRECT_SIP: Умный домофон.
            Переадресация.

            Право перенаправление входящих вызовов от домофона на номера SIP, используется только на сервере.

            Поведение.

            Закрывает услуги: devices_call_redirect_to_sip_behavior
             - BARRIER_USE: Умный шлагбаум.
            Базовые функции.

            Право доступа к разделу шлагбаумов.

            Действие.

            Закрывает услуги: get_devices_barrier
             - BARRIER_OPEN: Умный шлагбаум.
            Базовые функции.

            Право использовать функционала поднятия стрелы шлагбаума.

            Действие.

            Закрывает услуги: post_devices_open_barrier
             - BARRIER_CODE_USE: Умный шлагбаум.
            Коды.

            Право использовать функционал открытия шлагбаума по звонку на короткий номер.

            Действие.

            Закрывает услуги: get_devices_codes_barrier, post_devices_codes_barrier, delete_devices_codes_barrier
             - BARRIER_EVENT_USE: Умный шлагбаум.
            События.

            Право использовать функционал журнала событий шлагбаума.

            Действие.

            Закрывает услуги: get_events_barrier
             - BARRIER_CAMERA_USE: Умный шлагбаум.
            Камеры.

            Право использовать функционал просмотра камер и лайв видео с шлагбаумов.

            Действие.

            Закрывает услуги: get_devices_camera_barrier
             - BARRIER_CAMERA_ARCHIVE: Умный шлагбаум.
            Камеры.

            Право использовать функционал архива видео с камер, направленных на шлагбаум.

            Действие.

            Закрывает услуги: get_video_archive_barrier
             - FR_USE: Распознавание лица.
            Фото.

            Право доступа к разделу распознавания лиц.

            Действие.

            Закрывает услуги: get_photo_fr_intercom, fr_intercom_access_behavior, post_photo_fr_intercom, delete_photo_fr_intercom
             - TELEMETRY_USE: Телеметрия.
            Базовые функции.

            Право доступа к разделу показаний приборов учёта.

            Действие.

            Закрывает услуги: get_telemetry_rooms_layout
             - CAMERA_USE: Камеры.
            Базовые функции.

            Право доступа к разделу камер и лайв видео с них.

            Действие.

            Закрывает услуги: get_devices_camera, get_events_camera, get_devices_camera_access_control_panel, get_devices_camera_barrier, get_devices_camera_intercom
             - CAMERA_ARCHIVE: Камеры.
            Базовые функции.

            Право использовать функционал архива видео с камер видеонаблюдения.

            Действие.

            Закрывает услуги: get_video_archive, get_video_archive_access_control_panel
             - INTERCOM_CMS_PHONES_USE: Умный домофон.
            Переадресация.

            Право приёма входящих вызовов от домофона на аналоговую трубку, используется только на сервере.

            Поведение.

            Закрывает услуги: devices_call_to_cms_phones_behavior
             - CAMERA_EVENT_USE: Умный домофон.
            Переадресация.

            Право приёма входящих вызовов от домофона на аналоговую трубку, используется только на сервере.

            Поведение.

            Закрывает услуги: get_events_camera
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - INTERCOM_USE
                - INTERCOM_OPEN
                - INTERCOM_CODE_USE
                - INTERCOM_RFID_USE
                - INTERCOM_EVENT_USE
                - INTERCOM_CAMERA_USE
                - INTERCOM_CAMERA_ARCHIVE
                - INTERCOM_CALLREDIRECT_APP
                - INTERCOM_CALLREDIRECT_PSTN
                - INTERCOM_CALLREDIRECT_SIP
                - BARRIER_USE
                - BARRIER_OPEN
                - BARRIER_CODE_USE
                - BARRIER_EVENT_USE
                - BARRIER_CAMERA_USE
                - BARRIER_CAMERA_ARCHIVE
                - FR_USE
                - TELEMETRY_USE
                - CAMERA_USE
                - CAMERA_ARCHIVE
                - INTERCOM_CMS_PHONES_USE
                - CAMERA_EVENT_USE
        - name: filter.stateTypes
          description: >-
            По состояниям привилегий

             - STATE_TYPE_UNKNOWN: Значение не указано
             - CAN_BE_PAID: Услуга доступная для подключения на доме пользователя, но не активна.
            Услуга есть в доступных КВ на ОРПОН, но её нет у пользователя
             - NOT_PAID: Услуга не оплачена и не активна.
            Услуга есть в подписке в статусе: BLOCKED
             - TURNS_OFF: Услуга отключается, но ещё активна.
            Услуга есть в подписке в статусе: SCHEDULED_CANCELED
             - PROMO: Услуга в промо-периоде и активна.
            Услуга есть в подписке в статусе: SETUP.

            Обычно так создают промоподписки
             - PAID: Услуга оплачена и активна.
            Услуга есть в подписке в статусе: ACTIVE.

            Либо услуга есть в подписке с неблокируемой услугой
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - CAN_BE_PAID
                - NOT_PAID
                - TURNS_OFF
                - PROMO
                - PAID
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - privilege(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  /subscription/api/v1/privilege/list:
    get:
      summary: >-
        Метод получения привилегий.

        Метод доступен для: admin, master, service, ltp_first, application(subscription:read или subscription:edit)
      operationId: PrivilegeService_GetPrivilegeList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetPrivilegeListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetPrivilegeListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.flatNumbers
          description: Номера квартир
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.types
          description: >-
            По типам привилегий

             - TYPE_UNKNOWN: Значение не указано
             - INTERCOM_USE: Умный домофон.
            Базовые функции.

            Право доступа к разделу с домофонами и калиткаи.

            Действие.

            Закрывает услуги: get_devices_intercom
             - INTERCOM_OPEN: Умный домофон.
            Базовые функции.

            Право использовать функционал открытия двери домофона и калитки.

            Действие.

            Закрывает услуги: post_devices_open_intercom
             - INTERCOM_CODE_USE: Умный домофон.
            Коды.

            Право использовать функционал кодов домофонов и калиток.

            Действие.

            Закрывает услуги: get_devices_codes_intercom, post_devices_codes_intercom, delete_devices_codes_intercom
             - INTERCOM_RFID_USE: Умный домофон.
            Ключи.

            Право использовать функционал физических ключей домофонов и калиток.

            Действие.

            Закрывает услуги: get_devices_rfids_intercom, post_devices_rfids_barrier, delete_devices_rfids_barrier
             - INTERCOM_EVENT_USE: Умный домофон.
            События.

            Право использовать функционал журнала событий домофонов и калиток.

            Действие.

            Закрывает услуги: get_events_intercom
             - INTERCOM_CAMERA_USE: Умный домофон.
            Камеры.

            Право использовать функционал просмотра камер и лайв видео с домофонов и калиток.

            Действие.

            Закрывает услуги: get_devices_camera_intercom
             - INTERCOM_CAMERA_ARCHIVE: Умный домофон.
            Камеры.

            Право использовать функционал архива видео с камер домофонов и калиток.

            Действие.

            Закрывает услуги: get_video_archive_intercom
             - INTERCOM_CALLREDIRECT_APP: Умный домофон.
            Переадресация.

            Право перенаправления входящих вызова от домофона в приложения, используется только на сервере.

            Поведение.

            Закрывает услуги: devices_call_redirect_to_mobile_app_behavior
             - INTERCOM_CALLREDIRECT_PSTN: Умный домофон.
            Переадресация.

            Право перенаправление входящих вызовов от домофона на номера ТФОП, используется только на сервере.

            Поведение.

            Закрывает услуги: devices_call_redirect_to_pstn_behavior
             - INTERCOM_CALLREDIRECT_SIP: Умный домофон.
            Переадресация.

            Право перенаправление входящих вызовов от домофона на номера SIP, используется только на сервере.

            Поведение.

            Закрывает услуги: devices_call_redirect_to_sip_behavior
             - BARRIER_USE: Умный шлагбаум.
            Базовые функции.

            Право доступа к разделу шлагбаумов.

            Действие.

            Закрывает услуги: get_devices_barrier
             - BARRIER_OPEN: Умный шлагбаум.
            Базовые функции.

            Право использовать функционала поднятия стрелы шлагбаума.

            Действие.

            Закрывает услуги: post_devices_open_barrier
             - BARRIER_CODE_USE: Умный шлагбаум.
            Коды.

            Право использовать функционал открытия шлагбаума по звонку на короткий номер.

            Действие.

            Закрывает услуги: get_devices_codes_barrier, post_devices_codes_barrier, delete_devices_codes_barrier
             - BARRIER_EVENT_USE: Умный шлагбаум.
            События.

            Право использовать функционал журнала событий шлагбаума.

            Действие.

            Закрывает услуги: get_events_barrier
             - BARRIER_CAMERA_USE: Умный шлагбаум.
            Камеры.

            Право использовать функционал просмотра камер и лайв видео с шлагбаумов.

            Действие.

            Закрывает услуги: get_devices_camera_barrier
             - BARRIER_CAMERA_ARCHIVE: Умный шлагбаум.
            Камеры.

            Право использовать функционал архива видео с камер, направленных на шлагбаум.

            Действие.

            Закрывает услуги: get_video_archive_barrier
             - FR_USE: Распознавание лица.
            Фото.

            Право доступа к разделу распознавания лиц.

            Действие.

            Закрывает услуги: get_photo_fr_intercom, fr_intercom_access_behavior, post_photo_fr_intercom, delete_photo_fr_intercom
             - TELEMETRY_USE: Телеметрия.
            Базовые функции.

            Право доступа к разделу показаний приборов учёта.

            Действие.

            Закрывает услуги: get_telemetry_rooms_layout
             - CAMERA_USE: Камеры.
            Базовые функции.

            Право доступа к разделу камер и лайв видео с них.

            Действие.

            Закрывает услуги: get_devices_camera, get_events_camera, get_devices_camera_access_control_panel, get_devices_camera_barrier, get_devices_camera_intercom
             - CAMERA_ARCHIVE: Камеры.
            Базовые функции.

            Право использовать функционал архива видео с камер видеонаблюдения.

            Действие.

            Закрывает услуги: get_video_archive, get_video_archive_access_control_panel
             - INTERCOM_CMS_PHONES_USE: Умный домофон.
            Переадресация.

            Право приёма входящих вызовов от домофона на аналоговую трубку, используется только на сервере.

            Поведение.

            Закрывает услуги: devices_call_to_cms_phones_behavior
             - CAMERA_EVENT_USE: Умный домофон.
            Переадресация.

            Право приёма входящих вызовов от домофона на аналоговую трубку, используется только на сервере.

            Поведение.

            Закрывает услуги: get_events_camera
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - INTERCOM_USE
                - INTERCOM_OPEN
                - INTERCOM_CODE_USE
                - INTERCOM_RFID_USE
                - INTERCOM_EVENT_USE
                - INTERCOM_CAMERA_USE
                - INTERCOM_CAMERA_ARCHIVE
                - INTERCOM_CALLREDIRECT_APP
                - INTERCOM_CALLREDIRECT_PSTN
                - INTERCOM_CALLREDIRECT_SIP
                - BARRIER_USE
                - BARRIER_OPEN
                - BARRIER_CODE_USE
                - BARRIER_EVENT_USE
                - BARRIER_CAMERA_USE
                - BARRIER_CAMERA_ARCHIVE
                - FR_USE
                - TELEMETRY_USE
                - CAMERA_USE
                - CAMERA_ARCHIVE
                - INTERCOM_CMS_PHONES_USE
                - CAMERA_EVENT_USE
        - name: filter.stateTypes
          description: >-
            По состояниям привилегий

             - STATE_TYPE_UNKNOWN: Значение не указано
             - CAN_BE_PAID: Услуга доступная для подключения на доме пользователя, но не активна.
            Услуга есть в доступных КВ на ОРПОН, но её нет у пользователя
             - NOT_PAID: Услуга не оплачена и не активна.
            Услуга есть в подписке в статусе: BLOCKED
             - TURNS_OFF: Услуга отключается, но ещё активна.
            Услуга есть в подписке в статусе: SCHEDULED_CANCELED
             - PROMO: Услуга в промо-периоде и активна.
            Услуга есть в подписке в статусе: SETUP.

            Обычно так создают промоподписки
             - PAID: Услуга оплачена и активна.
            Услуга есть в подписке в статусе: ACTIVE.

            Либо услуга есть в подписке с неблокируемой услугой
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - CAN_BE_PAID
                - NOT_PAID
                - TURNS_OFF
                - PROMO
                - PAID
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: KEY

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - KEY: По уникальному ключу: orpon+flat_number+type
          in: query
          required: false
          schema:
            type: string
            enum:
              - KEY
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - privilege(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  /subscription/api/v1/service/kind/list:
    get:
      summary: |-
        Метод получения справочника видов услуг.
        Метод доступен для: admin, service
      operationId: ServiceService_GetServiceKindList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetServiceKindListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetServiceKindListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      tags:
        - service(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
  /subscription/api/v1/service/privilege/count:
    get:
      summary: |-
        Метод получения количества услуг.
        Вернёт все услуги на квартире и недоступные по адресу как неактивные.
        Метод доступен для: admin, service
      operationId: ServiceService_GetServicePrivilegeCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetServicePrivilegeCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.orpons
          description: По ОРПОН
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.flatNumbers
          description: По номеру квартиры
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: ORPON_THEN_FLAT_NUMBER

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ORPON_THEN_FLAT_NUMBER: По ОРПОНу, затем по номеру квартиры
          in: query
          required: false
          schema:
            type: string
            enum:
              - ORPON_THEN_FLAT_NUMBER
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            # По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            # Диапазон: 0..2147483647
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - service(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  /subscription/api/v1/service/privilege/list:
    get:
      summary: |-
        Метод получения списка услуг.
        Вернёт все услуги на квартире и недоступные по адресу как неактивные.
        Метод доступен для: admin, service
      operationId: ServiceService_GetServicePrivilegeList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetServicePrivilegeListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetServicePrivilegeListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.orpons
          description: По ОРПОН
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.flatNumbers
          description: По номеру квартиры
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: ORPON_THEN_FLAT_NUMBER

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ORPON_THEN_FLAT_NUMBER: По ОРПОНу, затем по номеру квартиры
          in: query
          required: false
          schema:
            type: string
            enum:
              - ORPON_THEN_FLAT_NUMBER
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            # По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            # Диапазон: 0..2147483647
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - service(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  "/subscription/api/v1/service/{orpon}/{flatNumber}/list":
    get:
      summary: >-
        Метод получения услуг квартиры.

        Вернёт все услуги на квартире и недоступные по адресу как неактивные.

        Метод доступен для: admin, master, service, application(subscription:read или subscription:edit)
      operationId: ServiceService_GetServiceList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetServiceListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetServiceListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: orpon
          description: |-
            ОРПОН.
            Идентификатор дома
          in: path
          required: true
          schema:
            type: string
            format: int64
        - name: flatNumber
          description: Номер квартиры
          in: path
          required: true
          schema:
            type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - service(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  /subscription/api/v1/subscription/count:
    get:
      summary: >-
        Метод получения количества подписок.

        Метод доступен для: admin, mrf, master, ltp_first, service, application(subscription:read или subscription:edit)
      operationId: SubscriptionService_GetSubscriptionCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetSubscriptionCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetSubscriptionCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetSubscriptionCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.flatNumbers
          description: По номерам квартир
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - subscription(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  /subscription/api/v1/subscription/list:
    get:
      summary: >-
        Метод получения списка подписок.

        Метод доступен для: admin, mrf, master, ltp_first, service, application(subscription:read или subscription:edit)
      operationId: SubscriptionService_GetSubscriptionList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetSubscriptionListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetSubscriptionListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.flatNumbers
          description: По номерам квартир
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По идентификатору
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
        - name: paging.directionType
          description: |-
            Тип направления сортировки.
            По умолчанию: DESC

             - DIRECTION_TYPE_UNKNOWN: Значение не указано
             - DESC: От большего к меньшему
             - ASC: От меньшего к большему
          in: query
          required: false
          schema:
            type: string
            enum:
              - DESC
              - ASC
        - name: paging.limit
          description: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - name: paging.offset
          description: |-
            Сдвиг.
            По умолчанию: 0
          in: query
          required: false
          schema:
            type: integer
            format: int32
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - subscription(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  "/subscription/api/v1/subscription/{id}":
    get:
      summary: >-
        Метод получения подписки.

        Метод доступен для: admin, mrf, master, ltp_first, service, application(subscription:read или subscription:edit)
      operationId: SubscriptionService_GetSubscription
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetSubscriptionResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: Идентификатор подписки
          in: path
          required: true
          schema:
            type: string
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
      tags:
        - subscription(auth)
      security:
        - oauth2:
            - subscription:read
            - subscription:edit
          bearerHttp: []
  /subscription/api/v1/system/status:
    get:
      summary: |-
        Метод получения статуса сервиса.
        Не требует авторизации
      operationId: SystemService_GetSystemStatus
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetSystemStatusResponse"
        "400":
          description: Ошибка
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      tags:
        - system(public)
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
components:
  schemas:
    OfferDiscountRequirementType:
      type: string
      enum:
        - NO_CONDITIONS
        - INTERNET_IS_PAID
      description: >-
        - DISCOUNT_REQUIREMENT_TYPE_UNKNOWN: Значение не указано.

        Если указана цена по скидке, а условие не проставлено, скидка не отображается и не применяется
         - NO_CONDITIONS: Безусловная скидка
         - INTERNET_IS_PAID: ШПД интернет оплачен
      title: Справочник условий на скидки
    PlanIconType:
      type: string
      enum:
        - FAST
        - FACE_REC
        - SAFE
      description: |-
        - ICON_TYPE_UNKNOWN: Значение не указано
         - FAST: Быстро
         - FACE_REC: Распознавание лиц
         - SAFE: Безопасно
      title: Справочник типов иконок
    PlanOptionDescription:
      type: object
      properties:
        iconType:
          title: Тип иконки
          allOf:
            - $ref: "#/components/schemas/PlanIconType"
        title:
          type: string
          title: Название
        summary:
          type: string
          title: Краткое описание
      title: Описание опции
      required:
        - title
    PrivilegeStateType:
      type: string
      enum:
        - CAN_BE_PAID
        - NOT_PAID
        - TURNS_OFF
        - PROMO
        - PAID
      description: >-
        - STATE_TYPE_UNKNOWN: Значение не указано
         - CAN_BE_PAID: Услуга доступная для подключения на доме пользователя, но не активна.
        Услуга есть в доступных КВ на ОРПОН, но её нет у пользователя
         - NOT_PAID: Услуга не оплачена и не активна.
        Услуга есть в подписке в статусе: BLOCKED
         - TURNS_OFF: Услуга отключается, но ещё активна.
        Услуга есть в подписке в статусе: SCHEDULED_CANCELED
         - PROMO: Услуга в промо-периоде и активна.
        Услуга есть в подписке в статусе: SETUP.

        Обычно так создают промоподписки
         - PAID: Услуга оплачена и активна.
        Услуга есть в подписке в статусе: ACTIVE.

        Либо услуга есть в подписке с неблокируемой услугой
      title: Типы состояний привилегий
    SubscriptionBillingType:
      type: string
      enum:
        - ASR_MRF
        - ASR_KEY
        - ASR_MC
      description: >-
        - BILLING_TYPE_UNKNOWN: Значение не указано
         - ASR_MRF: АСР МРФ.
        Обслуживание счетов и расчёты с клиентами происходят в АСР МРФ
         - ASR_KEY: АСР Ключ.
        Обслуживание счетов и расчёты с клиентами происходят внутри Ключа
         - ASR_MC: АСР УК.
        Обслуживание счетов и расчёты с клиентами происходят во внешнем АСР от управляющей компании
      title: Типы биллинга подпискии
    ValidationErrorCompanyIdsInvalid:
      type: object
      title: |-
        Причины:
        - Формат идентификатора компании некорректен;
        - Идентификатора компании передан некорректно, к примеру, значение <= 1
    ValidationErrorTextInvalid:
      type: object
      title: |-
        Причины:
        - Длина текста < 3 символов и >= 64
    protobufAny:
      type: object
      properties:
        "@type":
          type: string
      additionalProperties: {}
      title: Произвольный JSON
    rpcStatus:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: array
          items:
            $ref: "#/components/schemas/protobufAny"
      title: Ошибка транспортного слоя
    v1GetOfferCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего коммерческих возможностей
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetOfferCountResponseError"
      title: Ответ на запрос получения количества коммерческих возможностей
    v1GetOfferCountResponseError:
      type: object
      properties:
        offerFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1OfferFilterValidationError"
      title: Ошибка запроса получения количества коммерческих возможностей
    v1GetOfferListResponse:
      type: object
      properties:
        data:
          title: Коммерческая возможность
          allOf:
            - $ref: "#/components/schemas/v1Offer"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetOfferListResponseError"
      title: Ответ на запрос получения коммерческих возможностей
    v1GetOfferListResponseError:
      type: object
      properties:
        offerFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1OfferFilterValidationError"
        offerPagingValidation:
          title: Ошибка пагинации по страницам
          allOf:
            - $ref: "#/components/schemas/v1OfferPagingValidationError"
      title: Ошибка запроса получения коммерческих возможностей
    v1GetOfferResponse:
      type: object
      properties:
        data:
          title: Коммерческая возможность
          allOf:
            - $ref: "#/components/schemas/v1Offer"
      title: Ответ на запрос получения коммерческой возможности
    v1GetPlanCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего технологических планов
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetPlanCountResponseError"
      title: Ответ на запрос получения количества технологических планов
    v1GetPlanCountResponseError:
      type: object
      properties:
        planFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1PlanFilterValidationError"
      title: Ошибка запроса получения количества технологических планов
    v1GetPlanListResponse:
      type: object
      properties:
        data:
          title: Технологический план
          allOf:
            - $ref: "#/components/schemas/v1Plan"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetPlanListResponseError"
      title: Ответ на запрос получения технологических планов
    v1GetPlanListResponseError:
      type: object
      properties:
        planFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1PlanFilterValidationError"
        planPagingValidation:
          title: Ошибка пагинации по страницам
          allOf:
            - $ref: "#/components/schemas/v1PlanPagingValidationError"
      title: Ошибка запроса получения технологических планов
    v1GetPlanResponse:
      type: object
      properties:
        data:
          title: Технологический план
          allOf:
            - $ref: "#/components/schemas/v1Plan"
      title: Ответ на запрос получения технологического плана
    v1GetPrivilegeCheckResponse:
      type: object
      properties:
        data:
          type: boolean
          title: |-
            Доступна ли привилегия на квартире.
            Вернётся true если статусы:
            - PROMO;
            - PAID;
            - TURNS_OFF.
            Вернётся false если статусы:
            - NOT_PAID;
            - CAN_BE_PAID;
            - STATE_TYPE_UNKNOWN;
            - Не найден
      title: Результат запроса метода проверки предоставленной привилегии
    v1GetPrivilegeCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего привилегий
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetPrivilegeCountResponseError"
      title: Ответ на запрос получения количества привилегий
    v1GetPrivilegeCountResponseError:
      type: object
      properties:
        privilegeFilterValidation:
          title: Ошибка фильтрации по страницам по привилегиям
          allOf:
            - $ref: "#/components/schemas/v1PrivilegeFilterValidationError"
      title: Ошибка запроса получения количества привилегий
    v1GetPrivilegeListResponse:
      type: object
      properties:
        data:
          title: Предоставленная привилегия
          allOf:
            - $ref: "#/components/schemas/v1Privilege"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetPrivilegeListResponseError"
      title: Ответ на запрос получения привилегий
    v1GetPrivilegeListResponseError:
      type: object
      properties:
        privilegeFilterValidation:
          title: Ошибка фильтрации по страницам
          allOf:
            - $ref: "#/components/schemas/v1PrivilegeFilterValidationError"
        privilegePagingValidation:
          title: Ошибка пагинации по страницам
          allOf:
            - $ref: "#/components/schemas/v1PrivilegePagingValidationError"
      title: Ошибка запроса получения привилегий
    v1GetServiceKindListResponse:
      type: object
      properties:
        data:
          title: Элемент справочника услуг
          allOf:
            - $ref: "#/components/schemas/v1ServiceKind"
      title: Результат запроса получения справочника видов услуг
    v1GetServiceListResponse:
      type: object
      properties:
        data:
          title: Услуга
          allOf:
            - $ref: "#/components/schemas/v1Sevice"
      title: Результат запроса получения списка услуг квартиры
    v1GetServicePrivilegeCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Количество
      title: Результат запроса получения количества услуг
    v1GetServicePrivilegeListResponse:
      type: object
      properties:
        data:
          title: Услуга
          allOf:
            - $ref: "#/components/schemas/v1Service"
      title: Результат запроса получения списка услуг
    v1GetSubscriptionCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего подписок
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetSubscriptionCountResponseError"
      title: Ответ на запрос получения количества подписок
    v1GetSubscriptionCountResponseError:
      type: object
      properties:
        subscriptionFilterValidation:
          title: Ошибка фильтрации подписок
          allOf:
            - $ref: "#/components/schemas/v1SubscriptionFilterValidationError"
      title: Ошибка запроса получения количества подписок
    v1GetSubscriptionListResponse:
      type: object
      properties:
        data:
          title: Подписка
          allOf:
            - $ref: "#/components/schemas/v1Subscription"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetSubscriptionListResponseError"
      title: Ответ на запрос получения списка подписок
    v1GetSubscriptionListResponseError:
      type: object
      properties:
        subscriptionFilterValidation:
          title: Ошибка фильтрации
          allOf:
            - $ref: "#/components/schemas/v1SubscriptionFilterValidationError"
        subscriptionPagingValidation:
          title: Ошибка пагинации  по страницам
          allOf:
            - $ref: "#/components/schemas/v1SubscriptionPagingValidationError"
      title: Ошибка запроса получения списка подписки
    v1GetSubscriptionResponse:
      type: object
      properties:
        data:
          title: Подписка
          allOf:
            - $ref: "#/components/schemas/v1Subscription"
      title: Ответ на запрос получения подписки
    v1GetSystemStatusResponse:
      type: object
      title: Ответ на запрос проверки доступности сервиса
    v1Offer:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
          readOnly: true
        type:
          title: Тип коммерческой возможности
          allOf:
            - $ref: "#/components/schemas/v1OfferType"
        orpon:
          type: string
          format: int64
          title: |-
            ОРПОН.
            Идентификатор дома
        companyId:
          type: integer
          format: int32
          title: Идентификатор компании
        planId:
          type: integer
          format: int32
          title: Идентификатор технологического плана
        isEnableAutoSubscribe:
          type: boolean
          title: Подключать ли автоматическую подписку
        statusType:
          title: Тип статуса заказа
          allOf:
            - $ref: "#/components/schemas/v1OfferStatusType"
        price:
          type: number
          format: double
          title: Цена
        isDigitalWay:
          type: boolean
          title: Признак принадлежности к цифровому пути
        createdAt:
          type: string
          format: date-time
          title: |-
            Дата создания записи.
            Заполняется сервером
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении.
            Является версией объекта
          readOnly: true
        offerUrl:
          type: string
          title: |-
            Адрес размещения офферты.
            Полный url до файла
        plan:
          title: >-
            Снапшот состояния технологического плана на момент создания
            предложения.

            В данный момент это ссылка в базе на запись, в будущем это будет снапшот
          allOf:
            - $ref: "#/components/schemas/v1Plan"
        discountPrice:
          type: number
          format: double
          title: Цена по скидке
        discountRequirementTypes:
          type: array
          items:
            $ref: "#/components/schemas/OfferDiscountRequirementType"
          title: |-
            Условия на скидку.
            Если условий много то для срабатывания должны выполнять все условия
      title: Коммерческая возможность(КВ)
      required:
        - type
        - orpon
        - planId
        - statusType
    v1OfferFilter:
      type: object
      properties:
        types:
          type: array
          items:
            $ref: "#/components/schemas/v1OfferType"
          title: По типам
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОНам
        companyIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам компаний
      title: Фильтр по коммерческим возможностям
    v1OfferFilterValidationError:
      type: object
      properties:
        orpons:
          title: Формат ОРПОН некорректен
          allOf:
            - $ref: "#/components/schemas/v1OfferFilterValidationErrorOrponsInvalid"
        companyIds:
          title: Формат идентификатора компании некорректен
          allOf:
            - $ref: "#/components/schemas/ValidationErrorCompanyIdsInvalid"
      title: |-
        Ошибки валидации фильтра по коммерческим возможностям.
        Эти проверки выполняются до обращения в базу данных
    v1OfferFilterValidationErrorOrponsInvalid:
      type: object
      title: |-
        - Формат ОРПОН некорректен;
        - ОРПОН передан некорректно, к примеру, значение <= 1
    v1OfferPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ID
          allOf:
            - $ref: "#/components/schemas/v1OfferPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1OfferPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация по коммерческим возможностям
    v1OfferPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1OfferPagingOrderByType:
      type: string
      enum:
        - ID
        - PRICE
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
         - PRICE: По цене
      title: Справочник типов значений сортировки
    v1OfferPagingValidationError:
      type: object
      properties:
        limit:
          title: Количество передано некорректно
          allOf:
            - $ref: "#/components/schemas/v1OfferPagingValidationErrorLimitInvalid"
        offset:
          title: Сдвиг передан некорректно
          allOf:
            - $ref: "#/components/schemas/v1OfferPagingValidationErrorOffsetInvalid"
      title: |-
        Ошибка валидации постраничной пагинации по коммерческим возможностям.
        Эти проверки выполняются до обращения в базу данных
    v1OfferPagingValidationErrorLimitInvalid:
      type: object
      title: |-
        Причины:
        - Значение количества < 0 или > 100
    v1OfferPagingValidationErrorOffsetInvalid:
      type: object
      title: |-
        Причины:
        - Значение сдвига < 0
    v1OfferStatusType:
      type: string
      enum:
        - ACTIVE
        - BLOCKED
      description: |-
        - STATUS_TYPE_UNKNOWN: Значение не указано
         - ACTIVE: Активно.
        Доступно
         - BLOCKED: Заблокировано.
        Приостановлено
      title: Типы статусов коммерческих возможностей
    v1OfferType:
      type: string
      enum:
        - COMPANY
        - RTK
        - SHARED
      description: |-
        - TYPE_UNKNOWN: Значение не указано
         - COMPANY: УК.
        Услуги, которые назначаются на управляющие компанию
         - RTK: Ростелеком.
        Услуги, которые Ростелеком подключает напрямую физическим лицам
         - SHARED: Общая.
        Услуги, которые видят клиенты обоих типов
      title: Типы коммерческих возможностей
    v1Plan:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
          readOnly: true
        title:
          type: string
          title: Название
        description:
          type: string
          title: Описание
        createdAt:
          type: string
          format: date-time
          title: |-
            Дата создания записи.
            Заполняется сервером
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении.
            Является версией объекта
          readOnly: true
        parentIds:
          type: array
          items:
            type: integer
            format: int32
          title: Идентификаторы родительских технологических планов(ТП)
        rfIds:
          type: array
          items:
            type: integer
            format: int32
          title: Идентификаторы регионов, в которых доступен технологический план(ТП)
        summary:
          type: string
          title: Краткое описание
        iconType:
          title: Тип иконки
          allOf:
            - $ref: "#/components/schemas/PlanIconType"
        optionDescriptions:
          type: array
          items:
            $ref: "#/components/schemas/PlanOptionDescription"
          title: Описание опций
        privilegeTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1PrivilegeType"
          title: |-
            Привилегии.
            Массив услуг доступных по технологическому плану
      title: Технологический план(ТП)
      required:
        - title
    v1PlanFilter:
      type: object
      properties:
        text:
          type: string
          title: |-
            По тексту.
            Если значение не передано то поиск по нему не производится.
            # Поиск производится по полям:
            # - Название;
            # - Описание;
            # - Краткое описание
        rfIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам регионов
      title: Фильтр по технологическим планам
    v1PlanFilterValidationError:
      type: object
      properties:
        text:
          title: Текст передан некорректно
          allOf:
            - $ref: "#/components/schemas/ValidationErrorTextInvalid"
      title: |-
        Ошибки валидации фильтра по технологическим планам.
        Эти проверки выполняются до обращения в базу данных
    v1PlanPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ID
          allOf:
            - $ref: "#/components/schemas/v1PlanPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1PlanPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация по технологическим планам
    v1PlanPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1PlanPagingOrderByType:
      type: string
      enum:
        - ID
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
      title: Справочник типов значений сортировки
    v1PlanPagingValidationError:
      type: object
      properties:
        limit:
          title: Количество передано некорректно
          allOf:
            - $ref: "#/components/schemas/v1PlanPagingValidationErrorLimitInvalid"
        offset:
          title: Сдвиг передан некорректно
          allOf:
            - $ref: "#/components/schemas/v1PlanPagingValidationErrorOffsetInvalid"
      title: |-
        Ошибка валидации постраничной пагинации по технологическим планам.
        Эти проверки выполняются до обращения в базу данных
    v1PlanPagingValidationErrorLimitInvalid:
      type: object
      title: |-
        Причины:
        - Значение количества < 0 или > 100
    v1PlanPagingValidationErrorOffsetInvalid:
      type: object
      title: |-
        Причины:
        - Значение сдвига < 0
    v1Privilege:
      type: object
      properties:
        orpon:
          type: string
          format: int64
          title: |-
            ОРПОН.
            Идентификатор дома.
            Уникальный ключ: поля в порядке 1,2,3
        flatNumber:
          type: string
          title: Номер квартиры
        type:
          title: Тип привилегии
          allOf:
            - $ref: "#/components/schemas/v1PrivilegeType"
        stateType:
          title: Состояние привилегии
          allOf:
            - $ref: "#/components/schemas/PrivilegeStateType"
      title: Привилегия
      required:
        - orpon
        - flatNumber
        - type
        - stateType
    v1PrivilegeFilter:
      type: object
      properties:
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОНам
        flatNumbers:
          type: array
          items:
            type: string
          title: Номера квартир
        types:
          type: array
          items:
            $ref: "#/components/schemas/v1PrivilegeType"
          title: По типам привилегий
        stateTypes:
          type: array
          items:
            $ref: "#/components/schemas/PrivilegeStateType"
          title: По состояниям привилегий
      title: Фильтр по привилегиям
    v1PrivilegeFilterValidationError:
      type: object
      properties:
        orpons:
          title: Формат ОРПОН некорректен
          allOf:
            - $ref: "#/components/schemas/v1PrivilegeFilterValidationErrorOrponsInvalid"
        flatNumbers:
          title: Формат квартиры некорректен
          allOf:
            - $ref: "#/components/schemas/v1PrivilegeFilterValidationErrorFlatNumbersInvalid"
      title: |-
        Ошибка валидации фильтра по привилегиям.
        Эти проверки выполняются до обращения в базу данных
    v1PrivilegeFilterValidationErrorFlatNumbersInvalid:
      type: object
      title: >-
        Причины:

        - Формат квартиры некорректен (например, длина номера квартира более 4 знаков);

        - Номер квартиры содержит буквы
    v1PrivilegeFilterValidationErrorOrponsInvalid:
      type: object
      title: |-
        Причины:
        - Формат ОРПОН некорректен;
        - Передано отрицательное значение
    v1PrivilegePaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: KEY
          allOf:
            - $ref: "#/components/schemas/v1PrivilegePagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1PrivilegePagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация по привилегиям
    v1PrivilegePagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1PrivilegePagingOrderByType:
      type: string
      enum:
        - KEY
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - KEY: По уникальному ключу: orpon+flat_number+type
      title: Справочник типов значений сортировки
    v1PrivilegePagingValidationError:
      type: object
      properties:
        limit:
          title: Количество передано некорректно
          allOf:
            - $ref: "#/components/schemas/v1PrivilegePagingValidationErrorLimitInvalid"
        offset:
          title: Сдвиг передан некорректно
          allOf:
            - $ref: "#/components/schemas/v1PrivilegePagingValidationErrorOffsetInvalid"
      title: |-
        Ошибка валидации постраничной пагинации по привилегиям.
        Эти проверки выполняются до обращения в базу данных
    v1PrivilegePagingValidationErrorLimitInvalid:
      type: object
      title: |-
        Причины:
        - Значение количества < 0 или > 100
    v1PrivilegePagingValidationErrorOffsetInvalid:
      type: object
      title: |-
        Причины:
        - Значение сдвига < 0
    v1PrivilegeType:
      type: string
      enum:
        - INTERCOM_USE
        - INTERCOM_OPEN
        - INTERCOM_CODE_USE
        - INTERCOM_RFID_USE
        - INTERCOM_EVENT_USE
        - INTERCOM_CAMERA_USE
        - INTERCOM_CAMERA_ARCHIVE
        - INTERCOM_CALLREDIRECT_APP
        - INTERCOM_CALLREDIRECT_PSTN
        - INTERCOM_CALLREDIRECT_SIP
        - BARRIER_USE
        - BARRIER_OPEN
        - BARRIER_CODE_USE
        - BARRIER_EVENT_USE
        - BARRIER_CAMERA_USE
        - BARRIER_CAMERA_ARCHIVE
        - FR_USE
        - TELEMETRY_USE
        - CAMERA_USE
        - CAMERA_ARCHIVE
        - INTERCOM_CMS_PHONES_USE
        - CAMERA_EVENT_USE
      description: >-
        - TYPE_UNKNOWN: Значение не указано
         - INTERCOM_USE: Умный домофон.
        Базовые функции.

        Право доступа к разделу с домофонами и калиткаи.

        Действие.

        Закрывает услуги: get_devices_intercom
         - INTERCOM_OPEN: Умный домофон.
        Базовые функции.

        Право использовать функционал открытия двери домофона и калитки.

        Действие.

        Закрывает услуги: post_devices_open_intercom
         - INTERCOM_CODE_USE: Умный домофон.
        Коды.

        Право использовать функционал кодов домофонов и калиток.

        Действие.

        Закрывает услуги: get_devices_codes_intercom, post_devices_codes_intercom, delete_devices_codes_intercom
         - INTERCOM_RFID_USE: Умный домофон.
        Ключи.

        Право использовать функционал физических ключей домофонов и калиток.

        Действие.

        Закрывает услуги: get_devices_rfids_intercom, post_devices_rfids_barrier, delete_devices_rfids_barrier
         - INTERCOM_EVENT_USE: Умный домофон.
        События.

        Право использовать функционал журнала событий домофонов и калиток.

        Действие.

        Закрывает услуги: get_events_intercom
         - INTERCOM_CAMERA_USE: Умный домофон.
        Камеры.

        Право использовать функционал просмотра камер и лайв видео с домофонов и калиток.

        Действие.

        Закрывает услуги: get_devices_camera_intercom
         - INTERCOM_CAMERA_ARCHIVE: Умный домофон.
        Камеры.

        Право использовать функционал архива видео с камер домофонов и калиток.

        Действие.

        Закрывает услуги: get_video_archive_intercom
         - INTERCOM_CALLREDIRECT_APP: Умный домофон.
        Переадресация.

        Право перенаправления входящих вызова от домофона в приложения, используется только на сервере.

        Поведение.

        Закрывает услуги: devices_call_redirect_to_mobile_app_behavior
         - INTERCOM_CALLREDIRECT_PSTN: Умный домофон.
        Переадресация.

        Право перенаправление входящих вызовов от домофона на номера ТФОП, используется только на сервере.

        Поведение.

        Закрывает услуги: devices_call_redirect_to_pstn_behavior
         - INTERCOM_CALLREDIRECT_SIP: Умный домофон.
        Переадресация.

        Право перенаправление входящих вызовов от домофона на номера SIP, используется только на сервере.

        Поведение.

        Закрывает услуги: devices_call_redirect_to_sip_behavior
         - BARRIER_USE: Умный шлагбаум.
        Базовые функции.

        Право доступа к разделу шлагбаумов.

        Действие.

        Закрывает услуги: get_devices_barrier
         - BARRIER_OPEN: Умный шлагбаум.
        Базовые функции.

        Право использовать функционала поднятия стрелы шлагбаума.

        Действие.

        Закрывает услуги: post_devices_open_barrier
         - BARRIER_CODE_USE: Умный шлагбаум.
        Коды.

        Право использовать функционал открытия шлагбаума по звонку на короткий номер.

        Действие.

        Закрывает услуги: get_devices_codes_barrier, post_devices_codes_barrier, delete_devices_codes_barrier
         - BARRIER_EVENT_USE: Умный шлагбаум.
        События.

        Право использовать функционал журнала событий шлагбаума.

        Действие.

        Закрывает услуги: get_events_barrier
         - BARRIER_CAMERA_USE: Умный шлагбаум.
        Камеры.

        Право использовать функционал просмотра камер и лайв видео с шлагбаумов.

        Действие.

        Закрывает услуги: get_devices_camera_barrier
         - BARRIER_CAMERA_ARCHIVE: Умный шлагбаум.
        Камеры.

        Право использовать функционал архива видео с камер, направленных на шлагбаум.

        Действие.

        Закрывает услуги: get_video_archive_barrier
         - FR_USE: Распознавание лица.
        Фото.

        Право доступа к разделу распознавания лиц.

        Действие.

        Закрывает услуги: get_photo_fr_intercom, fr_intercom_access_behavior, post_photo_fr_intercom, delete_photo_fr_intercom
         - TELEMETRY_USE: Телеметрия.
        Базовые функции.

        Право доступа к разделу показаний приборов учёта.

        Действие.

        Закрывает услуги: get_telemetry_rooms_layout
         - CAMERA_USE: Камеры.
        Базовые функции.

        Право доступа к разделу камер и лайв видео с них.

        Действие.

        Закрывает услуги: get_devices_camera, get_events_camera, get_devices_camera_access_control_panel, get_devices_camera_barrier, get_devices_camera_intercom
         - CAMERA_ARCHIVE: Камеры.
        Базовые функции.

        Право использовать функционал архива видео с камер видеонаблюдения.

        Действие.

        Закрывает услуги: get_video_archive, get_video_archive_access_control_panel
         - INTERCOM_CMS_PHONES_USE: Умный домофон.
        Переадресация.

        Право приёма входящих вызовов от домофона на аналоговую трубку, используется только на сервере.

        Поведение.

        Закрывает услуги: devices_call_to_cms_phones_behavior
         - CAMERA_EVENT_USE: Умный домофон.
        Переадресация.

        Право приёма входящих вызовов от домофона на аналоговую трубку, используется только на сервере.

        Поведение.

        Закрывает услуги: get_events_camera
      title: Типы привилегий
    v1Service:
      type: object
      properties:
        name:
          type: string
          title: Название услуги на английском
        isActive:
          type: boolean
          title: |-
            Доступна ли услуга на квартире.
            Вернётся true если статусы привилегии:
            - PROMO;
            - PAID;
            - TURNS_OFF.
            Вернётся false если статусы привилегии:
            - NOT_PAID;
            - CAN_BE_PAID;
            - STATE_TYPE_UNKNOWN;
            - Не найден (нет на кваритре, но есть в справочнике привилегий)
        orpon:
          type: string
          format: int64
          title: ОРПОН дома
        flatNumber:
          type: string
          title: Номер квартиры
      title: Услуга
    v1ServiceKind:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор услуги
        category:
          type: string
          title: |-
            Категория услуги.
            Аналогично V1ServiceDto.type
        name:
          type: string
          title: Название услуги на английском
        title:
          type: string
          title: Название услуги
        description:
          type: string
          title: Описание услуги
        parentId:
          type: integer
          format: int32
          title: Идентификатор родительской услуги
      title: Элемент справочника видов услуг
    v1ServicePrivilegeFilter:
      type: object
      properties:
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОН
        flatNumbers:
          type: array
          items:
            type: string
          title: По номеру квартиры
      title: Фильтр услуг
    v1ServicePrivilegePaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: ORPON_THEN_FLAT_NUMBER
          allOf:
            - $ref: "#/components/schemas/v1ServicePrivilegePagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            # По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1ServicePrivilegePagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            # Диапазон: 0..2147483647
      title: Постраничный вывод
    v1ServicePrivilegePagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки.
        # Тип: byte
    v1ServicePrivilegePagingOrderByType:
      type: string
      enum:
        - ORPON_THEN_FLAT_NUMBER
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ORPON_THEN_FLAT_NUMBER: По ОРПОНу, затем по номеру квартиры
      title: |-
        Справочник типов значений сортировки.
        # Тип: byte
    v1Sevice:
      type: object
      properties:
        name:
          type: string
          title: Название услуги на английском
        isActive:
          type: boolean
          title: |-
            Доступна ли услуга на квартире.
            Вернётся true если статусы привилегии:
            - PROMO;
            - PAID;
            - TURNS_OFF.
            Вернётся false если статусы привилегии:
            - NOT_PAID;
            - CAN_BE_PAID;
            - STATE_TYPE_UNKNOWN;
            - Не найден (нет на кваритре, но есть в справочнике привилегий)
      title: |-
        Услуга.
        TODO: deprecated
    v1Subscription:
      type: object
      properties:
        id:
          type: string
          title: |-
            Идентификатор.
            Может быть явно задан при создании.
            Тип: Guid
        orpon:
          type: string
          format: int64
          title: |-
            ОРПОН.
            Идентификатор дома
        flatNumber:
          type: string
          title: Номер квартиры
        offerId:
          type: integer
          format: int32
          title: >-
            Идентификатор коммерческой возможности(КВ).

            Заполняется сервером на основе идентификатора из технологического плана(ТП)
          readOnly: true
        statusType:
          title: |-
            Cтатус подписки.
            При создании может быть: SETUP, ACTIVE
          allOf:
            - $ref: "#/components/schemas/v1SubscriptionStatusType"
        previousStatusType:
          title: |-
            Предыдущий статус подписки.
            В справочник входят только финальные статусы.
            Заполняется сервером при изменении статусов
          readOnly: true
          allOf:
            - $ref: "#/components/schemas/v1SubscriptionStatusType"
        price:
          type: number
          format: double
          title: Цена
        createdAt:
          type: string
          format: date-time
          title: |-
            Дата создания записи.
            Заполняется сервером
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении.
            Является версией объекта
          readOnly: true
        isEnableAutoSubscribe:
          type: boolean
          title: >-
            Признак для определения автоподписок.

            Редактировать флаг запрещено.

            Проставляется сервером в true при создании через задачу на автоподписку
          readOnly: true
        billingType:
          title: Тип биллинга
          allOf:
            - $ref: "#/components/schemas/SubscriptionBillingType"
        expiredAt:
          type: string
          format: date-time
          title: |-
            Срок действия.
            Проставляется при создании
        parentId:
          type: string
          title: |-
            Идентификатор подписки, в зависимости от которой подключена данная.
            Заполняется в подписках на опции.
            Тип: Guid
        account:
          type: string
          format: int64
          title: Аккаунт
        offer:
          title: >-
            Снапшот состояния коммерческой возможности на момент создания
            подписки.

            В данный момент это ссылка в базе на запись, в будущем это будет снапшот
          allOf:
            - $ref: "#/components/schemas/v1Offer"
        discountPrice:
          type: number
          format: double
          title: |-
            Цена по скидки.
            Заполнена если оплата подписки прошла по скидке, иначе очищается
      title: Подписка
      required:
        - orpon
        - flatNumber
        - statusType
    v1SubscriptionFilter:
      type: object
      properties:
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОНам
        flatNumbers:
          type: array
          items:
            type: string
          title: По номерам квартир
      title: Фильтр подписок
    v1SubscriptionFilterValidationError:
      type: object
      properties:
        orpons:
          title: Формат ОРПОН некорректен
          allOf:
            - $ref: "#/components/schemas/v1SubscriptionFilterValidationErrorOrponsInvalid"
        flatNumbers:
          title: Формат квартиры некорректен
          allOf:
            - $ref: "#/components/schemas/v1SubscriptionFilterValidationErrorFlatNumbersInval\
                id"
      title: |-
        Ошибки валидации фильтра по подпискам.
        Эти проверки выполняются до обращения в базу данных
    v1SubscriptionFilterValidationErrorFlatNumbersInvalid:
      type: object
      title: >-
        Причины:

        - Формат квартиры некорректен (например, длина номера квартира более 4 знаков или отрицательное значение)
    v1SubscriptionFilterValidationErrorOrponsInvalid:
      type: object
      title: |-
        Причины:
        - Формат ОРПОН некорректен;
        - ОРПОН передан некорректно, к примеру, значение <= 1
    v1SubscriptionPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: ID
          allOf:
            - $ref: "#/components/schemas/v1SubscriptionPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1SubscriptionPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация по подпискам
    v1SubscriptionPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1SubscriptionPagingOrderByType:
      type: string
      enum:
        - ID
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
      title: Справочник типов значений сортировки
    v1SubscriptionPagingValidationError:
      type: object
      properties:
        limit:
          title: Количество передано некорректно
          allOf:
            - $ref: "#/components/schemas/v1SubscriptionPagingValidationErrorLimitInvalid"
        offset:
          title: Сдвиг передан некорректно
          allOf:
            - $ref: "#/components/schemas/v1SubscriptionPagingValidationErrorOffsetInvalid"
      title: |-
        Ошибка валидации постраничной пагинации по подпискам.
        Эти проверки выполняются до обращения в базу данных
    v1SubscriptionPagingValidationErrorLimitInvalid:
      type: object
      title: |-
        Причины:
        - Значение количества < 0 или > 100
    v1SubscriptionPagingValidationErrorOffsetInvalid:
      type: object
      title: |-
        Причины:
        - Значение сдвига < 0
    v1SubscriptionStatusType:
      type: string
      enum:
        - SETUP
        - ACTIVE
        - BLOCKED
        - CANCELED
        - SCHEDULED_CANCELED
      description: >-
        - STATUS_TYPE_UNKNOWN: Значение не указано
         - SETUP: Настроена.
        Подписка переведена в статус настройки.

        Это промо-период, либо монтажник проверяет работу оборудования.

        Услуги подписки не оплачены, но доступны для использования.

        Финальный статус
         - ACTIVE: Активна.
        Подписка активирована.

        С этого момента считаем что нужно считать денежки.

        Услуги подписки оплачены и доступны для использования.

        Финальный статус
         - BLOCKED: Заблокирована.
        Подписка фин. заблокирована.

        Подписка в фин. блокировке.

        Услуги подписки не оплачены и не доступны.

        Финальный статус
         - CANCELED: Отменена.
        Подписка отменена.

        Пользователь отменил подписку.

        Услуги подписки больше не существуют и не доступны абоненту
         - SCHEDULED_CANCELED: Запланированная отмена.
        Пользователь решил отказаться от услуги, но уже заплатил.

        Подписка запланирована к отмене, будет действовать до истечения срока действия в подписке.

        Услуги подписки оплачены и доступны для использования.

        Финальный статус
      title: Типы статусов подписки
  securitySchemes:
    bearerHttp:
      type: http
      scheme: bearer
      bearerFormat: JWT
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://oauth2-staging.k8s.key.rt.ru/oauth2/token
          scopes:
            subscription:edit: Предоставляет полный доступ в сервис subscription
            subscription:read: Предоставляет доступ на чтение данных из сервиса subscription
servers:
  - url: https://keyapis-staging.k8s.key.rt.ru
    description: staging
  - url: https://{feature}.k8s.key.rt.ru/
    description: https feature
    variables:
      feature:
        default: ""
        description: Feature name
  - url: http://{feature}.k8s.key.rt.ru/
    description: http feature
    variables:
      feature:
        default: ""
        description: Feature name
  - url: https://localhost:3001
    description: localhost
  - url: https://keyapis.key.rt.ru
    description: production
