create method
- Membership request,
- String parent, {
- bool? useAdminAccess,
- String? $fields,
Creates a membership for the calling Chat app, a user, or a Google Group.
Creating memberships for other Chat apps isn't supported. When creating a membership, if the specified member has their auto-accept policy turned off, then they're invited, and must accept the space invitation before joining. Otherwise, creating a membership adds the member directly to the specified space. Supports the following types of authentication:
App authentication
with
administrator approval in
Developer Preview -
User authentication
You can authenticate and authorize this method with administrator
privileges by setting the use_admin_access
field in the request. For
example usage, see: -
Invite or add a user to a space.
Invite or add a Google Group to a space.
request
- The metadata request object.
Request parameters:
parent
- Required. The resource name of the space for which to create
the membership. Format: spaces/{space}
Value must have pattern ^spaces/\[^/\]+$
.
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.
Requires the chat.admin.memberships
OAuth 2.0 scope.
Creating app memberships or creating memberships for users outside the
administrator's Google Workspace organization isn't supported using admin
access.
$fields
- Selector specifying which fields to include in a partial
response.
Completes with a Membership.
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<Membership> create(
Membership request,
core.String parent, {
core.bool? useAdminAccess,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
if (useAdminAccess != null) 'useAdminAccess': ['${useAdminAccess}'],
if ($fields != null) 'fields': [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/members';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return Membership.fromJson(
response_ as core.Map<core.String, core.dynamic>);
}