create method
- CreateSubscriberPayload request,
- String parent, {
- String? subscriberId,
- String? $fields,
Registers a new subscriber endpoint to receive notifications.
A subscriber represents an application or service that wishes to receive
data change notifications for users who have granted consent. Endpoint
Verification: For a subscriber to be successfully created, the provided
endpoint_uri must be a valid HTTPS endpoint and must pass an automated
verification check. The backend will send two HTTP POST requests to the
endpoint_uri: 1. Verification with Authorization: * Headers:
Includes Content-Type: application/json and Authorization (with the
exact value from CreateSubscriberPayload.endpoint_authorization.secret).
- Body:
{"type": "verification"}* Expected Response: HTTP201 Created. 2. Verification without Authorization: * Headers: IncludesContent-Type: application/json. TheAuthorizationheader is OMITTED. * Body:{"type": "verification"}* Expected Response: HTTP401 Unauthorizedor403 Forbidden. Both tests must pass for the subscriber creation to succeed. If verification fails, the operation will not be completed and an error will be returned. This process ensures the endpoint is reachable and correctly validates theAuthorizationheader.
request - The metadata request object.
Request parameters:
parent - Required. The parent resource where this subscriber will be
created. Format: projects/{project_number} Example: projects/1234567890
Value must have pattern ^projects/\[^/\]+$.
subscriberId - Optional. The ID to use for the subscriber, which will
become the final component of the subscriber's resource name. This value
should be 4-36 characters, and valid characters are
/[a-z]([a-z0-9-]{2,34}[a-z0-9])/.
$fields - Selector specifying which fields to include in a partial
response.
Completes with a Operation.
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<Operation> create(
CreateSubscriberPayload request,
core.String parent, {
core.String? subscriberId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'subscriberId': ?subscriberId == null ? null : [subscriberId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v4/' + core.Uri.encodeFull('$parent') + '/subscribers';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>);
}