create method
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>);
}