openapi: 3.0.3
info:
  title: encryption_profile
  version: 1.0.1782124931493
  description: Сервис encryption_profile
  license:
    name: CC BY-NC-ND 4.0
    url: https://gitlab.infra.rtkit.dev/openapi/key/raw/main/LICENCE.md
tags:
  - name: encryption_profile(auth)
    description: Методы encryption_profile. Требуют авторизацию. Доступны из интернета
  - name: system(public)
    description: Методы system. Не требуют авторизацию. Доступны из интернета
paths:
  /encryption_profile/api/v1/encryption_profile:
    post:
      summary: |-
        Метод сохранения шифрования по идентификатору.
        Поддерживает создание и обновление.
        Метод доступен для: device_admin
      operationId: EncryptionProfileService_PostEncryptionProfile
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostEncryptionProfileResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostEncryptionProfileResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostEncryptionProfileResponse"
        default:
          description: Ошибки транспортного слоя
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/v1PostEncryptionProfileRequest"
        required: true
      tags:
        - encryption_profile(auth)
      security:
        - oauth2:
            - encryption_profile: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, он никогда не
            будет перенаправлен на канареечный деплой
  /encryption_profile/api/v1/encryption_profile/count:
    get:
      summary: |-
        Метод получения количества профилей шифрования.
        Метод доступен для: admin, service, bti, device_admin
      operationId: EncryptionProfileService_GetEncryptionProfileCount
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetEncryptionProfileCountResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetEncryptionProfileCountResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetEncryptionProfileCountResponse"
        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.types
          description: |-
            По типам профиля шифрования

             - TYPE_UNKNOWN: Значение не указано
             - SL3: Тип SL3
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - SL3
        - name: filter.showDeleted
          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:
        - encryption_profile(auth)
      security:
        - oauth2:
            - encryption_profile:read
            - encryption_profile:edit
          bearerHttp: []
  /encryption_profile/api/v1/encryption_profile/list:
    get:
      summary: |-
        Метод получения списка профилей шифрования.
        Метод доступен для: admin, service, bti, device_admin
      operationId: EncryptionProfileService_GetEncryptionProfileList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetEncryptionProfileListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetEncryptionProfileListResponse
        "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.types
          description: |-
            По типам профиля шифрования

             - TYPE_UNKNOWN: Значение не указано
             - SL3: Тип SL3
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - SL3
        - name: filter.showDeleted
          description: Показывать удаленные
          in: query
          required: false
          schema:
            type: boolean
        - name: paging.orderByType
          description: >-
            Тип значения сортировки.

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

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

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

            В случае если текстовое поле не передано, применяется значение по умолчанию
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - 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:
        - encryption_profile(auth)
      security:
        - oauth2:
            - encryption_profile:read
            - encryption_profile:edit
          bearerHttp: []
  "/encryption_profile/api/v1/encryption_profile/restore/{id}":
    post:
      summary: |-
        Метод разархивации шифрования по идентификатору.
        Метод доступен для: admin, service, device_admin
      operationId: EncryptionProfileService_PostEncryptionProfileRestore
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1PostEncryptionProfileRestoreResponse"
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "409":
          description: В базе данных хранится более новая версия объекта
        "500":
          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:
        - encryption_profile(auth)
      security:
        - oauth2:
            - encryption_profile:edit
          bearerHttp: []
  "/encryption_profile/api/v1/encryption_profile/{id}":
    get:
      summary: |-
        Метод получения профиля шифрования по идентификатору.
        Метод доступен для: admin, service, bti, device_admin
      operationId: EncryptionProfileService_GetEncryptionProfile
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetEncryptionProfileResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetEncryptionProfileResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetEncryptionProfileResponse"
        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:
        - encryption_profile(auth)
      security:
        - oauth2:
            - encryption_profile:read
            - encryption_profile:edit
          bearerHttp: []
    delete:
      summary: |-
        Метод удаления профиля шифрования.
        Метод доступен для: admin, service, device_admin
      operationId: EncryptionProfileService_DeleteEncryptionProfile
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteEncryptionProfileResponse"
        "400":
          description: Ошибка
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteEncryptionProfileResponse"
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "404":
          description: Объект не найден
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1DeleteEncryptionProfileResponse"
        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:
        - encryption_profile(auth)
      security:
        - oauth2:
            - encryption_profile:edit
          bearerHttp: []
  /encryption_profile/api/v1/system/status:
    get:
      summary: |-
        Метод получения статуса сервиса.
        Не требует авторизации
      operationId: SystemService_GetSystemStatus
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/v1GetSystemStatusResponse"
        "400":
          description: Ошибка
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      tags:
        - system(public)
      parameters:
        - in: header
          name: X-Request-Id
          schema:
            type: string
            format: uuid
          description: Уникальный идентификатор запроса. Создаётся клиентом на каждый запрос
        - in: header
          name: X-Device-Id
          schema:
            type: string
          description: Уникальный идентификатор устройства. Создаётся клиентом при первом
            запуске приложения. Если есть способ однозначно узнать идентификатор
            устройства, то создаётся на основе него и остаётся неизменным после
            переустановки приложения
        - in: header
          name: X-Api-Key
          schema:
            type: string
          description: Уникальный ключ для партнера. Создается администратором и
            передается партнерам.
        - in: header
          name: Canary
          schema:
            type: string
          description: Параметр балансировки запроса. Если для заголовка запроса
            установлено значение always, он будет перенаправлен на канареечный
            деплой. Если для заголовка установлено значение never, он никогда не
            будет перенаправлен на канареечный деплой
components:
  schemas:
    EncryptionProfilePagingDirectionType:
      type: string
      enum:
        - DESC
        - ASC
      description: |-
        - DIRECTION_TYPE_UNKNOWN: Значение не указано
         - DESC: От большего к меньшему
         - ASC: От меньшего к большему
      title: |-
        Справочник типов направлений сортировки;
        # Тип: byte
    EncryptionProfilePagingOrderByType:
      type: string
      enum:
        - ID
        - CHANGED_AT
        - CREATED_AT
        - RANK
      description: >-
        - ORDER_BY_TYPE_UNKNOWN: Значение не указано
         - ID: По идентификатору
         - CHANGED_AT: Дата последнего изменения
         - CREATED_AT: Дата создания
         - RANK: По рангу для поиска по тексту.
        Применяется когда передано поле для поиска по тексту.

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

        Эти проверки выполняются при работе с базой данных и сторонними сервисами
    ErrorLinkedDevicesExists:
      type: object
      title: |-
        Существуют устройства, связанные с этим профилем шифрования.
        Следует отвязать устройства перед удалением профиля
    SavingErrorConflict:
      type: object
      title: |-
        Конфликт версий.
        Причины:
        - В базе хранится другая версия строки, значения changed_at оличаются
    SavingErrorRangeIsTooSmall:
      type: object
      title: |-
        Указанный диапазон не соответствует минимальному значению.
        Причины:
        - Модуль разности между полями start_index и end_index меньше 7
    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: Ошибка транспортного слоя
    v1DeleteEncryptionProfileResponse:
      type: object
      properties:
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1DeleteEncryptionProfileResponseError"
      title: Ответ на запрос удаления профиля шифрования
    v1DeleteEncryptionProfileResponseError:
      type: object
      properties:
        linkedDevicesExists:
          title: Существуют устройства, связанные с этим профилем шифрования
          allOf:
            - $ref: "#/components/schemas/ErrorLinkedDevicesExists"
      title: Ошибка запроса удаления профиля шифрования
    v1EncryptionProfile:
      type: object
      properties:
        id:
          type: string
          title: |-
            Идентификатор.
            # Тип: Guid
        name:
          type: string
          title: |-
            Наименование.
            # Диапазон: 3..64
        description:
          type: string
          title: |-
            Описание.
            # Диапазон: 3..1000
        type:
          title: Тип профиля шифрования
          allOf:
            - $ref: "#/components/schemas/v1EncryptionProfileType"
        sectorNumber:
          type: integer
          format: int32
          title: |-
            Номер сектора.
            # Диапазон: 0..15
        blockNumber:
          type: integer
          format: int32
          title: |-
            Номер блока.
            # Диапазон: 0..3
        startIndex:
          type: integer
          format: int32
          title: |-
            Индекс первого символа для секрета.
            # Диапазон: 0..31
        endIndex:
          type: integer
          format: int32
          title: |-
            Индекс последнего символа для секрета.
            # Диапазон: 0..31
        secretA:
          type: string
          title: |-
            Пароль A профиля.
            # Диапазон: 16..32
        encryptedSecretA:
          type: string
          title: Зашифрованный пароль B профиля
          readOnly: true
        secretB:
          type: string
          title: |-
            Пароль B профиля.
            # Диапазон: 16..32
        encryptedSecretB:
          type: string
          title: Зашифрованный пароль B профиля
          readOnly: true
        createdAt:
          type: string
          format: date-time
          title: |-
            Дата создания.
            # Тип: DateTime
          readOnly: true
        changedAt:
          type: string
          format: date-time
          title: |-
            Дата последнего изменения.
            Заполняется и обновляется сервером.
            Заполняется при создании и изменении.
            Является версией объекта.
            # Тип: DateTime
        deletedAt:
          type: string
          format: date-time
          title: |-
            Дата удаления.
            # Тип: DateTime?
          readOnly: true
      title: |-
        Профиль шифрования.
        # Описание модели
      required:
        - name
        - type
    v1EncryptionProfileFilter:
      type: object
      properties:
        text:
          type: string
          title: |-
            Поиск по тексту.
            Если значение не передано то поиск по нему не производится.
            # Диапазон: 3..64.
            # Поиск производится по полям:
            # - Наименование;
            # - Описание
        types:
          type: array
          items:
            $ref: "#/components/schemas/v1EncryptionProfileType"
          title: По типам профиля шифрования
        showDeleted:
          type: boolean
          title: Показывать удаленные
      title: Фильтр по профилям шифрования
    v1EncryptionProfilePaging:
      type: object
      properties:
        orderByType:
          title: |-
            Тип значения сортировки.
            Если значение не передано, то будет взято значение по умолчанию.
            # По умолчанию: CHANGED_AT
          allOf:
            - $ref: "#/components/schemas/EncryptionProfilePagingOrderByType"
        directionType:
          title: |-
            Тип направления сортировки.
            # По умолчанию: DESC
          allOf:
            - $ref: "#/components/schemas/EncryptionProfilePagingDirectionType"
        limit:
          type: integer
          format: int32
          title: |-
            Количество записей на страницу.
            Если значение 0 (не передано), то будет взято значение по умолчанию.
            # Диапазон: 0..100.
            # По умолчанию: 20
        offset:
          type: integer
          format: int32
          title: |-
            Сдвиг.
            # Диапазон: 0..2147483647
      title: Постраничный вывод
    v1EncryptionProfileType:
      type: string
      enum:
        - SL3
      description: |-
        - TYPE_UNKNOWN: Значение не указано
         - SL3: Тип SL3
      title: |-
        Справочник типов профиля шифрования.
        # Тип: byte
    v1GetEncryptionProfileCountResponse:
      type: object
      properties:
        data:
          type: integer
          format: int32
          title: Всего устройтсв
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetEncryptionProfileCountResponseError"
      title: Ответ на запрос получения количества профилей шифрования
    v1GetEncryptionProfileCountResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса получения количества профилей шифрования
    v1GetEncryptionProfileListResponse:
      type: object
      properties:
        data:
          title: Профиль шифрования
          allOf:
            - $ref: "#/components/schemas/v1EncryptionProfile"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetEncryptionProfileListResponseError"
      title: Ответ на получение списка профилей шифрования
    v1GetEncryptionProfileListResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса получения списка профилей шифрования
    v1GetEncryptionProfileResponse:
      type: object
      properties:
        data:
          title: Профиль шифрования
          allOf:
            - $ref: "#/components/schemas/v1EncryptionProfile"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1GetEncryptionProfileResponseError"
      title: Ответ на запрос получения профиля шифрования
    v1GetEncryptionProfileResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
      title: Ошибка запроса получения баннера
    v1GetSystemStatusResponse:
      type: object
      title: Ответ на запрос проверки доступности сервиса
    v1PostEncryptionProfileRequest:
      type: object
      properties:
        data:
          title: Профиль шифрования
          allOf:
            - $ref: "#/components/schemas/v1EncryptionProfile"
      title: Запрос сохранения шифрования по идентификатору
      required:
        - data
    v1PostEncryptionProfileResponse:
      type: object
      properties:
        data:
          title: Профиль шифрования
          allOf:
            - $ref: "#/components/schemas/v1EncryptionProfile"
        error:
          title: Ошибка
          allOf:
            - $ref: "#/components/schemas/v1PostEncryptionProfileResponseError"
      title: Ответ на запрос сохранения шифрования по идентификатору
    v1PostEncryptionProfileResponseError:
      type: object
      properties:
        validation:
          title: Ошибка валидации
          allOf:
            - $ref: "#/components/schemas/v1ValidationError"
        saving:
          title: Ошибка сохранения
          allOf:
            - $ref: "#/components/schemas/EncryptionProfileSavingError"
      title: Ошибка запроса сохранения профиля шифрования
    v1PostEncryptionProfileRestoreResponse:
      type: object
      title: Отвест на запрос разархивации шифрования по идентификатору
    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:
            encryption_profile:edit: Предоставляет полный доступ в сервис encryption_profile
            encryption_profile:read: Предоставляет доступ на чтение данных из сервиса encryption_profile
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
