create method

Future<Operation> create(
  1. CreateSubscriberPayload request,
  2. String parent, {
  3. String? subscriberId,
  4. 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: HTTP 201 Created. 2. Verification without Authorization: * Headers: Includes Content-Type: application/json. The Authorization header is OMITTED. * Body: {"type": "verification"} * Expected Response: HTTP 401 Unauthorized or 403 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 the Authorization header.

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