Method: folders.assets.group

过滤组织的资源,并按其指定的属性进行分组。

HTTP 请求


网址使用 gRPC 转码语法。

路径参数

参数
parent

string

必需。用于对素材资源进行分组的上级的名称。其格式为 organizations/[organization_id]folders/[folder_id]projects/[projectId]

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "filter": string,
  "groupBy": string,
  "compareDuration": string,
  "readTime": string,
  "pageToken": string,
  "pageSize": integer
}
字段
filter

string

用于定义要应用于所有素材资源的过滤条件的表达式。该表达式是通过逻辑运算符 ANDOR 组合而成的零个或多个限制条件的列表。支持括号,并且 OR 的优先级高于 AND

限制的形式为 <field> <operator> <value>,并且可能在前面带有 - 字符以表示否定。这些字段会映射到 Asset 资源中定义的字段。例如:

  • name
  • securityCenterProperties.resource_name
  • resourceProperties.a_property
  • securityMarks.marks.marka

支持的运算符包括:

  • =(适用于所有值类型)。
  • ><>=<=,表示整数值。
  • :,表示字符串的子字符串匹配。

支持的值类型包括:

  • 字符串字面量用引号括起来。
  • 不带引号的整数字面量。
  • 不带引号的布尔值字面量 truefalse

支持以下字段和运算符组合:

  • 名称:=
  • updateTime:=><>=<=

用法:此值应为从公元纪年起算的毫秒数,或 RFC3339 字符串。示例:updateTime = "2019-06-10T16:07:18-07:00" updateTime = 1560208038000

  • createTime:=><>=<=

用法:此值应为从公元纪年起算的毫秒数,或 RFC3339 字符串。示例:createTime = "2019-06-10T16:07:18-07:00" createTime = 1560208038000

  • iamPolicy.policy_blob:=:
  • resourceProperties:=:><>=<=
  • securityMarks.marks:=:
  • securityCenterProperties.resource_name: =, :
  • securityCenterProperties.resource_display_name: =, :
  • securityCenterProperties.resource_type: =:
  • securityCenterProperties.resource_parent: =, :
  • securityCenterProperties.resource_parent_display_name: =, :
  • securityCenterProperties.resource_project: =, :
  • securityCenterProperties.resource_project_display_name: =, :
  • securityCenterProperties.resource_owners: =, :

例如,resourceProperties.size = 100 是一个有效的过滤器字符串。

对空字符串使用部分匹配,以便根据现有属性进行过滤:resourceProperties.my_property : ""

对空字符串使用否定部分匹配,以便根据不存在的属性进行过滤:-resourceProperties.my_property : ""

groupBy

string

必需。用于定义要用于分组的素材资源字段的表达式。字符串值应遵循 SQL 语法:逗号分隔的字段列表。例如:“securityCenterProperties.resource_project,securityCenterProperties.project”。

未设置 compareDuration 时,支持以下字段:

  • securityCenterProperties.resource_project
  • securityCenterProperties.resource_project_display_name
  • securityCenterProperties.resource_type
  • securityCenterProperties.resource_parent
  • securityCenterProperties.resource_parent_display_name

设置 compareDuration 时,支持以下字段:

  • securityCenterProperties.resource_type
  • securityCenterProperties.resource_project_display_name
  • securityCenterProperties.resource_parent_display_name
compareDuration

string (Duration format)

设置 compareDuration 后,GroupResult 的“stateChange”属性会更新,以指示相应资源在 readTime 之前的 compareDuration 时间段内是添加、移除还是保持存在。这是介于 (readTime - compareDuration) 和 readTime 之间的时间。

状态更改值是根据资产在两个时间点的存在情况派生的。这两次时间点之间的中间状态变化不会影响结果。例如,如果移除资源并重新创建,结果不会受到影响。

指定 compareDuration 时可能的“stateChange”值:

  • “ADDED”:表示相应资产在 compareDuration 开始时不存在,但在 reference_time 时存在。
  • “REMOVED”:表示资源在 compareDuration 的开始存在,但在 reference_time 时不存在。
  • “ACTIVE”:表示资源在 compareDuration 和 reference_time 定义的时间段的开始和结束时都存在。

如果未指定 compareDuration,则唯一可能的 stateChange 是“UNUSED”,系统会为 readTime 时存在的所有素材资源设置该 stateChange。

如果设置此字段,则 stateChange 必须是 groupBy 中的指定字段。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

readTime

string (Timestamp format)

过滤素材资源时用作参考点的时间。此过滤条件仅限于在指定时间存在的资产,其值为该特定时间的值。如果未指定此字段,则默认使用 API 的 NOW 版本。

采用 RFC 3339 标准,生成的输出将始终在末尾带 Z,并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

pageToken

string

最后一个 GroupAssetsResponse 返回的值;该参数表示这是之前的 assets.group 调用的延续,并且系统应返回下一页的数据。

pageSize

integer

单个响应中返回的结果数上限。默认值为 10,最小值为 1,最大值为 1000。

响应正文

如果成功,则响应正文包含一个 GroupAssetsResponse 实例。

授权范围

需要以下 OAuth 范围:

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

如需了解详情,请参阅 Authentication Overview