• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.cloud.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