create method
Creates a Registration
, causing Classroom to start sending notifications
from the provided feed
to the destination provided in
cloudPubSubTopic
.
Returns the created Registration
. Currently, this will be the same as
the argument, but with server-assigned fields such as expiry_time
and
id
filled in. Note that any value specified for the expiry_time
or
id
fields will be ignored. While Classroom may validate the
cloudPubSubTopic
and return errors on a best effort basis, it is the
caller's responsibility to ensure that it exists and that Classroom has
permission to publish to it. This method may return the following error
codes: * PERMISSION_DENIED
if: * the authenticated user does not have
permission to receive notifications from the requested field; or * the
current user has not granted access to the current Cloud project with the
appropriate scope for the requested feed. Note that domain-wide delegation
of authority is not currently supported for this purpose. If the request
has the appropriate scope, but no grant exists, a Request Errors is
returned. * another access error is encountered. * INVALID_ARGUMENT
if:
- no
cloudPubsubTopic
is specified, or the specifiedcloudPubsubTopic
is not valid; or * nofeed
is specified, or the specifiedfeed
is not valid. *NOT_FOUND
if: * the specifiedfeed
cannot be located, or the requesting user does not have permission to determine whether or not it exists; or * the specifiedcloudPubsubTopic
cannot be located, or Classroom has not been granted permission to publish to it.
request
- The metadata request object.
Request parameters:
$fields
- Selector specifying which fields to include in a partial
response.
Completes with a Registration.
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<Registration> create(
Registration request, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
const url_ = 'v1/registrations';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return Registration.fromJson(
response_ as core.Map<core.String, core.dynamic>);
}