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.tasks.v2beta2.stub; 18 19 import static com.google.cloud.tasks.v2beta2.CloudTasksClient.ListQueuesPagedResponse; 20 import static com.google.cloud.tasks.v2beta2.CloudTasksClient.ListTasksPagedResponse; 21 22 import com.google.api.core.ApiFunction; 23 import com.google.api.core.ApiFuture; 24 import com.google.api.core.BetaApi; 25 import com.google.api.gax.core.GaxProperties; 26 import com.google.api.gax.core.GoogleCredentialsProvider; 27 import com.google.api.gax.core.InstantiatingExecutorProvider; 28 import com.google.api.gax.grpc.GaxGrpcProperties; 29 import com.google.api.gax.grpc.GrpcTransportChannel; 30 import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; 31 import com.google.api.gax.httpjson.GaxHttpJsonProperties; 32 import com.google.api.gax.httpjson.HttpJsonTransportChannel; 33 import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; 34 import com.google.api.gax.retrying.RetrySettings; 35 import com.google.api.gax.rpc.ApiCallContext; 36 import com.google.api.gax.rpc.ApiClientHeaderProvider; 37 import com.google.api.gax.rpc.ClientContext; 38 import com.google.api.gax.rpc.PageContext; 39 import com.google.api.gax.rpc.PagedCallSettings; 40 import com.google.api.gax.rpc.PagedListDescriptor; 41 import com.google.api.gax.rpc.PagedListResponseFactory; 42 import com.google.api.gax.rpc.StatusCode; 43 import com.google.api.gax.rpc.StubSettings; 44 import com.google.api.gax.rpc.TransportChannelProvider; 45 import com.google.api.gax.rpc.UnaryCallSettings; 46 import com.google.api.gax.rpc.UnaryCallable; 47 import com.google.cloud.tasks.v2beta2.AcknowledgeTaskRequest; 48 import com.google.cloud.tasks.v2beta2.CancelLeaseRequest; 49 import com.google.cloud.tasks.v2beta2.CreateQueueRequest; 50 import com.google.cloud.tasks.v2beta2.CreateTaskRequest; 51 import com.google.cloud.tasks.v2beta2.DeleteQueueRequest; 52 import com.google.cloud.tasks.v2beta2.DeleteTaskRequest; 53 import com.google.cloud.tasks.v2beta2.GetQueueRequest; 54 import com.google.cloud.tasks.v2beta2.GetTaskRequest; 55 import com.google.cloud.tasks.v2beta2.LeaseTasksRequest; 56 import com.google.cloud.tasks.v2beta2.LeaseTasksResponse; 57 import com.google.cloud.tasks.v2beta2.ListQueuesRequest; 58 import com.google.cloud.tasks.v2beta2.ListQueuesResponse; 59 import com.google.cloud.tasks.v2beta2.ListTasksRequest; 60 import com.google.cloud.tasks.v2beta2.ListTasksResponse; 61 import com.google.cloud.tasks.v2beta2.PauseQueueRequest; 62 import com.google.cloud.tasks.v2beta2.PurgeQueueRequest; 63 import com.google.cloud.tasks.v2beta2.Queue; 64 import com.google.cloud.tasks.v2beta2.RenewLeaseRequest; 65 import com.google.cloud.tasks.v2beta2.ResumeQueueRequest; 66 import com.google.cloud.tasks.v2beta2.RunTaskRequest; 67 import com.google.cloud.tasks.v2beta2.Task; 68 import com.google.cloud.tasks.v2beta2.UpdateQueueRequest; 69 import com.google.common.collect.ImmutableList; 70 import com.google.common.collect.ImmutableMap; 71 import com.google.common.collect.ImmutableSet; 72 import com.google.common.collect.Lists; 73 import com.google.iam.v1.GetIamPolicyRequest; 74 import com.google.iam.v1.Policy; 75 import com.google.iam.v1.SetIamPolicyRequest; 76 import com.google.iam.v1.TestIamPermissionsRequest; 77 import com.google.iam.v1.TestIamPermissionsResponse; 78 import com.google.protobuf.Empty; 79 import java.io.IOException; 80 import java.util.List; 81 import javax.annotation.Generated; 82 import org.threeten.bp.Duration; 83 84 // AUTO-GENERATED DOCUMENTATION AND CLASS. 85 /** 86 * Settings class to configure an instance of {@link CloudTasksStub}. 87 * 88 * <p>The default instance has everything set to sensible defaults: 89 * 90 * <ul> 91 * <li>The default service address (cloudtasks.googleapis.com) and default port (443) are used. 92 * <li>Credentials are acquired automatically through Application Default Credentials. 93 * <li>Retries are configured for idempotent methods but not for non-idempotent methods. 94 * </ul> 95 * 96 * <p>The builder of this class is recursive, so contained classes are themselves builders. When 97 * build() is called, the tree of builders is called to create the complete settings object. 98 * 99 * <p>For example, to set the total timeout of getQueue to 30 seconds: 100 * 101 * <pre>{@code 102 * // This snippet has been automatically generated and should be regarded as a code template only. 103 * // It will require modifications to work: 104 * // - It may require correct/in-range values for request initialization. 105 * // - It may require specifying regional endpoints when creating the service client as shown in 106 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 107 * CloudTasksStubSettings.Builder cloudTasksSettingsBuilder = CloudTasksStubSettings.newBuilder(); 108 * cloudTasksSettingsBuilder 109 * .getQueueSettings() 110 * .setRetrySettings( 111 * cloudTasksSettingsBuilder 112 * .getQueueSettings() 113 * .getRetrySettings() 114 * .toBuilder() 115 * .setTotalTimeout(Duration.ofSeconds(30)) 116 * .build()); 117 * CloudTasksStubSettings cloudTasksSettings = cloudTasksSettingsBuilder.build(); 118 * }</pre> 119 */ 120 @BetaApi 121 @Generated("by gapic-generator-java") 122 public class CloudTasksStubSettings extends StubSettings<CloudTasksStubSettings> { 123 /** The default scopes of the service. */ 124 private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES = 125 ImmutableList.<String>builder().add("https://www.googleapis.com/auth/cloud-platform").build(); 126 127 private final PagedCallSettings<ListQueuesRequest, ListQueuesResponse, ListQueuesPagedResponse> 128 listQueuesSettings; 129 private final UnaryCallSettings<GetQueueRequest, Queue> getQueueSettings; 130 private final UnaryCallSettings<CreateQueueRequest, Queue> createQueueSettings; 131 private final UnaryCallSettings<UpdateQueueRequest, Queue> updateQueueSettings; 132 private final UnaryCallSettings<DeleteQueueRequest, Empty> deleteQueueSettings; 133 private final UnaryCallSettings<PurgeQueueRequest, Queue> purgeQueueSettings; 134 private final UnaryCallSettings<PauseQueueRequest, Queue> pauseQueueSettings; 135 private final UnaryCallSettings<ResumeQueueRequest, Queue> resumeQueueSettings; 136 private final UnaryCallSettings<GetIamPolicyRequest, Policy> getIamPolicySettings; 137 private final UnaryCallSettings<SetIamPolicyRequest, Policy> setIamPolicySettings; 138 private final UnaryCallSettings<TestIamPermissionsRequest, TestIamPermissionsResponse> 139 testIamPermissionsSettings; 140 private final PagedCallSettings<ListTasksRequest, ListTasksResponse, ListTasksPagedResponse> 141 listTasksSettings; 142 private final UnaryCallSettings<GetTaskRequest, Task> getTaskSettings; 143 private final UnaryCallSettings<CreateTaskRequest, Task> createTaskSettings; 144 private final UnaryCallSettings<DeleteTaskRequest, Empty> deleteTaskSettings; 145 private final UnaryCallSettings<LeaseTasksRequest, LeaseTasksResponse> leaseTasksSettings; 146 private final UnaryCallSettings<AcknowledgeTaskRequest, Empty> acknowledgeTaskSettings; 147 private final UnaryCallSettings<RenewLeaseRequest, Task> renewLeaseSettings; 148 private final UnaryCallSettings<CancelLeaseRequest, Task> cancelLeaseSettings; 149 private final UnaryCallSettings<RunTaskRequest, Task> runTaskSettings; 150 151 private static final PagedListDescriptor<ListQueuesRequest, ListQueuesResponse, Queue> 152 LIST_QUEUES_PAGE_STR_DESC = 153 new PagedListDescriptor<ListQueuesRequest, ListQueuesResponse, Queue>() { 154 @Override 155 public String emptyToken() { 156 return ""; 157 } 158 159 @Override 160 public ListQueuesRequest injectToken(ListQueuesRequest payload, String token) { 161 return ListQueuesRequest.newBuilder(payload).setPageToken(token).build(); 162 } 163 164 @Override 165 public ListQueuesRequest injectPageSize(ListQueuesRequest payload, int pageSize) { 166 return ListQueuesRequest.newBuilder(payload).setPageSize(pageSize).build(); 167 } 168 169 @Override 170 public Integer extractPageSize(ListQueuesRequest payload) { 171 return payload.getPageSize(); 172 } 173 174 @Override 175 public String extractNextToken(ListQueuesResponse payload) { 176 return payload.getNextPageToken(); 177 } 178 179 @Override 180 public Iterable<Queue> extractResources(ListQueuesResponse payload) { 181 return payload.getQueuesList() == null 182 ? ImmutableList.<Queue>of() 183 : payload.getQueuesList(); 184 } 185 }; 186 187 private static final PagedListDescriptor<ListTasksRequest, ListTasksResponse, Task> 188 LIST_TASKS_PAGE_STR_DESC = 189 new PagedListDescriptor<ListTasksRequest, ListTasksResponse, Task>() { 190 @Override 191 public String emptyToken() { 192 return ""; 193 } 194 195 @Override 196 public ListTasksRequest injectToken(ListTasksRequest payload, String token) { 197 return ListTasksRequest.newBuilder(payload).setPageToken(token).build(); 198 } 199 200 @Override 201 public ListTasksRequest injectPageSize(ListTasksRequest payload, int pageSize) { 202 return ListTasksRequest.newBuilder(payload).setPageSize(pageSize).build(); 203 } 204 205 @Override 206 public Integer extractPageSize(ListTasksRequest payload) { 207 return payload.getPageSize(); 208 } 209 210 @Override 211 public String extractNextToken(ListTasksResponse payload) { 212 return payload.getNextPageToken(); 213 } 214 215 @Override 216 public Iterable<Task> extractResources(ListTasksResponse payload) { 217 return payload.getTasksList() == null 218 ? ImmutableList.<Task>of() 219 : payload.getTasksList(); 220 } 221 }; 222 223 private static final PagedListResponseFactory< 224 ListQueuesRequest, ListQueuesResponse, ListQueuesPagedResponse> 225 LIST_QUEUES_PAGE_STR_FACT = 226 new PagedListResponseFactory< 227 ListQueuesRequest, ListQueuesResponse, ListQueuesPagedResponse>() { 228 @Override 229 public ApiFuture<ListQueuesPagedResponse> getFuturePagedResponse( 230 UnaryCallable<ListQueuesRequest, ListQueuesResponse> callable, 231 ListQueuesRequest request, 232 ApiCallContext context, 233 ApiFuture<ListQueuesResponse> futureResponse) { 234 PageContext<ListQueuesRequest, ListQueuesResponse, Queue> pageContext = 235 PageContext.create(callable, LIST_QUEUES_PAGE_STR_DESC, request, context); 236 return ListQueuesPagedResponse.createAsync(pageContext, futureResponse); 237 } 238 }; 239 240 private static final PagedListResponseFactory< 241 ListTasksRequest, ListTasksResponse, ListTasksPagedResponse> 242 LIST_TASKS_PAGE_STR_FACT = 243 new PagedListResponseFactory< 244 ListTasksRequest, ListTasksResponse, ListTasksPagedResponse>() { 245 @Override 246 public ApiFuture<ListTasksPagedResponse> getFuturePagedResponse( 247 UnaryCallable<ListTasksRequest, ListTasksResponse> callable, 248 ListTasksRequest request, 249 ApiCallContext context, 250 ApiFuture<ListTasksResponse> futureResponse) { 251 PageContext<ListTasksRequest, ListTasksResponse, Task> pageContext = 252 PageContext.create(callable, LIST_TASKS_PAGE_STR_DESC, request, context); 253 return ListTasksPagedResponse.createAsync(pageContext, futureResponse); 254 } 255 }; 256 257 /** Returns the object with the settings used for calls to listQueues. */ 258 public PagedCallSettings<ListQueuesRequest, ListQueuesResponse, ListQueuesPagedResponse> listQueuesSettings()259 listQueuesSettings() { 260 return listQueuesSettings; 261 } 262 263 /** Returns the object with the settings used for calls to getQueue. */ getQueueSettings()264 public UnaryCallSettings<GetQueueRequest, Queue> getQueueSettings() { 265 return getQueueSettings; 266 } 267 268 /** Returns the object with the settings used for calls to createQueue. */ createQueueSettings()269 public UnaryCallSettings<CreateQueueRequest, Queue> createQueueSettings() { 270 return createQueueSettings; 271 } 272 273 /** Returns the object with the settings used for calls to updateQueue. */ updateQueueSettings()274 public UnaryCallSettings<UpdateQueueRequest, Queue> updateQueueSettings() { 275 return updateQueueSettings; 276 } 277 278 /** Returns the object with the settings used for calls to deleteQueue. */ deleteQueueSettings()279 public UnaryCallSettings<DeleteQueueRequest, Empty> deleteQueueSettings() { 280 return deleteQueueSettings; 281 } 282 283 /** Returns the object with the settings used for calls to purgeQueue. */ purgeQueueSettings()284 public UnaryCallSettings<PurgeQueueRequest, Queue> purgeQueueSettings() { 285 return purgeQueueSettings; 286 } 287 288 /** Returns the object with the settings used for calls to pauseQueue. */ pauseQueueSettings()289 public UnaryCallSettings<PauseQueueRequest, Queue> pauseQueueSettings() { 290 return pauseQueueSettings; 291 } 292 293 /** Returns the object with the settings used for calls to resumeQueue. */ resumeQueueSettings()294 public UnaryCallSettings<ResumeQueueRequest, Queue> resumeQueueSettings() { 295 return resumeQueueSettings; 296 } 297 298 /** Returns the object with the settings used for calls to getIamPolicy. */ getIamPolicySettings()299 public UnaryCallSettings<GetIamPolicyRequest, Policy> getIamPolicySettings() { 300 return getIamPolicySettings; 301 } 302 303 /** Returns the object with the settings used for calls to setIamPolicy. */ setIamPolicySettings()304 public UnaryCallSettings<SetIamPolicyRequest, Policy> setIamPolicySettings() { 305 return setIamPolicySettings; 306 } 307 308 /** Returns the object with the settings used for calls to testIamPermissions. */ 309 public UnaryCallSettings<TestIamPermissionsRequest, TestIamPermissionsResponse> testIamPermissionsSettings()310 testIamPermissionsSettings() { 311 return testIamPermissionsSettings; 312 } 313 314 /** Returns the object with the settings used for calls to listTasks. */ 315 public PagedCallSettings<ListTasksRequest, ListTasksResponse, ListTasksPagedResponse> listTasksSettings()316 listTasksSettings() { 317 return listTasksSettings; 318 } 319 320 /** Returns the object with the settings used for calls to getTask. */ getTaskSettings()321 public UnaryCallSettings<GetTaskRequest, Task> getTaskSettings() { 322 return getTaskSettings; 323 } 324 325 /** Returns the object with the settings used for calls to createTask. */ createTaskSettings()326 public UnaryCallSettings<CreateTaskRequest, Task> createTaskSettings() { 327 return createTaskSettings; 328 } 329 330 /** Returns the object with the settings used for calls to deleteTask. */ deleteTaskSettings()331 public UnaryCallSettings<DeleteTaskRequest, Empty> deleteTaskSettings() { 332 return deleteTaskSettings; 333 } 334 335 /** Returns the object with the settings used for calls to leaseTasks. */ leaseTasksSettings()336 public UnaryCallSettings<LeaseTasksRequest, LeaseTasksResponse> leaseTasksSettings() { 337 return leaseTasksSettings; 338 } 339 340 /** Returns the object with the settings used for calls to acknowledgeTask. */ acknowledgeTaskSettings()341 public UnaryCallSettings<AcknowledgeTaskRequest, Empty> acknowledgeTaskSettings() { 342 return acknowledgeTaskSettings; 343 } 344 345 /** Returns the object with the settings used for calls to renewLease. */ renewLeaseSettings()346 public UnaryCallSettings<RenewLeaseRequest, Task> renewLeaseSettings() { 347 return renewLeaseSettings; 348 } 349 350 /** Returns the object with the settings used for calls to cancelLease. */ cancelLeaseSettings()351 public UnaryCallSettings<CancelLeaseRequest, Task> cancelLeaseSettings() { 352 return cancelLeaseSettings; 353 } 354 355 /** Returns the object with the settings used for calls to runTask. */ runTaskSettings()356 public UnaryCallSettings<RunTaskRequest, Task> runTaskSettings() { 357 return runTaskSettings; 358 } 359 createStub()360 public CloudTasksStub createStub() throws IOException { 361 if (getTransportChannelProvider() 362 .getTransportName() 363 .equals(GrpcTransportChannel.getGrpcTransportName())) { 364 return GrpcCloudTasksStub.create(this); 365 } 366 if (getTransportChannelProvider() 367 .getTransportName() 368 .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) { 369 return HttpJsonCloudTasksStub.create(this); 370 } 371 throw new UnsupportedOperationException( 372 String.format( 373 "Transport not supported: %s", getTransportChannelProvider().getTransportName())); 374 } 375 376 /** Returns a builder for the default ExecutorProvider for this service. */ defaultExecutorProviderBuilder()377 public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { 378 return InstantiatingExecutorProvider.newBuilder(); 379 } 380 381 /** Returns the default service endpoint. */ getDefaultEndpoint()382 public static String getDefaultEndpoint() { 383 return "cloudtasks.googleapis.com:443"; 384 } 385 386 /** Returns the default mTLS service endpoint. */ getDefaultMtlsEndpoint()387 public static String getDefaultMtlsEndpoint() { 388 return "cloudtasks.mtls.googleapis.com:443"; 389 } 390 391 /** Returns the default service scopes. */ getDefaultServiceScopes()392 public static List<String> getDefaultServiceScopes() { 393 return DEFAULT_SERVICE_SCOPES; 394 } 395 396 /** Returns a builder for the default credentials for this service. */ defaultCredentialsProviderBuilder()397 public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { 398 return GoogleCredentialsProvider.newBuilder() 399 .setScopesToApply(DEFAULT_SERVICE_SCOPES) 400 .setUseJwtAccessWithScope(true); 401 } 402 403 /** Returns a builder for the default gRPC ChannelProvider for this service. */ defaultGrpcTransportProviderBuilder()404 public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { 405 return InstantiatingGrpcChannelProvider.newBuilder() 406 .setMaxInboundMessageSize(Integer.MAX_VALUE); 407 } 408 409 /** Returns a builder for the default REST ChannelProvider for this service. */ 410 @BetaApi 411 public static InstantiatingHttpJsonChannelProvider.Builder defaultHttpJsonTransportProviderBuilder()412 defaultHttpJsonTransportProviderBuilder() { 413 return InstantiatingHttpJsonChannelProvider.newBuilder(); 414 } 415 defaultTransportChannelProvider()416 public static TransportChannelProvider defaultTransportChannelProvider() { 417 return defaultGrpcTransportProviderBuilder().build(); 418 } 419 420 @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") defaultGrpcApiClientHeaderProviderBuilder()421 public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() { 422 return ApiClientHeaderProvider.newBuilder() 423 .setGeneratedLibToken( 424 "gapic", GaxProperties.getLibraryVersion(CloudTasksStubSettings.class)) 425 .setTransportToken( 426 GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion()); 427 } 428 429 @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") defaultHttpJsonApiClientHeaderProviderBuilder()430 public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() { 431 return ApiClientHeaderProvider.newBuilder() 432 .setGeneratedLibToken( 433 "gapic", GaxProperties.getLibraryVersion(CloudTasksStubSettings.class)) 434 .setTransportToken( 435 GaxHttpJsonProperties.getHttpJsonTokenName(), 436 GaxHttpJsonProperties.getHttpJsonVersion()); 437 } 438 defaultApiClientHeaderProviderBuilder()439 public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { 440 return CloudTasksStubSettings.defaultGrpcApiClientHeaderProviderBuilder(); 441 } 442 443 /** Returns a new gRPC builder for this class. */ newBuilder()444 public static Builder newBuilder() { 445 return Builder.createDefault(); 446 } 447 448 /** Returns a new REST builder for this class. */ newHttpJsonBuilder()449 public static Builder newHttpJsonBuilder() { 450 return Builder.createHttpJsonDefault(); 451 } 452 453 /** Returns a new builder for this class. */ newBuilder(ClientContext clientContext)454 public static Builder newBuilder(ClientContext clientContext) { 455 return new Builder(clientContext); 456 } 457 458 /** Returns a builder containing all the values of this settings class. */ toBuilder()459 public Builder toBuilder() { 460 return new Builder(this); 461 } 462 CloudTasksStubSettings(Builder settingsBuilder)463 protected CloudTasksStubSettings(Builder settingsBuilder) throws IOException { 464 super(settingsBuilder); 465 466 listQueuesSettings = settingsBuilder.listQueuesSettings().build(); 467 getQueueSettings = settingsBuilder.getQueueSettings().build(); 468 createQueueSettings = settingsBuilder.createQueueSettings().build(); 469 updateQueueSettings = settingsBuilder.updateQueueSettings().build(); 470 deleteQueueSettings = settingsBuilder.deleteQueueSettings().build(); 471 purgeQueueSettings = settingsBuilder.purgeQueueSettings().build(); 472 pauseQueueSettings = settingsBuilder.pauseQueueSettings().build(); 473 resumeQueueSettings = settingsBuilder.resumeQueueSettings().build(); 474 getIamPolicySettings = settingsBuilder.getIamPolicySettings().build(); 475 setIamPolicySettings = settingsBuilder.setIamPolicySettings().build(); 476 testIamPermissionsSettings = settingsBuilder.testIamPermissionsSettings().build(); 477 listTasksSettings = settingsBuilder.listTasksSettings().build(); 478 getTaskSettings = settingsBuilder.getTaskSettings().build(); 479 createTaskSettings = settingsBuilder.createTaskSettings().build(); 480 deleteTaskSettings = settingsBuilder.deleteTaskSettings().build(); 481 leaseTasksSettings = settingsBuilder.leaseTasksSettings().build(); 482 acknowledgeTaskSettings = settingsBuilder.acknowledgeTaskSettings().build(); 483 renewLeaseSettings = settingsBuilder.renewLeaseSettings().build(); 484 cancelLeaseSettings = settingsBuilder.cancelLeaseSettings().build(); 485 runTaskSettings = settingsBuilder.runTaskSettings().build(); 486 } 487 488 /** Builder for CloudTasksStubSettings. */ 489 public static class Builder extends StubSettings.Builder<CloudTasksStubSettings, Builder> { 490 private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders; 491 private final PagedCallSettings.Builder< 492 ListQueuesRequest, ListQueuesResponse, ListQueuesPagedResponse> 493 listQueuesSettings; 494 private final UnaryCallSettings.Builder<GetQueueRequest, Queue> getQueueSettings; 495 private final UnaryCallSettings.Builder<CreateQueueRequest, Queue> createQueueSettings; 496 private final UnaryCallSettings.Builder<UpdateQueueRequest, Queue> updateQueueSettings; 497 private final UnaryCallSettings.Builder<DeleteQueueRequest, Empty> deleteQueueSettings; 498 private final UnaryCallSettings.Builder<PurgeQueueRequest, Queue> purgeQueueSettings; 499 private final UnaryCallSettings.Builder<PauseQueueRequest, Queue> pauseQueueSettings; 500 private final UnaryCallSettings.Builder<ResumeQueueRequest, Queue> resumeQueueSettings; 501 private final UnaryCallSettings.Builder<GetIamPolicyRequest, Policy> getIamPolicySettings; 502 private final UnaryCallSettings.Builder<SetIamPolicyRequest, Policy> setIamPolicySettings; 503 private final UnaryCallSettings.Builder<TestIamPermissionsRequest, TestIamPermissionsResponse> 504 testIamPermissionsSettings; 505 private final PagedCallSettings.Builder< 506 ListTasksRequest, ListTasksResponse, ListTasksPagedResponse> 507 listTasksSettings; 508 private final UnaryCallSettings.Builder<GetTaskRequest, Task> getTaskSettings; 509 private final UnaryCallSettings.Builder<CreateTaskRequest, Task> createTaskSettings; 510 private final UnaryCallSettings.Builder<DeleteTaskRequest, Empty> deleteTaskSettings; 511 private final UnaryCallSettings.Builder<LeaseTasksRequest, LeaseTasksResponse> 512 leaseTasksSettings; 513 private final UnaryCallSettings.Builder<AcknowledgeTaskRequest, Empty> acknowledgeTaskSettings; 514 private final UnaryCallSettings.Builder<RenewLeaseRequest, Task> renewLeaseSettings; 515 private final UnaryCallSettings.Builder<CancelLeaseRequest, Task> cancelLeaseSettings; 516 private final UnaryCallSettings.Builder<RunTaskRequest, Task> runTaskSettings; 517 private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>> 518 RETRYABLE_CODE_DEFINITIONS; 519 520 static { 521 ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions = 522 ImmutableMap.builder(); 523 definitions.put( 524 "retry_policy_0_codes", 525 ImmutableSet.copyOf( 526 Lists.<StatusCode.Code>newArrayList( 527 StatusCode.Code.UNAVAILABLE, StatusCode.Code.DEADLINE_EXCEEDED))); 528 definitions.put( 529 "no_retry_1_codes", ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList())); 530 RETRYABLE_CODE_DEFINITIONS = definitions.build(); 531 } 532 533 private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS; 534 535 static { 536 ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder(); 537 RetrySettings settings = null; 538 settings = 539 RetrySettings.newBuilder() 540 .setInitialRetryDelay(Duration.ofMillis(100L)) 541 .setRetryDelayMultiplier(1.3) 542 .setMaxRetryDelay(Duration.ofMillis(10000L)) 543 .setInitialRpcTimeout(Duration.ofMillis(20000L)) 544 .setRpcTimeoutMultiplier(1.0) 545 .setMaxRpcTimeout(Duration.ofMillis(20000L)) 546 .setTotalTimeout(Duration.ofMillis(20000L)) 547 .build(); 548 definitions.put("retry_policy_0_params", settings); 549 settings = 550 RetrySettings.newBuilder() 551 .setInitialRpcTimeout(Duration.ofMillis(20000L)) 552 .setRpcTimeoutMultiplier(1.0) 553 .setMaxRpcTimeout(Duration.ofMillis(20000L)) 554 .setTotalTimeout(Duration.ofMillis(20000L)) 555 .build(); 556 definitions.put("no_retry_1_params", settings); 557 RETRY_PARAM_DEFINITIONS = definitions.build(); 558 } 559 Builder()560 protected Builder() { 561 this(((ClientContext) null)); 562 } 563 Builder(ClientContext clientContext)564 protected Builder(ClientContext clientContext) { 565 super(clientContext); 566 567 listQueuesSettings = PagedCallSettings.newBuilder(LIST_QUEUES_PAGE_STR_FACT); 568 getQueueSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 569 createQueueSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 570 updateQueueSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 571 deleteQueueSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 572 purgeQueueSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 573 pauseQueueSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 574 resumeQueueSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 575 getIamPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 576 setIamPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 577 testIamPermissionsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 578 listTasksSettings = PagedCallSettings.newBuilder(LIST_TASKS_PAGE_STR_FACT); 579 getTaskSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 580 createTaskSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 581 deleteTaskSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 582 leaseTasksSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 583 acknowledgeTaskSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 584 renewLeaseSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 585 cancelLeaseSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 586 runTaskSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 587 588 unaryMethodSettingsBuilders = 589 ImmutableList.<UnaryCallSettings.Builder<?, ?>>of( 590 listQueuesSettings, 591 getQueueSettings, 592 createQueueSettings, 593 updateQueueSettings, 594 deleteQueueSettings, 595 purgeQueueSettings, 596 pauseQueueSettings, 597 resumeQueueSettings, 598 getIamPolicySettings, 599 setIamPolicySettings, 600 testIamPermissionsSettings, 601 listTasksSettings, 602 getTaskSettings, 603 createTaskSettings, 604 deleteTaskSettings, 605 leaseTasksSettings, 606 acknowledgeTaskSettings, 607 renewLeaseSettings, 608 cancelLeaseSettings, 609 runTaskSettings); 610 initDefaults(this); 611 } 612 Builder(CloudTasksStubSettings settings)613 protected Builder(CloudTasksStubSettings settings) { 614 super(settings); 615 616 listQueuesSettings = settings.listQueuesSettings.toBuilder(); 617 getQueueSettings = settings.getQueueSettings.toBuilder(); 618 createQueueSettings = settings.createQueueSettings.toBuilder(); 619 updateQueueSettings = settings.updateQueueSettings.toBuilder(); 620 deleteQueueSettings = settings.deleteQueueSettings.toBuilder(); 621 purgeQueueSettings = settings.purgeQueueSettings.toBuilder(); 622 pauseQueueSettings = settings.pauseQueueSettings.toBuilder(); 623 resumeQueueSettings = settings.resumeQueueSettings.toBuilder(); 624 getIamPolicySettings = settings.getIamPolicySettings.toBuilder(); 625 setIamPolicySettings = settings.setIamPolicySettings.toBuilder(); 626 testIamPermissionsSettings = settings.testIamPermissionsSettings.toBuilder(); 627 listTasksSettings = settings.listTasksSettings.toBuilder(); 628 getTaskSettings = settings.getTaskSettings.toBuilder(); 629 createTaskSettings = settings.createTaskSettings.toBuilder(); 630 deleteTaskSettings = settings.deleteTaskSettings.toBuilder(); 631 leaseTasksSettings = settings.leaseTasksSettings.toBuilder(); 632 acknowledgeTaskSettings = settings.acknowledgeTaskSettings.toBuilder(); 633 renewLeaseSettings = settings.renewLeaseSettings.toBuilder(); 634 cancelLeaseSettings = settings.cancelLeaseSettings.toBuilder(); 635 runTaskSettings = settings.runTaskSettings.toBuilder(); 636 637 unaryMethodSettingsBuilders = 638 ImmutableList.<UnaryCallSettings.Builder<?, ?>>of( 639 listQueuesSettings, 640 getQueueSettings, 641 createQueueSettings, 642 updateQueueSettings, 643 deleteQueueSettings, 644 purgeQueueSettings, 645 pauseQueueSettings, 646 resumeQueueSettings, 647 getIamPolicySettings, 648 setIamPolicySettings, 649 testIamPermissionsSettings, 650 listTasksSettings, 651 getTaskSettings, 652 createTaskSettings, 653 deleteTaskSettings, 654 leaseTasksSettings, 655 acknowledgeTaskSettings, 656 renewLeaseSettings, 657 cancelLeaseSettings, 658 runTaskSettings); 659 } 660 createDefault()661 private static Builder createDefault() { 662 Builder builder = new Builder(((ClientContext) null)); 663 664 builder.setTransportChannelProvider(defaultTransportChannelProvider()); 665 builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); 666 builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build()); 667 builder.setEndpoint(getDefaultEndpoint()); 668 builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); 669 builder.setSwitchToMtlsEndpointAllowed(true); 670 671 return initDefaults(builder); 672 } 673 createHttpJsonDefault()674 private static Builder createHttpJsonDefault() { 675 Builder builder = new Builder(((ClientContext) null)); 676 677 builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build()); 678 builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); 679 builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build()); 680 builder.setEndpoint(getDefaultEndpoint()); 681 builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); 682 builder.setSwitchToMtlsEndpointAllowed(true); 683 684 return initDefaults(builder); 685 } 686 initDefaults(Builder builder)687 private static Builder initDefaults(Builder builder) { 688 builder 689 .listQueuesSettings() 690 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 691 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 692 693 builder 694 .getQueueSettings() 695 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 696 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 697 698 builder 699 .createQueueSettings() 700 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 701 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 702 703 builder 704 .updateQueueSettings() 705 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 706 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 707 708 builder 709 .deleteQueueSettings() 710 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 711 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 712 713 builder 714 .purgeQueueSettings() 715 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 716 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 717 718 builder 719 .pauseQueueSettings() 720 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 721 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 722 723 builder 724 .resumeQueueSettings() 725 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 726 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 727 728 builder 729 .getIamPolicySettings() 730 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 731 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 732 733 builder 734 .setIamPolicySettings() 735 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 736 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 737 738 builder 739 .testIamPermissionsSettings() 740 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 741 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 742 743 builder 744 .listTasksSettings() 745 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 746 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 747 748 builder 749 .getTaskSettings() 750 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 751 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 752 753 builder 754 .createTaskSettings() 755 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 756 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 757 758 builder 759 .deleteTaskSettings() 760 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 761 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 762 763 builder 764 .leaseTasksSettings() 765 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 766 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 767 768 builder 769 .acknowledgeTaskSettings() 770 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 771 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 772 773 builder 774 .renewLeaseSettings() 775 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 776 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 777 778 builder 779 .cancelLeaseSettings() 780 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 781 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 782 783 builder 784 .runTaskSettings() 785 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 786 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 787 788 return builder; 789 } 790 791 /** 792 * Applies the given settings updater function to all of the unary API methods in this service. 793 * 794 * <p>Note: This method does not support applying settings to streaming methods. 795 */ applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)796 public Builder applyToAllUnaryMethods( 797 ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) { 798 super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater); 799 return this; 800 } 801 unaryMethodSettingsBuilders()802 public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() { 803 return unaryMethodSettingsBuilders; 804 } 805 806 /** Returns the builder for the settings used for calls to listQueues. */ 807 public PagedCallSettings.Builder<ListQueuesRequest, ListQueuesResponse, ListQueuesPagedResponse> listQueuesSettings()808 listQueuesSettings() { 809 return listQueuesSettings; 810 } 811 812 /** Returns the builder for the settings used for calls to getQueue. */ getQueueSettings()813 public UnaryCallSettings.Builder<GetQueueRequest, Queue> getQueueSettings() { 814 return getQueueSettings; 815 } 816 817 /** Returns the builder for the settings used for calls to createQueue. */ createQueueSettings()818 public UnaryCallSettings.Builder<CreateQueueRequest, Queue> createQueueSettings() { 819 return createQueueSettings; 820 } 821 822 /** Returns the builder for the settings used for calls to updateQueue. */ updateQueueSettings()823 public UnaryCallSettings.Builder<UpdateQueueRequest, Queue> updateQueueSettings() { 824 return updateQueueSettings; 825 } 826 827 /** Returns the builder for the settings used for calls to deleteQueue. */ deleteQueueSettings()828 public UnaryCallSettings.Builder<DeleteQueueRequest, Empty> deleteQueueSettings() { 829 return deleteQueueSettings; 830 } 831 832 /** Returns the builder for the settings used for calls to purgeQueue. */ purgeQueueSettings()833 public UnaryCallSettings.Builder<PurgeQueueRequest, Queue> purgeQueueSettings() { 834 return purgeQueueSettings; 835 } 836 837 /** Returns the builder for the settings used for calls to pauseQueue. */ pauseQueueSettings()838 public UnaryCallSettings.Builder<PauseQueueRequest, Queue> pauseQueueSettings() { 839 return pauseQueueSettings; 840 } 841 842 /** Returns the builder for the settings used for calls to resumeQueue. */ resumeQueueSettings()843 public UnaryCallSettings.Builder<ResumeQueueRequest, Queue> resumeQueueSettings() { 844 return resumeQueueSettings; 845 } 846 847 /** Returns the builder for the settings used for calls to getIamPolicy. */ getIamPolicySettings()848 public UnaryCallSettings.Builder<GetIamPolicyRequest, Policy> getIamPolicySettings() { 849 return getIamPolicySettings; 850 } 851 852 /** Returns the builder for the settings used for calls to setIamPolicy. */ setIamPolicySettings()853 public UnaryCallSettings.Builder<SetIamPolicyRequest, Policy> setIamPolicySettings() { 854 return setIamPolicySettings; 855 } 856 857 /** Returns the builder for the settings used for calls to testIamPermissions. */ 858 public UnaryCallSettings.Builder<TestIamPermissionsRequest, TestIamPermissionsResponse> testIamPermissionsSettings()859 testIamPermissionsSettings() { 860 return testIamPermissionsSettings; 861 } 862 863 /** Returns the builder for the settings used for calls to listTasks. */ 864 public PagedCallSettings.Builder<ListTasksRequest, ListTasksResponse, ListTasksPagedResponse> listTasksSettings()865 listTasksSettings() { 866 return listTasksSettings; 867 } 868 869 /** Returns the builder for the settings used for calls to getTask. */ getTaskSettings()870 public UnaryCallSettings.Builder<GetTaskRequest, Task> getTaskSettings() { 871 return getTaskSettings; 872 } 873 874 /** Returns the builder for the settings used for calls to createTask. */ createTaskSettings()875 public UnaryCallSettings.Builder<CreateTaskRequest, Task> createTaskSettings() { 876 return createTaskSettings; 877 } 878 879 /** Returns the builder for the settings used for calls to deleteTask. */ deleteTaskSettings()880 public UnaryCallSettings.Builder<DeleteTaskRequest, Empty> deleteTaskSettings() { 881 return deleteTaskSettings; 882 } 883 884 /** Returns the builder for the settings used for calls to leaseTasks. */ leaseTasksSettings()885 public UnaryCallSettings.Builder<LeaseTasksRequest, LeaseTasksResponse> leaseTasksSettings() { 886 return leaseTasksSettings; 887 } 888 889 /** Returns the builder for the settings used for calls to acknowledgeTask. */ acknowledgeTaskSettings()890 public UnaryCallSettings.Builder<AcknowledgeTaskRequest, Empty> acknowledgeTaskSettings() { 891 return acknowledgeTaskSettings; 892 } 893 894 /** Returns the builder for the settings used for calls to renewLease. */ renewLeaseSettings()895 public UnaryCallSettings.Builder<RenewLeaseRequest, Task> renewLeaseSettings() { 896 return renewLeaseSettings; 897 } 898 899 /** Returns the builder for the settings used for calls to cancelLease. */ cancelLeaseSettings()900 public UnaryCallSettings.Builder<CancelLeaseRequest, Task> cancelLeaseSettings() { 901 return cancelLeaseSettings; 902 } 903 904 /** Returns the builder for the settings used for calls to runTask. */ runTaskSettings()905 public UnaryCallSettings.Builder<RunTaskRequest, Task> runTaskSettings() { 906 return runTaskSettings; 907 } 908 909 @Override build()910 public CloudTasksStubSettings build() throws IOException { 911 return new CloudTasksStubSettings(this); 912 } 913 } 914 } 915