create method

Future<Membership> create(
  1. Membership request,
  2. String parent, {
  3. bool? useAdminAccess,
  4. 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.

Add the Chat app 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>);
}