searchAllResources method

Future<SearchAllResourcesResponse> searchAllResources(
  1. String scope, {
  2. List<String>? assetTypes,
  3. String? orderBy,
  4. int? pageSize,
  5. String? pageToken,
  6. String? query,
  7. String? readMask,
  8. String? $fields,
})

Searches all Google Cloud resources within the specified scope, such as a project, folder, or organization.

The caller must be granted the cloudasset.assets.searchAllResources permission on the desired scope, otherwise the request will be rejected.

Request parameters:

scope - Required. A scope can be a project, a folder, or an organization. The search is limited to the resources within the scope. The caller must be granted the [cloudasset.assets.searchAllResources](https://cloud.google.com/asset-inventory/docs/access-control#required_permissions) permission on the desired scope. The allowed values are: * projects/{PROJECT_ID} (e.g., "projects/foo-bar") * projects/{PROJECT_NUMBER} (e.g., "projects/12345678") * folders/{FOLDER_NUMBER} (e.g., "folders/1234567") * organizations/{ORGANIZATION_NUMBER} (e.g., "organizations/123456") Value must have pattern ^\[^/\]+/\[^/\]+$.

assetTypes - Optional. A list of asset types that this request searches for. If empty, it will search all the asset types supported by search APIs. Regular expressions are also supported. For example: * "compute.googleapis.com.*" snapshots resources whose asset type starts with "compute.googleapis.com". * ".*Instance" snapshots resources whose asset type ends with "Instance". * ".Instance." snapshots resources whose asset type contains "Instance". See RE2 for all supported regular expression syntax. If the regular expression does not match any supported asset type, an INVALID_ARGUMENT error will be returned.

orderBy - Optional. A comma-separated list of fields specifying the sorting order of the results. The default order is ascending. Add " DESC" after the field name to indicate descending order. Redundant space characters are ignored. Example: "location DESC, name". Only the following fields in the response are sortable: * name * assetType * project * displayName * description * location * createTime * updateTime * state * parentFullResourceName * parentAssetType

pageSize - Optional. The page size for search result pagination. Page size is capped at 500 even if a larger value is given. If set to zero or a negative value, server will pick an appropriate default. Returned results may be fewer than requested. When this happens, there could be more results as long as next_page_token is returned.

pageToken - Optional. If present, then retrieve the next batch of results from the preceding call to this method. page_token must be the value of next_page_token from the previous response. The values of all other method parameters, must be identical to those in the previous call.

query - Optional. The query statement. See how to construct a query for more information. If not specified or empty, it will search all the resources within the specified scope. Examples: * name:Important to find Google Cloud resources whose name contains Important as a word. * name=Important to find the Google Cloud resource whose name is exactly Important. * displayName:Impor* to find Google Cloud resources whose display name contains Impor as a prefix of any word in the field. * location:us-west* to find Google Cloud resources whose location contains both us and west as prefixes. * labels:prod to find Google Cloud resources whose labels contain prod as a key or value. * labels.env:prod to find Google Cloud resources that have a label env and its value is prod. * labels.env:* to find Google Cloud resources that have a label env. * tagKeys:env to find Google Cloud resources that have directly attached tags where the [TagKey.namespacedName](https://cloud.google.com/resource-manager/reference/rest/v3/tagKeys#resource:-tagkey) contains env. * tagValues:prod* to find Google Cloud resources that have directly attached tags where the [TagValue.namespacedName](https://cloud.google.com/resource-manager/reference/rest/v3/tagValues#resource:-tagvalue) contains a word prefixed by prod. * tagValueIds=tagValues/123 to find Google Cloud resources that have directly attached tags where the [TagValue.name](https://cloud.google.com/resource-manager/reference/rest/v3/tagValues#resource:-tagvalue) is exactly tagValues/123. * effectiveTagKeys:env to find Google Cloud resources that have directly attached or inherited tags where the [TagKey.namespacedName](https://cloud.google.com/resource-manager/reference/rest/v3/tagKeys#resource:-tagkey) contains env. * effectiveTagValues:prod* to find Google Cloud resources that have directly attached or inherited tags where the [TagValue.namespacedName](https://cloud.google.com/resource-manager/reference/rest/v3/tagValues#resource:-tagvalue) contains a word prefixed by prod. * effectiveTagValueIds=tagValues/123 to find Google Cloud resources that have directly attached or inherited tags where the [TagValue.name](https://cloud.google.com/resource-manager/reference/rest/v3/tagValues#resource:-tagvalue) is exactly tagValues/123. * kmsKey:key to find Google Cloud resources encrypted with a customer-managed encryption key whose name contains key as a word. This field is deprecated. Use the kmsKeys field to retrieve Cloud KMS key information. * kmsKeys:key to find Google Cloud resources encrypted with customer-managed encryption keys whose name contains the word key. * relationships:instance-group-1 to find Google Cloud resources that have relationships with instance-group-1 in the related resource name. * relationships:INSTANCE_TO_INSTANCEGROUP to find Compute Engine instances that have relationships of type INSTANCE_TO_INSTANCEGROUP. * relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1 to find Compute Engine instances that have relationships with instance-group-1 in the Compute Engine instance group resource name, for relationship type INSTANCE_TO_INSTANCEGROUP. * sccSecurityMarks.key=value to find Cloud resources that are attached with security marks whose key is key and value is value. * sccSecurityMarks.key:* to find Cloud resources that are attached with security marks whose key is key. * state:ACTIVE to find Google Cloud resources whose state contains ACTIVE as a word. * NOT state:ACTIVE to find Google Cloud resources whose state doesn't contain ACTIVE as a word. * createTime<1609459200 to find Google Cloud resources that were created before 2021-01-01 00:00:00 UTC. 1609459200 is the epoch timestamp of 2021-01-01 00:00:00 UTC in seconds. * updateTime>1609459200 to find Google Cloud resources that were updated after 2021-01-01 00:00:00 UTC. 1609459200 is the epoch timestamp of 2021-01-01 00:00:00 UTC in seconds. * Important to find Google Cloud resources that contain Important as a word in any of the searchable fields. * Impor* to find Google Cloud resources that contain Impor as a prefix of any word in any of the searchable fields. * Important location:(us-west1 OR global) to find Google Cloud resources that contain Important as a word in any of the searchable fields and are also located in the us-west1 region or the global location.

readMask - Optional. A comma-separated list of fields that you want returned in the results. The following fields are returned by default if not specified: * name * assetType * project * folders * organization * displayName * description * location * labels * tags * effectiveTags * networkTags * kmsKeys * createTime * updateTime * state * additionalAttributes * parentFullResourceName

  • parentAssetType Some fields of large size, such as versionedResources, attachedResources, effectiveTags etc., are not returned by default, but you can specify them in the read_mask parameter if you want to include them. If "*" is specified, all available fields are returned. Examples: "name,location", "name,versionedResources", "*". Any invalid field path will trigger INVALID_ARGUMENT error.

$fields - Selector specifying which fields to include in a partial response.

Completes with a SearchAllResourcesResponse.

Completes with a commons.ApiRequestError if the API endpoint returned an error.

If the used http.Client completes with an error when making a REST call, this method will complete with the same error.

Implementation

async.Future<SearchAllResourcesResponse> searchAllResources(
  core.String scope, {
  core.List<core.String>? assetTypes,
  core.String? orderBy,
  core.int? pageSize,
  core.String? pageToken,
  core.String? query,
  core.String? readMask,
  core.String? $fields,
}) async {
  final queryParams_ = <core.String, core.List<core.String>>{
    if (assetTypes != null) 'assetTypes': assetTypes,
    if (orderBy != null) 'orderBy': [orderBy],
    if (pageSize != null) 'pageSize': ['${pageSize}'],
    if (pageToken != null) 'pageToken': [pageToken],
    if (query != null) 'query': [query],
    if (readMask != null) 'readMask': [readMask],
    if ($fields != null) 'fields': [$fields],
  };

  final url_ = 'v1/' + core.Uri.encodeFull('$scope') + ':searchAllResources';

  final response_ = await _requester.request(
    url_,
    'GET',
    queryParams: queryParams_,
  );
  return SearchAllResourcesResponse.fromJson(
      response_ as core.Map<core.String, core.dynamic>);
}