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