Перейти к основному содержимому
Версия: 1.18.1

Агенты

Получить список агентов

Запрос agents позволяет получить список агентов.

agents( filter: JSON = null
ids: [ID] = null
limit: Int = null
offset: Int = null
order: [String] = null
withArchived: WithArchived = null): AgentsCollection!

Входные параметры:

filter: JSON: Вы можете отфильтровать список агентов, указав значения для одного или нескольких параметров:

  • cameras: ID камеры, сохраненный в базе данных.
  • creation_date: Точная дата создания агента в формате ISO 8601
  • id: ID агента, сохраненный в базе данных.
  • info__title: Название агента.
  • is_active: Атрибут активности агента.
  • last_modified: Точная дата последнего изменения агента в формате ISO 8601
  • workspace: ID воркспейса
  • workspace_id: ID воркспейса

ids: [ID]: Для получения списка конкретных агентов укажите их ID в списке.

limit: Int: Параметр позволяет получить первые n агентов из списка.

offset: Int: Параметр позволяет удалить первые n агентов из списка.

order: [String]: Вы можете отсортировать список, указав значения для следующих параметров: activations, cameras, creation_date, id, info, is_active, last_modified, workspace, workspace_id.

withArchived: WithArchived: Для получения списка всех агентов, в том числе заархивированных,укажите значение all. Для получения списка только заархивированных агентов укажите значение archived.

Выходные параметры:

AgentsCollection!: Результат запроса - список агентов со следующими параметрами:

  • totalCount: Int: Число возвращенных агентов
  • collectionItems: [AgentsCollection!]!:
    • id: ID!: ID агента
    • creationDate: DateTime!: Дата создания агента в формате ISO 8601.
    • lastModified: DateTime!: Дата последнего изменения агента в формате ISO 8601.
    • token: String!: Токен агента
    • camerasIds: [ID!]: Список ID камер, подключенных к агенту.
    • title: String: Название агента
    • agentStatus: String!: Статус агента
    • agentLastActiveTime: String: Дата последней активности, зафиксированной камерой агента.
    • archived: Boolean!: Атрибут архивации агента.

Пример запроса:

{
agents {
totalCount
collectionItems {
token
title
lastModified
id
creationDate
camerasIds
archived
agentStatus
agentLastActiveTime
}
}
}

Пример ответа:

API возвращает следующий результат:
{
"data": {
"agents": {
"totalCount": 1,
"collectionItems": [
{
"token": "19df2b38-7d23-44a5-85e7-c5a29b304581",
"title": "My Agent",
"lastModified": "2022-07-12T08:50:45.296225+00:00",
"id": "19df2b38-7d23-44a5-85e7-c5a29b304581",
"creationDate": "2022-07-07T07:23:08.965949+00:00",
"camerasIds": [
"3c818dc4-352c-47a7-b32b-465fbd4a9665"
],
"archived": false,
"agentStatus": "active",
"agentLastActiveTime": "2022-07-12T08:50:45.296115"
}
]
}
}
}

Создать агент

Мутация createAgent позволяет создать агент.

createAgent(agentData: AgentInput!): AgentCreateOutput!

Входные параметры:

agentData: AgentInput!: Информация, которая потребуется для создания агента:

  • title: String: Название агента.
  • extra: JSON: Дополнительная информация об агенте.

Выходные параметры:

AgentCreateOutput: Результат мутации - JSON-файл со следующими параметрами:

  • ok: Boolean!: Атрибут успешного завершения мутации.
  • agent: AgentOutput!: Объект нового агента.
  • channelCost: String: Ежемесячная плата за обслуживание.
  • writeoffDate: String: Дата следующего обслуживания в формате ISO 8601.

Ошибки входных данных:

  • Ошибка при создании агента из-за превышения лимита созданных агентов:
    {
    "message": "Agent limit exceeded",
    "code": "0x6245cd00"
    }
  • Переданы неверные дополнительные данные:
    {
    "message": "'int' object has no attribute 'get'"
    }

Пример запроса:

mutation{
createAgent(agentData: {title: "My new agent"}) {
ok
agent {
id
}
}
}

Пример ответа:

API возвращает следующий результат:
{
"data": {
"createAgent": {
"ok": true,
"agent": {
"id": "2b769e5a-a49a-46ac-ac38-ec924bd4ec83"
}
}
}
}

Обновить агент

Мутация updateAgent используется для обновления информации об агенте.

updateAgent(agentData: AgentUpdateInput!
agentId: ID!): AgentManageOutput!

Входные параметры:

agentData: AgentUpdateInput!: Информация, которая потребуется для обновления агента:

  • title: String: Название агента.

agentId: ID!: ID агента, который необходимо обновить.

Выходные параметры:

AgentManageOutput: Результат мутации - JSON-файл со следующими параметрами:

  • ok: Boolean!: Атрибут успешного завершения мутации.
  • agent: AgentOutput!: Объект обновленного агента.

Ошибки входных данных:

  • Агент не найден по переданному ID:
    {
    "message": "Camera matching query does not exist."
    }

Пример запроса:

mutation{
updateAgent(
agentId: "19df2b38-7d23-44a5-85e7-c5a29b304581",
agentData: {
title: "My old agent"
}) {
ok
agent {
id
title
}
}
}

Пример ответа:

API возвращает следующий результат:
{
"data": {
"updateAgent": {
"ok": true,
"agent": {
"id": "19df2b38-7d23-44a5-85e7-c5a29b304581",
"title": "My old agent"
}
}
}
}

Удалить агенты

Мутация deleteAgent позволяет удалить один или несколько агентов.

deleteAgent(agentId: ID = "" agentIds: [ID!] = null): MutationResult!

Входные параметры:

agentId: ID: ID агента, который требуется удалить.

agentIds: [ID!]: Список ID агентов, которые требуется удалить.

Выходные параметры:

MutationResult!: Результат мутации - JSON-файл со следующими параметрами:

  • ok: Boolean!: Атрибут успешного завершения мутации.

Ошибки входных данных:

  • Не передан ID для удаления агента:
    {
    "message": "One of the parameters agentId or agentIds is required",
    "code": "0xe509f74d"
    }

Пример запроса:

mutation{
deleteAgent(agentId: "19df2b38-7d23-44a5-85e7-c5a29b304581") {
ok
}
}

Пример ответа:

API возвращает следующий результат:
{
"data": {
"deleteAgent": {
"ok": true
}
}
}

Получить информацию об агенте

Запрос agentInfo позволяет получить информацию об агенте.

query {
agentInfo {
}
}

Выходные параметры:

  • id
    • Идентификатор агента
    • Тип данных: ID.
  • creationDate
    • Дата создания агента
    • Формат данных: Дата и время в формате ISO.
  • lastModified
    • Дата последнего изменения агента
    • Формат данных: Дата и время в формате ISO.
  • token
    • Токен агента
    • Тип данных: ID.
  • camerasIds
    • Идентификаторы камер, привязанных к агенту
    • Тип данных: ID.
  • cameras:
    • id
      • Идентификатор камеры
      • Тип данных: ID.
    • creationDate
      • Дата создания камеры
      • Формат данных: Дата и время в формате ISO.
    • lastModified
      • Дата последнего изменения камеры
      • Формат данных: Дата и время в формате ISO.
    • info
      • Информация по камере, например, внутренние поля камеры
      • Формат данных: JSON.
  • title
    • Имя агента
    • Тип данных: String.
  • agentStatus
    • Статус агента
    • Тип данных: String.
  • agentLastActiveTime
    • Время последней работы агента
    • Формат данных: Дата и время в формате ISO.
  • archived
    • Агент находится в архиве
    • Тип данных: Boolean.
  • workspaceId
    • Идентификатор воркспейса
    • Тип данных: ID.

Пример запроса:

query{
agentInfo {
agentLastActiveTime
agentStatus
archived
camerasIds
creationDate
id
lastModified
title
token
workspaceId
}
}

Пример ответа:

API возвращает следующий результат:
{
"data": {
"agentInfo": {
"agentLastActiveTime": null,
"agentStatus": "inactive",
"archived": false,
"camerasIds": [],
"creationDate": "2023-06-02T06:33:56.386734+00:00",
"id": "1609037c-d353-4933-a75d-ddb2a6081fca",
"lastModified": "2023-06-02T06:47:15.931345+00:00",
"title": "Agent2",
"token": "1609037c-d353-4933-a75d-ddb2a6081fca",
"workspaceId": "3f04af73-7f13-49e3-88e2-50c865c97ddf"
}
}
}