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