create method

Future<Space> create(
  1. Space request, {
  2. String? requestId,
  3. String? $fields,
})

Creates a space.

Can be used to create a named space, or a group chat in Import mode. For an example, see Create a space. Supports the following types of authentication:

App authentication with administrator approval and one of the following authorization scopes: - https://www.googleapis.com/auth/chat.app.spaces.create - https://www.googleapis.com/auth/chat.app.spaces - User authentication with one of the following authorization scopes: - https://www.googleapis.com/auth/chat.spaces.create - https://www.googleapis.com/auth/chat.spaces - https://www.googleapis.com/auth/chat.import (import mode spaces only) When authenticating as an app, the space.customer field must be set in the request. When authenticating as an app, the Chat app is added as a member of the space. However, unlike human authentication, the Chat app is not added as a space manager. By default, the Chat app can be removed from the space by all space members. To allow only space managers to remove the app from a space, set space.permission_settings.manage_apps to managers_allowed. Space membership upon creation depends on whether the space is created in Import mode: * Import mode: No members are created. * All other modes: The calling user is added as a member. This is: * The app itself when using app authentication. * The human user when using user authentication. If you receive the error message ALREADY_EXISTS when creating a space, try a different displayName. An existing space within the Google Workspace organization might already use this display name.

request - The metadata request object.

Request parameters:

requestId - Optional. A unique ID for this request. A random UUID is recommended. Specifying a request ID makes the request idempotent, which ensures that multiple identical requests with the same request ID result in only a single space being created. Subsequent requests with the same request ID return the existing space and do not update the space, even if the requested details differ from the current state. To use this field effectively: - Ensure that subsequent requests are identical and use the same authentication credentials as the original request. - If a space was already created with the provided request ID, the request returns that space. Note that the returned space might not be fully populated; the API echoes the space in your request with the system-assigned resource name populated. To retrieve the latest metadata for the space, call GetSpace.

  • Reusing an existing request ID with a different authenticated user results in an error.

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

Completes with a Space.

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<Space> create(
  Space request, {
  core.String? requestId,
  core.String? $fields,
}) async {
  final body_ = convert.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    'requestId': ?requestId == null ? null : [requestId],
    'fields': ?$fields == null ? null : [$fields],
  };

  const url_ = 'v1/spaces';

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