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
cloudPubsubTopicis specified, or the specifiedcloudPubsubTopicis not valid; or * nofeedis specified, or the specifiedfeedis not valid. *NOT_FOUNDif: * the specifiedfeedcannot be located, or the requesting user does not have permission to determine whether or not it exists; or * the specifiedcloudPubsubTopiccannot 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>);
}