Filters an organization's assets and groups them by their specified properties.
HTTP request
The URLs use gRPC Transcoding syntax.
Path parameters
Parameters | |
---|---|
parent
|
Required. The name of the parent to group the assets by. Its format is |
Request body
The request body contains data with the following structure:
JSON representation |
---|
{ "filter" : string , "groupBy" : string , "compareDuration" : string , "readTime" : string , "pageToken" : string , "pageSize" : integer } |
filter
string
Expression that defines the filter to apply across assets. The expression is a list of zero or more restrictions combined via logical operators AND
and OR
. Parentheses are supported, and OR
has higher precedence than AND
.
Restrictions have the form <field> <operator> <value>
and may have a -
character in front of them to indicate negation. The fields map to those defined in the Asset resource. Examples include:
- name
- securityCenterProperties.resource_name
- resourceProperties.a_property
- securityMarks.marks.marka
The supported operators are:
-
=
for all value types. -
>
,<
,>=
,<=
for integer values. -
:
, meaning substring matching, for strings.
The supported value types are:
- string literals in quotes.
- integer literals without quotes.
- boolean literals
true
andfalse
without quotes.
The following field and operator combinations are supported:
- name:
=
- updateTime:
=
,>
,<
,>=
,<=
Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: updateTime = "2019-06-10T16:07:18-07:00"
updateTime = 1560208038000
- createTime:
=
,>
,<
,>=
,<=
Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: 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:
=
,:
For example, resourceProperties.size = 100
is a valid filter string.
Use a partial match on the empty string to filter based on a property existing: resourceProperties.my_property : ""
Use a negated partial match on the empty string to filter based on a property not existing: -resourceProperties.my_property : ""
groupBy
string
Required. Expression that defines what assets fields to use for grouping. The string value should follow SQL syntax: comma separated list of fields. For example: "securityCenterProperties.resource_project,securityCenterProperties.project".
The following fields are supported when compareDuration is not set:
- securityCenterProperties.resource_project
- securityCenterProperties.resource_project_display_name
- securityCenterProperties.resource_type
- securityCenterProperties.resource_parent
- securityCenterProperties.resource_parent_display_name
The following fields are supported when compareDuration is set:
- securityCenterProperties.resource_type
- securityCenterProperties.resource_project_display_name
- securityCenterProperties.resource_parent_display_name
compareDuration
string (
Duration
format)
When compareDuration is set, the GroupResult's "stateChange" property is updated to indicate whether the asset was added, removed, or remained present during the compareDuration period of time that precedes the readTime. This is the time between (readTime - compareDuration) and readTime.
The state change value is derived based on the presence of the asset at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the asset is removed and re-created again.
Possible "stateChange" values when compareDuration is specified:
- "ADDED": indicates that the asset was not present at the start of compareDuration, but present at reference_time.
- "REMOVED": indicates that the asset was present at the start of compareDuration, but not present at reference_time.
- "ACTIVE": indicates that the asset was present at both the start and the end of the time period defined by compareDuration and reference_time.
If compareDuration is not specified, then the only possible stateChange is "UNUSED", which will be the stateChange set for all assets present at readTime.
If this field is set then stateChange
must be a specified field in groupBy
.
A duration in seconds with up to nine fractional digits, ending with ' s
'. Example: "3.5s"
.
readTime
string (
Timestamp
format)
Time used as a reference point when filtering assets. The filter is limited to assets existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.
Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
pageToken
string
The value returned by the last GroupAssetsResponse
; indicates that this is a continuation of a prior assets.group
call, and that the system should return the next page of data.
pageSize
integer
The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.
Response body
If successful, the response body contains an instance of GroupAssetsResponse
.
Authorization scopes
Requires the following OAuth scope:
-
https://www.googleapis.com/auth/cloud-platform
For more information, see the Authentication Overview .