Действует с 3 июня 2026 г.
Приложение № 4. Перечень сервисных типов для описания схемы данных
| № п/п | Описание типа | Сервисный тип | Запрос | Описание запроса |
| 1. | Схема данных, описанная на языке SDL | Отсутствует | type Query { """ Запрос схемы данных """ getSchema: String! } | Запрос схемы данных, описанной на языке SDL GraphQL |
| 2. | Идентификатор отложенного запроса | Отсутствует | type Query { """ Запрос результата выполнения отложенного запроса """ getOfflineRequest(requestID: String!, offset: Int, limit: Int, cursor: String): QueryMessage! } | Запрос результата выполнения отложенного запроса по его идентификатору. Ответом являются данные (результат выполнения запроса), представленные в формате JSON в соответствии с изначальным GraphQL запросом. Если отложенный запрос с указанным идентификатором не найден, то должно быть возвращено сообщение об ошибке "GraphQL" с кодом "REQUEST_NOT_FOUND". Если отложенный запрос еще не выполнен или результаты его выполнения уже удалены, то должно быть возвращено сообщение об ошибке "GraphQL" с кодом "NO_REQUEST_RESULT". |
| type Query { """ Удаление результатов отложенного запроса """ delOfflineRequest(requestID: String!): Boolean! } | Удаление результатов отложенного запроса по его идентификатору. Если удаление произошло успешно, то должен быть возвращен ответ "True". Если удаление не удалось выполнить, то должен быть возвращен ответ "False" и описание ошибки "GraphQL". Если отложенный запрос с указанным идентификатором не найден, то должно быть возвращено сообщение об ошибке "GraphQL" с кодом "REQUEST_NOT_FOUND". | |||
| type Query { """ Отмена выполнения отложенного запроса """ cancelOfflineRequest (requestID: String!): Boolean! } | Прерывание (отмена) выполнения отложенного запроса по его идентификатору. Если прерывание произошло успешно, то должен быть возвращен ответ "True". Если прерывание не удалось выполнить, то должен быть возвращен ответ "False" и описание ошибки "GraphQL". Если отложенный запрос с указанным идентификатором не найден, то должно быть возвращено сообщение об ошибке "GraphQL" с кодом "REQUEST_NOT_FOUND". | |||
| 3. | Информация о статусе выполнения отложенных запросов | """ Сервисный тип для информации о статусе выполнения отложенного запроса """ type RequestInfo { """ Идентификатор отложенного запроса """ requestID: String! """ Статус отложенного запроса """ status: RequestStatus """ Дата и время начала выполнения отложенного запроса """ startsAt: DateTimeBase } """ Возможные статусы выполнения отложенного запроса """ enum RequestStatus { """ Запрос еще не выполняется """ NOTSTARTED """ Запрос выполняется """ RUNNING """ Запрос выполнен """ READY """ Выполнение запрос прервано ПТС """ ABORTED """ Запрос отменен ПУ """ CANCELED } | type Subscription { """ Запрос статуса отложенных запросов """ statusOfflineRequest: RequestInfo! } | Запрос статуса отложенных запросов. Ответом является сообщение типа "RequestInfo". |
| 4. | HTTP URI для неформатированных данных | """ Сервисный тип для неформатированных данных """ type Media { """ HTTP URI для неформатированных данных в полном формате согласно RFC7230 http(s)://<IP-адрес или доменное имя ПТС>:<порт>/download/<уникальный путь к файлу> """ link: String! } | Отсутствует | |
| 5. | Сигналы о функционировании ПТС | """ Сервисный тип для сигналов о функционировании ПТС """ type Trap { """ Тип сигнала """ type: ТгарТуре! """ Описание сигнала """ message: String """ Дата и время возникновения сигнала """ startsAt: DateTimeBase! """ Дополнительная информация о предупреждениях для контролируемых метрик (для сигнала типа "METRICALERTS") """ metricalerts: MetricAlerts } """ Возможные типы сигналов """ enum ТгарТуре { """ Перезапуск программного обеспечения """ RESTARTDB """ Попытка несанкционированного доступа """ UNAUTHORIZEDACCESS """ Критическая ошибка """ CRITICALERROR """ Серьезная ошибка """ MAJORERROR """ Незначительная ошибка """ MINORERROR """ Изменение схемы данных """ SCHEMACHANGED """ Предупреждение о проблеме с контролируемой метрикой """ METRICALERTS } """ Дополнительная информация о предупреждении """ type MetricAlerts { """ Ключ, определяющий группу предупреждений """ groupKey: String! """ Статус предупреждения """ status: AlertStatus! """ Определяет получателя предупреждения """ receiver: String! """ Метки, по которым сгруппированы предупреждения """ groupLabels: [KeyValueRef!]! """ Общие метки для всех предупреждений """ commonLabels: [KeyValueRef!]! """ Общие описания для всех предупреждений """ commonAnnotations: [KeyValueRef!]! """ URL менеджера предупреждений """ externalURL: String! """ Список предупреждений """ alerts: [Alert!]! } """ Возможные статусы предупреждений """ enum AlertStatus { """ Проблема решена """ RESOLVED """ Проблема не решена """ FIRING } """ Предупреждение о проблеме с контролируемой метрикой """ type Alert { """ Статус предупреждения """ status: AlertStatus! """ Метки для предупреждения """ labels: [KeyValueRef!]! """ Описания для предупреждения """ annotations: [KeyValueRef!]! """ Дата и время возникновения предупреждения """ startsAt: DateTimeBase! """ Дата и время решения проблемы, в результате которой возникло предупреждение """ endsAt: DateTimeBase! """ URL сущности, в которой возникла проблема """ generatorURL: String! """ Идентификатор предупреждения """ fingerprint: String! } """ Ключ-значение """ type KeyValueRef { """ Ключ """ key: String! """ Значение """ value: String! } | type Subscription { """ Запрос получения сигналов о функционировании ПТС """ trap: Trap! } | Запрос получения сигналов о функционировании ПТС. Ответом является сообщение типа "Trap". Если тип сигнала "Предупреждение о проблеме с контролируемыми параметрами (METRICALERTS)", то ПТС должны возвращать дополнительную информацию о предупреждениях в поле "metricalerts". |