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

Триггеры

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

Запрос triggers позволяет получить список триггеров для создания оповещений. Триггеры связаны с эндпойнтами, на которые будут отправляться оповещения.

triggers(filter: JSON = null
ids: [ID] = null
limit: Int = null
offset: Int = null
order: [String] = null
targetId: ID = null
withArchived: WithArchived = null): TriggerCollection!

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

  • creation_date: Точная дата создания триггера в формате ISO 8601
  • endpoints: ID связанного эндпойнта
  • id: ID триггера из базы данных
  • is_active:
  • last_modified: Точная дата последнего изменения триггера в формате ISO 8601
  • meta:
  • workspace: ID воркспейса
  • workspace_id: ID воркспейса

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

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

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

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

targetId: ID: ID группы, к которой привязан триггер

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

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

  • totalCount: Int: Число возвращенных триггеров
  • collectionItems: [TriggerType!]!:
    • id: ID!: ID триггера
    • creationDate: DateTime!: Дата создания триггера в формате ISO 8601
    • lastModified: DateTime!: Дата последнего изменения триггера в формате ISO 8601
    • meta: Meta!: Мета-информация триггера
    • endpoints: [EndpointOutput!]!: Список эндпойнтов, связанных с триггером
    • archived: Boolean!: Атрибут об архивации триггера

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

{
triggers(ids: ["3e57a95e-028c-4d27-9419-a9c4bfd6f3fb"]) {
totalCount
collectionItems {
id
creationDate
lastModified
meta {
notificationParams
conditionLanguage {
condition
variables {
name
target {
type
uuid
}
type
}
}
}
endpoints {
id
}
archived
}
}
}

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

API возвращает следующий результат:
{
"data": {
"triggers": {
"totalCount": 1,
"collectionItems": [
{
"id": "3e57a95e-028c-4d27-9419-a9c4bfd6f3fb",
"creationDate": "2022-07-07T08:38:22.982190+00:00",
"lastModified": "2022-07-08T05:03:48.961423+00:00",
"meta": {
"notificationParams": "{\"lifetime\": 5}",
"conditionLanguage": {
"condition": null,
"variables": [
{
"name": "0_v",
"target": [
{
"type": "Label",
"uuid": "edbb2c49-bacc-4b43-aac8-e06fd3da35eb"
}
],
"type": "presence"
}
]
}
},
"endpoints": [
{
"id": "db38ec53-c09d-45f2-bfed-5877c9bd9016"
}
],
"archived": false
}
]
}
}
}

Создать триггер для группы

Мутация createProfileGroupTrigger позволяет создать триггер для группы. При каждом обнаружении камерой персоны из этой группы система будет создавать оповещение.

createProfileGroupTrigger(endpointAliases: [DefaultAlias!] = null
endpointIds: [ID!] = null
endpointUrl: String = null
profileGroupId: ID!): TriggerManageOutput!

endpointAliases: [DefaultAlias!]: Вы можете передать значения OWNER_EMAIL или WEB_INTERFACE. В этом случае эндпойнт с аналогичным значением для параметра defaultAlias будет привязан к триггеру.

endpointIds: [ID!]: Вы можете передать список ID эндпойнтов, привязанных к триггеру.

endpointUrl: String: Вы можете передать URL в ваш вебхук. Это создаст новый эндпойнт для отправления оповещений на ваш URL адрес.

profileGroupId: ID!: ID группы для создания триггера.

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

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

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

  • Группа не найдена по переданному ID:
{
"message": "Label matching query does not exist."
}
  • Эндпойнт не найден по переданному ID:
{
"message": "Endpoint does not exist."
}

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

mutation{
createProfileGroupTrigger(profileGroupId: "800f0b65-7dbe-42b2-8f66-89af95a734e7", endpointIds: ["afd7c121-3140-4a8c-b0ee-3717581eb76d"]) {
trigger {
endpoints {
id
}
id
}
}
}

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

API возвращает следующий результат:
{
"data": {
"createProfileGroupTrigger": {
"trigger": {
"endpoints": [
{
"id": "afd7c121-3140-4a8c-b0ee-3717581eb76d"
}
],
"id": "9675aede-3ee8-495b-ac8b-e284a07db99e"
}
}
}
}

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

Мутация updateTrigger позволяет обновить эндпойнты, привязанные к триггеру. Список привязанных эндпойнтов заменяется новым списком.

updateTrigger(endpointAliases: [DefaultAlias!] = null
endpointIds: [ID!] = null
triggerId: ID!): TriggerManageOutput!

endpointAliases: [DefaultAlias!]: Вы можете передать значения OWNER_EMAIL или WEB_INTERFACE. В этом случае один из эндпойнтов с аналогичным значением в параметре defaultAlias будет привязан к триггеру.

endpointIds: [ID!]: Вы можете передать список ID эндпойнтов, привязанных к триггеру.

triggerId: ID!: ID триггера

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

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

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

  • Триггер не найден по переданному ID:
{
"message": "Trigger matching query does not exist."
}
  • Эндпойнт не найден по переданному ID:
{
"message": "Endpoint does not exist."
}

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

mutation{
updateTrigger(
triggerId: "64e0a7ec-0df4-4734-a460-601fa1b65a1f",
endpointIds: ["6e5a6d3b-8247-488e-95d7-57a306b294ed"],
endpointAliases: OWNER_EMAIL) {
ok
trigger {
id
endpoints {
id
defaultAlias
}
}
}
}

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

API возвращает следующий результат:
{
"data": {
"updateTrigger": {
"ok": true,
"trigger": {
"id": "64e0a7ec-0df4-4734-a460-601fa1b65a1f",
"endpoints": [
{
"id": "6e5a6d3b-8247-488e-95d7-57a306b294ed",
"defaultAlias": null
},
{
"id": "6fd67f81-a195-442b-a991-1a0eca6bbb69",
"defaultAlias": "OWNER_EMAIL"
}
]
}
}
}
}

Мутация linkEndpoint позволяет привязать эндпойнт к триггеру. Необходимо добавить эндпойнт в список эндпойнтов, привязанных к триггеру.

linkEndpoint(endpointAliases: [DefaultAlias!] = null
endpointIds: ID! = null
triggerId: ID!): MutationResult!

endpointAliases: [DefaultAlias!]: Можно передать значения OWNER_EMAIL или WEB_INTERFACE. В этом случае один из эндпойнтов с аналогичным значением для параметраdefaultAlias будет привязан к триггеру.

endpointIds: ID!: ID эндпойнта, который будет привязан к триггеру.

triggerId: ID!: ID триггера

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

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

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

  • Не передан ID эндпойнта для привязки к триггеру:
{
"message": "Unknown exception code for 'bad_input_data' type",
"code": "No id or alias provided"
}
  • Не найден эндпойнт по переданному ID:
{
"message": "Endpoint matching query does not exist."
}
  • Не найден триггер по переданному ID:
{
"message": "Trigger matching query does not exist."
}

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

mutation{
linkEndpoint(triggerId: "64e0a7ec-0df4-4734-a460-601fa1b65a1f", endpointAlias: WEB_INTERFACE) {
ok
}
}

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

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

Мутация unlinkEndpoint позволяет отвязать эндпойнт от триггера. Эндпойнт будет удален из списка эндпойнтов, привязанных к триггеру.

unlinkEndpoint(endpointAliases: [DefaultAlias!] = null
endpointIds: ID! = null
triggerId: ID!): MutationResult!

endpointAliases: [DefaultAlias!]: Вы можете передать значения OWNER_EMAIL или WEB_INTERFACE. В этом случае один из эндпойнтов с аналогичным значением параметра defaultAlias будет удален из списка эндпойнтов, привязанных к этому триггеру.

endpointIds: ID!: Вы можете передать ID эндпойнта, который необходимо удалить из списка эндпойнтов, привязанных к этому триггеру.

triggerId: ID!: ID триггера

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

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

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

  • ID эндпойнта, который необходимо отвязать от триггера, не передан:
{
"message": "Unknown exception code for 'bad_input_data' type",
"code": "No id or alias provided"
}
  • Эндпойнт не найден по переданному ID:
{
"message": "Endpoint matching query does not exist."
}
  • Триггер не найден по переданному ID:
{
"message": "Trigger matching query does not exist."
}

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

mutation{
unlinkEndpoint(triggerId: "64e0a7ec-0df4-4734-a460-601fa1b65a1f", endpointAlias: WEB_INTERFACE) {
ok
}
}

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

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

Удалить триггер

Мутация deleteTrigger позволяет удалить триггер.

deleteTrigger(triggerId: ID!): MutationResult!

triggerId: ID!: ID триггера

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

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

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

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

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

mutation{
deleteTrigger(triggerId: "64e0a7ec-0df4-4734-a460-601fa1b65a1f") {
ok
}
}

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

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