Class DataSubscriptionServiceGrpc.DataSubscriptionServiceStub (0.2.0)

public static final class DataSubscriptionServiceGrpc.DataSubscriptionServiceStub extends AbstractAsyncStub<DataSubscriptionServiceGrpc.DataSubscriptionServiceStub>

A stub to allow clients to do asynchronous rpc calls to service DataSubscriptionService.

Data Subscription Service that allows clients (e.g., Fitbit 3P applications, internal Fitbit Services) to manage their subscriber endpoints. This service provides CRUD APIs for subscribers, and also offers functionalities for subscriber verification and statistics.

Inheritance

java.lang.Object > io.grpc.stub.AbstractStub > io.grpc.stub.AbstractAsyncStub > DataSubscriptionServiceGrpc.DataSubscriptionServiceStub

Methods

build(Channel channel, CallOptions callOptions)

protected DataSubscriptionServiceGrpc.DataSubscriptionServiceStub build(Channel channel, CallOptions callOptions)
Parameters
Name Description
channel io.grpc.Channel
callOptions io.grpc.CallOptions
Returns
Type Description
DataSubscriptionServiceGrpc.DataSubscriptionServiceStub
Overrides
io.grpc.stub.AbstractStub.build(io.grpc.Channel,io.grpc.CallOptions)

createSubscriber(CreateSubscriberRequest request, StreamObserver<Operation> responseObserver)

public void createSubscriber(CreateSubscriberRequest request, StreamObserver<Operation> responseObserver)

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.
Parameters
Name Description
request CreateSubscriberRequest
responseObserver io.grpc.stub.StreamObserver<Operation>

createSubscription(CreateSubscriptionRequest request, StreamObserver<Subscription> responseObserver)

public void createSubscription(CreateSubscriptionRequest request, StreamObserver<Subscription> responseObserver)

Creates a subscription for a specific user to a specific subscriber. This method requires the subscriber to have a SubscriptionCreatePolicy set to MANUAL for the given data types.

Parameters
Name Description
request CreateSubscriptionRequest
responseObserver io.grpc.stub.StreamObserver<Subscription>

deleteSubscriber(DeleteSubscriberRequest request, StreamObserver<Operation> responseObserver)

public void deleteSubscriber(DeleteSubscriberRequest request, StreamObserver<Operation> responseObserver)

Deletes a subscriber registration. This will stop all notifications to the subscriber's endpoint.

Parameters
Name Description
request DeleteSubscriberRequest
responseObserver io.grpc.stub.StreamObserver<Operation>

deleteSubscription(DeleteSubscriptionRequest request, StreamObserver<Empty> responseObserver)

public void deleteSubscription(DeleteSubscriptionRequest request, StreamObserver<Empty> responseObserver)

Deletes a specific user subscription, stopping notifications for this user to this subscriber.

Parameters
Name Description
request DeleteSubscriptionRequest
responseObserver io.grpc.stub.StreamObserver<Empty>

listSubscribers(ListSubscribersRequest request, StreamObserver<ListSubscribersResponse> responseObserver)

public void listSubscribers(ListSubscribersRequest request, StreamObserver<ListSubscribersResponse> responseObserver)

Lists all subscribers registered within the owned Google Cloud Project.

Parameters
Name Description
request ListSubscribersRequest
responseObserver io.grpc.stub.StreamObserver<ListSubscribersResponse>

listSubscriptions(ListSubscriptionsRequest request, StreamObserver<ListSubscriptionsResponse> responseObserver)

public void listSubscriptions(ListSubscriptionsRequest request, StreamObserver<ListSubscriptionsResponse> responseObserver)

Lists all active subscriptions for a given subscriber. This can be filtered, for example, by user or data type.

Parameters
Name Description
request ListSubscriptionsRequest
responseObserver io.grpc.stub.StreamObserver<ListSubscriptionsResponse>

updateSubscriber(UpdateSubscriberRequest request, StreamObserver<Operation> responseObserver)

public void updateSubscriber(UpdateSubscriberRequest request, StreamObserver<Operation> responseObserver)

Updates the configuration of an existing subscriber, such as the endpoint URI or the data types it's interested in. Endpoint Verification: If the endpoint_uri or endpoint_authorization field is included in the update_mask, the backend will re-verify the endpoint. The verification process is the same as described in CreateSubscriber:

  1. Verification with Authorization: POST to the new or existing endpoint_uri with the new or existing Authorization secret. Expects HTTP 201 Created.
  2. Verification without Authorization: POST to the endpoint_uri without the Authorization header. Expects HTTP 401 Unauthorized or 403 Forbidden. Both tests must pass using the potentially updated values for the subscriber update to succeed. If verification fails, the update will not be applied, and an error will be returned.
Parameters
Name Description
request UpdateSubscriberRequest
responseObserver io.grpc.stub.StreamObserver<Operation>

updateSubscription(UpdateSubscriptionRequest request, StreamObserver<Subscription> responseObserver)

public void updateSubscription(UpdateSubscriptionRequest request, StreamObserver<Subscription> responseObserver)

Updates the data types for an existing user subscription.

Parameters
Name Description
request UpdateSubscriptionRequest
responseObserver io.grpc.stub.StreamObserver<Subscription>