list method
Lists Projects that the caller has the resourcemanager.projects.get
permission on and satisfy the specified filter.
This method returns Projects in an unspecified order. This method is
eventually consistent with project mutations; this means that a newly
created project may not appear in the results or recent updates to an
existing project may not be reflected in the results. To retrieve the
latest state of a project, use the GetProject method. NOTE: If the request
filter contains a parent.type
and parent.id
and the caller has the
resourcemanager.projects.list
permission on the parent, the results will
be drawn from an alternate index which provides more consistent results.
In future versions of this API, this List method will be split into List
and Search to properly capture the behavioral difference.
Request parameters:
filter
- Optional. An expression for filtering the results of the
request. Filter rules are case insensitive. If multiple fields are
included in a filter query, the query will return results that match any
of the fields. Some eligible fields for filtering are: + name
+ id
+
labels.
(where key is the name of a label) + parent.type
+
parent.id
+ lifecycleState
Some examples of filter queries: | Query |
Description |
|------------------|-----------------------------------------------------|
| name:how* | The project's name starts with "how". | | name:Howl | The
project's name is Howl
or howl
. | | name:HOWL | Equivalent to above. |
| NAME:howl | Equivalent to above. | | labels.color:* | The project has
the label color
. | | labels.color:red | The project's label color
has
the value red
. | | labels.color:red labels.size:big | The project's
label color
has the value red
or its label size
has the value big
.
| | lifecycleState:DELETE_REQUESTED | Only show projects that are pending
deletion.| If no filter is specified, the call will return projects for
which the user has the resourcemanager.projects.get
permission. NOTE: To
perform a by-parent query (eg., what projects are directly in a Folder),
the caller must have the resourcemanager.projects.list
permission on the
parent and the filter must contain both a parent.type
and a parent.id
restriction (example: "parent.type:folder parent.id:123"). In this case an
alternate search index is used which provides more consistent results.
pageSize
- Optional. The maximum number of Projects to return in the
response. The server can return fewer Projects than requested. If
unspecified, server picks an appropriate default.
pageToken
- Optional. A pagination token returned from a previous call
to ListProjects that indicates from where listing should continue.
$fields
- Selector specifying which fields to include in a partial
response.
Completes with a ListProjectsResponse.
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<ListProjectsResponse> list({
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
if (filter != null) 'filter': [filter],
if (pageSize != null) 'pageSize': ['${pageSize}'],
if (pageToken != null) 'pageToken': [pageToken],
if ($fields != null) 'fields': [$fields],
};
const url_ = 'v1/projects';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return ListProjectsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>);
}