• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.cloud.talent.v4beta1.stub;
18 
19 import static com.google.cloud.talent.v4beta1.TenantServiceClient.ListTenantsPagedResponse;
20 
21 import com.google.api.core.BetaApi;
22 import com.google.api.gax.core.BackgroundResource;
23 import com.google.api.gax.core.BackgroundResourceAggregation;
24 import com.google.api.gax.grpc.GrpcCallSettings;
25 import com.google.api.gax.grpc.GrpcStubCallableFactory;
26 import com.google.api.gax.rpc.ClientContext;
27 import com.google.api.gax.rpc.UnaryCallable;
28 import com.google.cloud.talent.v4beta1.CreateTenantRequest;
29 import com.google.cloud.talent.v4beta1.DeleteTenantRequest;
30 import com.google.cloud.talent.v4beta1.GetTenantRequest;
31 import com.google.cloud.talent.v4beta1.ListTenantsRequest;
32 import com.google.cloud.talent.v4beta1.ListTenantsResponse;
33 import com.google.cloud.talent.v4beta1.Tenant;
34 import com.google.cloud.talent.v4beta1.UpdateTenantRequest;
35 import com.google.common.collect.ImmutableMap;
36 import com.google.longrunning.stub.GrpcOperationsStub;
37 import com.google.protobuf.Empty;
38 import io.grpc.MethodDescriptor;
39 import io.grpc.protobuf.ProtoUtils;
40 import java.io.IOException;
41 import java.util.concurrent.TimeUnit;
42 import javax.annotation.Generated;
43 
44 // AUTO-GENERATED DOCUMENTATION AND CLASS.
45 /**
46  * gRPC stub implementation for the TenantService service API.
47  *
48  * <p>This class is for advanced usage and reflects the underlying API directly.
49  */
50 @BetaApi
51 @Generated("by gapic-generator-java")
52 public class GrpcTenantServiceStub extends TenantServiceStub {
53   private static final MethodDescriptor<CreateTenantRequest, Tenant> createTenantMethodDescriptor =
54       MethodDescriptor.<CreateTenantRequest, Tenant>newBuilder()
55           .setType(MethodDescriptor.MethodType.UNARY)
56           .setFullMethodName("google.cloud.talent.v4beta1.TenantService/CreateTenant")
57           .setRequestMarshaller(ProtoUtils.marshaller(CreateTenantRequest.getDefaultInstance()))
58           .setResponseMarshaller(ProtoUtils.marshaller(Tenant.getDefaultInstance()))
59           .build();
60 
61   private static final MethodDescriptor<GetTenantRequest, Tenant> getTenantMethodDescriptor =
62       MethodDescriptor.<GetTenantRequest, Tenant>newBuilder()
63           .setType(MethodDescriptor.MethodType.UNARY)
64           .setFullMethodName("google.cloud.talent.v4beta1.TenantService/GetTenant")
65           .setRequestMarshaller(ProtoUtils.marshaller(GetTenantRequest.getDefaultInstance()))
66           .setResponseMarshaller(ProtoUtils.marshaller(Tenant.getDefaultInstance()))
67           .build();
68 
69   private static final MethodDescriptor<UpdateTenantRequest, Tenant> updateTenantMethodDescriptor =
70       MethodDescriptor.<UpdateTenantRequest, Tenant>newBuilder()
71           .setType(MethodDescriptor.MethodType.UNARY)
72           .setFullMethodName("google.cloud.talent.v4beta1.TenantService/UpdateTenant")
73           .setRequestMarshaller(ProtoUtils.marshaller(UpdateTenantRequest.getDefaultInstance()))
74           .setResponseMarshaller(ProtoUtils.marshaller(Tenant.getDefaultInstance()))
75           .build();
76 
77   private static final MethodDescriptor<DeleteTenantRequest, Empty> deleteTenantMethodDescriptor =
78       MethodDescriptor.<DeleteTenantRequest, Empty>newBuilder()
79           .setType(MethodDescriptor.MethodType.UNARY)
80           .setFullMethodName("google.cloud.talent.v4beta1.TenantService/DeleteTenant")
81           .setRequestMarshaller(ProtoUtils.marshaller(DeleteTenantRequest.getDefaultInstance()))
82           .setResponseMarshaller(ProtoUtils.marshaller(Empty.getDefaultInstance()))
83           .build();
84 
85   private static final MethodDescriptor<ListTenantsRequest, ListTenantsResponse>
86       listTenantsMethodDescriptor =
87           MethodDescriptor.<ListTenantsRequest, ListTenantsResponse>newBuilder()
88               .setType(MethodDescriptor.MethodType.UNARY)
89               .setFullMethodName("google.cloud.talent.v4beta1.TenantService/ListTenants")
90               .setRequestMarshaller(ProtoUtils.marshaller(ListTenantsRequest.getDefaultInstance()))
91               .setResponseMarshaller(
92                   ProtoUtils.marshaller(ListTenantsResponse.getDefaultInstance()))
93               .build();
94 
95   private final UnaryCallable<CreateTenantRequest, Tenant> createTenantCallable;
96   private final UnaryCallable<GetTenantRequest, Tenant> getTenantCallable;
97   private final UnaryCallable<UpdateTenantRequest, Tenant> updateTenantCallable;
98   private final UnaryCallable<DeleteTenantRequest, Empty> deleteTenantCallable;
99   private final UnaryCallable<ListTenantsRequest, ListTenantsResponse> listTenantsCallable;
100   private final UnaryCallable<ListTenantsRequest, ListTenantsPagedResponse>
101       listTenantsPagedCallable;
102 
103   private final BackgroundResource backgroundResources;
104   private final GrpcOperationsStub operationsStub;
105   private final GrpcStubCallableFactory callableFactory;
106 
create(TenantServiceStubSettings settings)107   public static final GrpcTenantServiceStub create(TenantServiceStubSettings settings)
108       throws IOException {
109     return new GrpcTenantServiceStub(settings, ClientContext.create(settings));
110   }
111 
create(ClientContext clientContext)112   public static final GrpcTenantServiceStub create(ClientContext clientContext) throws IOException {
113     return new GrpcTenantServiceStub(TenantServiceStubSettings.newBuilder().build(), clientContext);
114   }
115 
create( ClientContext clientContext, GrpcStubCallableFactory callableFactory)116   public static final GrpcTenantServiceStub create(
117       ClientContext clientContext, GrpcStubCallableFactory callableFactory) throws IOException {
118     return new GrpcTenantServiceStub(
119         TenantServiceStubSettings.newBuilder().build(), clientContext, callableFactory);
120   }
121 
122   /**
123    * Constructs an instance of GrpcTenantServiceStub, using the given settings. This is protected so
124    * that it is easy to make a subclass, but otherwise, the static factory methods should be
125    * preferred.
126    */
GrpcTenantServiceStub(TenantServiceStubSettings settings, ClientContext clientContext)127   protected GrpcTenantServiceStub(TenantServiceStubSettings settings, ClientContext clientContext)
128       throws IOException {
129     this(settings, clientContext, new GrpcTenantServiceCallableFactory());
130   }
131 
132   /**
133    * Constructs an instance of GrpcTenantServiceStub, using the given settings. This is protected so
134    * that it is easy to make a subclass, but otherwise, the static factory methods should be
135    * preferred.
136    */
GrpcTenantServiceStub( TenantServiceStubSettings settings, ClientContext clientContext, GrpcStubCallableFactory callableFactory)137   protected GrpcTenantServiceStub(
138       TenantServiceStubSettings settings,
139       ClientContext clientContext,
140       GrpcStubCallableFactory callableFactory)
141       throws IOException {
142     this.callableFactory = callableFactory;
143     this.operationsStub = GrpcOperationsStub.create(clientContext, callableFactory);
144 
145     GrpcCallSettings<CreateTenantRequest, Tenant> createTenantTransportSettings =
146         GrpcCallSettings.<CreateTenantRequest, Tenant>newBuilder()
147             .setMethodDescriptor(createTenantMethodDescriptor)
148             .setParamsExtractor(
149                 request -> {
150                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
151                   params.put("parent", String.valueOf(request.getParent()));
152                   return params.build();
153                 })
154             .build();
155     GrpcCallSettings<GetTenantRequest, Tenant> getTenantTransportSettings =
156         GrpcCallSettings.<GetTenantRequest, Tenant>newBuilder()
157             .setMethodDescriptor(getTenantMethodDescriptor)
158             .setParamsExtractor(
159                 request -> {
160                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
161                   params.put("name", String.valueOf(request.getName()));
162                   return params.build();
163                 })
164             .build();
165     GrpcCallSettings<UpdateTenantRequest, Tenant> updateTenantTransportSettings =
166         GrpcCallSettings.<UpdateTenantRequest, Tenant>newBuilder()
167             .setMethodDescriptor(updateTenantMethodDescriptor)
168             .setParamsExtractor(
169                 request -> {
170                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
171                   params.put("tenant.name", String.valueOf(request.getTenant().getName()));
172                   return params.build();
173                 })
174             .build();
175     GrpcCallSettings<DeleteTenantRequest, Empty> deleteTenantTransportSettings =
176         GrpcCallSettings.<DeleteTenantRequest, Empty>newBuilder()
177             .setMethodDescriptor(deleteTenantMethodDescriptor)
178             .setParamsExtractor(
179                 request -> {
180                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
181                   params.put("name", String.valueOf(request.getName()));
182                   return params.build();
183                 })
184             .build();
185     GrpcCallSettings<ListTenantsRequest, ListTenantsResponse> listTenantsTransportSettings =
186         GrpcCallSettings.<ListTenantsRequest, ListTenantsResponse>newBuilder()
187             .setMethodDescriptor(listTenantsMethodDescriptor)
188             .setParamsExtractor(
189                 request -> {
190                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
191                   params.put("parent", String.valueOf(request.getParent()));
192                   return params.build();
193                 })
194             .build();
195 
196     this.createTenantCallable =
197         callableFactory.createUnaryCallable(
198             createTenantTransportSettings, settings.createTenantSettings(), clientContext);
199     this.getTenantCallable =
200         callableFactory.createUnaryCallable(
201             getTenantTransportSettings, settings.getTenantSettings(), clientContext);
202     this.updateTenantCallable =
203         callableFactory.createUnaryCallable(
204             updateTenantTransportSettings, settings.updateTenantSettings(), clientContext);
205     this.deleteTenantCallable =
206         callableFactory.createUnaryCallable(
207             deleteTenantTransportSettings, settings.deleteTenantSettings(), clientContext);
208     this.listTenantsCallable =
209         callableFactory.createUnaryCallable(
210             listTenantsTransportSettings, settings.listTenantsSettings(), clientContext);
211     this.listTenantsPagedCallable =
212         callableFactory.createPagedCallable(
213             listTenantsTransportSettings, settings.listTenantsSettings(), clientContext);
214 
215     this.backgroundResources =
216         new BackgroundResourceAggregation(clientContext.getBackgroundResources());
217   }
218 
getOperationsStub()219   public GrpcOperationsStub getOperationsStub() {
220     return operationsStub;
221   }
222 
223   @Override
createTenantCallable()224   public UnaryCallable<CreateTenantRequest, Tenant> createTenantCallable() {
225     return createTenantCallable;
226   }
227 
228   @Override
getTenantCallable()229   public UnaryCallable<GetTenantRequest, Tenant> getTenantCallable() {
230     return getTenantCallable;
231   }
232 
233   @Override
updateTenantCallable()234   public UnaryCallable<UpdateTenantRequest, Tenant> updateTenantCallable() {
235     return updateTenantCallable;
236   }
237 
238   @Override
deleteTenantCallable()239   public UnaryCallable<DeleteTenantRequest, Empty> deleteTenantCallable() {
240     return deleteTenantCallable;
241   }
242 
243   @Override
listTenantsCallable()244   public UnaryCallable<ListTenantsRequest, ListTenantsResponse> listTenantsCallable() {
245     return listTenantsCallable;
246   }
247 
248   @Override
listTenantsPagedCallable()249   public UnaryCallable<ListTenantsRequest, ListTenantsPagedResponse> listTenantsPagedCallable() {
250     return listTenantsPagedCallable;
251   }
252 
253   @Override
close()254   public final void close() {
255     try {
256       backgroundResources.close();
257     } catch (RuntimeException e) {
258       throw e;
259     } catch (Exception e) {
260       throw new IllegalStateException("Failed to close resource", e);
261     }
262   }
263 
264   @Override
shutdown()265   public void shutdown() {
266     backgroundResources.shutdown();
267   }
268 
269   @Override
isShutdown()270   public boolean isShutdown() {
271     return backgroundResources.isShutdown();
272   }
273 
274   @Override
isTerminated()275   public boolean isTerminated() {
276     return backgroundResources.isTerminated();
277   }
278 
279   @Override
shutdownNow()280   public void shutdownNow() {
281     backgroundResources.shutdownNow();
282   }
283 
284   @Override
awaitTermination(long duration, TimeUnit unit)285   public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
286     return backgroundResources.awaitTermination(duration, unit);
287   }
288 }
289