Method: projects.sources.findings.group

Filtre les résultats d'une organisation ou d'une source, et les regroupe en fonction de leurs propriétés spécifiées.

Pour regrouper toutes les sources, indiquez - comme ID de source. Exemple: /v1/organizations/{organization_id}/sources/-/findings, /v1/folders/{folder_id}/sources/-/findings, /v1/projects/{projectId}/sources/-/findings

Requête HTTP


Les URL utilisent la syntaxe de transcodage gRPC.

Paramètres de chemin d'accès

Paramètres
parent

string

Obligatoire. Nom de la source à grouper. Il est au format "organizations/[organization_id]/sources/[source_id]", folders/[folder_id]/sources/[source_id] ou projects/[projectId]/sources/[source_id]. Pour grouper par source pour toutes les sources, spécifiez un identifiant de source de -. Par exemple: organizations/{organization_id}/sources/-, folders/{folder_id}/sources/- ou projects/{projectId}/sources/-

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Représentation JSON
{
  "filter": string,
  "groupBy": string,
  "readTime": string,
  "compareDuration": string,
  "pageToken": string,
  "pageSize": integer
}
Champs
filter

string

Expression qui définit le filtre à appliquer aux résultats. L'expression est une liste d'une ou plusieurs restrictions combinées à l'aide des opérateurs logiques AND et OR. Les parenthèses sont acceptées, et OR a une priorité plus élevée que AND.

Les restrictions ont la forme <field> <operator> <value> et peuvent être précédées d'un caractère - pour indiquer une négation. Voici quelques exemples :

  • nom
  • sourceProperties.a_property
  • securityMarks.marks.marka

Les opérateurs compatibles sont les suivants:

  • = pour tous les types de valeurs.
  • >, <, >=, <= pour les valeurs entières.
  • :, qui signifie "mise en correspondance de sous-chaîne", pour les chaînes.

Les types de valeurs acceptés sont les suivants:

  • littéraux de chaîne entre guillemets.
  • des littéraux entiers sans guillemets.
  • Les littéraux booléens true et false sans guillemets.

Les combinaisons de champs et d'opérateurs suivantes sont acceptées:

  • nom : =
  • parent: =, :
  • resourceName: =, :
  • state: =, :
  • catégorie: =, :
  • externalUri: =, :
  • eventTime: =, >, <, >=, <=
  • severity: =, :

Utilisation: doit être exprimé en millisecondes depuis l'epoch ou en tant que chaîne RFC3339. Exemples: eventTime = "2019-06-10T16:07:18-07:00" eventTime = 1560208038000

  • securityMarks.marks: =, :
  • sourceProperties: =, :, >, <, >=, <=

Par exemple, sourceProperties.size = 100 est une chaîne de filtre valide.

Utilisez une correspondance partielle sur la chaîne vide pour filtrer en fonction d'une propriété existante: sourceProperties.my_property : ""

Utilisez une correspondance partielle inversée sur la chaîne vide pour filtrer en fonction d'une propriété inexistante: -sourceProperties.my_property : ""

groupBy

string

Obligatoire. Expression qui définit les champs d'assets à utiliser pour le regroupement (y compris stateChange). La valeur de chaîne doit respecter la syntaxe SQL: liste de champs séparés par une virgule. Par exemple: "parent,resourceName".

Les champs suivants sont acceptés:

  • resourceName
  • category
  • state
  • parent
  • de gravité,

Les champs suivants sont acceptés lorsque compareDuration est défini:

  • stateChange
readTime

string (Timestamp format)

Heure utilisée comme point de référence lors du filtrage des résultats. Le filtre est limité aux résultats existants au moment indiqué, et leurs valeurs correspondent à celles de ce moment précis. Si ce champ n'est pas spécifié, la version de l'API de NOW est utilisée par défaut.

Utilise la norme RFC 3339, où la sortie générée est toujours normalisée avec le suffixe Z et utilise 0, 3, 6 ou 9 chiffres décimaux. Les décalages autres que "Z" sont également acceptés. Exemples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" ou "2014-10-02T15:01:23+05:30".

compareDuration

string (Duration format)

Lorsque compareDuration est défini, l'attribut "stateChange" de GroupResult est mis à jour pour indiquer si l'état de la découverte a changé, si l'état de la découverte est resté inchangé ou si la découverte a été ajoutée pendant la période de compareDuration qui précède le readTime. Il s'agit du temps écoulé entre (readTime - compareDuration) et readTime.

La valeur stateChange est dérivée en fonction de la présence et de l'état de la découverte aux deux moments. Les changements d'état intermédiaires entre les deux moments n'ont aucune incidence sur le résultat. Par exemple, les résultats ne sont pas affectés si l'anomalie est désactivée, puis réactivée.

Valeurs possibles pour "stateChange" lorsque compareDuration est spécifié:

  • "CHANGED": indique que la découverte était présente et correspondait au filtre donné au début de compareDuration, mais a changé d'état à readTime.
  • "UNCHANGED": indique que le résultat était présent et correspondait au filtre donné au début de la durée de comparaison et qu'il n'a pas changé d'état au moment de la lecture.
  • "ADDED": indique que le résultat ne correspond pas au filtre donné ou qu'il n'était pas présent au début de compareDuration, mais qu'il l'était à l'heure de lecture.
  • "REMOVED": indique que le résultat était présent et correspondait au filtre au début de compareDuration, mais qu'il ne correspondait pas au filtre au moment de la lecture.

Si compareDuration n'est pas spécifié, le seul état de modification possible est "UNUSED", qui sera défini pour toutes les observations présentes au moment de la lecture.

Si ce champ est défini, stateChange doit être un champ spécifié dans groupBy.

Durée en secondes avec neuf chiffres au maximum après la virgule et se terminant par "s". Exemple : "3.5s"

pageToken

string

La valeur renvoyée par le dernier GroupFindingsResponse indique qu'il s'agit de la continuation d'un appel findings.group précédent et que le système doit renvoyer la page de données suivante.

pageSize

integer

Nombre maximal de résultats à renvoyer dans une seule réponse. La valeur par défaut est 10. Elle doit être comprise entre 1 et 1 000 (inclus).

Corps de la réponse

Si la requête aboutit, le corps de la réponse contient une instance de GroupFindingsResponse.

Champs d'application des autorisations

Requiert le niveau d'accès OAuth suivant :

  • https://www.googleapis.com/auth/cloud-platform

Pour en savoir plus, consultez Authentication Overview.