list method
Lists memberships in a space.
For an example, see List users and Google Chat apps in a space. Listing memberships with app authentication lists memberships in spaces that the Chat app has access to, but excludes Chat app memberships, including its own. Listing memberships with User authentication lists memberships in spaces that the authenticated user has access to. Supports the following types of authentication:
App authentication
User authentication
You can authenticate and authorize this method with administrator
privileges by setting the use_admin_access
field in the request.
Request parameters:
parent
- Required. The resource name of the space for which to fetch a
membership list. Format: spaces/{space}
Value must have pattern ^spaces/\[^/\]+$
.
filter
- Optional. A query filter. You can filter memberships by a
member's role
([role
](https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members#membershiprole))
and type
([member.type
](https://developers.google.com/workspace/chat/api/reference/rest/v1/User#type)).
To filter by role, set role
to ROLE_MEMBER
or ROLE_MANAGER
. To
filter by type, set member.type
to HUMAN
or BOT
. You can also filter
for member.type
using the !=
operator. To filter by both role and
type, use the AND
operator. To filter by either role or type, use the
OR
operator. Either member.type = "HUMAN"
or member.type != "BOT"
is
required when use_admin_access
is set to true. Other member type filters
will be rejected. For example, the following queries are valid: role = "ROLE_MANAGER" OR role = "ROLE_MEMBER" member.type = "HUMAN" AND role = "ROLE_MANAGER" member.type != "BOT"
The following queries are invalid:
AND role = "ROLE_MEMBER" ``` Invalid queries are rejected by the server
with an `INVALID_ARGUMENT` error.
[pageSize] - Optional. The maximum number of memberships to return. The
service might return fewer than this value. If unspecified, at most 100
memberships are returned. The maximum value is 1000. If you use a value
more than 1000, it's automatically changed to 1000. Negative values return
an `INVALID_ARGUMENT` error.
[pageToken] - Optional. A page token, received from a previous call to
list memberships. Provide this parameter to retrieve the subsequent page.
When paginating, all other parameters provided should match the call that
provided the page token. Passing different values to the other parameters
might lead to unexpected results.
[showGroups] - Optional. When `true`, also returns memberships associated
with a Google Group, in addition to other types of memberships. If a
filter is set, Google Group memberships that don't match the filter
criteria aren't returned.
[showInvited] - Optional. When `true`, also returns memberships associated
with invited members, in addition to other types of memberships. If a
filter is set, invited memberships that don't match the filter criteria
aren't returned. Currently requires
[user authentication](https://developers.google.com/workspace/chat/authenticate-authorize-chat-user).
[useAdminAccess] - Optional. When `true`, the method runs using the user's
Google Workspace administrator privileges. The calling user must be a
Google Workspace administrator with the
[manage chat and spaces conversations privilege](https://support.google.com/a/answer/13369245).
Requires either the `chat.admin.memberships.readonly` or
`chat.admin.memberships`
[OAuth 2.0 scope](https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes).
Listing app memberships in a space isn't supported when using admin
access.
[$fields] - Selector specifying which fields to include in a partial
response.
Completes with a [ListMembershipsResponse].
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<ListMembershipsResponse> list(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.bool? showGroups,
core.bool? showInvited,
core.bool? useAdminAccess,
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 (showGroups != null) 'showGroups': ['${showGroups}'],
if (showInvited != null) 'showInvited': ['${showInvited}'],
if (useAdminAccess != null) 'useAdminAccess': ['${useAdminAccess}'],
if ($fields != null) 'fields': [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/members';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return ListMembershipsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>);
}