openapi: 3.0.3
info:
  title: tag
  version: 1.0.1785741092963
  description: Сервис tag
  license:
    name: CC BY-NC-ND 4.0
    url: https://gitlab.infra.rtkit.dev/openapi/key/raw/main/LICENCE.md
tags:
  - name: tag(auth)
    description: Методы tag. Требуют авторизацию. Доступны из интернета
  - name: system(public)
    description: Методы system. Не требуют авторизацию. Доступны из интернета
paths:
  /tag/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, он никогда не
            будет перенаправлен на канареечный деплой
  /tag/api/v1/tag/list:
    get:
      summary: |-
        Метод получения списка тэгов.
        Метод доступен для: master, slave
      operationId: TagService_GetTagList
      responses:
        "200":
          description: Успешный ответ
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    $ref: "#/components/schemas/v1GetTagListResponse"
                  error:
                    $ref: "#/components/schemas/rpcStatus"
                title: Поток объектов v1GetTagListResponse
        "400":
          description: Ошибка
        "401":
          description: Запрос не авторизован
        "403":
          description: В доступе отказано
        "500":
          description: Внутренняя ошибка сервиса
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/rpcStatus"
      tags:
        - tag(auth)
      security:
        - oauth2:
            - tag:read
            - tag: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:
    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: Ошибка транспортного слоя
    v1GetSystemStatusResponse:
      type: object
      title: Ответ на запрос проверки доступности сервиса
    v1GetTagListResponse:
      type: object
      properties:
        data:
          type: string
          title: Пользовательский тэг
      title: Ответ на запрос получения списка тэгов
  securitySchemes:
    bearerHttp:
      type: http
      scheme: bearer
      bearerFormat: JWT
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://oauth2-staging.k8s.key.rt.ru/oauth2/token
          scopes:
            tag:edit: Предоставляет полный доступ в сервис tag
            tag:read: Предоставляет доступ на чтение данных из сервиса tag
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: http://localhost:3001
    description: localhost
  - url: https://keyapis.key.rt.ru
    description: production
