com.google.cloud.pubsub.v1.stub.GrpcPublisherStub Maven / Gradle / Ivy
/*
* Copyright 2019 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.cloud.pubsub.v1.stub;
import static com.google.cloud.pubsub.v1.TopicAdminClient.ListTopicSubscriptionsPagedResponse;
import static com.google.cloud.pubsub.v1.TopicAdminClient.ListTopicsPagedResponse;
import com.google.api.core.BetaApi;
import com.google.api.gax.core.BackgroundResource;
import com.google.api.gax.core.BackgroundResourceAggregation;
import com.google.api.gax.grpc.GrpcCallSettings;
import com.google.api.gax.grpc.GrpcStubCallableFactory;
import com.google.api.gax.rpc.ClientContext;
import com.google.api.gax.rpc.RequestParamsExtractor;
import com.google.api.gax.rpc.UnaryCallable;
import com.google.common.collect.ImmutableMap;
import com.google.iam.v1.GetIamPolicyRequest;
import com.google.iam.v1.Policy;
import com.google.iam.v1.SetIamPolicyRequest;
import com.google.iam.v1.TestIamPermissionsRequest;
import com.google.iam.v1.TestIamPermissionsResponse;
import com.google.protobuf.Empty;
import com.google.pubsub.v1.DeleteTopicRequest;
import com.google.pubsub.v1.GetTopicRequest;
import com.google.pubsub.v1.ListTopicSubscriptionsRequest;
import com.google.pubsub.v1.ListTopicSubscriptionsResponse;
import com.google.pubsub.v1.ListTopicsRequest;
import com.google.pubsub.v1.ListTopicsResponse;
import com.google.pubsub.v1.PublishRequest;
import com.google.pubsub.v1.PublishResponse;
import com.google.pubsub.v1.Topic;
import com.google.pubsub.v1.UpdateTopicRequest;
import io.grpc.MethodDescriptor;
import io.grpc.protobuf.ProtoUtils;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.annotation.Generated;
// AUTO-GENERATED DOCUMENTATION AND CLASS
/**
* gRPC stub implementation for Google Cloud Pub/Sub API.
*
* This class is for advanced usage and reflects the underlying API directly.
*/
@Generated("by gapic-generator")
@BetaApi("A restructuring of stub classes is planned, so this may break in the future")
public class GrpcPublisherStub extends PublisherStub {
private static final MethodDescriptor createTopicMethodDescriptor =
MethodDescriptor.newBuilder()
.setType(MethodDescriptor.MethodType.UNARY)
.setFullMethodName("google.pubsub.v1.Publisher/CreateTopic")
.setRequestMarshaller(ProtoUtils.marshaller(Topic.getDefaultInstance()))
.setResponseMarshaller(ProtoUtils.marshaller(Topic.getDefaultInstance()))
.build();
private static final MethodDescriptor updateTopicMethodDescriptor =
MethodDescriptor.newBuilder()
.setType(MethodDescriptor.MethodType.UNARY)
.setFullMethodName("google.pubsub.v1.Publisher/UpdateTopic")
.setRequestMarshaller(ProtoUtils.marshaller(UpdateTopicRequest.getDefaultInstance()))
.setResponseMarshaller(ProtoUtils.marshaller(Topic.getDefaultInstance()))
.build();
private static final MethodDescriptor publishMethodDescriptor =
MethodDescriptor.newBuilder()
.setType(MethodDescriptor.MethodType.UNARY)
.setFullMethodName("google.pubsub.v1.Publisher/Publish")
.setRequestMarshaller(ProtoUtils.marshaller(PublishRequest.getDefaultInstance()))
.setResponseMarshaller(ProtoUtils.marshaller(PublishResponse.getDefaultInstance()))
.build();
private static final MethodDescriptor getTopicMethodDescriptor =
MethodDescriptor.newBuilder()
.setType(MethodDescriptor.MethodType.UNARY)
.setFullMethodName("google.pubsub.v1.Publisher/GetTopic")
.setRequestMarshaller(ProtoUtils.marshaller(GetTopicRequest.getDefaultInstance()))
.setResponseMarshaller(ProtoUtils.marshaller(Topic.getDefaultInstance()))
.build();
private static final MethodDescriptor
listTopicsMethodDescriptor =
MethodDescriptor.newBuilder()
.setType(MethodDescriptor.MethodType.UNARY)
.setFullMethodName("google.pubsub.v1.Publisher/ListTopics")
.setRequestMarshaller(ProtoUtils.marshaller(ListTopicsRequest.getDefaultInstance()))
.setResponseMarshaller(ProtoUtils.marshaller(ListTopicsResponse.getDefaultInstance()))
.build();
private static final MethodDescriptor<
ListTopicSubscriptionsRequest, ListTopicSubscriptionsResponse>
listTopicSubscriptionsMethodDescriptor =
MethodDescriptor
.newBuilder()
.setType(MethodDescriptor.MethodType.UNARY)
.setFullMethodName("google.pubsub.v1.Publisher/ListTopicSubscriptions")
.setRequestMarshaller(
ProtoUtils.marshaller(ListTopicSubscriptionsRequest.getDefaultInstance()))
.setResponseMarshaller(
ProtoUtils.marshaller(ListTopicSubscriptionsResponse.getDefaultInstance()))
.build();
private static final MethodDescriptor deleteTopicMethodDescriptor =
MethodDescriptor.newBuilder()
.setType(MethodDescriptor.MethodType.UNARY)
.setFullMethodName("google.pubsub.v1.Publisher/DeleteTopic")
.setRequestMarshaller(ProtoUtils.marshaller(DeleteTopicRequest.getDefaultInstance()))
.setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance()))
.build();
private static final MethodDescriptor setIamPolicyMethodDescriptor =
MethodDescriptor.newBuilder()
.setType(MethodDescriptor.MethodType.UNARY)
.setFullMethodName("google.iam.v1.IAMPolicy/SetIamPolicy")
.setRequestMarshaller(ProtoUtils.marshaller(SetIamPolicyRequest.getDefaultInstance()))
.setResponseMarshaller(ProtoUtils.marshaller(Policy.getDefaultInstance()))
.build();
private static final MethodDescriptor getIamPolicyMethodDescriptor =
MethodDescriptor.newBuilder()
.setType(MethodDescriptor.MethodType.UNARY)
.setFullMethodName("google.iam.v1.IAMPolicy/GetIamPolicy")
.setRequestMarshaller(ProtoUtils.marshaller(GetIamPolicyRequest.getDefaultInstance()))
.setResponseMarshaller(ProtoUtils.marshaller(Policy.getDefaultInstance()))
.build();
private static final MethodDescriptor
testIamPermissionsMethodDescriptor =
MethodDescriptor.newBuilder()
.setType(MethodDescriptor.MethodType.UNARY)
.setFullMethodName("google.iam.v1.IAMPolicy/TestIamPermissions")
.setRequestMarshaller(
ProtoUtils.marshaller(TestIamPermissionsRequest.getDefaultInstance()))
.setResponseMarshaller(
ProtoUtils.marshaller(TestIamPermissionsResponse.getDefaultInstance()))
.build();
private final BackgroundResource backgroundResources;
private final UnaryCallable createTopicCallable;
private final UnaryCallable updateTopicCallable;
private final UnaryCallable publishCallable;
private final UnaryCallable getTopicCallable;
private final UnaryCallable listTopicsCallable;
private final UnaryCallable listTopicsPagedCallable;
private final UnaryCallable
listTopicSubscriptionsCallable;
private final UnaryCallable
listTopicSubscriptionsPagedCallable;
private final UnaryCallable deleteTopicCallable;
private final UnaryCallable setIamPolicyCallable;
private final UnaryCallable getIamPolicyCallable;
private final UnaryCallable
testIamPermissionsCallable;
private final GrpcStubCallableFactory callableFactory;
public static final GrpcPublisherStub create(PublisherStubSettings settings) throws IOException {
return new GrpcPublisherStub(settings, ClientContext.create(settings));
}
public static final GrpcPublisherStub create(ClientContext clientContext) throws IOException {
return new GrpcPublisherStub(PublisherStubSettings.newBuilder().build(), clientContext);
}
public static final GrpcPublisherStub create(
ClientContext clientContext, GrpcStubCallableFactory callableFactory) throws IOException {
return new GrpcPublisherStub(
PublisherStubSettings.newBuilder().build(), clientContext, callableFactory);
}
/**
* Constructs an instance of GrpcPublisherStub, using the given settings. This is protected so
* that it is easy to make a subclass, but otherwise, the static factory methods should be
* preferred.
*/
protected GrpcPublisherStub(PublisherStubSettings settings, ClientContext clientContext)
throws IOException {
this(settings, clientContext, new GrpcPublisherCallableFactory());
}
/**
* Constructs an instance of GrpcPublisherStub, using the given settings. This is protected so
* that it is easy to make a subclass, but otherwise, the static factory methods should be
* preferred.
*/
protected GrpcPublisherStub(
PublisherStubSettings settings,
ClientContext clientContext,
GrpcStubCallableFactory callableFactory)
throws IOException {
this.callableFactory = callableFactory;
GrpcCallSettings createTopicTransportSettings =
GrpcCallSettings.newBuilder()
.setMethodDescriptor(createTopicMethodDescriptor)
.setParamsExtractor(
new RequestParamsExtractor() {
@Override
public Map extract(Topic request) {
ImmutableMap.Builder params = ImmutableMap.builder();
params.put("name", String.valueOf(request.getName()));
return params.build();
}
})
.build();
GrpcCallSettings updateTopicTransportSettings =
GrpcCallSettings.newBuilder()
.setMethodDescriptor(updateTopicMethodDescriptor)
.setParamsExtractor(
new RequestParamsExtractor() {
@Override
public Map extract(UpdateTopicRequest request) {
ImmutableMap.Builder params = ImmutableMap.builder();
params.put("topic.name", String.valueOf(request.getTopic().getName()));
return params.build();
}
})
.build();
GrpcCallSettings publishTransportSettings =
GrpcCallSettings.newBuilder()
.setMethodDescriptor(publishMethodDescriptor)
.setParamsExtractor(
new RequestParamsExtractor() {
@Override
public Map extract(PublishRequest request) {
ImmutableMap.Builder params = ImmutableMap.builder();
params.put("topic", String.valueOf(request.getTopic()));
return params.build();
}
})
.build();
GrpcCallSettings getTopicTransportSettings =
GrpcCallSettings.newBuilder()
.setMethodDescriptor(getTopicMethodDescriptor)
.setParamsExtractor(
new RequestParamsExtractor() {
@Override
public Map extract(GetTopicRequest request) {
ImmutableMap.Builder params = ImmutableMap.builder();
params.put("topic", String.valueOf(request.getTopic()));
return params.build();
}
})
.build();
GrpcCallSettings listTopicsTransportSettings =
GrpcCallSettings.newBuilder()
.setMethodDescriptor(listTopicsMethodDescriptor)
.setParamsExtractor(
new RequestParamsExtractor() {
@Override
public Map extract(ListTopicsRequest request) {
ImmutableMap.Builder params = ImmutableMap.builder();
params.put("project", String.valueOf(request.getProject()));
return params.build();
}
})
.build();
GrpcCallSettings
listTopicSubscriptionsTransportSettings =
GrpcCallSettings
.newBuilder()
.setMethodDescriptor(listTopicSubscriptionsMethodDescriptor)
.setParamsExtractor(
new RequestParamsExtractor() {
@Override
public Map extract(ListTopicSubscriptionsRequest request) {
ImmutableMap.Builder params = ImmutableMap.builder();
params.put("topic", String.valueOf(request.getTopic()));
return params.build();
}
})
.build();
GrpcCallSettings deleteTopicTransportSettings =
GrpcCallSettings.newBuilder()
.setMethodDescriptor(deleteTopicMethodDescriptor)
.setParamsExtractor(
new RequestParamsExtractor() {
@Override
public Map extract(DeleteTopicRequest request) {
ImmutableMap.Builder params = ImmutableMap.builder();
params.put("topic", String.valueOf(request.getTopic()));
return params.build();
}
})
.build();
GrpcCallSettings setIamPolicyTransportSettings =
GrpcCallSettings.newBuilder()
.setMethodDescriptor(setIamPolicyMethodDescriptor)
.setParamsExtractor(
new RequestParamsExtractor() {
@Override
public Map extract(SetIamPolicyRequest request) {
ImmutableMap.Builder params = ImmutableMap.builder();
params.put("resource", String.valueOf(request.getResource()));
return params.build();
}
})
.build();
GrpcCallSettings getIamPolicyTransportSettings =
GrpcCallSettings.newBuilder()
.setMethodDescriptor(getIamPolicyMethodDescriptor)
.setParamsExtractor(
new RequestParamsExtractor() {
@Override
public Map extract(GetIamPolicyRequest request) {
ImmutableMap.Builder params = ImmutableMap.builder();
params.put("resource", String.valueOf(request.getResource()));
return params.build();
}
})
.build();
GrpcCallSettings
testIamPermissionsTransportSettings =
GrpcCallSettings.newBuilder()
.setMethodDescriptor(testIamPermissionsMethodDescriptor)
.setParamsExtractor(
new RequestParamsExtractor() {
@Override
public Map extract(TestIamPermissionsRequest request) {
ImmutableMap.Builder params = ImmutableMap.builder();
params.put("resource", String.valueOf(request.getResource()));
return params.build();
}
})
.build();
this.createTopicCallable =
callableFactory.createUnaryCallable(
createTopicTransportSettings, settings.createTopicSettings(), clientContext);
this.updateTopicCallable =
callableFactory.createUnaryCallable(
updateTopicTransportSettings, settings.updateTopicSettings(), clientContext);
this.publishCallable =
callableFactory.createBatchingCallable(
publishTransportSettings, settings.publishSettings(), clientContext);
this.getTopicCallable =
callableFactory.createUnaryCallable(
getTopicTransportSettings, settings.getTopicSettings(), clientContext);
this.listTopicsCallable =
callableFactory.createUnaryCallable(
listTopicsTransportSettings, settings.listTopicsSettings(), clientContext);
this.listTopicsPagedCallable =
callableFactory.createPagedCallable(
listTopicsTransportSettings, settings.listTopicsSettings(), clientContext);
this.listTopicSubscriptionsCallable =
callableFactory.createUnaryCallable(
listTopicSubscriptionsTransportSettings,
settings.listTopicSubscriptionsSettings(),
clientContext);
this.listTopicSubscriptionsPagedCallable =
callableFactory.createPagedCallable(
listTopicSubscriptionsTransportSettings,
settings.listTopicSubscriptionsSettings(),
clientContext);
this.deleteTopicCallable =
callableFactory.createUnaryCallable(
deleteTopicTransportSettings, settings.deleteTopicSettings(), clientContext);
this.setIamPolicyCallable =
callableFactory.createUnaryCallable(
setIamPolicyTransportSettings, settings.setIamPolicySettings(), clientContext);
this.getIamPolicyCallable =
callableFactory.createUnaryCallable(
getIamPolicyTransportSettings, settings.getIamPolicySettings(), clientContext);
this.testIamPermissionsCallable =
callableFactory.createUnaryCallable(
testIamPermissionsTransportSettings,
settings.testIamPermissionsSettings(),
clientContext);
backgroundResources = new BackgroundResourceAggregation(clientContext.getBackgroundResources());
}
public UnaryCallable createTopicCallable() {
return createTopicCallable;
}
public UnaryCallable updateTopicCallable() {
return updateTopicCallable;
}
public UnaryCallable publishCallable() {
return publishCallable;
}
public UnaryCallable getTopicCallable() {
return getTopicCallable;
}
public UnaryCallable listTopicsPagedCallable() {
return listTopicsPagedCallable;
}
public UnaryCallable listTopicsCallable() {
return listTopicsCallable;
}
public UnaryCallable
listTopicSubscriptionsPagedCallable() {
return listTopicSubscriptionsPagedCallable;
}
public UnaryCallable
listTopicSubscriptionsCallable() {
return listTopicSubscriptionsCallable;
}
public UnaryCallable deleteTopicCallable() {
return deleteTopicCallable;
}
public UnaryCallable setIamPolicyCallable() {
return setIamPolicyCallable;
}
public UnaryCallable getIamPolicyCallable() {
return getIamPolicyCallable;
}
public UnaryCallable
testIamPermissionsCallable() {
return testIamPermissionsCallable;
}
@Override
public final void close() {
shutdown();
}
@Override
public void shutdown() {
backgroundResources.shutdown();
}
@Override
public boolean isShutdown() {
return backgroundResources.isShutdown();
}
@Override
public boolean isTerminated() {
return backgroundResources.isTerminated();
}
@Override
public void shutdownNow() {
backgroundResources.shutdownNow();
}
@Override
public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
return backgroundResources.awaitTermination(duration, unit);
}
}