Селектор объектов

Материал из Документация Ключ-АСТРОМ

Селектор объектов— это мощный инструмент для указания, какие сущности вы хотите включить в область вызовов API среды v2. Он используется в нескольких API, поэтому вам нужно выучить синтаксис только один раз, а затем повторно использовать его для нескольких вариантов использования.

Необходимо указать один из следующих критериев:

  • Тип объекта
  • Идентификатор объекта

Кроме того, вы можете указать следующие критерии в любой комбинации:

  • Имя объекта
  • Атрибут объекта
  • Тэг
  • Идентификатор зоны управления
  • Название зоны управления
  • Состояние здоровья

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

Ограничения

Общая длина строки entitySelector ограничена 10 000 символов.

Вы можете выбрать только один тип объекта для каждого запроса.

Тип объекта

Тип объекта, который вы хотите запросить.

Вы можете получить список доступных типов службс помощью вызова GET для всех типов служб.

Синтаксис type("value")
Несколько значений нет
Оператор значения EQUALS
Значение с учетом регистра нет

Идентификатор объекта Ключ-АСТРОМ

Идентификатор объекта Ключ-АСТРОМ запрошенного объекта.

Чтобы указать несколько идентификаторов, разделите их запятой ( ,). Все запрошенные сущности должны быть одного типа.

Вы можете получить список доступных службс помощью вызова списка службGET .

Синтаксис entityId("id-1","id-2")
Несколько значений да
Оператор значения EQUALS
Значение с учетом регистра нет

Имя объекта

Имя запрошенного объекта.

Вы можете получить список доступных службс помощью вызова GET списка объектов .

Синтаксис entityName("name")
Несколько значений нет
Оператор значения CONTAINS
Значение с учетом регистра нет

Старт с модификации

Изменяет оператор значения критерия имени объекта на BEGINS WITH.

Синтаксис entityName.startsWith("name")
Несколько значений нет
Оператор значения BEGINS WITH
Значение с учетом регистра нет

Равная модификация

Изменяет оператор значения критерия имени объекта на EQUALS.

Синтаксис entityName.equals("name")
Несколько значений нет
Оператор значения EQUALS
Значение с учетом регистра нет

Модификация одного из значений

Позволяет указать несколько значений для критерия имени объекта.

Синтаксис entityName.in("name1","name2")
Несколько значений да
Оператор значения EQUALS
Значение с учетом регистра нет

Модификация с учетом регистра

По умолчанию оценка имен объектов не учитывает регистр. Вы можете ужесточить критерий, используя caseSensitiveмодификацию. Он принимает любой критерий имени объекта в качестве аргумента (включая те, которые уже изменены с помощью модификаторов .startsWithили .equals) и оценивает значения как чувствительные к регистру.

Синтаксис caseSensitive(<entity name criterion>)
Несколько аргументов нет

Атрибут объекта

Пара 'имя атрибута — значение атрибута', которую должен иметь запрошенный объект.

Чтобы указать несколько значений атрибута, разделите их запятыми ( ,).

Чтобы получить список доступных атрибутов, выполните вызов типа объекта GET и проверьте поле свойств . Вы можете использовать атрибуты со значениями, которые могут быть представлены строкой.

Синтаксис <attribute name>("attribute value")
Несколько значений да
Оператор значения EQUALS
Имя атрибута с учетом регистра нет
Значение атрибута с учетом регистра да

Существующая модификация

Изменяет оператор критерия атрибута объекта на EXISTS. В этом случае условие выбирает объекты, которые имеют атрибут, независимо от значения атрибута.

Синтаксис <attribute name>.exists()
Оператор EXISTS

Тэг

Тег запрошенных сущностей. Теги в форматах [context]key:value, key:valueи valueобнаруживаются и анализируются автоматически. Если в теге, содержащем только значение, есть двоеточие ( :), вы должны экранировать двоеточие обратной косой чертой ( \). В противном случае тег будет проанализирован как key:valueтег.

Чтобы указать несколько тегов, разделите их запятой ( ,). Объект с любым из указанных тегов включается в ответ.

Вы можете получить список доступных тегов с помощью пользовательских тегов GET и вызовов автоматических тегов GET .

Синтаксис tag("[context]key1:value-1","key2:value-2","value-3")
Несколько значений да
Оператор значения EQUALS
Значение с учетом регистра да

Идентификатор зоны управления

Идентификатор зоны управления, к которой принадлежат запрошенные объекты.

Чтобы указать несколько идентификаторов, разделите их запятой ( ,).

Вы можете получить список доступных зон управления с помощью вызова GET для всех зон управления .

Синтаксис mzId("123456789","987654321")
Несколько значений да
Оператор значения EQUALS
Значение с учетом регистра неприменимо

Название зоны управления

Имя зоны управления, к которой принадлежат запрошенные объекты.

Чтобы указать несколько имен, разделите их запятой ( ,).

Вы можете получить список доступных зон управления с помощью вызова GET для всех зон управления .

Синтаксис mzName("name-1","name-2")
Несколько значений да
Оператор значения EQUALS
Значение с учетом регистра да

Состояние здоровья

Состояние работоспособности запрошенных сущностей. Возможные значения HEALTHYи UNHEALTHY.

Синтаксис healthState("HEALTHY")
Несколько значений нет
Оператор значения EQUALS
Значение с учетом регистра да

Первый взгляд

Отметка времени (в миллисекундах UTC), когда объект был замечен в первый раз.

Синтаксис firstSeenTms.<operator>(timestamp)
Несколько значений нет
Оператор значения
  • lte: раньше или в указанное время
  • lt: раньше указанного времени
  • gte: позже или в указанное время
  • gt: позже указанного времени
Значение с учетом регистра неприменимо

Отношения

Отношения, которые должен иметь запрошенный объект.

Чтобы получить список доступных отношений, выполните вызов типа объекта GET и проверьте поля fromRelationships и toRelationships .

Синтаксис
  • fromRelationships.<relationship>(<entitySelector>)
  • toRelationships.<relationship>(<entitySelector>)
Несколько аргументов нет
Примечание Принимает селектор объекта в качестве атрибута.

Критерий отрицания

Вы можете использовать notмодификацию для инвертирования любого критерия, кроме типа . Он принимает критерий в качестве аргумента и инвертирует условие. Например, not(tag("Infrastructure:Linux"))критерий выбирает объекты, у которых нет тега Infrastructure :Linux .

Вы можете использовать инвертированные критерии как часть сложных селекторов, как и любые другие критерии.

Синтаксис not (<criterion>)
Несколько аргументов нет
Примечание Не поддерживает критерии типа .