openapi: 3.0.3
info:
  title: access_control
  version: 1.0.1782225675181
  description: Сервис access_control
  license:
    name: CC BY-NC-ND 4.0
    url: https://gitlab.infra.rtkit.dev/openapi/key/raw/main/LICENCE.md
tags:
  - name: access_point(auth)
    description: Методы access_point. Требуют авторизацию. Доступны из интернета
  - name: building(auth)
    description: Методы building. Требуют авторизацию. Доступны из интернета
  - name: entrance(auth)
    description: Методы entrance. Требуют авторизацию. Доступны из интернета
  - name: flatgramm(auth)
    description: Методы flatgramm. Требуют авторизацию. Доступны из интернета
  - name: rfid(auth)
    description: Методы rfid. Требуют авторизацию. Доступны из интернета
  - name: room(auth)
    description: Методы room. Требуют авторизацию. Доступны из интернета
  - name: sync(auth)
    description: Методы sync. Требуют авторизацию. Доступны из интернета
  - name: system(public)
    description: Методы system. Не требуют авторизацию. Доступны из интернета
  - name: broadcast_alert(internal auth)
    description: Внутренние методы. Требуют авторизацию. Доступны только во внутренней сети
paths:
  /access_control/api/v1/access_point:
    post:
      summary: |-
        Метод сохранения точки доступа.
        Поддерживает создание и обновление.
        Метод доступен для: admin, service, bti
      operationId: AccessPointService_PostAccessPoint
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostAccessPointResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostAccessPointResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostAccessPointResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostAccessPointRequest"
        required: true
      tags:
        - access_point(auth)
      security:
        - oauth2:
            - access_control: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, он никогда не
            будет перенаправлен на канареечный деплой
  /access_control/api/v1/access_point/count:
    get:
      summary: |-
        Метод получения количества точек доступа.
        Метод доступен для: admin, service, bti.
        Метод доступен для: ApiKey
      operationId: AccessPointService_GetAccessPointCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetAccessPointCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetAccessPointCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetAccessPointCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.text
          description: |-
            По тексту.
            Если значение не передано то поиск по нему не производится.
            # Диапазон: 3..64.
            # Поиск производится по полям:
            # - Наименование;
            # - Описание
          in: query
          required: false
          schema:
            type: string
        - name: filter.deviceIds
          description: По идентификаторам устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.flatgrammIds
          description: По идентификаторам квартирограмм
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.directionTypes
          description: |-
            По типам направления

             - DIRECTION_TYPE_UNKNOWN: Не указано
             - IN: Вход
             - OUT: Выход
             - REVERSE: В обоих направлениях
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - IN
                - OUT
                - REVERSE
        - name: filter.groupIds
          description: |-
            По идентификаторам группы.
            # Тип: Guid
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.cameraUids
          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:
        - access_point(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/access_point/group/count:
    get:
      summary: |-
        Метод получения количества связей точек доступа и групп.
        Метод доступен для: admin, service, bti
      operationId: AccessPointGroupService_GetAccessPointGroupCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetAccessPointGroupCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetAccessPointGroupCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetAccessPointGroupCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.accessPointIds
          description: |-
            По идентификаторам точки доступа.
            # Тип: Guid
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.groupIds
          description: |-
            По идентификаторам группы.
            # Тип: Guid
          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:
        - access_point(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/access_point/group/list:
    get:
      summary: |-
        Метод получения списка связей точек доступа и групп.
        Метод доступен для: admin, service, bti
      operationId: AccessPointGroupService_GetAccessPointGroupList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetAccessPointGroupListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetAccessPointGroupListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.accessPointIds
          description: |-
            По идентификаторам точки доступа.
            # Тип: Guid
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.groupIds
          description: |-
            По идентификаторам группы.
            # Тип: Guid
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: GROUP_ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - GROUP_ID: По идентификатору группы
             - ACCESS_POINT_ID: По идентификатору точки доступа
             - CREATED_AT: По дате создания
          in: query
          required: false
          schema:
            type: string
            enum:
              - GROUP_ID
              - ACCESS_POINT_ID
              - CREATED_AT
        - 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:
        - access_point(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/access_point/list:
    get:
      summary: |-
        Метод получения списка точек доступа.
        Метод доступен для: admin, service, bti.
        Метод доступен для: ApiKey
      operationId: AccessPointService_GetAccessPointList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetAccessPointListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetAccessPointListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.text
          description: |-
            По тексту.
            Если значение не передано то поиск по нему не производится.
            # Диапазон: 3..64.
            # Поиск производится по полям:
            # - Наименование;
            # - Описание
          in: query
          required: false
          schema:
            type: string
        - name: filter.deviceIds
          description: По идентификаторам устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.flatgrammIds
          description: По идентификаторам квартирограмм
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.directionTypes
          description: |-
            По типам направления

             - DIRECTION_TYPE_UNKNOWN: Не указано
             - IN: Вход
             - OUT: Выход
             - REVERSE: В обоих направлениях
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - IN
                - OUT
                - REVERSE
        - name: filter.groupIds
          description: |-
            По идентификаторам группы.
            # Тип: Guid
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.cameraUids
          description: По идентификаторам камер
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: paging.orderByType
          description: >-
            Тип значения сортировки.

            Если значение не передано, то будет взято значение по умолчанию.

            # По умолчанию: CHANGED_AT

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По идентификатору
             - TITLE: По наименованию
             - CHANGED_AT: Дата последнего изменения
             - CREATED_AT: Дата создания
             - RANK: По рангу для поиска по тексту.
            Применяется когда передано поле для поиска по тексту.

            В случае если текстовое поле не передано, применяется значение по умолчанию
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - TITLE
              - CHANGED_AT
              - CREATED_AT
              - RANK
        - 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:
        - access_point(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/access_point/open:
    post:
      summary: |-
        Метод открытия точки доступа.
        Метод доступен для: admin, service, bti.
        Метод доступен для: ApiKey
      operationId: AccessPointService_PostAccessPointOpen
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostAccessPointOpenResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostAccessPointOpenResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostAccessPointOpenResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostAccessPointOpenRequest"
        required: true
      tags:
        - access_point(auth)
      security:
        - oauth2:
            - access_control: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, он никогда не
            будет перенаправлен на канареечный деплой
  "/access_control/api/v1/access_point/{accessPointGroup.accessPointId}/group/{accessPointGroup.groupId}/attach":
    put:
      summary: |-
        Метод создания связи точки доступа и группы.
        Метод доступен для: admin, service, bti
      operationId: AccessPointGroupService_PutAccessPointGroupAttach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutAccessPointGroupAttachResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutAccessPointGroupAttachResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutAccessPointGroupAttachResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: accessPointGroup.accessPointId
          description: |-
            Идентификатор точки доступа.
            # Тип: Guid
          in: path
          required: true
          schema:
            type: string
        - name: accessPointGroup.groupId
          description: |-
            Идентификатор группы.
            # Тип: Guid
          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:
        - access_point(auth)
      security:
        - oauth2:
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/access_point/{accessPointGroup.accessPointId}/group/{accessPointGroup.groupId}/detach":
    put:
      summary: |-
        Метод удаления связи точки доступа и группы.
        Метод доступен для: admin, service, bti
      operationId: AccessPointGroupService_PutAccessPointGroupDetach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutAccessPointGroupDetachResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutAccessPointGroupDetachResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutAccessPointGroupDetachResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: accessPointGroup.accessPointId
          description: |-
            Идентификатор точки доступа.
            # Тип: Guid
          in: path
          required: true
          schema:
            type: string
        - name: accessPointGroup.groupId
          description: |-
            Идентификатор группы.
            # Тип: Guid
          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:
        - access_point(auth)
      security:
        - oauth2:
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/access_point/{id}":
    get:
      summary: |-
        Метод получения точки доступа по идентификатору.
        Метод доступен для: admin, service, bti.
        Метод доступен для: ApiKey
      operationId: AccessPointService_GetAccessPoint
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetAccessPointResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetAccessPointResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetAccessPointResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: |-
            Идентификатор.
            # Тип: Guid
          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:
        - access_point(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
    delete:
      summary: |-
        Метод удаления точки доступа.
        Метод доступен для: admin, service, bti
      operationId: AccessPointService_DeleteAccessPoint
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteAccessPointResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteAccessPointResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteAccessPointResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: |-
            Идентификатор.
            # Тип: Guid
          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:
        - access_point(auth)
      security:
        - oauth2:
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/building/count:
    get:
      summary: >-
        Метод получения количества домов.

        Для пользователей типов owner, employee: в результат попадают только дома, которые привязаны к компании пользователя или дома квартирограамм привязанных к компании пользователя.

        Метод доступен для: admin, service, owner, employee, ltp_first, bti
      operationId: BuildingService_GetBuildingCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.mrfIds
          description: По идентификаторам МРФ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.rfIds
          description: По идентификаторам РФ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.deviceIds
          description: По идентификаторам устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.flatgrammIds
          description: По идентификаторам квартирограмм
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.orpons
          description: По орпонам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - 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:
        - building(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/building/list:
    get:
      summary: >-
        Метод получения списка домов.

        Для пользователей типов owner, employee: в результат попадают только дома, которые привязаны к компании пользователя или дома квартирограамм привязанных к компании пользователя.

        При запросе через ApiKey происходит дополнительная фильтрация домов на основе доступности домов для этого ApiKey (фильтрация происходит по доступным AccessPoint для этой группы).

        Метод доступен для: admin, service, owner, employee, ltp_first, bti.

        Метод доступен для: ApiKey
      operationId: BuildingService_GetBuildingList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetBuildingListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetBuildingListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.mrfIds
          description: По идентификаторам МРФ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.rfIds
          description: По идентификаторам РФ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.deviceIds
          description: По идентификаторам устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.flatgrammIds
          description: По идентификаторам квартирограмм
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.orpons
          description: По орпонам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: CREATED_AT

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По идентификатору
             - CREATED_AT: По времени создания
             - STREET_THEN_NUMBER_THEN_PART: По улице, номеру дома, корпусу
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - CREATED_AT
              - STREET_THEN_NUMBER_THEN_PART
        - 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:
        - building(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/building/orpon/{orpon}/exists":
    get:
      summary: |-
        Метод проверки существования дома по ОРПОН.
        Возвращает true если найден дом с указанным ОРПОН.
        Метод доступен для: admin, service
      operationId: BuildingService_GetBuildingOrponExists
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingOrponExistsResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingOrponExistsResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingOrponExistsResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: orpon
          description: |-
            ОРПОН дома.
            # Диапазон: 1..9223372036854775807
          in: path
          required: true
          schema:
            type: string
            format: int64
        - 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:
        - building(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/building/orpon/{orpon}/subscription_mode":
    get:
      summary: |-
        Метод получения статуса режима работы с подписками у помещений дома.
        Возвращает агрегированный статус по всем помещениям дома.
        Метод доступен для: admin, service, ltp_first, bti
      operationId: BuildingService_GetBuildingOrponSubscriptionMode
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingOrponSubscriptionModeResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingOrponSubscriptionModeResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingOrponSubscriptionModeResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: orpon
          description: |-
            ОРПОН.
            # Диапазон: 1..9223372036854775807
          in: path
          required: true
          schema:
            type: string
            format: int64
        - 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:
        - building(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/building/{id}":
    get:
      summary: >-
        Метод получения Дома.

        Для пользователей типов owner, employee: в результат попадают только дома, которые привязаны к компании пользователя или дома квартирограамм привязанных к компании пользователя.

        Метод доступен для: admin, service, owner, employee, seller, external_seller, ltp_first, bti
      operationId: BuildingService_GetBuilding
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetBuildingResponse"
        default:
          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:
        - building(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/entrance:
    post:
      summary: >-
        Метод создания подъезда.

        Для ролей employee, owner можно сохранять только подъезды квартирограмм, привязанные к домофонной компании пользователя (привязка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE).

        Метод доступен для: admin, service, owner, employee
      operationId: EntranceService_PostEntrance
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostEntranceResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostEntranceResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostEntranceResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostEntranceRequest"
        required: true
      tags:
        - entrance(auth)
      security:
        - oauth2:
            - access_control: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, он никогда не
            будет перенаправлен на канареечный деплой
  /access_control/api/v1/entrance/device/list:
    get:
      summary: >-
        Метод получения списка связок подъезд-устройство.

        Для ролей employee, owner можно получать только связи с подъездами квартирограмм, привязанным к домофонной компании пользователя (привязка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE).

        Метод доступен для: admin, service, owner, employee
      operationId: EntranceService_GetEntranceDeviceList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetEntranceDeviceListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetEntranceDeviceListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.flatgrammIds
          description: По идентификаторам квартирограмм
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.orpons
          description: По ОРПОН
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.entranceNumbers
          description: По номерам подъезда
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.deviceIds
          description: По идентификаторам привязанных устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: ORPON_THEN_ENTRANCE_NUMBER

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ORPON_THEN_ENTRANCE_NUMBER: По ОРПОНу и номеру подъезда
             - DEVICE_ID: По идентификатору устройства
          in: query
          required: false
          schema:
            type: string
            enum:
              - ORPON_THEN_ENTRANCE_NUMBER
              - DEVICE_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: |-
            Количество записей на страницу.
            Если значение 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:
        - entrance(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/entrance/list:
    get:
      summary: >-
        Метод получения списка подъездов.

        При переданном company_ids учитывается тип связи компании и квартирограммы.

        Если EntranceFilter.CompanyRelationType = DEVICE_SERVICE, то проверяется связка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE.

        Если EntranceFilter.CompanyRelationType = MANAGEMENT, то проверяется связка в flatgramm_companies.

        Если EntranceFilter.CompanyRelationType = DEFAULT, то проверяется связка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE.

        Если EntranceFilter.CompanyRelationType = COMPANY_RELATION_TYPE_UNKNOWN, вернется ошибка валидации.

        При не переданном company_ids поле EntranceFilter.CompanyRelationType вызовет ошибку валидации.

        Для ролей employee, owner можно получать только подъезды квартирограмм, привязанные к домофонной компании пользователя (привязка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE).

        Метод доступен для: admin, service, owner, employee
      operationId: EntranceService_GetEntranceList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetEntranceListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetEntranceListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.flatgrammIds
          description: По идентификаторам квартирограмм
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - 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: filter.companyRelationType
          description: |-
            Тип связи компании с подъездами

             - COMPANY_RELATION_TYPE_UNKNOWN: Значение не указано
             - DEFAULT: Значение по умолчанию
             - MANAGEMENT: Управляющая компания владеет квартирограммой
             - DEVICE_SERVICE: Домофонная компания обслуживает квартирограмму
          in: query
          required: false
          schema:
            type: string
            enum:
              - DEFAULT
              - MANAGEMENT
              - DEVICE_SERVICE
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: ORPON_THEN_ENTRANCE_NUMBER

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ORPON_THEN_ENTRANCE_NUMBER: По ОРПОНу и номеру подъезда
          in: query
          required: false
          schema:
            type: string
            enum:
              - ORPON_THEN_ENTRANCE_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:
        - entrance(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/entrance/{entranceDevice.orpon}/{entranceDevice.entranceNumber}/device/{entranceDevice.deviceId}/attach":
    put:
      summary: >-
        Метод создания связи подъезда и устройства.

        Для ролей employee, owner можно сохранять только связи с подъездами квартирограмм, привязанным к домофонной компании пользователя (привязка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE).

        EntranceDevice.RelationType в данном методе не используется.

        Метод доступен для: admin, service, owner, employee
      operationId: EntranceService_PutEntranceDeviceAttach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutEntranceDeviceAttachResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutEntranceDeviceAttachResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutEntranceDeviceAttachResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: entranceDevice.orpon
          description: ОРПОН дома
          in: path
          required: true
          schema:
            type: string
            format: int64
        - name: entranceDevice.entranceNumber
          description: |-
            Номер подъезда.
            # Диапазон: 1..100
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: entranceDevice.deviceId
          description: |-
            Идентификатор устройства.
            # Диапазон: 1..2147483647
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: entranceDevice.relationType
          description: |-
            Тип связки.
            Игнорируется в методах создания и удаления связи

             - RELATION_TYPE_UNKNOWN: Значение не указано
             - FULL: Полная связь
             - PARTIAL: Частичная связь
          in: query
          required: false
          schema:
            type: string
            enum:
              - FULL
              - PARTIAL
        - 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:
        - entrance(auth)
      security:
        - oauth2:
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/entrance/{entranceDevice.orpon}/{entranceDevice.entranceNumber}/device/{entranceDevice.deviceId}/detach":
    put:
      summary: >-
        Метод удаления связи подъезда и устройства.

        Для ролей employee, owner можно удалять только связи с подъездами квартирограмм, привязанным к домофонной компании пользователя (привязка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE).

        EntranceDevice.RelationType в данном методе не используется.

        Метод доступен для: admin, service, owner, employee
      operationId: EntranceService_PutEntranceDeviceDetach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutEntranceDeviceDetachResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutEntranceDeviceDetachResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutEntranceDeviceDetachResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: entranceDevice.orpon
          description: ОРПОН дома
          in: path
          required: true
          schema:
            type: string
            format: int64
        - name: entranceDevice.entranceNumber
          description: |-
            Номер подъезда.
            # Диапазон: 1..100
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: entranceDevice.deviceId
          description: |-
            Идентификатор устройства.
            # Диапазон: 1..2147483647
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: entranceDevice.relationType
          description: |-
            Тип связки.
            Игнорируется в методах создания и удаления связи

             - RELATION_TYPE_UNKNOWN: Значение не указано
             - FULL: Полная связь
             - PARTIAL: Частичная связь
          in: query
          required: false
          schema:
            type: string
            enum:
              - FULL
              - PARTIAL
        - 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:
        - entrance(auth)
      security:
        - oauth2:
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/entrance/{orpon}/{entranceNumber}":
    delete:
      summary: >-
        Метод удаления подъезда.

        Реализуется как удаление квартир по указанному дому и номеру подъезда.

        Для ролей employee, owner можно удалять только подъезды квартирограмм, привязанные к домофонной компании пользователя (привязка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE).

        Метод доступен для: admin, service, owner, employee
      operationId: EntranceService_DeleteEntrance
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteEntranceResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteEntranceResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteEntranceResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: orpon
          description: ОРПОН дома
          in: path
          required: true
          schema:
            type: string
            format: int64
        - name: entranceNumber
          description: |-
            Номер подъезда.
            # Диапазон: 1..100
          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:
        - entrance(auth)
      security:
        - oauth2:
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/flatgramm/company_relation/count:
    get:
      summary: |-
        Метод получения количества связей квартирограмм и компаний.
        Метод доступен для: admin, service, seller
      operationId: FlatgrammService_GetFlatgrammCompanyRelationCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetFlatgrammCompanyRelationCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetFlatgrammCompanyRelationCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetFlatgrammCompanyRelationCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.flatgrammIds
          description: По Идентификатору квартирограммы
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.companyIds
          description: По Идентификатору компании
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.flatgrammCompanyRelationTypes
          description: |-
            Тип назначения компании для квартирограммы

             - TYPE_UNKNOWN: Значение не указано
             - MANAGEMENT: Управляющая компания владеет квартирограммой
             - DEVICE_SERVICE: Домофонная компания обслуживает квартирограмму
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - MANAGEMENT
                - DEVICE_SERVICE
        - 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:
        - flatgramm(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/flatgramm/company_relation/list:
    get:
      summary: |-
        Метод получения списка связей квартирограмм и компаний.
        Метод доступен для: admin, service, seller
      operationId: FlatgrammService_GetFlatgrammCompanyRelationList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetFlatgrammCompanyRelationListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetFlatgrammCompanyRelationListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.flatgrammIds
          description: По Идентификатору квартирограммы
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.companyIds
          description: По Идентификатору компании
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.flatgrammCompanyRelationTypes
          description: |-
            Тип назначения компании для квартирограммы

             - TYPE_UNKNOWN: Значение не указано
             - MANAGEMENT: Управляющая компания владеет квартирограммой
             - DEVICE_SERVICE: Домофонная компания обслуживает квартирограмму
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - MANAGEMENT
                - DEVICE_SERVICE
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            По умолчанию: COMPANY_ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - COMPANY_ID: По Идентификатору компании
             - FLATGRAMM_ID: По Идентификатору квартирограммы
          in: query
          required: false
          schema:
            type: string
            enum:
              - COMPANY_ID
              - FLATGRAMM_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:
        - flatgramm(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/flatgramm/count:
    get:
      summary: >-
        Метод получения количества квартирограмм.

        Для пользователей типов owner, employee: в результат фильтрации попадают только квартирограммы компании пользователя.

        Для пользователей типов owner, employee: если filter.company_ids непустое и не совпадает с COMPANY_ID пользователя, метод вернет PERMISSION_DENIED = 7 (403 Forbidden).

        Для пользователей типов owner, employee: если filter.company_ids пустое, то фильтрация по COMPANY_ID пользователя.

        Метод доступен для: admin, manager, service, bti, ltp_first, owner, employee
      operationId: FlatgrammService_GetFlatgrammCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetFlatgrammCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.companyIds
          description: >-
            По идентификаторам компаний.

            Фильтрация среди компаний, тип связи компании и КВГ определяется по полю company_relation_types.

            Если company_relation_types не передан, то учитываются все значения типа FlatgrammCompanyRelation.Type
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.text
          description: |-
            Поиск по тексту.
            Если значение не передано то поиск по нему не производится.
            # Диапазон: 3..64.
            # Поиск производится по полям:
            # - Наименование
          in: query
          required: false
          schema:
            type: string
        - name: filter.flatgrammCompanyRelationTypes
          description: |-
            По типу связи квартирограмм и компаний

             - TYPE_UNKNOWN: Значение не указано
             - MANAGEMENT: Управляющая компания владеет квартирограммой
             - DEVICE_SERVICE: Домофонная компания обслуживает квартирограмму
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - MANAGEMENT
                - DEVICE_SERVICE
        - 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:
        - flatgramm(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/flatgramm/list:
    get:
      summary: >-
        Метод получения списка облегченных квартирограмм.

        Для пользователей типов owner, employee: в результат фильтрации попадают только квартирограммы компании пользователя.

        Для пользователей типов owner, employee: если filter.company_ids непустое и не совпадает с COMPANY_ID пользователя, метод вернет PERMISSION_DENIED = 7 (403 Forbidden).

        Для пользователей типов owner, employee: если filter.company_ids пустое, то фильтрация по COMPANY_ID пользователя.

        Метод доступен для: admin, manager, service, bti, ltp_first, owner, employee
      operationId: FlatgrammService_GetFlatgrammList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetFlatgrammListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetFlatgrammListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.companyIds
          description: >-
            По идентификаторам компаний.

            Фильтрация среди компаний, тип связи компании и КВГ определяется по полю company_relation_types.

            Если company_relation_types не передан, то учитываются все значения типа FlatgrammCompanyRelation.Type
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.text
          description: |-
            Поиск по тексту.
            Если значение не передано то поиск по нему не производится.
            # Диапазон: 3..64.
            # Поиск производится по полям:
            # - Наименование
          in: query
          required: false
          schema:
            type: string
        - name: filter.flatgrammCompanyRelationTypes
          description: |-
            По типу связи квартирограмм и компаний

             - TYPE_UNKNOWN: Значение не указано
             - MANAGEMENT: Управляющая компания владеет квартирограммой
             - DEVICE_SERVICE: Домофонная компания обслуживает квартирограмму
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - MANAGEMENT
                - DEVICE_SERVICE
        - name: paging.orderByType
          description: >-
            Тип значения сортировки.

            Если значение не передано, то будет взято значение по умолчанию.

            # По умолчанию: CHANGED_AT

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По идентификатору
             - CREATED_AT: По времени создания
             - CHANGED_AT: По времени изменения
             - RANK: По рангу для поиска по тексту.
            Применяется когда передано поле для поиска по тексту.

            В случае если текстовое поле не передано, применяется значение по умолчанию
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - CREATED_AT
              - CHANGED_AT
              - RANK
        - 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:
        - flatgramm(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/flatgramm/{flatgrammCompanyRelation.flatgrammId}/company_relation/{flatgrammCompanyRelation.companyId}/attach":
    put:
      summary: |-
        Метод сохранения связей квартирограммы и компании.
        Поддерживает только создание.
        Метод доступен для: admin, service, seller
      operationId: FlatgrammService_PutFlatgrammCompanyRelationAttach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutFlatgrammCompanyRelationAttachResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutFlatgrammCompanyRelationAttachResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutFlatgrammCompanyRelationAttachResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: flatgrammCompanyRelation.flatgrammId
          description: |-
            Идентификатор квартирограммы.
            # Диапазон: 1..2147483647
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: flatgrammCompanyRelation.companyId
          description: |-
            Идентификатор компании.
            # Диапазон: 1..2147483647
          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, он никогда не
            будет перенаправлен на канареечный деплой
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                flatgrammCompanyRelation:
                  type: object
                  properties:
                    type:
                      title: Тип связи компании и квартирограммы
                      allOf:
                        - $ref: "#/components/schemas/v1FlatgrammCompanyRelationType"
                  title: Связь квартирограммы и компании
              title: Запрос сохранения связей квартирограммы и компании
              required:
                - type
        required: true
      tags:
        - flatgramm(auth)
      security:
        - oauth2:
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/flatgramm/{flatgrammCompanyRelation.flatgrammId}/company_relation/{flatgrammCompanyRelation.companyId}/detach":
    put:
      summary: |-
        Метод удаления связей квартирограммы и компании.
        Метод доступен для: admin, service, seller
      operationId: FlatgrammService_PutFlatgrammCompanyRelationDetach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutFlatgrammCompanyRelationDetachResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutFlatgrammCompanyRelationDetachResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutFlatgrammCompanyRelationDetachResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: flatgrammCompanyRelation.flatgrammId
          description: |-
            Идентификатор квартирограммы.
            # Диапазон: 1..2147483647
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: flatgrammCompanyRelation.companyId
          description: |-
            Идентификатор компании.
            # Диапазон: 1..2147483647
          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, он никогда не
            будет перенаправлен на канареечный деплой
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                flatgrammCompanyRelation:
                  type: object
                  properties:
                    type:
                      title: Тип связи компании и квартирограммы
                      allOf:
                        - $ref: "#/components/schemas/v1FlatgrammCompanyRelationType"
                  title: Связь квартирограммы и компании
              title: Запрос удаления связей квартирограммы и компании
              required:
                - type
        required: true
      tags:
        - flatgramm(auth)
      security:
        - oauth2:
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/flatgramm/{id}":
    get:
      summary: >-
        Метод получения облегченной квартирограммы.

        Для пользователей типов owner, employee возвращаются только квартирограммы привязанные к компании пользователя.

        Для пользователей типов owner, employee: в результат попадают только квартирограммы, привязанные к компании пользователя по любому из типов связи FlatgrammCompanyRelation.Type.

        Метод доступен для: admin, manager, service, bti, ltp_first, owner, employee
      operationId: FlatgrammService_GetFlatgramm
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetFlatgrammResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetFlatgrammResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetFlatgrammResponse"
        default:
          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:
        - flatgramm(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/rfid:
    post:
      summary: |-
        Метод создания ключа.
        Метод доступен для: admin, service, ltp_first, owner, employee
      operationId: RfidService_PostRfid
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostRfidResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostRfidResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostRfidResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostRfidRequest"
        required: true
      tags:
        - rfid(auth)
      security:
        - oauth2:
            - access_control: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, он никогда не
            будет перенаправлен на канареечный деплой
  /access_control/api/v1/rfid/count:
    get:
      summary: |-
        Метод получения количества ключей.
        Метод доступен для: admin, service, ltp_first, owner, employee
      operationId: RfidService_GetRfidCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRfidCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRfidCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRfidCountResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.holderTypes
          description: |-
            По типам владельца

             - HOLDER_TYPE_UNKNOWN: Значение не указано
             - MASTER: Жилец
             - COMPANY: Сотрудник УК
             - EXTERNAL_SELLER: Ключ сотрудника ГАП
             - SYSTEM: Системный ключ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - MASTER
                - COMPANY
                - EXTERNAL_SELLER
                - SYSTEM
        - name: filter.payTypes
          description: |-
            По типам оплаты

             - PAY_TYPE_UNKNOWN: Значение не указано
             - PAID: Платный
             - FREE: Бесплатный
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - PAID
                - FREE
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.roomNumbers
          description: По номерам квартир
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.userIds
          description: По идентификаторам пользователей
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.companyIds
          description: По идентификаторам компаний
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.keys
          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:
        - rfid(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/rfid/list:
    get:
      summary: |-
        Метод получения списка ключей.
        Метод доступен для: admin, service, ltp_first, owner, employee
      operationId: RfidService_GetRfidList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetRfidListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetRfidListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.holderTypes
          description: |-
            По типам владельца

             - HOLDER_TYPE_UNKNOWN: Значение не указано
             - MASTER: Жилец
             - COMPANY: Сотрудник УК
             - EXTERNAL_SELLER: Ключ сотрудника ГАП
             - SYSTEM: Системный ключ
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - MASTER
                - COMPANY
                - EXTERNAL_SELLER
                - SYSTEM
        - name: filter.payTypes
          description: |-
            По типам оплаты

             - PAY_TYPE_UNKNOWN: Значение не указано
             - PAID: Платный
             - FREE: Бесплатный
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - PAID
                - FREE
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.roomNumbers
          description: По номерам квартир
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.userIds
          description: По идентификаторам пользователей
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.companyIds
          description: По идентификаторам компаний
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.keys
          description: По кодам ключа
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: CHANGED_AT

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - CREATED_AT: По времени создания
             - CHANGED_AT: По времени изменения
          in: query
          required: false
          schema:
            type: string
            enum:
              - CREATED_AT
              - CHANGED_AT
        - 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:
        - rfid(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/rfid/{id}":
    get:
      summary: |-
        Метод получения ключа.
        Метод доступен для: admin, service, ltp_first, owner, employee
      operationId: RfidService_GetRfid
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRfidResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRfidResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRfidResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: |-
            Идентификатор ключа.
            # Диапазон: 0..2147483647
          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:
        - rfid(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
    delete:
      summary: |-
        Метод удаления ключа.
        Метод доступен для: admin, service, ltp_first, owner, employee
      operationId: RfidService_DeleteRfid
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteRfidResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteRfidResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteRfidResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: id
          description: |-
            Идентификатор ключа.
            # Диапазон: 0..2147483647
          in: path
          required: true
          schema:
            type: integer
            format: int32
        - name: isForceDelete
          description: >-
            Флаг принудительного удаления ключа.

            При принудительном удалении не гарантируется удаление ключа со всех физических устройств
          in: query
          required: false
          schema:
            type: boolean
        - 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:
        - rfid(auth)
      security:
        - oauth2:
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/room/count:
    get:
      summary: |-
        Метод получения количества квартир.
        Метод доступен для: admin, service, ltp_first, owner, employee, bti
      operationId: AccessControlService_GetRoomCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRoomCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.buildingIds
          description: По идентификаторам домов
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.entrances
          description: По подъездам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.floors
          description: По этажам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.companyIds
          description: По идентификаторам компаний
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.types
          description: |-
            По типам

             - TYPE_UNKNOWN: Значение не указано
             - FLOOR: Этаж
             - ENTRANCE: Подъезд
             - APARTMENT: Апартаменты
             - WATER_DISTRIBUTION: Вводно-распределительные устройства
             - HEAT_POINT: Индивидуальный тепловой пункт
             - PANTRY: Кладовая
             - WHEELCHAIR: Колясочная
             - WIRING_CLOSET: Коммутационный шкаф
             - CONCIERGE: Консьержная
             - CHECKPOINT: КПП
             - PARKING_PLACE: Машиноместо
             - OFFICE: Офис
             - BASEMENT: Подвал
             - SUBSTATION: Подстанция
             - HOMEOWNERS_ROOM: Помещение правления ТСЖ
             - TAMBOUR: Тамбур
             - INPUT_NODE: Узел ввода
             - LOBBY: Лобби
             - ATTIC: Чердак
             - ELEVATOR_SHAFT: Шахта лифта
             - SWITCHBOARD: Электрощитовая
             - DEFAULT_ROOM: Квартира по умолчанию
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - FLOOR
                - ENTRANCE
                - APARTMENT
                - WATER_DISTRIBUTION
                - HEAT_POINT
                - PANTRY
                - WHEELCHAIR
                - WIRING_CLOSET
                - CONCIERGE
                - CHECKPOINT
                - PARKING_PLACE
                - OFFICE
                - BASEMENT
                - SUBSTATION
                - HOMEOWNERS_ROOM
                - TAMBOUR
                - INPUT_NODE
                - LOBBY
                - ATTIC
                - ELEVATOR_SHAFT
                - SWITCHBOARD
                - DEFAULT_ROOM
        - name: filter.deviceIds
          description: По идентификаторам устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.isServiceFlag
          description: По признаку служебной квартиры
          in: query
          required: false
          schema:
            type: boolean
        - name: filter.roomNumbers
          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:
        - room(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/room/device/count:
    get:
      summary: |-
        Метод получения количества связок помещение-устройство.
        Метод доступен для: admin, service, bti, ltp_first
      operationId: RoomDeviceService_GetRoomDeviceCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRoomDeviceCountResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.flatgrammIds
          description: По идентификаторам квартирограмм
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.orpons
          description: По ОРПОН
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.roomNumbers
          description: По номерам квартир
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.deviceIds
          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:
        - room(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/room/device/list:
    get:
      summary: |-
        Метод получения списка связок помещение-устройство.
        Метод доступен для: admin, service, bti, ltp_first
      operationId: RoomDeviceService_GetRoomDeviceList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetRoomDeviceListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetRoomDeviceListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.flatgrammIds
          description: По идентификаторам квартирограмм
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.orpons
          description: По ОРПОН
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.roomNumbers
          description: По номерам квартир
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.deviceIds
          description: По идентификаторам привязанных устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: ORPON_THEN_ENTRANCE_NUMBER

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ORPON_THEN_ENTRANCE_NUMBER: По ОРПОНу и номеру подъезда
             - DEVICE_ID: По идентификатору устройства
          in: query
          required: false
          schema:
            type: string
            enum:
              - ORPON_THEN_ENTRANCE_NUMBER
              - DEVICE_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: |-
            Количество записей на страницу.
            Если значение 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:
        - room(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/room/list:
    get:
      summary: |-
        Метод получения списка квартир.
        Метод доступен для: admin, service, ltp_first, owner, employee, bti
      operationId: AccessControlService_GetRoomList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetRoomListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetRoomListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: filter.buildingIds
          description: По идентификаторам домов
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.entrances
          description: По подъездам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.floors
          description: По этажам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.companyIds
          description: По идентификаторам компаний
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.types
          description: |-
            По типам

             - TYPE_UNKNOWN: Значение не указано
             - FLOOR: Этаж
             - ENTRANCE: Подъезд
             - APARTMENT: Апартаменты
             - WATER_DISTRIBUTION: Вводно-распределительные устройства
             - HEAT_POINT: Индивидуальный тепловой пункт
             - PANTRY: Кладовая
             - WHEELCHAIR: Колясочная
             - WIRING_CLOSET: Коммутационный шкаф
             - CONCIERGE: Консьержная
             - CHECKPOINT: КПП
             - PARKING_PLACE: Машиноместо
             - OFFICE: Офис
             - BASEMENT: Подвал
             - SUBSTATION: Подстанция
             - HOMEOWNERS_ROOM: Помещение правления ТСЖ
             - TAMBOUR: Тамбур
             - INPUT_NODE: Узел ввода
             - LOBBY: Лобби
             - ATTIC: Чердак
             - ELEVATOR_SHAFT: Шахта лифта
             - SWITCHBOARD: Электрощитовая
             - DEFAULT_ROOM: Квартира по умолчанию
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - FLOOR
                - ENTRANCE
                - APARTMENT
                - WATER_DISTRIBUTION
                - HEAT_POINT
                - PANTRY
                - WHEELCHAIR
                - WIRING_CLOSET
                - CONCIERGE
                - CHECKPOINT
                - PARKING_PLACE
                - OFFICE
                - BASEMENT
                - SUBSTATION
                - HOMEOWNERS_ROOM
                - TAMBOUR
                - INPUT_NODE
                - LOBBY
                - ATTIC
                - ELEVATOR_SHAFT
                - SWITCHBOARD
                - DEFAULT_ROOM
        - name: filter.deviceIds
          description: По идентификаторам устройств
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: filter.orpons
          description: По ОРПОНам
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              format: int64
        - name: filter.isServiceFlag
          description: По признаку служебной квартиры
          in: query
          required: false
          schema:
            type: boolean
        - name: filter.roomNumbers
          description: По номерам квартир
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: CREATED_AT

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - ID: По идентификатору
             - CREATED_AT: По времени создания
             - FLOOR_THEN_NUMBER: По этажу и номеру
             - NUMBER: По номеру
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - CREATED_AT
              - FLOOR_THEN_NUMBER
              - 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:
        - room(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/room/orpon/{orpon}/number/{roomNumber}/exists":
    get:
      summary: |-
        Метод проверки существования квартиры по ОРПОН и её номеру.
        Возвращает true если найдена квартира с указанными параметрами.
        Метод доступен для: admin, service
      operationId: AccessControlService_GetRoomOrponNumberExists
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRoomOrponNumberExistsResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRoomOrponNumberExistsResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRoomOrponNumberExistsResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: orpon
          description: |-
            ОРПОН дома.
            # Диапазон: 1..9223372036854775807
          in: path
          required: true
          schema:
            type: string
            format: int64
        - name: roomNumber
          description: |-
            Номер квартиры.
            # Диапазон: 1..4
          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:
        - room(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/room/set_subscription_mode:
    patch:
      summary: |-
        Метод установки режима подписок.
        Метод доступен для: admin, service
      operationId: AccessControlService_PatchRoomSetSubscriptionMode
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PatchRoomSetSubscriptionModeResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PatchRoomSetSubscriptionModeResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PatchRoomSetSubscriptionModeResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PatchRoomSetSubscriptionModeRequest"
        required: true
      tags:
        - room(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control: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, он никогда не
            будет перенаправлен на канареечный деплой
  /access_control/api/v1/room/user/count:
    get:
      summary: |-
        Метод получения количества связей помещений и пользователей.
        Метод доступен для: admin, service, bti, ltp_first
      operationId: RoomUserService_GetRoomUserCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRoomUserCountResponse"
        "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.roomNumbers
          description: По номерам квартир
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.userIds
          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:
        - room(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/room/user/list:
    get:
      summary: |-
        Метод получения списка связей помещений и пользователей.
        Метод доступен для: admin, service, bti, ltp_first
      operationId: RoomUserService_GetRoomUserList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetRoomUserListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetRoomUserListResponse
        "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.roomNumbers
          description: По номерам квартир
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: filter.userIds
          description: По идентификаторам пользователей
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: integer
              format: int32
        - name: paging.orderByType
          description: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: USER_ID

             - ORDER_BY_TYPE_UNKNOWN: Значение не указано
             - USER_ID: По идентификатору
             - ORPON_THEN_NUMBER: По ОРПОНу и номеру
          in: query
          required: false
          schema:
            type: string
            enum:
              - USER_ID
              - ORPON_THEN_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:
        - room(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/room/{id}":
    get:
      summary: |-
        Метод получения Квартиры.
        Метод доступен для: admin, service, ltp_first, owner, employee
      operationId: AccessControlService_GetRoom
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRoomResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRoomResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetRoomResponse"
        default:
          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:
        - room(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/room/{roomDevice.orpon}/{roomDevice.roomNumber}/device/{roomDevice.deviceId}/attach":
    put:
      summary: |-
        Метод создания связи помещения и устройства.
        Метод доступен для: admin, service
      operationId: RoomDeviceService_PutRoomDeviceAttach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutRoomDeviceAttachResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutRoomDeviceAttachResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutRoomDeviceAttachResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: roomDevice.orpon
          description: |-
            Идентификатор ОРПОН дома.
            # Диапазон 1..9223372036854775807
          in: path
          required: true
          schema:
            type: string
            format: int64
        - name: roomDevice.roomNumber
          description: |-
            Номер квартиры.
            # Диапазон: 1..4
          in: path
          required: true
          schema:
            type: string
        - name: roomDevice.deviceId
          description: |-
            Идентификатор устройства.
            # Диапазон: 1..2147483647
          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:
        - room(auth)
      security:
        - oauth2:
            - access_control:edit
          bearerHttp: []
  "/access_control/api/v1/room/{roomDevice.orpon}/{roomDevice.roomNumber}/device/{roomDevice.deviceId}/detach":
    put:
      summary: |-
        Метод удаления связи помещения и устройства.
        Метод доступен для: admin, service
      operationId: RoomDeviceService_PutRoomDeviceDetach
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutRoomDeviceDetachResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutRoomDeviceDetachResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PutRoomDeviceDetachResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: roomDevice.orpon
          description: |-
            Идентификатор ОРПОН дома.
            # Диапазон 1..9223372036854775807
          in: path
          required: true
          schema:
            type: string
            format: int64
        - name: roomDevice.roomNumber
          description: |-
            Номер квартиры.
            # Диапазон: 1..4
          in: path
          required: true
          schema:
            type: string
        - name: roomDevice.deviceId
          description: |-
            Идентификатор устройства.
            # Диапазон: 1..2147483647
          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:
        - room(auth)
      security:
        - oauth2:
            - access_control:edit
          bearerHttp: []
  /access_control/api/v1/sync/building:
    post:
      summary: |-
        Метод частичного обновления дома, только данными из DaData.
        Метод доступен для: admin, service
      operationId: SyncService_PostSyncBuilding
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostSyncBuildingResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostSyncBuildingResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostSyncBuildingResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostSyncBuildingRequest"
        required: true
      tags:
        - sync(auth)
      security:
        - oauth2:
            - access_control: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, он никогда не
            будет перенаправлен на канареечный деплой
  /access_control/api/v1/sync/buildings:
    get:
      summary: |-
        Метод получения списка домов для обновления.
        Метод доступен для: admin, service
      operationId: SyncService_GetSyncBuildings
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetSyncBuildingsResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetSyncBuildingsResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetSyncBuildingsResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      parameters:
        - name: batchSize
          description: |-
            Количество.
            По умолчанию 10.
            # Диапазон: 10..5000
          in: query
          required: true
          schema:
            type: integer
            format: int32
        - name: lastSyncBeforeAt
          description: Дата, старше которой должны вернуться записи для синхронизации
          in: query
          required: true
          schema:
            type: string
            format: date-time
        - 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:
        - sync(auth)
      security:
        - oauth2:
            - access_control:read
            - access_control:edit
          bearerHttp: []
  /access_control/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, он никогда не
            будет перенаправлен на канареечный деплой
  /access_control/internal/api/v1/broadcast_alert/start:
    post:
      summary: |-
        Метод запуска массового оповещения через домофоны.
        Метод доступен для: ApiKey
      operationId: BroadcastAlertService_PostBroadcastAlertStart
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostBroadcastAlertStartResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostBroadcastAlertStartResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostBroadcastAlertStartResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostBroadcastAlertStartRequest"
        required: true
      tags:
        - broadcast_alert(internal auth)
      security:
        - oauth2:
            - access_control: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, он никогда не
            будет перенаправлен на канареечный деплой
  /access_control/internal/api/v1/broadcast_alert/stop:
    post:
      summary: |-
        Метод прекращения массового оповещения через домофоны.
        Метод доступен для: ApiKey
      operationId: BroadcastAlertService_PostBroadcastAlertStop
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostBroadcastAlertStopResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostBroadcastAlertStopResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostBroadcastAlertStopResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostBroadcastAlertStopRequest"
        required: true
      tags:
        - broadcast_alert(internal auth)
      security:
        - oauth2:
            - access_control: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, он никогда не
            будет перенаправлен на канареечный деплой
components:
  schemas:
    AccessPointCamera:
      type: object
      properties:
        uid:
          type: string
          title: UID камеры
        recognitionTypes:
          type: array
          items:
            $ref: "#/components/schemas/CameraRecognitionType"
          title: Типы распознавания
      title: Камера
      required:
        - uid
    BuildingSubscriptionModeSubscriptionModeType:
      type: string
      enum:
        - ENABLED
        - PARTIALLY_ENABLED
        - DISABLED
      description: >-
        - SUBSCRIPTION_MODE_TYPE_UNKNOWN: Значение не указано
         - ENABLED: Режим работы с подписками включен на всех помещениях дома
         - PARTIALLY_ENABLED: Режим работы с подписками включен на некоторых помещениях дома
         - DISABLED: Режим работы с подписками выключен на всех помещениях дома
      title: Справочник режимов работы с подписками
    CameraRecognitionType:
      type: string
      enum:
        - CAR_NUMBER
        - VEHICLE_TYPE
      description: |-
        - RECOGNITION_TYPE_UNKNOWN: Не указано
         - CAR_NUMBER: По номеру авто
         - VEHICLE_TYPE: По типу транспорта
      title: |-
        Тип распознавания.
        Атрибут, определяющий тип данных, который распознает камера.
        # Тип: byte
    EntranceDeviceRelationType:
      type: string
      enum:
        - FULL
        - PARTIAL
      description: |-
        - RELATION_TYPE_UNKNOWN: Значение не указано
         - FULL: Полная связь
         - PARTIAL: Частичная связь
      title: Тип связки
    EntranceFilterCompanyRelationType:
      type: string
      enum:
        - DEFAULT
        - MANAGEMENT
        - DEVICE_SERVICE
      description: |-
        - COMPANY_RELATION_TYPE_UNKNOWN: Значение не указано
         - DEFAULT: Значение по умолчанию
         - MANAGEMENT: Управляющая компания владеет квартирограммой
         - DEVICE_SERVICE: Домофонная компания обслуживает квартирограмму
      title: Справочник типов связи компании с подъездами
    ErrorIdExpected:
      type: object
      title: |-
        Не передан хотя бы один идентификатор:
        - Должен быть передан хотя бы один из параметров:
         - mrf_ids;
         - rf_ids;
         - opron_id
    ErrorLinkedDevicesExists:
      type: object
      title: |-
        Существуют устройства, связанные с квартирами данного подъезда.
        Следует отвязать устройства перед удалением подъезда
    ErrorOrponExpected:
      type: object
      title: |-
        Не передано значение ОРПОН:
        - Если переданы номера квартир, то значение параметра ОРПОН обязательно
    ErrorSoundFileNotFound:
      type: object
      title: Звуковой файл не найден
    GetSyncBuildingsResponseBuildingList:
      type: object
      properties:
        buildings:
          type: array
          items:
            $ref: "#/components/schemas/v1BuildingSync"
          title: Список домов
      title: Список домов
    PatchRoomSetSubscriptionModeRequestModeType:
      type: string
      enum:
        - DISABLED
        - ENABLED
      description: |-
        - MODE_TYPE_UNKNOWN: Значение не указано
         - DISABLED: Выключено
         - ENABLED: Включено
      title: Справочник значений режимов подписки
    PostAccessPointOpenRequestVehicleType:
      type: string
      enum:
        - EMERGENCY
        - POLICE
        - AMBULANCE
        - GARBAGE_TRUCK
        - TAXI
      description: |-
        - VEHICLE_TYPE_UNKNOWN: Не указано
         - EMERGENCY: МЧС
         - POLICE: Полиция
         - AMBULANCE: Скорая помощь
         - GARBAGE_TRUCK: Мусоровоз
         - TAXI: Такси
      title: Тип ТС
    RfidHolderType:
      type: string
      enum:
        - MASTER
        - COMPANY
        - EXTERNAL_SELLER
        - SYSTEM
      description: |-
        - HOLDER_TYPE_UNKNOWN: Значение не указано
         - MASTER: Жилец
         - COMPANY: Сотрудник УК
         - EXTERNAL_SELLER: Ключ сотрудника ГАП
         - SYSTEM: Системный ключ
      title: Тип владельца ключа
    RfidPayType:
      type: string
      enum:
        - PAID
        - FREE
      description: |-
        - PAY_TYPE_UNKNOWN: Значение не указано
         - PAID: Платный
         - FREE: Бесплатный
      title: Тип оплаты
    SavingErrorExceededQuantityOfKeysForRoom:
      type: object
      title: Превышено максимально допустимое количество ключей (16) для квартиры
    SavingErrorHolderTypeForbidden:
      type: object
      title: |-
        Нельзя создавать / изменять ключ с переданным типом владельца.
        Доступные типы владельца:
        - Жилец (мастер)
    SavingErrorKeyCodeCannotBeChanged:
      type: object
      title: |-
        Нельзя изменить код ключа.
        Причины:
        - При изменении ключа нельзя менять поле key (код ключа)
    SavingErrorKeyExist:
      type: object
      title: >-
        Данный ключ уже существует.

        Причины:

        - При попытке создания ключа в системе уже существует ключ с таким же кодом
    SavingErrorKeyIsUsed:
      type: object
      title: Ключ используется на другой квартире
    access_controlv1Rfid:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: |-
            Идентификатор ключа.
            # Диапазон: 0..2147483647
        userId:
          type: integer
          format: int32
          title: Идентификатор пользователя
        description:
          type: string
          title: |-
            Системное описание.
            Обычно оставляет УК/Админ, пользователь его не видет
        companyId:
          type: integer
          format: int32
          title: Идентификатор компании
        creatorId:
          type: integer
          format: int32
          title: Идентификатор создателя
        key:
          type: string
          title: |-
            Код ключа (UID).
            Уникальное значение.
            # Паттерн: /^[0-9a-fA-F]{1,14}$/
        payType:
          title: Тип оплаты
          allOf:
            - $ref: "#/components/schemas/RfidPayType"
        holderType:
          title: Тип владельца ключа
          allOf:
            - $ref: "#/components/schemas/RfidHolderType"
        createdAt:
          type: string
          format: date-time
          title: |-
            Дата создания.
            # Тип: DateTime
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата обновления.
            # Тип: DateTime?
        orpon:
          type: string
          format: int64
          title: |-
            ОРПОН дома.
            # Диапазон: 1..9223372036854775807
        roomNumber:
          type: string
          title: |-
            Номер квартиры.
            # Диапазон: 1..4
      title: |-
        Ключ.
        # Описание модели
      required:
        - key
        - payType
        - holderType
        - orpon
        - roomNumber
    access_controlv1Room:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор квартиры
        number:
          type: string
          title: Номер
        entrance:
          type: integer
          format: int32
          title: Подъезд
        floor:
          type: integer
          format: int32
          title: Этаж
        area:
          type: number
          format: float
          title: Площадь
        buildingId:
          type: integer
          format: int32
          title: Идентификатор дома
        companyId:
          type: integer
          format: int32
          title: Идентификатор компании
        abonentId:
          type: string
          title: Номер абонента
        type:
          title: Тип
          allOf:
            - $ref: "#/components/schemas/v1RoomType"
        createdAt:
          type: string
          format: date-time
          title: |-
            Дата создания.
            # Тип: DateTime
          readOnly: true
        deletedAt:
          type: string
          format: date-time
          title: |-
            Дата удаления.
            # Тип: DateTime
          readOnly: true
        isSubscriptionModeEnabled:
          type: boolean
          title: Включен ли режим подписок
          readOnly: true
      title: Квартира
      required:
        - id
        - number
        - entrance
        - floor
        - buildingId
        - companyId
        - abonentId
        - type
    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: Ошибка транспортного слоя
    v1AccessPoint:
      type: object
      properties:
        id:
          type: string
          title: |-
            Идентификатор точки доступа.
            # Тип: Guid
        title:
          type: string
          title: |-
            Наименование.
            # Диапазон: 3..40
        description:
          type: string
          title: |-
            Описание.
            # Диапазон: 3..200
        deviceId:
          type: integer
          format: int32
          title: |-
            Идентификатор устройства.
            # Диапазон: 1..2147483647
        relayIndex:
          type: integer
          format: int32
          title: |-
            Номер реле.
            # Диапазон: 0..100
        delay:
          type: integer
          format: int32
          title: |-
            Время задержки в секундах.
            # Диапазон: 1..3600
        flatgrammId:
          type: integer
          format: int32
          title: |-
            Идентификатор квартирограммы.
            # Диапазон: 1..2147483647
        directionType:
          title: Тип направления
          allOf:
            - $ref: "#/components/schemas/v1AccessPointDirectionType"
        cameras:
          type: array
          items:
            $ref: "#/components/schemas/AccessPointCamera"
          title: Список камер
        createdAt:
          type: string
          format: date-time
          title: |-
            Дата создания.
            # Тип: DateTime
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении.
            Является версией объекта.
            # Тип: DateTime
          readOnly: true
        deletedAt:
          type: string
          format: date-time
          title: |-
            Дата удаления.
            # Тип: DateTime?
          readOnly: true
      title: |-
        Точка доступа.
        # Описание модели
      required:
        - title
        - deviceId
        - delay
        - flatgrammId
        - directionType
    v1AccessPointDirectionType:
      type: string
      enum:
        - IN
        - OUT
        - REVERSE
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Не указано
         - IN: Вход
         - OUT: Выход
         - REVERSE: В обоих направлениях
      title: |-
        Тип направления.
        # Тип: byte
    v1AccessPointFilter:
      type: object
      properties:
        text:
          type: string
          title: |-
            По тексту.
            Если значение не передано то поиск по нему не производится.
            # Диапазон: 3..64.
            # Поиск производится по полям:
            # - Наименование;
            # - Описание
        deviceIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам устройств
        flatgrammIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам квартирограмм
        directionTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1AccessPointDirectionType"
          title: По типам направления
        groupIds:
          type: array
          items:
            type: string
          title: |-
            По идентификаторам группы.
            # Тип: Guid
        cameraUids:
          type: array
          items:
            type: string
          title: По идентификаторам камер
      title: Фильтр по точкам доступа
    v1AccessPointGroup:
      type: object
      properties:
        accessPointId:
          type: string
          title: |-
            Идентификатор точки доступа.
            # Тип: Guid
        groupId:
          type: string
          title: |-
            Идентификатор группы.
            # Тип: Guid
      title: |-
        Связка точки доступа и группы.
        # Описание модели
      required:
        - accessPointId
        - groupId
    v1AccessPointGroupFilter:
      type: object
      properties:
        accessPointIds:
          type: array
          items:
            type: string
          title: |-
            По идентификаторам точки доступа.
            # Тип: Guid
        groupIds:
          type: array
          items:
            type: string
          title: |-
            По идентификаторам группы.
            # Тип: Guid
      title: Фильтр по связям точек доступа и групп
    v1AccessPointGroupPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: GROUP_ID
          allOf:
            - $ref: "#/components/schemas/v1AccessPointGroupPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            # По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1AccessPointGroupPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            # Диапазон: 0..2147483647
      title: Постраничный вывод
    v1AccessPointGroupPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки;
        # Тип: byte
    v1AccessPointGroupPagingOrderByType:
      type: string
      enum:
        - GROUP_ID
        - ACCESS_POINT_ID
        - CREATED_AT
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - GROUP_ID: По идентификатору группы
         - ACCESS_POINT_ID: По идентификатору точки доступа
         - CREATED_AT: По дате создания
      title: |-
        Справочник типов значений сортировки.
        # Тип: byte
    v1AccessPointPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: CHANGED_AT
          allOf:
            - $ref: "#/components/schemas/v1AccessPointPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            # По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1AccessPointPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            # Диапазон: 0..2147483647
      title: Постраничный вывод
    v1AccessPointPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки;
        # Тип: byte
    v1AccessPointPagingOrderByType:
      type: string
      enum:
        - ID
        - TITLE
        - CHANGED_AT
        - CREATED_AT
        - RANK
      description: >-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
         - TITLE: По наименованию
         - CHANGED_AT: Дата последнего изменения
         - CREATED_AT: Дата создания
         - RANK: По рангу для поиска по тексту.
        Применяется когда передано поле для поиска по тексту.

        В случае если текстовое поле не передано, применяется значение по умолчанию
      title: |-
        Справочник типов значений сортировки.
        # Тип: byte
    v1AccessPointSavingError:
      type: object
      properties:
        conflict:
          title: Конфликт версий
          allOf:
            - $ref: "#/components/schemas/v1AccessPointSavingErrorConflict"
      title: >-
        Ошибка сохранения.

        Эти проверки выполняются при работе с базой данных и сторонними сервисами
    v1AccessPointSavingErrorConflict:
      type: object
      title: |-
        Конфликт версий.
        Причины:
        - В базе хранится другая версия строки, значения changed_at оличаются
    v1Building:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор дома
        rfId:
          type: integer
          format: int32
          title: Идентификатор РФ
        mrfId:
          type: integer
          format: int32
          title: Идентификатор МРФ
        orpon:
          type: string
          format: int64
          title: ОРПОН
        city:
          type: string
          title: Город
        street:
          type: string
          title: Улица
        number:
          type: string
          title: Номер дома
        part:
          type: string
          title: Корпус
        companyId:
          type: integer
          format: int32
          title: Идентификатор компании
        prefix:
          type: string
          title: Префикс
        createdAt:
          type: string
          format: date-time
          title: |-
            Дата создания.
            # Тип: DateTime
          readOnly: true
        deletedAt:
          type: string
          format: date-time
          title: |-
            Дата удаления.
            # Тип: DateTime
          readOnly: true
        flatgrammId:
          type: integer
          format: int32
          title: Идентификатор квартирограммы
        cityOrpon:
          type: string
          format: int64
          title: ОРПОН города, в котором находится дом
        fias:
          type: string
          title: |-
            Идентификатор в федеральной информационной адресной системе.
            Тип: Guid
        district:
          type: string
          title: |-
            Наименование района города.
            # Диапазон: 0..200
        unom:
          type: string
          format: int64
          title: |-
            Уникальный номер адреса.
            # Диапазон: 0..9999999999
        regionOrpon:
          type: string
          format: int64
          title: ОРПОН региона
        utcOffset:
          type: integer
          format: int32
          title: |-
            Смещение таймзоны в минутах.
            # Диапазон: -720..840
        isKeyPurchasePossibleInSalePoints:
          type: boolean
          title: Флаг указывает на то могут ли жители этого дома приобрести ключи домофона
            в партнёрских салонах или на маркетплейсах
        isKeyPurchasePossibleInManagementCompany:
          type: boolean
          title: Флаг указывает на то могут ли жители этого дома приобретать ключи через
            управляющую компанию
        isKeyPurchasePossibleInIntercomCompany:
          type: boolean
          title: Флаг указывает на то могут ли жители этого дома приобрести ключи напрямую
            у домофонной компании
        isRfidMifareSupported:
          type: boolean
          title: Флаг указывает на то поддерживает ли дом использование RFID-меток с типом
            MIFARE
        area:
          type: string
          title: |-
            Наименование муниципального района.
            # Диапазон: 0..64
        areaOrpon:
          type: string
          format: int64
          title: |-
            ОРПОН муниципального района.
            # Диапазон: 0..9999999999
        areaKladr:
          type: string
          title: |-
            КЛАДР муниципального района.
            # Диапазон: 0..32
        capitalMarker:
          type: integer
          format: int32
          title: |-
            Признак принадлежности населённого пункта к столичному статусу.
            1 — центр района.
            2 — центр региона.
            3 — центр района и региона.
            4 — центральный район региона.
            0 — ничего из перечисленного.
            # Диапазон: 0..4
        cityKladr:
          type: string
          title: |-
            КЛАДР-код города.
            # Диапазон: 0..17
        kladr:
          type: string
          title: |-
            КЛАДР-код строения.
            # Диапазон: 0..17
        fiasLevel:
          type: integer
          format: int32
          title: |-
            Уровень детализации, до которого адрес найден в ФИАС.
            0 — страна.
            1 — регион.
            3 — район.
            4 — город.
            5 — район города.
            6 — населенный пункт.
            7 — улица.
            8 — дом.
            9 — квартира.
            65 — планировочная структура.
            90 — доп. территория.
            91 — улица в доп. территории.
            -1 — иностранный или пустой.
            # Диапазон: -1..99
        fiasActualityState:
          type: integer
          format: int32
          title: |-
            Уровень детализации, до которого адрес найден в ФИАС.
            0 — актуальный.
            1-50 — переименован.
            51 — переподчинен.
            99 — удален.
            # Диапазон: 0..99
        geoLat:
          type: number
          format: double
          title: "Координаты: широта"
        geoLon:
          type: number
          format: double
          title: "Координаты: долгота"
        okato:
          type: string
          format: int64
          title: Код ОКАТО
        oktmo:
          type: string
          format: int64
          title: Код ОКТМО
        postalCode:
          type: integer
          format: int32
          title: Почтовый индекс
        region:
          type: string
          title: |-
            Наименование региона.
            # Диапазон: 0..64
        regionKladr:
          type: string
          title: |-
            КЛАДР-код региона.
            # Диапазон: 0..32
        streetKladr:
          type: string
          title: |-
            КЛАДР-код улицы.
            # Диапазон: 0..32
        streetOrpon:
          type: string
          format: int64
          title: |-
            ОРПОН улицы.
            # Диапазон: 0..9999999999
        houseKladr:
          type: string
          title: |-
            КЛАДР-код дома.
            # Диапазон: 0..32
      title: Дом
      required:
        - rfId
        - mrfId
        - orpon
        - city
        - street
        - companyId
        - flatgrammId
    v1BuildingFilter:
      type: object
      properties:
        mrfIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам МРФ
        rfIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам РФ
        deviceIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам устройств
        flatgrammIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам квартирограмм
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По орпонам
      title: Фильтр по домам
    v1BuildingPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: CREATED_AT
          allOf:
            - $ref: "#/components/schemas/v1BuildingPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            # По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1BuildingPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            # Диапазон: 0..2147483647
      title: Постраничный вывод
    v1BuildingPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки.
        # Тип: byte
    v1BuildingPagingOrderByType:
      type: string
      enum:
        - ID
        - CREATED_AT
        - STREET_THEN_NUMBER_THEN_PART
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
         - CREATED_AT: По времени создания
         - STREET_THEN_NUMBER_THEN_PART: По улице, номеру дома, корпусу
      title: |-
        Справочник типов значений сортировки.
        # Тип: byte
    v1BuildingSubscriptionMode:
      type: object
      properties:
        subscriptionModeType:
          title: Режим работы с подписками на доме
          allOf:
            - $ref: "#/components/schemas/BuildingSubscriptionModeSubscriptionModeType"
      title: Агрегированный статус режима работы с подписками на доме
    v1BuildingSync:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор дома
        orpon:
          type: string
          format: int64
          title: ОРПОН
        city:
          type: string
          title: Город
        street:
          type: string
          title: Улица
        number:
          type: string
          title: Номер дома
        cityOrpon:
          type: string
          format: int64
          title: ОРПОН города, в котором находится дом
        regionOrpon:
          type: string
          format: int64
          title: ОРПОН региона
        area:
          type: string
          title: |-
            Наименование муниципального района.
            # Диапазон: 0..64
        areaOrpon:
          type: string
          format: int64
          title: |-
            ОРПОН муниципального района.
            # Диапазон: 0..9999999999
        areaKladr:
          type: string
          title: |-
            КЛАДР муниципального района.
            # Диапазон: 0..32
        capitalMarker:
          type: integer
          format: int32
          title: |-
            Признак принадлежности населённого пункта к столичному статусу.
            1 — центр района.
            2 — центр региона.
            3 — центр района и региона.
            4 — центральный район региона.
            0 — ничего из перечисленного.
            # Диапазон: 0..4
        cityKladr:
          type: string
          title: |-
            КЛАДР-код города.
            # Диапазон: 0..17
        kladr:
          type: string
          title: |-
            КЛАДР-код строения.
            # Диапазон: 0..17
        fiasLevel:
          type: integer
          format: int32
          title: |-
            Уровень детализации, до которого адрес найден в ФИАС.
            0 — страна.
            1 — регион.
            3 — район.
            4 — город.
            5 — район города.
            6 — населенный пункт.
            7 — улица.
            8 — дом.
            9 — квартира.
            65 — планировочная структура.
            90 — доп. территория.
            91 — улица в доп. территории.
            -1 — иностранный или пустой.
            # Диапазон: -1..99
        fiasActualityState:
          type: integer
          format: int32
          title: |-
            Уровень детализации, до которого адрес найден в ФИАС.
            0 — актуальный.
            1-50 — переименован.
            51 — переподчинен.
            99 — удален.
            # Диапазон: 0..99
        geoLat:
          type: number
          format: double
          title: "Координаты: широта"
        geoLon:
          type: number
          format: double
          title: "Координаты: долгота"
        okato:
          type: string
          format: int64
          title: Код ОКАТО
        oktmo:
          type: string
          format: int64
          title: Код ОКТМО
        postalCode:
          type: integer
          format: int32
          title: Почтовый индекс
        region:
          type: string
          title: |-
            Наименование региона.
            # Диапазон: 0..64
        regionKladr:
          type: string
          title: |-
            КЛАДР-код региона.
            # Диапазон: 0..32
        streetKladr:
          type: string
          title: |-
            КЛАДР-код улицы.
            # Диапазон: 0..32
        streetOrpon:
          type: string
          format: int64
          title: |-
            ОРПОН улицы.
            # Диапазон: 0..9999999999
        houseKladr:
          type: string
          title: |-
            КЛАДР-код дома.
            # Диапазон: 0..32
      title: Дом для синхронизации
      required:
        - id
    v1DeleteAccessPointResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1DeleteAccessPointResponseError"
      title: Ответ на запрос удаления точки доступа
    v1DeleteAccessPointResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса удаления точки доступа
    v1DeleteEntranceResponse:
      type: object
      properties:
        error:
          title: Ошибка при удалении
          allOf:
            - $ref: "#/components/schemas/v1DeleteEntranceResponseError"
      title: Ответ на запрос удаления подъезда
    v1DeleteEntranceResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
        linkedDevicesExists:
          title: Существуют связанные устройства
          allOf:
            - $ref: "#/components/schemas/ErrorLinkedDevicesExists"
      title: Ошибка удаления подъезда
    v1DeleteRfidResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1DeleteRfidResponseError"
      title: Ответ на запрос удаления ключа
    v1DeleteRfidResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса на удаление ключа
    v1Entrance:
      type: object
      properties:
        orpon:
          type: string
          format: int64
          title: ОРПОН дома
        entranceNumber:
          type: integer
          format: int32
          title: |-
            Номер подъезда.
            # Диапазон: 1..100
        startRoomNumber:
          type: integer
          format: int32
          title: |-
            Номер начального помещения.
            # Диапазон: 1..9999
        roomsCountPerFloor:
          type: integer
          format: int32
          title: |-
            Количество помещений на этаже.
            # Диапазон: 1..1000
        floorsCount:
          type: integer
          format: int32
          title: |-
            Количество этажей.
            # Диапазон: 1..100
      title: Подъезд
      required:
        - orpon
        - entranceNumber
        - startRoomNumber
        - roomsCountPerFloor
        - floorsCount
    v1EntranceDevice:
      type: object
      properties:
        orpon:
          type: string
          format: int64
          title: ОРПОН дома
        entranceNumber:
          type: integer
          format: int32
          title: |-
            Номер подъезда.
            # Диапазон: 1..100
        deviceId:
          type: integer
          format: int32
          title: |-
            Идентификатор устройства.
            # Диапазон: 1..2147483647
        relationType:
          title: |-
            Тип связки.
            Игнорируется в методах создания и удаления связи
          readOnly: true
          allOf:
            - $ref: "#/components/schemas/EntranceDeviceRelationType"
      title: |-
        Связка подъезда и устройства.
        Реализуется через связь всех помещений в подъезде и устройства
      required:
        - orpon
        - entranceNumber
        - deviceId
    v1EntranceDeviceFilter:
      type: object
      properties:
        flatgrammIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам квартирограмм
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОН
        entranceNumbers:
          type: array
          items:
            type: integer
            format: int32
          title: По номерам подъезда
        deviceIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам привязанных устройств
      title: Фильтр связок подъезд-устройство
    v1EntranceDevicePaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: ORPON_THEN_ENTRANCE_NUMBER
          allOf:
            - $ref: "#/components/schemas/v1EntranceDevicePagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            # По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1EntranceDevicePagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            # Диапазон: 0..2147483647
      title: Постраничный вывод
    v1EntranceDevicePagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки.
        # Тип: byte
    v1EntranceDevicePagingOrderByType:
      type: string
      enum:
        - ORPON_THEN_ENTRANCE_NUMBER
        - DEVICE_ID
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ORPON_THEN_ENTRANCE_NUMBER: По ОРПОНу и номеру подъезда
         - DEVICE_ID: По идентификатору устройства
      title: |-
        Справочник типов значений сортировки.
        # Тип: byte
    v1EntranceFilter:
      type: object
      properties:
        flatgrammIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам квартирограмм
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОН
        companyIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам компаний
        companyRelationType:
          title: Тип связи компании с подъездами
          allOf:
            - $ref: "#/components/schemas/EntranceFilterCompanyRelationType"
      title: Фильтр подъездов
    v1EntrancePaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: ORPON_THEN_ENTRANCE_NUMBER
          allOf:
            - $ref: "#/components/schemas/v1EntrancePagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            # По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1EntrancePagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            # Диапазон: 0..2147483647
      title: Постраничный вывод
    v1EntrancePagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки.
        # Тип: byte
    v1EntrancePagingOrderByType:
      type: string
      enum:
        - ORPON_THEN_ENTRANCE_NUMBER
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ORPON_THEN_ENTRANCE_NUMBER: По ОРПОНу и номеру подъезда
      title: |-
        Справочник типов значений сортировки.
        # Тип: byte
    v1Flatgramm:
      type: object
      properties:
        id:
          type: integer
          format: int32
          title: Идентификатор
        title:
          type: string
          title: Наименование
        companyId:
          type: integer
          format: int32
          title: Идентификатор компании - владельца
        createdAt:
          type: string
          format: date-time
          title: |-
            Дата и время создания.
            # Тип: DateTime
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении.
            Является версией объекта.
            # Тип: DateTime
          readOnly: true
      title: Облегченная квартирограмма
      required:
        - title
    v1FlatgrammCompanyRelation:
      type: object
      properties:
        companyId:
          type: integer
          format: int32
          title: |-
            Идентификатор компании.
            # Диапазон: 1..2147483647
        flatgrammId:
          type: integer
          format: int32
          title: |-
            Идентификатор квартирограммы.
            # Диапазон: 1..2147483647
        type:
          title: Тип связи компании и квартирограммы
          allOf:
            - $ref: "#/components/schemas/v1FlatgrammCompanyRelationType"
      title: |-
        Связка квартирограммы и компании.
        Задает область ресурсов (resource scope), доступную пользователю.
        Используется для контроля доступа к квартирограмме
      required:
        - companyId
        - flatgrammId
        - type
    v1FlatgrammCompanyRelationFilter:
      type: object
      properties:
        flatgrammIds:
          type: array
          items:
            type: integer
            format: int32
          title: По Идентификатору квартирограммы
        companyIds:
          type: array
          items:
            type: integer
            format: int32
          title: По Идентификатору компании
        flatgrammCompanyRelationTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1FlatgrammCompanyRelationType"
          title: Тип назначения компании для квартирограммы
      title: >-
        Фильтр для запроса связей квартирограммы и компании.

        При передаче массива в параметр фильтра элементы массива работают в выборке через ИЛИ.

        При передаче нескольких разных параметров фильтра они работают в выборке через И
    v1FlatgrammCompanyRelationPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            По умолчанию: COMPANY_ID
          allOf:
            - $ref: "#/components/schemas/v1FlatgrammCompanyRelationPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1FlatgrammCompanyRelationPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Минимальное значение: 1.
            Максимальное значение: 100.
            По умолчанию: 20.
            Если значение 0 (не передано), то выставляем значение по умолчанию
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            По умолчанию: 0
      title: Пагинация квартирограмм и компаний
    v1FlatgrammCompanyRelationPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: Справочник типов направлений сортировки
    v1FlatgrammCompanyRelationPagingOrderByType:
      type: string
      enum:
        - COMPANY_ID
        - FLATGRAMM_ID
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - COMPANY_ID: По Идентификатору компании
         - FLATGRAMM_ID: По Идентификатору квартирограммы
      title: Справочник типов сортировки
    v1FlatgrammCompanyRelationType:
      type: string
      enum:
        - MANAGEMENT
        - DEVICE_SERVICE
      description: |-
        - TYPE_UNKNOWN: Значение не указано
         - MANAGEMENT: Управляющая компания владеет квартирограммой
         - DEVICE_SERVICE: Домофонная компания обслуживает квартирограмму
      title: |-
        Тип связи компании и квартирограммы.
        По умолчанию OWNER.
        # Тип: byte
    v1FlatgrammFilter:
      type: object
      properties:
        companyIds:
          type: array
          items:
            type: integer
            format: int32
          title: >-
            По идентификаторам компаний.

            Фильтрация среди компаний, тип связи компании и КВГ определяется по полю company_relation_types.

            Если company_relation_types не передан, то учитываются все значения типа FlatgrammCompanyRelation.Type
        text:
          type: string
          title: |-
            Поиск по тексту.
            Если значение не передано то поиск по нему не производится.
            # Диапазон: 3..64.
            # Поиск производится по полям:
            # - Наименование
        flatgrammCompanyRelationTypes:
          type: array
          items:
            $ref: "#/components/schemas/v1FlatgrammCompanyRelationType"
          title: По типу связи квартирограмм и компаний
      title: Фильтр квартирограмм
    v1FlatgrammPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: CHANGED_AT
          allOf:
            - $ref: "#/components/schemas/v1FlatgrammPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            # По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1FlatgrammPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            # Диапазон: 0..2147483647
      title: Постраничный вывод
    v1FlatgrammPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки.
        # Тип: byte
    v1FlatgrammPagingOrderByType:
      type: string
      enum:
        - ID
        - CREATED_AT
        - CHANGED_AT
        - RANK
      description: >-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
         - CREATED_AT: По времени создания
         - CHANGED_AT: По времени изменения
         - RANK: По рангу для поиска по тексту.
        Применяется когда передано поле для поиска по тексту.

        В случае если текстовое поле не передано, применяется значение по умолчанию
      title: |-
        Справочник типов значений сортировки.
        # Тип: byte
    v1GetAccessPointCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего точек доступа
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetAccessPointCountResponseError"
      title: Ответ на запрос получения количества точек доступа
    v1GetAccessPointCountResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса получения количества точек доступа
    v1GetAccessPointGroupCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего точек доступа
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetAccessPointGroupCountResponseError"
      title: Ответ на запрос получения количества точек доступа
    v1GetAccessPointGroupCountResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса получения количества точек доступа
    v1GetAccessPointGroupListResponse:
      type: object
      properties:
        data:
          title: Связь точки доступа и группы
          allOf:
            - $ref: "#/components/schemas/v1AccessPointGroup"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetAccessPointGroupListResponseError"
      title: Ответ на получение списка связей точек доступа и групп
    v1GetAccessPointGroupListResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса получения списка связей точек доступа и групп
    v1GetAccessPointListResponse:
      type: object
      properties:
        data:
          title: Точка доступа
          allOf:
            - $ref: "#/components/schemas/v1AccessPoint"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetAccessPointListResponseError"
      title: Ответ на получение списка точек доступа
    v1GetAccessPointListResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса получения списка точек доступа
    v1GetAccessPointResponse:
      type: object
      properties:
        data:
          title: Точка доступа
          allOf:
            - $ref: "#/components/schemas/v1AccessPoint"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetAccessPointResponseError"
      title: Ответ на запрос получения точки доступа
    v1GetAccessPointResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса получения точки доступа
    v1GetBuildingCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Количество
      title: Ответ на запрос получения количества домов
    v1GetBuildingListResponse:
      type: object
      properties:
        data:
          title: Квартира
          allOf:
            - $ref: "#/components/schemas/v1Building"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetBuildingListResponseError"
      title: Ответ на запрос получения списка домов
    v1GetBuildingListResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetBuildingOrponExistsResponse:
      type: object
      properties:
        data:
          type: boolean
          title: "Результат проверки: true - если дом существует, false - в противном
            случае"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetBuildingOrponExistsResponseError"
      title: Ответ на запрос проверки существования дома по ОРПОН
    v1GetBuildingOrponExistsResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetBuildingOrponSubscriptionModeResponse:
      type: object
      properties:
        data:
          title: Агрегированный статус режима работы с подписками дома
          allOf:
            - $ref: "#/components/schemas/v1BuildingSubscriptionMode"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetBuildingOrponSubscriptionModeResponseError"
      title: Ответ на запрос получения агрегированного статуса режима работы с
        подписками дома
    v1GetBuildingOrponSubscriptionModeResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetBuildingResponse:
      type: object
      properties:
        data:
          title: Квартира
          allOf:
            - $ref: "#/components/schemas/v1Building"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetBuildingResponseError"
      title: Ответ на запрос получения дома
    v1GetBuildingResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetEntranceDeviceListResponse:
      type: object
      properties:
        data:
          title: Связка подъезд-устройство
          allOf:
            - $ref: "#/components/schemas/v1EntranceDevice"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetEntranceDeviceListResponseError"
      title: Ответ на запрос на получение списка связок подъезд-устройство
    v1GetEntranceDeviceListResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса на получение списка связок подъезд-устройство
    v1GetEntranceListResponse:
      type: object
      properties:
        data:
          title: Подъезд
          allOf:
            - $ref: "#/components/schemas/v1Entrance"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetEntranceListResponseError"
      title: Ответ на запрос на получение списка подъездов
    v1GetEntranceListResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса на получение списка подъездов
    v1GetFlatgrammCompanyRelationCountResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetFlatgrammCompanyRelationCountResponseError"
        data:
          type: integer
          format: int32
          title: Всего связей квартирограмм и компаний
      title: Ответ на запрос получения количества связей квартирограмм и компаний
    v1GetFlatgrammCompanyRelationCountResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetFlatgrammCompanyRelationListResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetFlatgrammCompanyRelationListResponseError"
        data:
          title: Связь квартирограммы и компании
          allOf:
            - $ref: "#/components/schemas/v1FlatgrammCompanyRelation"
      title: Ответ на запрос получения списка связей квартирограмм и компаний
    v1GetFlatgrammCompanyRelationListResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetFlatgrammCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего упрощенных квартирограмм
      title: Ответ на запрос получения количества упрощенных квартирограмм
    v1GetFlatgrammListResponse:
      type: object
      properties:
        data:
          title: Упрощенная квартирограмма
          allOf:
            - $ref: "#/components/schemas/v1Flatgramm"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetFlatgrammListResponseError"
      title: Ответ на запрос на получение списка упрощенных квартирограмм
    v1GetFlatgrammListResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса получения списка упрощенных квартирограмм
    v1GetFlatgrammResponse:
      type: object
      properties:
        data:
          title: Упрощенная квартирограмма
          allOf:
            - $ref: "#/components/schemas/v1Flatgramm"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetFlatgrammResponseError"
      title: Ответ на запрос на получение упрощенной квартирограммы
    v1GetFlatgrammResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса получения списка упрощенных квартирограмм
    v1GetRfidCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Количество
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetRfidCountResponseError"
      title: Ответ на запрос получения количества ключей
    v1GetRfidCountResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetRfidListResponse:
      type: object
      properties:
        data:
          title: Ключ
          allOf:
            - $ref: "#/components/schemas/access_controlv1Rfid"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetRfidListResponseError"
      title: Ответ на запрос получения списка ключей
    v1GetRfidListResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetRfidResponse:
      type: object
      properties:
        data:
          title: Ключ
          allOf:
            - $ref: "#/components/schemas/access_controlv1Rfid"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetRfidResponseError"
      title: Ответ на запрос получения ключа
    v1GetRfidResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetRoomCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Количество
      title: Ответ на запрос получения количества квартир
    v1GetRoomDeviceCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Количество
      title: Ответ на запрос получения количества домов
    v1GetRoomDeviceListResponse:
      type: object
      properties:
        data:
          title: Связка помещение-устройство
          allOf:
            - $ref: "#/components/schemas/v1RoomDevice"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetRoomDeviceListResponseError"
      title: Ответ на запрос на получение списка связок помещение-устройство
    v1GetRoomDeviceListResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса на получение списка связок помещение-устройство
    v1GetRoomListResponse:
      type: object
      properties:
        data:
          title: Квартира
          allOf:
            - $ref: "#/components/schemas/access_controlv1Room"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetRoomListResponseError"
      title: Ответ на запрос получения списка квартир
    v1GetRoomListResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetRoomOrponNumberExistsResponse:
      type: object
      properties:
        data:
          type: boolean
          title: "Результат проверки: true - если квартира существует, false - в противном
            случае"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetRoomOrponNumberExistsResponseError"
      title: Ответ на запрос проверки существования квартиры
    v1GetRoomOrponNumberExistsResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetRoomResponse:
      type: object
      properties:
        data:
          title: Квартира
          allOf:
            - $ref: "#/components/schemas/access_controlv1Room"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetRoomResponseError"
      title: Ответ на запрос получения квартиры
    v1GetRoomResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetRoomUserCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Количество
      title: Ответ на запрос получения количества связей помещений и пользователей
    v1GetRoomUserListResponse:
      type: object
      properties:
        data:
          title: Связь помещения и пользователя
          allOf:
            - $ref: "#/components/schemas/v1RoomUser"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetRoomUserListResponseError"
      title: Ответ на запрос получения списка связей помещений и пользователей
    v1GetRoomUserListResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetSyncBuildingsResponse:
      type: object
      properties:
        data:
          title: Дома
          allOf:
            - $ref: "#/components/schemas/GetSyncBuildingsResponseBuildingList"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetSyncBuildingsResponseError"
      title: Ответ на запрос получения списка домов для обновления
    v1GetSyncBuildingsResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1GetSystemStatusResponse:
      type: object
      title: Ответ на запрос проверки доступности сервиса
    v1PatchRoomSetSubscriptionModeRequest:
      type: object
      properties:
        mrfIds:
          type: array
          items:
            type: integer
            format: int32
          title: Список идентификаторов МРФ
        rfIds:
          type: array
          items:
            type: integer
            format: int32
          title: Список идентификаторов РФ
        orponId:
          type: string
          format: int64
          title: Идентификатор ОРПОН дома
        roomNumbers:
          type: array
          items:
            type: string
          title: Список номеров квартир
        modeType:
          title: Значение режима подписок
          allOf:
            - $ref: "#/components/schemas/PatchRoomSetSubscriptionModeRequestModeType"
      title: Запрос на установку режима подписок
      required:
        - modeType
    v1PatchRoomSetSubscriptionModeResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PatchRoomSetSubscriptionModeResponseError"
      title: Ответ на запрос на установку режима подписок
    v1PatchRoomSetSubscriptionModeResponseError:
      type: object
      properties:
        orponExpected:
          title: Не передано значение ОРПОН
          allOf:
            - $ref: "#/components/schemas/ErrorOrponExpected"
        idExpected:
          title: Не передан хотя бы один идентификатор
          allOf:
            - $ref: "#/components/schemas/ErrorIdExpected"
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1PostAccessPointOpenRequest:
      type: object
      properties:
        accessPointId:
          type: string
          title: |-
            Идентификатор точки доступа.
            # Тип: Guid
        carNumber:
          type: string
          title: |-
            ГРЗ авто.
            # Диапазон: 3..20
        vehicleType:
          title: Тип ТС
          allOf:
            - $ref: "#/components/schemas/PostAccessPointOpenRequestVehicleType"
        courierCompanyName:
          type: string
          title: |-
            Наименование курьерской компании.
            # Диапазон: 3..150
        orderNumber:
          type: string
          title: |-
            Номер заказа.
            # Диапазон: 3..64
        courierId:
          type: string
          title: |-
            Идентификатор курьера.
            # Диапазон: 3..64
      title: Запрос открытия точки доступа
      required:
        - accessPointId
    v1PostAccessPointOpenResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostAccessPointOpenResponseError"
      title: Ответ на запрос открытия точки доступа
    v1PostAccessPointOpenResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса открытия точки доступа
    v1PostAccessPointRequest:
      type: object
      properties:
        data:
          title: Точка доступа
          allOf:
            - $ref: "#/components/schemas/v1AccessPoint"
      title: Запрос на создание/изменение точки доступа
      required:
        - data
    v1PostAccessPointResponse:
      type: object
      properties:
        data:
          title: Точка доступа
          allOf:
            - $ref: "#/components/schemas/v1AccessPoint"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostAccessPointResponseError"
      title: Ответ на запрос на создание/изменение точки доступа
    v1PostAccessPointResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
        saving:
          title: Ошибка сохранения
          allOf:
            - $ref: "#/components/schemas/v1AccessPointSavingError"
      title: Ошибка запроса сохранения точки доступа
    v1PostBroadcastAlertStartRequest:
      type: object
      properties:
        soundFileUri:
          type: string
          title: |-
            Ссылка на звуковой файл для проигрывания.
            Файл должен лежать на внутреннем хранилище.
            # Диапазон: 2..100
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: |-
            Массив ОРПОНов домов, на которых запускаем проигрывание.
            # Диапазон: 1..100
        tactPlayDuration:
          type: integer
          format: int32
          title: |-
            Длительность воспроизведения такта в секундах.
            Такт включает в себя проигрывание файла на трубках или на динамике.
            # Диапазон: 0..65536
        tactRepeatCount:
          type: integer
          format: int32
          title: >-
            Количество последовательных повторов тактов перед сменой динамика на
            трубки или наоборот.

            # Диапазон: 0..65536
        playRepeatCount:
          type: integer
          format: int32
          title: >-
            Количество дополнительных повторов тактов, т.е. умолчание=0 - это
            проигрывание одного такта.

            # Диапазон: 0..65536
        playType:
          title: Тип проигрывания
          allOf:
            - $ref: "#/components/schemas/v1PostBroadcastAlertStartRequestPlayType"
      title: Запрос на запуск массового оповещения через домофоны
      required:
        - soundFileUri
        - tactPlayDuration
        - tactRepeatCount
        - playRepeatCount
        - playType
    v1PostBroadcastAlertStartRequestPlayType:
      type: string
      enum:
        - HANDSET_ONLY
        - SPEAKER_ONLY
        - HANDSET_AND_SPEAKER
        - SPEAKER_AND_HANDSET
      description: >-
        - PLAY_TYPE_UNKNOWN: Значение не указано
         - HANDSET_ONLY: Только на аналоговые трубки
         - SPEAKER_ONLY: Tолько на динамик домофона
         - HANDSET_AND_SPEAKER: Сначала на аналоговые трубки проигрываем заданное количество тактов, затем на динамик домофона
         - SPEAKER_AND_HANDSET: Сначала на динамик домофона проигрываем заданное количество тактов, затем на аналоговые трубки
      title: |-
        Тип проигрывания.
        # Тип: byte
    v1PostBroadcastAlertStartResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostBroadcastAlertStartResponseError"
      title: Ответ на запрос на запуск массового оповещения через домофоны
    v1PostBroadcastAlertStartResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
        soundFileNotFound:
          title: Звуковой файл не найден
          allOf:
            - $ref: "#/components/schemas/ErrorSoundFileNotFound"
      title: Ошибка запроса
    v1PostBroadcastAlertStopRequest:
      type: object
      properties:
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: |-
            Массив ОРПОНов домов, на которых запускаем проигрывание.
            # Диапазон: 1..100
      title: Запрос на прекращение массового оповещения через домофоны
    v1PostBroadcastAlertStopResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostBroadcastAlertStopResponseError"
      title: Ответ на запрос на прекращение массового оповещения через домофоны
    v1PostBroadcastAlertStopResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса
    v1PostEntranceRequest:
      type: object
      properties:
        data:
          title: Подъезд
          allOf:
            - $ref: "#/components/schemas/v1Entrance"
      title: Запрос сохранения подъезда
      required:
        - data
    v1PostEntranceResponse:
      type: object
      properties:
        data:
          title: Подъезд
          allOf:
            - $ref: "#/components/schemas/v1Entrance"
        error:
          title: Ошибка при удалении
          allOf:
            - $ref: "#/components/schemas/v1PostEntranceResponseError"
      title: Ответ на запрос сохранения подъезда
    v1PostEntranceResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка сохранения подъезда
    v1PostRfidRequest:
      type: object
      properties:
        data:
          title: Ключ
          allOf:
            - $ref: "#/components/schemas/access_controlv1Rfid"
      title: Запрос создания ключа
      required:
        - data
    v1PostRfidResponse:
      type: object
      properties:
        data:
          title: Ключ
          allOf:
            - $ref: "#/components/schemas/access_controlv1Rfid"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostRfidResponseError"
      title: Ответ на запрос создания ключа
    v1PostRfidResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
        saving:
          title: Ошибка сохранения
          allOf:
            - $ref: "#/components/schemas/v1RfidSavingError"
      title: Ошибка
    v1PostSyncBuildingRequest:
      type: object
      properties:
        buildingId:
          type: integer
          format: int32
          title: Передается в случае когда изменения данных не требуются, но необходимо
            зафиксировать дату синхронизации
        data:
          title: Дом с обновленными данными из DaData
          allOf:
            - $ref: "#/components/schemas/v1BuildingSync"
      title: Запрос частичного обновления дома
      required:
        - buildingId
        - data
    v1PostSyncBuildingResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostSyncBuildingResponseError"
      title: Ответ на запрос частичного обновления дома
    v1PostSyncBuildingResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка
    v1PutAccessPointGroupAttachResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PutAccessPointGroupAttachResponseError"
      title: Ответ на запрос сохранения связи точки доступа и группы
    v1PutAccessPointGroupAttachResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса на создание связи точки доступа и группы
    v1PutAccessPointGroupDetachResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PutAccessPointGroupDetachResponseError"
      title: Ответ на запрос удаления связи точки доступа и группы
    v1PutAccessPointGroupDetachResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса на удаление связи точки доступа и группы
    v1PutEntranceDeviceAttachResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PutEntranceDeviceAttachResponseError"
      title: Ответ на запрос сохранения связи подъезда и устройства
    v1PutEntranceDeviceAttachResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса на создание связи подъезда и устройства
    v1PutEntranceDeviceDetachResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PutEntranceDeviceDetachResponseError"
      title: Ответ на запрос удаления связи подъезда и устройства
    v1PutEntranceDeviceDetachResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса на удаления связи подъезда и устройства
    v1PutFlatgrammCompanyRelationAttachResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PutFlatgrammCompanyRelationAttachResponseError"
      title: Ответ на запрос сохранения связи квартирограммы и компании
    v1PutFlatgrammCompanyRelationAttachResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса сохранения связи квартирограммы и компании
    v1PutFlatgrammCompanyRelationDetachResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PutFlatgrammCompanyRelationDetachResponseError"
      title: Ответ на запрос удаления связи квартирограммы и компании
    v1PutFlatgrammCompanyRelationDetachResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса удаления связи квартирограммы и компании
    v1PutRoomDeviceAttachResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PutRoomDeviceAttachResponseError"
      title: Ответ на запрос сохранения связи квартиры и устройства
    v1PutRoomDeviceAttachResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса на создание связи квартиры и устройства
    v1PutRoomDeviceDetachResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PutRoomDeviceDetachResponseError"
      title: Ответ на запрос удаления связи квартиры и устройства
    v1PutRoomDeviceDetachResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса на удаления связи квартиры и устройства
    v1RfidFilter:
      type: object
      properties:
        holderTypes:
          type: array
          items:
            $ref: "#/components/schemas/RfidHolderType"
          title: По типам владельца
        payTypes:
          type: array
          items:
            $ref: "#/components/schemas/RfidPayType"
          title: По типам оплаты
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОНам
        roomNumbers:
          type: array
          items:
            type: string
          title: По номерам квартир
        userIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам пользователей
        companyIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам компаний
        keys:
          type: array
          items:
            type: string
          title: По кодам ключа
      title: Фильтр по ключам
    v1RfidPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: CHANGED_AT
          allOf:
            - $ref: "#/components/schemas/v1RfidPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            # По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1RfidPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            # Диапазон: 0..2147483647
      title: Постраничный вывод
    v1RfidPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки.
        # Тип: byte
    v1RfidPagingOrderByType:
      type: string
      enum:
        - CREATED_AT
        - CHANGED_AT
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - CREATED_AT: По времени создания
         - CHANGED_AT: По времени изменения
      title: |-
        Справочник типов значений сортировки.
        # Тип: byte
    v1RfidSavingError:
      type: object
      properties:
        conflict:
          title: Конфликт версий
          allOf:
            - $ref: "#/components/schemas/v1RfidSavingErrorConflict"
        keyExist:
          title: Данный ключ уже существует
          allOf:
            - $ref: "#/components/schemas/SavingErrorKeyExist"
        keyCodeCannotBeChanged:
          title: Нельзя изменить код ключа
          allOf:
            - $ref: "#/components/schemas/SavingErrorKeyCodeCannotBeChanged"
        exceededQuantityOfKeysForRoom:
          title: Превышено максимально допустимое количество ключей (16) для квартиры
          allOf:
            - $ref: "#/components/schemas/SavingErrorExceededQuantityOfKeysForRoom"
        keyIsUsed:
          title: Ключ используется на другой квартире
          allOf:
            - $ref: "#/components/schemas/SavingErrorKeyIsUsed"
        holderTypeForbidden:
          title: Нельзя создавать / изменять ключ с переданным типом владельца
          allOf:
            - $ref: "#/components/schemas/SavingErrorHolderTypeForbidden"
      title: >-
        Ошибка сохранения ключа.

        Эти проверки выполняются при работе с базой данных и сторонними сервисами
    v1RfidSavingErrorConflict:
      type: object
      title: |-
        Конфликт версий.
        Причины:
        - В базе хранится другая версия строки, значения changed_at отличаются
    v1RoomDevice:
      type: object
      properties:
        orpon:
          type: string
          format: int64
          title: |-
            Идентификатор ОРПОН дома.
            # Диапазон 1..9223372036854775807
        roomNumber:
          type: string
          title: |-
            Номер квартиры.
            # Диапазон: 1..4
        deviceId:
          type: integer
          format: int32
          title: |-
            Идентификатор устройства.
            # Диапазон: 1..2147483647
      title: Связка квартиры и устройства
      required:
        - orpon
        - roomNumber
        - deviceId
    v1RoomDeviceFilter:
      type: object
      properties:
        flatgrammIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам квартирограмм
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОН
        roomNumbers:
          type: array
          items:
            type: string
          title: По номерам квартир
        deviceIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам привязанных устройств
      title: Фильтр связок помещение-устройство
    v1RoomDevicePaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: ORPON_THEN_ENTRANCE_NUMBER
          allOf:
            - $ref: "#/components/schemas/v1RoomDevicePagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            # По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1RoomDevicePagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            # Диапазон: 0..2147483647
      title: Постраничный вывод
    v1RoomDevicePagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки.
        # Тип: byte
    v1RoomDevicePagingOrderByType:
      type: string
      enum:
        - ORPON_THEN_ENTRANCE_NUMBER
        - DEVICE_ID
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ORPON_THEN_ENTRANCE_NUMBER: По ОРПОНу и номеру подъезда
         - DEVICE_ID: По идентификатору устройства
      title: |-
        Справочник типов значений сортировки.
        # Тип: byte
    v1RoomFilter:
      type: object
      properties:
        buildingIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам домов
        entrances:
          type: array
          items:
            type: integer
            format: int32
          title: По подъездам
        floors:
          type: array
          items:
            type: integer
            format: int32
          title: По этажам
        companyIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам компаний
        types:
          type: array
          items:
            $ref: "#/components/schemas/v1RoomType"
          title: По типам
        deviceIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам устройств
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОНам
        isServiceFlag:
          type: boolean
          title: По признаку служебной квартиры
        roomNumbers:
          type: array
          items:
            type: string
          title: По номерам квартир
      title: Фильтр по квартирам
    v1RoomPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: CREATED_AT
          allOf:
            - $ref: "#/components/schemas/v1RoomPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            # По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1RoomPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            # Диапазон: 0..2147483647
      title: Постраничный вывод
    v1RoomPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки.
        # Тип: byte
    v1RoomPagingOrderByType:
      type: string
      enum:
        - ID
        - CREATED_AT
        - FLOOR_THEN_NUMBER
        - NUMBER
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
         - CREATED_AT: По времени создания
         - FLOOR_THEN_NUMBER: По этажу и номеру
         - NUMBER: По номеру
      title: |-
        Справочник типов значений сортировки.
        # Тип: byte
    v1RoomType:
      type: string
      enum:
        - FLOOR
        - ENTRANCE
        - APARTMENT
        - WATER_DISTRIBUTION
        - HEAT_POINT
        - PANTRY
        - WHEELCHAIR
        - WIRING_CLOSET
        - CONCIERGE
        - CHECKPOINT
        - PARKING_PLACE
        - OFFICE
        - BASEMENT
        - SUBSTATION
        - HOMEOWNERS_ROOM
        - TAMBOUR
        - INPUT_NODE
        - LOBBY
        - ATTIC
        - ELEVATOR_SHAFT
        - SWITCHBOARD
        - DEFAULT_ROOM
      description: |-
        - TYPE_UNKNOWN: Значение не указано
         - FLOOR: Этаж
         - ENTRANCE: Подъезд
         - APARTMENT: Апартаменты
         - WATER_DISTRIBUTION: Вводно-распределительные устройства
         - HEAT_POINT: Индивидуальный тепловой пункт
         - PANTRY: Кладовая
         - WHEELCHAIR: Колясочная
         - WIRING_CLOSET: Коммутационный шкаф
         - CONCIERGE: Консьержная
         - CHECKPOINT: КПП
         - PARKING_PLACE: Машиноместо
         - OFFICE: Офис
         - BASEMENT: Подвал
         - SUBSTATION: Подстанция
         - HOMEOWNERS_ROOM: Помещение правления ТСЖ
         - TAMBOUR: Тамбур
         - INPUT_NODE: Узел ввода
         - LOBBY: Лобби
         - ATTIC: Чердак
         - ELEVATOR_SHAFT: Шахта лифта
         - SWITCHBOARD: Электрощитовая
         - DEFAULT_ROOM: Квартира по умолчанию
      title: Тип
    v1RoomUser:
      type: object
      properties:
        orpon:
          type: string
          format: int64
          title: ОРПОН дома
        roomNumber:
          type: string
          title: |-
            Номер квартиры.
            # Диапазон: 1..4
        userId:
          type: integer
          format: int32
          title: |-
            Идентификатор пользователя.
            # Диапазон: 1..2147483647
      title: Связь помещения и пользователя
      required:
        - orpon
        - roomNumber
        - userId
    v1RoomUserFilter:
      type: object
      properties:
        orpons:
          type: array
          items:
            type: string
            format: int64
          title: По ОРПОНам
        roomNumbers:
          type: array
          items:
            type: string
          title: По номерам квартир
        userIds:
          type: array
          items:
            type: integer
            format: int32
          title: По идентификаторам пользователей
      title: Фильтр по связям помещений и пользователей
    v1RoomUserPaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: USER_ID
          allOf:
            - $ref: "#/components/schemas/v1RoomUserPagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            # По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/v1RoomUserPagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            # Диапазон: 0..2147483647
      title: Постраничный вывод
    v1RoomUserPagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки.
        # Тип: byte
    v1RoomUserPagingOrderByType:
      type: string
      enum:
        - USER_ID
        - ORPON_THEN_NUMBER
      description: |-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - USER_ID: По идентификатору
         - ORPON_THEN_NUMBER: По ОРПОНу и номеру
      title: |-
        Справочник типов значений сортировки.
        # Тип: byte
    v1ValidationError:
      type: object
      properties:
        path:
          type: string
          title: Путь к полю в формате наименования прото
        message:
          type: string
          title: Валидационное сообщение
      title: |-
        Ошибки валидации.
        Эти проверки выполняются до обращения в базу данных
      required:
        - path
        - message
  securitySchemes:
    bearerHttp:
      type: http
      scheme: bearer
      bearerFormat: JWT
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://oauth2-staging.k8s.key.rt.ru/oauth2/token
          scopes:
            access_control:edit: Предоставляет полный доступ в сервис access_control
            access_control:read: Предоставляет доступ на чтение данных из сервиса access_control
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
