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