• 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.dialogflow.v2;
18 
19 import com.google.api.core.ApiFuture;
20 import com.google.api.core.ApiFutures;
21 import com.google.api.gax.core.BackgroundResource;
22 import com.google.api.gax.paging.AbstractFixedSizeCollection;
23 import com.google.api.gax.paging.AbstractPage;
24 import com.google.api.gax.paging.AbstractPagedListResponse;
25 import com.google.api.gax.rpc.PageContext;
26 import com.google.api.gax.rpc.UnaryCallable;
27 import com.google.cloud.dialogflow.v2.stub.KnowledgeBasesStub;
28 import com.google.cloud.dialogflow.v2.stub.KnowledgeBasesStubSettings;
29 import com.google.cloud.location.GetLocationRequest;
30 import com.google.cloud.location.ListLocationsRequest;
31 import com.google.cloud.location.ListLocationsResponse;
32 import com.google.cloud.location.Location;
33 import com.google.common.util.concurrent.MoreExecutors;
34 import com.google.protobuf.Empty;
35 import com.google.protobuf.FieldMask;
36 import java.io.IOException;
37 import java.util.List;
38 import java.util.concurrent.TimeUnit;
39 import javax.annotation.Generated;
40 
41 // AUTO-GENERATED DOCUMENTATION AND CLASS.
42 /**
43  * Service Description: Service for managing
44  * [KnowledgeBases][google.cloud.dialogflow.v2.KnowledgeBase].
45  *
46  * <p>This class provides the ability to make remote calls to the backing service through method
47  * calls that map to API methods. Sample code to get started:
48  *
49  * <pre>{@code
50  * // This snippet has been automatically generated and should be regarded as a code template only.
51  * // It will require modifications to work:
52  * // - It may require correct/in-range values for request initialization.
53  * // - It may require specifying regional endpoints when creating the service client as shown in
54  * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
55  * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
56  *   KnowledgeBaseName name =
57  *       KnowledgeBaseName.ofProjectKnowledgeBaseName("[PROJECT]", "[KNOWLEDGE_BASE]");
58  *   KnowledgeBase response = knowledgeBasesClient.getKnowledgeBase(name);
59  * }
60  * }</pre>
61  *
62  * <p>Note: close() needs to be called on the KnowledgeBasesClient object to clean up resources such
63  * as threads. In the example above, try-with-resources is used, which automatically calls close().
64  *
65  * <p>The surface of this class includes several types of Java methods for each of the API's
66  * methods:
67  *
68  * <ol>
69  *   <li>A "flattened" method. With this type of method, the fields of the request type have been
70  *       converted into function parameters. It may be the case that not all fields are available as
71  *       parameters, and not every API method will have a flattened method entry point.
72  *   <li>A "request object" method. This type of method only takes one parameter, a request object,
73  *       which must be constructed before the call. Not every API method will have a request object
74  *       method.
75  *   <li>A "callable" method. This type of method takes no parameters and returns an immutable API
76  *       callable object, which can be used to initiate calls to the service.
77  * </ol>
78  *
79  * <p>See the individual methods for example code.
80  *
81  * <p>Many parameters require resource names to be formatted in a particular way. To assist with
82  * these names, this class includes a format method for each type of name, and additionally a parse
83  * method to extract the individual identifiers contained within names that are returned.
84  *
85  * <p>This class can be customized by passing in a custom instance of KnowledgeBasesSettings to
86  * create(). For example:
87  *
88  * <p>To customize credentials:
89  *
90  * <pre>{@code
91  * // This snippet has been automatically generated and should be regarded as a code template only.
92  * // It will require modifications to work:
93  * // - It may require correct/in-range values for request initialization.
94  * // - It may require specifying regional endpoints when creating the service client as shown in
95  * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
96  * KnowledgeBasesSettings knowledgeBasesSettings =
97  *     KnowledgeBasesSettings.newBuilder()
98  *         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
99  *         .build();
100  * KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create(knowledgeBasesSettings);
101  * }</pre>
102  *
103  * <p>To customize the endpoint:
104  *
105  * <pre>{@code
106  * // This snippet has been automatically generated and should be regarded as a code template only.
107  * // It will require modifications to work:
108  * // - It may require correct/in-range values for request initialization.
109  * // - It may require specifying regional endpoints when creating the service client as shown in
110  * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
111  * KnowledgeBasesSettings knowledgeBasesSettings =
112  *     KnowledgeBasesSettings.newBuilder().setEndpoint(myEndpoint).build();
113  * KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create(knowledgeBasesSettings);
114  * }</pre>
115  *
116  * <p>To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
117  * the wire:
118  *
119  * <pre>{@code
120  * // This snippet has been automatically generated and should be regarded as a code template only.
121  * // It will require modifications to work:
122  * // - It may require correct/in-range values for request initialization.
123  * // - It may require specifying regional endpoints when creating the service client as shown in
124  * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
125  * KnowledgeBasesSettings knowledgeBasesSettings =
126  *     KnowledgeBasesSettings.newHttpJsonBuilder().build();
127  * KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create(knowledgeBasesSettings);
128  * }</pre>
129  *
130  * <p>Please refer to the GitHub repository's samples for more quickstart code snippets.
131  */
132 @Generated("by gapic-generator-java")
133 public class KnowledgeBasesClient implements BackgroundResource {
134   private final KnowledgeBasesSettings settings;
135   private final KnowledgeBasesStub stub;
136 
137   /** Constructs an instance of KnowledgeBasesClient with default settings. */
create()138   public static final KnowledgeBasesClient create() throws IOException {
139     return create(KnowledgeBasesSettings.newBuilder().build());
140   }
141 
142   /**
143    * Constructs an instance of KnowledgeBasesClient, using the given settings. The channels are
144    * created based on the settings passed in, or defaults for any settings that are not set.
145    */
create(KnowledgeBasesSettings settings)146   public static final KnowledgeBasesClient create(KnowledgeBasesSettings settings)
147       throws IOException {
148     return new KnowledgeBasesClient(settings);
149   }
150 
151   /**
152    * Constructs an instance of KnowledgeBasesClient, using the given stub for making calls. This is
153    * for advanced usage - prefer using create(KnowledgeBasesSettings).
154    */
create(KnowledgeBasesStub stub)155   public static final KnowledgeBasesClient create(KnowledgeBasesStub stub) {
156     return new KnowledgeBasesClient(stub);
157   }
158 
159   /**
160    * Constructs an instance of KnowledgeBasesClient, using the given settings. This is protected so
161    * that it is easy to make a subclass, but otherwise, the static factory methods should be
162    * preferred.
163    */
KnowledgeBasesClient(KnowledgeBasesSettings settings)164   protected KnowledgeBasesClient(KnowledgeBasesSettings settings) throws IOException {
165     this.settings = settings;
166     this.stub = ((KnowledgeBasesStubSettings) settings.getStubSettings()).createStub();
167   }
168 
KnowledgeBasesClient(KnowledgeBasesStub stub)169   protected KnowledgeBasesClient(KnowledgeBasesStub stub) {
170     this.settings = null;
171     this.stub = stub;
172   }
173 
getSettings()174   public final KnowledgeBasesSettings getSettings() {
175     return settings;
176   }
177 
getStub()178   public KnowledgeBasesStub getStub() {
179     return stub;
180   }
181 
182   // AUTO-GENERATED DOCUMENTATION AND METHOD.
183   /**
184    * Returns the list of all knowledge bases of the specified agent.
185    *
186    * <p>Sample code:
187    *
188    * <pre>{@code
189    * // This snippet has been automatically generated and should be regarded as a code template only.
190    * // It will require modifications to work:
191    * // - It may require correct/in-range values for request initialization.
192    * // - It may require specifying regional endpoints when creating the service client as shown in
193    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
194    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
195    *   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
196    *   for (KnowledgeBase element : knowledgeBasesClient.listKnowledgeBases(parent).iterateAll()) {
197    *     // doThingsWith(element);
198    *   }
199    * }
200    * }</pre>
201    *
202    * @param parent Required. The project to list of knowledge bases for. Format:
203    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;`.
204    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
205    */
listKnowledgeBases(LocationName parent)206   public final ListKnowledgeBasesPagedResponse listKnowledgeBases(LocationName parent) {
207     ListKnowledgeBasesRequest request =
208         ListKnowledgeBasesRequest.newBuilder()
209             .setParent(parent == null ? null : parent.toString())
210             .build();
211     return listKnowledgeBases(request);
212   }
213 
214   // AUTO-GENERATED DOCUMENTATION AND METHOD.
215   /**
216    * Returns the list of all knowledge bases of the specified agent.
217    *
218    * <p>Sample code:
219    *
220    * <pre>{@code
221    * // This snippet has been automatically generated and should be regarded as a code template only.
222    * // It will require modifications to work:
223    * // - It may require correct/in-range values for request initialization.
224    * // - It may require specifying regional endpoints when creating the service client as shown in
225    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
226    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
227    *   ProjectName parent = ProjectName.of("[PROJECT]");
228    *   for (KnowledgeBase element : knowledgeBasesClient.listKnowledgeBases(parent).iterateAll()) {
229    *     // doThingsWith(element);
230    *   }
231    * }
232    * }</pre>
233    *
234    * @param parent Required. The project to list of knowledge bases for. Format:
235    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;`.
236    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
237    */
listKnowledgeBases(ProjectName parent)238   public final ListKnowledgeBasesPagedResponse listKnowledgeBases(ProjectName parent) {
239     ListKnowledgeBasesRequest request =
240         ListKnowledgeBasesRequest.newBuilder()
241             .setParent(parent == null ? null : parent.toString())
242             .build();
243     return listKnowledgeBases(request);
244   }
245 
246   // AUTO-GENERATED DOCUMENTATION AND METHOD.
247   /**
248    * Returns the list of all knowledge bases of the specified agent.
249    *
250    * <p>Sample code:
251    *
252    * <pre>{@code
253    * // This snippet has been automatically generated and should be regarded as a code template only.
254    * // It will require modifications to work:
255    * // - It may require correct/in-range values for request initialization.
256    * // - It may require specifying regional endpoints when creating the service client as shown in
257    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
258    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
259    *   String parent = ProjectName.of("[PROJECT]").toString();
260    *   for (KnowledgeBase element : knowledgeBasesClient.listKnowledgeBases(parent).iterateAll()) {
261    *     // doThingsWith(element);
262    *   }
263    * }
264    * }</pre>
265    *
266    * @param parent Required. The project to list of knowledge bases for. Format:
267    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;`.
268    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
269    */
listKnowledgeBases(String parent)270   public final ListKnowledgeBasesPagedResponse listKnowledgeBases(String parent) {
271     ListKnowledgeBasesRequest request =
272         ListKnowledgeBasesRequest.newBuilder().setParent(parent).build();
273     return listKnowledgeBases(request);
274   }
275 
276   // AUTO-GENERATED DOCUMENTATION AND METHOD.
277   /**
278    * Returns the list of all knowledge bases of the specified agent.
279    *
280    * <p>Sample code:
281    *
282    * <pre>{@code
283    * // This snippet has been automatically generated and should be regarded as a code template only.
284    * // It will require modifications to work:
285    * // - It may require correct/in-range values for request initialization.
286    * // - It may require specifying regional endpoints when creating the service client as shown in
287    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
288    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
289    *   ListKnowledgeBasesRequest request =
290    *       ListKnowledgeBasesRequest.newBuilder()
291    *           .setParent(ProjectName.of("[PROJECT]").toString())
292    *           .setPageSize(883849137)
293    *           .setPageToken("pageToken873572522")
294    *           .setFilter("filter-1274492040")
295    *           .build();
296    *   for (KnowledgeBase element : knowledgeBasesClient.listKnowledgeBases(request).iterateAll()) {
297    *     // doThingsWith(element);
298    *   }
299    * }
300    * }</pre>
301    *
302    * @param request The request object containing all of the parameters for the API call.
303    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
304    */
listKnowledgeBases( ListKnowledgeBasesRequest request)305   public final ListKnowledgeBasesPagedResponse listKnowledgeBases(
306       ListKnowledgeBasesRequest request) {
307     return listKnowledgeBasesPagedCallable().call(request);
308   }
309 
310   // AUTO-GENERATED DOCUMENTATION AND METHOD.
311   /**
312    * Returns the list of all knowledge bases of the specified agent.
313    *
314    * <p>Sample code:
315    *
316    * <pre>{@code
317    * // This snippet has been automatically generated and should be regarded as a code template only.
318    * // It will require modifications to work:
319    * // - It may require correct/in-range values for request initialization.
320    * // - It may require specifying regional endpoints when creating the service client as shown in
321    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
322    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
323    *   ListKnowledgeBasesRequest request =
324    *       ListKnowledgeBasesRequest.newBuilder()
325    *           .setParent(ProjectName.of("[PROJECT]").toString())
326    *           .setPageSize(883849137)
327    *           .setPageToken("pageToken873572522")
328    *           .setFilter("filter-1274492040")
329    *           .build();
330    *   ApiFuture<KnowledgeBase> future =
331    *       knowledgeBasesClient.listKnowledgeBasesPagedCallable().futureCall(request);
332    *   // Do something.
333    *   for (KnowledgeBase element : future.get().iterateAll()) {
334    *     // doThingsWith(element);
335    *   }
336    * }
337    * }</pre>
338    */
339   public final UnaryCallable<ListKnowledgeBasesRequest, ListKnowledgeBasesPagedResponse>
listKnowledgeBasesPagedCallable()340       listKnowledgeBasesPagedCallable() {
341     return stub.listKnowledgeBasesPagedCallable();
342   }
343 
344   // AUTO-GENERATED DOCUMENTATION AND METHOD.
345   /**
346    * Returns the list of all knowledge bases of the specified agent.
347    *
348    * <p>Sample code:
349    *
350    * <pre>{@code
351    * // This snippet has been automatically generated and should be regarded as a code template only.
352    * // It will require modifications to work:
353    * // - It may require correct/in-range values for request initialization.
354    * // - It may require specifying regional endpoints when creating the service client as shown in
355    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
356    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
357    *   ListKnowledgeBasesRequest request =
358    *       ListKnowledgeBasesRequest.newBuilder()
359    *           .setParent(ProjectName.of("[PROJECT]").toString())
360    *           .setPageSize(883849137)
361    *           .setPageToken("pageToken873572522")
362    *           .setFilter("filter-1274492040")
363    *           .build();
364    *   while (true) {
365    *     ListKnowledgeBasesResponse response =
366    *         knowledgeBasesClient.listKnowledgeBasesCallable().call(request);
367    *     for (KnowledgeBase element : response.getKnowledgeBasesList()) {
368    *       // doThingsWith(element);
369    *     }
370    *     String nextPageToken = response.getNextPageToken();
371    *     if (!Strings.isNullOrEmpty(nextPageToken)) {
372    *       request = request.toBuilder().setPageToken(nextPageToken).build();
373    *     } else {
374    *       break;
375    *     }
376    *   }
377    * }
378    * }</pre>
379    */
380   public final UnaryCallable<ListKnowledgeBasesRequest, ListKnowledgeBasesResponse>
listKnowledgeBasesCallable()381       listKnowledgeBasesCallable() {
382     return stub.listKnowledgeBasesCallable();
383   }
384 
385   // AUTO-GENERATED DOCUMENTATION AND METHOD.
386   /**
387    * Retrieves the specified knowledge base.
388    *
389    * <p>Sample code:
390    *
391    * <pre>{@code
392    * // This snippet has been automatically generated and should be regarded as a code template only.
393    * // It will require modifications to work:
394    * // - It may require correct/in-range values for request initialization.
395    * // - It may require specifying regional endpoints when creating the service client as shown in
396    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
397    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
398    *   KnowledgeBaseName name =
399    *       KnowledgeBaseName.ofProjectKnowledgeBaseName("[PROJECT]", "[KNOWLEDGE_BASE]");
400    *   KnowledgeBase response = knowledgeBasesClient.getKnowledgeBase(name);
401    * }
402    * }</pre>
403    *
404    * @param name Required. The name of the knowledge base to retrieve. Format `projects/&lt;Project
405    *     ID&gt;/locations/&lt;Location ID&gt;/knowledgeBases/&lt;Knowledge Base ID&gt;`.
406    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
407    */
getKnowledgeBase(KnowledgeBaseName name)408   public final KnowledgeBase getKnowledgeBase(KnowledgeBaseName name) {
409     GetKnowledgeBaseRequest request =
410         GetKnowledgeBaseRequest.newBuilder().setName(name == null ? null : name.toString()).build();
411     return getKnowledgeBase(request);
412   }
413 
414   // AUTO-GENERATED DOCUMENTATION AND METHOD.
415   /**
416    * Retrieves the specified knowledge base.
417    *
418    * <p>Sample code:
419    *
420    * <pre>{@code
421    * // This snippet has been automatically generated and should be regarded as a code template only.
422    * // It will require modifications to work:
423    * // - It may require correct/in-range values for request initialization.
424    * // - It may require specifying regional endpoints when creating the service client as shown in
425    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
426    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
427    *   String name =
428    *       KnowledgeBaseName.ofProjectKnowledgeBaseName("[PROJECT]", "[KNOWLEDGE_BASE]").toString();
429    *   KnowledgeBase response = knowledgeBasesClient.getKnowledgeBase(name);
430    * }
431    * }</pre>
432    *
433    * @param name Required. The name of the knowledge base to retrieve. Format `projects/&lt;Project
434    *     ID&gt;/locations/&lt;Location ID&gt;/knowledgeBases/&lt;Knowledge Base ID&gt;`.
435    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
436    */
getKnowledgeBase(String name)437   public final KnowledgeBase getKnowledgeBase(String name) {
438     GetKnowledgeBaseRequest request = GetKnowledgeBaseRequest.newBuilder().setName(name).build();
439     return getKnowledgeBase(request);
440   }
441 
442   // AUTO-GENERATED DOCUMENTATION AND METHOD.
443   /**
444    * Retrieves the specified knowledge base.
445    *
446    * <p>Sample code:
447    *
448    * <pre>{@code
449    * // This snippet has been automatically generated and should be regarded as a code template only.
450    * // It will require modifications to work:
451    * // - It may require correct/in-range values for request initialization.
452    * // - It may require specifying regional endpoints when creating the service client as shown in
453    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
454    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
455    *   GetKnowledgeBaseRequest request =
456    *       GetKnowledgeBaseRequest.newBuilder()
457    *           .setName(
458    *               KnowledgeBaseName.ofProjectKnowledgeBaseName("[PROJECT]", "[KNOWLEDGE_BASE]")
459    *                   .toString())
460    *           .build();
461    *   KnowledgeBase response = knowledgeBasesClient.getKnowledgeBase(request);
462    * }
463    * }</pre>
464    *
465    * @param request The request object containing all of the parameters for the API call.
466    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
467    */
getKnowledgeBase(GetKnowledgeBaseRequest request)468   public final KnowledgeBase getKnowledgeBase(GetKnowledgeBaseRequest request) {
469     return getKnowledgeBaseCallable().call(request);
470   }
471 
472   // AUTO-GENERATED DOCUMENTATION AND METHOD.
473   /**
474    * Retrieves the specified knowledge base.
475    *
476    * <p>Sample code:
477    *
478    * <pre>{@code
479    * // This snippet has been automatically generated and should be regarded as a code template only.
480    * // It will require modifications to work:
481    * // - It may require correct/in-range values for request initialization.
482    * // - It may require specifying regional endpoints when creating the service client as shown in
483    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
484    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
485    *   GetKnowledgeBaseRequest request =
486    *       GetKnowledgeBaseRequest.newBuilder()
487    *           .setName(
488    *               KnowledgeBaseName.ofProjectKnowledgeBaseName("[PROJECT]", "[KNOWLEDGE_BASE]")
489    *                   .toString())
490    *           .build();
491    *   ApiFuture<KnowledgeBase> future =
492    *       knowledgeBasesClient.getKnowledgeBaseCallable().futureCall(request);
493    *   // Do something.
494    *   KnowledgeBase response = future.get();
495    * }
496    * }</pre>
497    */
getKnowledgeBaseCallable()498   public final UnaryCallable<GetKnowledgeBaseRequest, KnowledgeBase> getKnowledgeBaseCallable() {
499     return stub.getKnowledgeBaseCallable();
500   }
501 
502   // AUTO-GENERATED DOCUMENTATION AND METHOD.
503   /**
504    * Creates a knowledge base.
505    *
506    * <p>Sample code:
507    *
508    * <pre>{@code
509    * // This snippet has been automatically generated and should be regarded as a code template only.
510    * // It will require modifications to work:
511    * // - It may require correct/in-range values for request initialization.
512    * // - It may require specifying regional endpoints when creating the service client as shown in
513    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
514    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
515    *   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
516    *   KnowledgeBase knowledgeBase = KnowledgeBase.newBuilder().build();
517    *   KnowledgeBase response = knowledgeBasesClient.createKnowledgeBase(parent, knowledgeBase);
518    * }
519    * }</pre>
520    *
521    * @param parent Required. The project to create a knowledge base for. Format:
522    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;`.
523    * @param knowledgeBase Required. The knowledge base to create.
524    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
525    */
createKnowledgeBase(LocationName parent, KnowledgeBase knowledgeBase)526   public final KnowledgeBase createKnowledgeBase(LocationName parent, KnowledgeBase knowledgeBase) {
527     CreateKnowledgeBaseRequest request =
528         CreateKnowledgeBaseRequest.newBuilder()
529             .setParent(parent == null ? null : parent.toString())
530             .setKnowledgeBase(knowledgeBase)
531             .build();
532     return createKnowledgeBase(request);
533   }
534 
535   // AUTO-GENERATED DOCUMENTATION AND METHOD.
536   /**
537    * Creates a knowledge base.
538    *
539    * <p>Sample code:
540    *
541    * <pre>{@code
542    * // This snippet has been automatically generated and should be regarded as a code template only.
543    * // It will require modifications to work:
544    * // - It may require correct/in-range values for request initialization.
545    * // - It may require specifying regional endpoints when creating the service client as shown in
546    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
547    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
548    *   ProjectName parent = ProjectName.of("[PROJECT]");
549    *   KnowledgeBase knowledgeBase = KnowledgeBase.newBuilder().build();
550    *   KnowledgeBase response = knowledgeBasesClient.createKnowledgeBase(parent, knowledgeBase);
551    * }
552    * }</pre>
553    *
554    * @param parent Required. The project to create a knowledge base for. Format:
555    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;`.
556    * @param knowledgeBase Required. The knowledge base to create.
557    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
558    */
createKnowledgeBase(ProjectName parent, KnowledgeBase knowledgeBase)559   public final KnowledgeBase createKnowledgeBase(ProjectName parent, KnowledgeBase knowledgeBase) {
560     CreateKnowledgeBaseRequest request =
561         CreateKnowledgeBaseRequest.newBuilder()
562             .setParent(parent == null ? null : parent.toString())
563             .setKnowledgeBase(knowledgeBase)
564             .build();
565     return createKnowledgeBase(request);
566   }
567 
568   // AUTO-GENERATED DOCUMENTATION AND METHOD.
569   /**
570    * Creates a knowledge base.
571    *
572    * <p>Sample code:
573    *
574    * <pre>{@code
575    * // This snippet has been automatically generated and should be regarded as a code template only.
576    * // It will require modifications to work:
577    * // - It may require correct/in-range values for request initialization.
578    * // - It may require specifying regional endpoints when creating the service client as shown in
579    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
580    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
581    *   String parent = ProjectName.of("[PROJECT]").toString();
582    *   KnowledgeBase knowledgeBase = KnowledgeBase.newBuilder().build();
583    *   KnowledgeBase response = knowledgeBasesClient.createKnowledgeBase(parent, knowledgeBase);
584    * }
585    * }</pre>
586    *
587    * @param parent Required. The project to create a knowledge base for. Format:
588    *     `projects/&lt;Project ID&gt;/locations/&lt;Location ID&gt;`.
589    * @param knowledgeBase Required. The knowledge base to create.
590    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
591    */
createKnowledgeBase(String parent, KnowledgeBase knowledgeBase)592   public final KnowledgeBase createKnowledgeBase(String parent, KnowledgeBase knowledgeBase) {
593     CreateKnowledgeBaseRequest request =
594         CreateKnowledgeBaseRequest.newBuilder()
595             .setParent(parent)
596             .setKnowledgeBase(knowledgeBase)
597             .build();
598     return createKnowledgeBase(request);
599   }
600 
601   // AUTO-GENERATED DOCUMENTATION AND METHOD.
602   /**
603    * Creates a knowledge base.
604    *
605    * <p>Sample code:
606    *
607    * <pre>{@code
608    * // This snippet has been automatically generated and should be regarded as a code template only.
609    * // It will require modifications to work:
610    * // - It may require correct/in-range values for request initialization.
611    * // - It may require specifying regional endpoints when creating the service client as shown in
612    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
613    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
614    *   CreateKnowledgeBaseRequest request =
615    *       CreateKnowledgeBaseRequest.newBuilder()
616    *           .setParent(ProjectName.of("[PROJECT]").toString())
617    *           .setKnowledgeBase(KnowledgeBase.newBuilder().build())
618    *           .build();
619    *   KnowledgeBase response = knowledgeBasesClient.createKnowledgeBase(request);
620    * }
621    * }</pre>
622    *
623    * @param request The request object containing all of the parameters for the API call.
624    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
625    */
createKnowledgeBase(CreateKnowledgeBaseRequest request)626   public final KnowledgeBase createKnowledgeBase(CreateKnowledgeBaseRequest request) {
627     return createKnowledgeBaseCallable().call(request);
628   }
629 
630   // AUTO-GENERATED DOCUMENTATION AND METHOD.
631   /**
632    * Creates a knowledge base.
633    *
634    * <p>Sample code:
635    *
636    * <pre>{@code
637    * // This snippet has been automatically generated and should be regarded as a code template only.
638    * // It will require modifications to work:
639    * // - It may require correct/in-range values for request initialization.
640    * // - It may require specifying regional endpoints when creating the service client as shown in
641    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
642    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
643    *   CreateKnowledgeBaseRequest request =
644    *       CreateKnowledgeBaseRequest.newBuilder()
645    *           .setParent(ProjectName.of("[PROJECT]").toString())
646    *           .setKnowledgeBase(KnowledgeBase.newBuilder().build())
647    *           .build();
648    *   ApiFuture<KnowledgeBase> future =
649    *       knowledgeBasesClient.createKnowledgeBaseCallable().futureCall(request);
650    *   // Do something.
651    *   KnowledgeBase response = future.get();
652    * }
653    * }</pre>
654    */
655   public final UnaryCallable<CreateKnowledgeBaseRequest, KnowledgeBase>
createKnowledgeBaseCallable()656       createKnowledgeBaseCallable() {
657     return stub.createKnowledgeBaseCallable();
658   }
659 
660   // AUTO-GENERATED DOCUMENTATION AND METHOD.
661   /**
662    * Deletes the specified knowledge base.
663    *
664    * <p>Sample code:
665    *
666    * <pre>{@code
667    * // This snippet has been automatically generated and should be regarded as a code template only.
668    * // It will require modifications to work:
669    * // - It may require correct/in-range values for request initialization.
670    * // - It may require specifying regional endpoints when creating the service client as shown in
671    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
672    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
673    *   KnowledgeBaseName name =
674    *       KnowledgeBaseName.ofProjectKnowledgeBaseName("[PROJECT]", "[KNOWLEDGE_BASE]");
675    *   knowledgeBasesClient.deleteKnowledgeBase(name);
676    * }
677    * }</pre>
678    *
679    * @param name Required. The name of the knowledge base to delete. Format: `projects/&lt;Project
680    *     ID&gt;/locations/&lt;Location ID&gt;/knowledgeBases/&lt;Knowledge Base ID&gt;`.
681    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
682    */
deleteKnowledgeBase(KnowledgeBaseName name)683   public final void deleteKnowledgeBase(KnowledgeBaseName name) {
684     DeleteKnowledgeBaseRequest request =
685         DeleteKnowledgeBaseRequest.newBuilder()
686             .setName(name == null ? null : name.toString())
687             .build();
688     deleteKnowledgeBase(request);
689   }
690 
691   // AUTO-GENERATED DOCUMENTATION AND METHOD.
692   /**
693    * Deletes the specified knowledge base.
694    *
695    * <p>Sample code:
696    *
697    * <pre>{@code
698    * // This snippet has been automatically generated and should be regarded as a code template only.
699    * // It will require modifications to work:
700    * // - It may require correct/in-range values for request initialization.
701    * // - It may require specifying regional endpoints when creating the service client as shown in
702    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
703    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
704    *   String name =
705    *       KnowledgeBaseName.ofProjectKnowledgeBaseName("[PROJECT]", "[KNOWLEDGE_BASE]").toString();
706    *   knowledgeBasesClient.deleteKnowledgeBase(name);
707    * }
708    * }</pre>
709    *
710    * @param name Required. The name of the knowledge base to delete. Format: `projects/&lt;Project
711    *     ID&gt;/locations/&lt;Location ID&gt;/knowledgeBases/&lt;Knowledge Base ID&gt;`.
712    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
713    */
deleteKnowledgeBase(String name)714   public final void deleteKnowledgeBase(String name) {
715     DeleteKnowledgeBaseRequest request =
716         DeleteKnowledgeBaseRequest.newBuilder().setName(name).build();
717     deleteKnowledgeBase(request);
718   }
719 
720   // AUTO-GENERATED DOCUMENTATION AND METHOD.
721   /**
722    * Deletes the specified knowledge base.
723    *
724    * <p>Sample code:
725    *
726    * <pre>{@code
727    * // This snippet has been automatically generated and should be regarded as a code template only.
728    * // It will require modifications to work:
729    * // - It may require correct/in-range values for request initialization.
730    * // - It may require specifying regional endpoints when creating the service client as shown in
731    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
732    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
733    *   DeleteKnowledgeBaseRequest request =
734    *       DeleteKnowledgeBaseRequest.newBuilder()
735    *           .setName(
736    *               KnowledgeBaseName.ofProjectKnowledgeBaseName("[PROJECT]", "[KNOWLEDGE_BASE]")
737    *                   .toString())
738    *           .setForce(true)
739    *           .build();
740    *   knowledgeBasesClient.deleteKnowledgeBase(request);
741    * }
742    * }</pre>
743    *
744    * @param request The request object containing all of the parameters for the API call.
745    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
746    */
deleteKnowledgeBase(DeleteKnowledgeBaseRequest request)747   public final void deleteKnowledgeBase(DeleteKnowledgeBaseRequest request) {
748     deleteKnowledgeBaseCallable().call(request);
749   }
750 
751   // AUTO-GENERATED DOCUMENTATION AND METHOD.
752   /**
753    * Deletes the specified knowledge base.
754    *
755    * <p>Sample code:
756    *
757    * <pre>{@code
758    * // This snippet has been automatically generated and should be regarded as a code template only.
759    * // It will require modifications to work:
760    * // - It may require correct/in-range values for request initialization.
761    * // - It may require specifying regional endpoints when creating the service client as shown in
762    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
763    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
764    *   DeleteKnowledgeBaseRequest request =
765    *       DeleteKnowledgeBaseRequest.newBuilder()
766    *           .setName(
767    *               KnowledgeBaseName.ofProjectKnowledgeBaseName("[PROJECT]", "[KNOWLEDGE_BASE]")
768    *                   .toString())
769    *           .setForce(true)
770    *           .build();
771    *   ApiFuture<Empty> future =
772    *       knowledgeBasesClient.deleteKnowledgeBaseCallable().futureCall(request);
773    *   // Do something.
774    *   future.get();
775    * }
776    * }</pre>
777    */
deleteKnowledgeBaseCallable()778   public final UnaryCallable<DeleteKnowledgeBaseRequest, Empty> deleteKnowledgeBaseCallable() {
779     return stub.deleteKnowledgeBaseCallable();
780   }
781 
782   // AUTO-GENERATED DOCUMENTATION AND METHOD.
783   /**
784    * Updates the specified knowledge base.
785    *
786    * <p>Sample code:
787    *
788    * <pre>{@code
789    * // This snippet has been automatically generated and should be regarded as a code template only.
790    * // It will require modifications to work:
791    * // - It may require correct/in-range values for request initialization.
792    * // - It may require specifying regional endpoints when creating the service client as shown in
793    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
794    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
795    *   KnowledgeBase knowledgeBase = KnowledgeBase.newBuilder().build();
796    *   FieldMask updateMask = FieldMask.newBuilder().build();
797    *   KnowledgeBase response = knowledgeBasesClient.updateKnowledgeBase(knowledgeBase, updateMask);
798    * }
799    * }</pre>
800    *
801    * @param knowledgeBase Required. The knowledge base to update.
802    * @param updateMask Optional. Not specified means `update all`. Currently, only `display_name`
803    *     can be updated, an InvalidArgument will be returned for attempting to update other fields.
804    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
805    */
updateKnowledgeBase( KnowledgeBase knowledgeBase, FieldMask updateMask)806   public final KnowledgeBase updateKnowledgeBase(
807       KnowledgeBase knowledgeBase, FieldMask updateMask) {
808     UpdateKnowledgeBaseRequest request =
809         UpdateKnowledgeBaseRequest.newBuilder()
810             .setKnowledgeBase(knowledgeBase)
811             .setUpdateMask(updateMask)
812             .build();
813     return updateKnowledgeBase(request);
814   }
815 
816   // AUTO-GENERATED DOCUMENTATION AND METHOD.
817   /**
818    * Updates the specified knowledge base.
819    *
820    * <p>Sample code:
821    *
822    * <pre>{@code
823    * // This snippet has been automatically generated and should be regarded as a code template only.
824    * // It will require modifications to work:
825    * // - It may require correct/in-range values for request initialization.
826    * // - It may require specifying regional endpoints when creating the service client as shown in
827    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
828    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
829    *   UpdateKnowledgeBaseRequest request =
830    *       UpdateKnowledgeBaseRequest.newBuilder()
831    *           .setKnowledgeBase(KnowledgeBase.newBuilder().build())
832    *           .setUpdateMask(FieldMask.newBuilder().build())
833    *           .build();
834    *   KnowledgeBase response = knowledgeBasesClient.updateKnowledgeBase(request);
835    * }
836    * }</pre>
837    *
838    * @param request The request object containing all of the parameters for the API call.
839    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
840    */
updateKnowledgeBase(UpdateKnowledgeBaseRequest request)841   public final KnowledgeBase updateKnowledgeBase(UpdateKnowledgeBaseRequest request) {
842     return updateKnowledgeBaseCallable().call(request);
843   }
844 
845   // AUTO-GENERATED DOCUMENTATION AND METHOD.
846   /**
847    * Updates the specified knowledge base.
848    *
849    * <p>Sample code:
850    *
851    * <pre>{@code
852    * // This snippet has been automatically generated and should be regarded as a code template only.
853    * // It will require modifications to work:
854    * // - It may require correct/in-range values for request initialization.
855    * // - It may require specifying regional endpoints when creating the service client as shown in
856    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
857    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
858    *   UpdateKnowledgeBaseRequest request =
859    *       UpdateKnowledgeBaseRequest.newBuilder()
860    *           .setKnowledgeBase(KnowledgeBase.newBuilder().build())
861    *           .setUpdateMask(FieldMask.newBuilder().build())
862    *           .build();
863    *   ApiFuture<KnowledgeBase> future =
864    *       knowledgeBasesClient.updateKnowledgeBaseCallable().futureCall(request);
865    *   // Do something.
866    *   KnowledgeBase response = future.get();
867    * }
868    * }</pre>
869    */
870   public final UnaryCallable<UpdateKnowledgeBaseRequest, KnowledgeBase>
updateKnowledgeBaseCallable()871       updateKnowledgeBaseCallable() {
872     return stub.updateKnowledgeBaseCallable();
873   }
874 
875   // AUTO-GENERATED DOCUMENTATION AND METHOD.
876   /**
877    * Lists information about the supported locations for this service.
878    *
879    * <p>Sample code:
880    *
881    * <pre>{@code
882    * // This snippet has been automatically generated and should be regarded as a code template only.
883    * // It will require modifications to work:
884    * // - It may require correct/in-range values for request initialization.
885    * // - It may require specifying regional endpoints when creating the service client as shown in
886    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
887    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
888    *   ListLocationsRequest request =
889    *       ListLocationsRequest.newBuilder()
890    *           .setName("name3373707")
891    *           .setFilter("filter-1274492040")
892    *           .setPageSize(883849137)
893    *           .setPageToken("pageToken873572522")
894    *           .build();
895    *   for (Location element : knowledgeBasesClient.listLocations(request).iterateAll()) {
896    *     // doThingsWith(element);
897    *   }
898    * }
899    * }</pre>
900    *
901    * @param request The request object containing all of the parameters for the API call.
902    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
903    */
listLocations(ListLocationsRequest request)904   public final ListLocationsPagedResponse listLocations(ListLocationsRequest request) {
905     return listLocationsPagedCallable().call(request);
906   }
907 
908   // AUTO-GENERATED DOCUMENTATION AND METHOD.
909   /**
910    * Lists information about the supported locations for this service.
911    *
912    * <p>Sample code:
913    *
914    * <pre>{@code
915    * // This snippet has been automatically generated and should be regarded as a code template only.
916    * // It will require modifications to work:
917    * // - It may require correct/in-range values for request initialization.
918    * // - It may require specifying regional endpoints when creating the service client as shown in
919    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
920    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
921    *   ListLocationsRequest request =
922    *       ListLocationsRequest.newBuilder()
923    *           .setName("name3373707")
924    *           .setFilter("filter-1274492040")
925    *           .setPageSize(883849137)
926    *           .setPageToken("pageToken873572522")
927    *           .build();
928    *   ApiFuture<Location> future =
929    *       knowledgeBasesClient.listLocationsPagedCallable().futureCall(request);
930    *   // Do something.
931    *   for (Location element : future.get().iterateAll()) {
932    *     // doThingsWith(element);
933    *   }
934    * }
935    * }</pre>
936    */
937   public final UnaryCallable<ListLocationsRequest, ListLocationsPagedResponse>
listLocationsPagedCallable()938       listLocationsPagedCallable() {
939     return stub.listLocationsPagedCallable();
940   }
941 
942   // AUTO-GENERATED DOCUMENTATION AND METHOD.
943   /**
944    * Lists information about the supported locations for this service.
945    *
946    * <p>Sample code:
947    *
948    * <pre>{@code
949    * // This snippet has been automatically generated and should be regarded as a code template only.
950    * // It will require modifications to work:
951    * // - It may require correct/in-range values for request initialization.
952    * // - It may require specifying regional endpoints when creating the service client as shown in
953    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
954    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
955    *   ListLocationsRequest request =
956    *       ListLocationsRequest.newBuilder()
957    *           .setName("name3373707")
958    *           .setFilter("filter-1274492040")
959    *           .setPageSize(883849137)
960    *           .setPageToken("pageToken873572522")
961    *           .build();
962    *   while (true) {
963    *     ListLocationsResponse response = knowledgeBasesClient.listLocationsCallable().call(request);
964    *     for (Location element : response.getLocationsList()) {
965    *       // doThingsWith(element);
966    *     }
967    *     String nextPageToken = response.getNextPageToken();
968    *     if (!Strings.isNullOrEmpty(nextPageToken)) {
969    *       request = request.toBuilder().setPageToken(nextPageToken).build();
970    *     } else {
971    *       break;
972    *     }
973    *   }
974    * }
975    * }</pre>
976    */
listLocationsCallable()977   public final UnaryCallable<ListLocationsRequest, ListLocationsResponse> listLocationsCallable() {
978     return stub.listLocationsCallable();
979   }
980 
981   // AUTO-GENERATED DOCUMENTATION AND METHOD.
982   /**
983    * Gets information about a location.
984    *
985    * <p>Sample code:
986    *
987    * <pre>{@code
988    * // This snippet has been automatically generated and should be regarded as a code template only.
989    * // It will require modifications to work:
990    * // - It may require correct/in-range values for request initialization.
991    * // - It may require specifying regional endpoints when creating the service client as shown in
992    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
993    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
994    *   GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
995    *   Location response = knowledgeBasesClient.getLocation(request);
996    * }
997    * }</pre>
998    *
999    * @param request The request object containing all of the parameters for the API call.
1000    * @throws com.google.api.gax.rpc.ApiException if the remote call fails
1001    */
getLocation(GetLocationRequest request)1002   public final Location getLocation(GetLocationRequest request) {
1003     return getLocationCallable().call(request);
1004   }
1005 
1006   // AUTO-GENERATED DOCUMENTATION AND METHOD.
1007   /**
1008    * Gets information about a location.
1009    *
1010    * <p>Sample code:
1011    *
1012    * <pre>{@code
1013    * // This snippet has been automatically generated and should be regarded as a code template only.
1014    * // It will require modifications to work:
1015    * // - It may require correct/in-range values for request initialization.
1016    * // - It may require specifying regional endpoints when creating the service client as shown in
1017    * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
1018    * try (KnowledgeBasesClient knowledgeBasesClient = KnowledgeBasesClient.create()) {
1019    *   GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
1020    *   ApiFuture<Location> future = knowledgeBasesClient.getLocationCallable().futureCall(request);
1021    *   // Do something.
1022    *   Location response = future.get();
1023    * }
1024    * }</pre>
1025    */
getLocationCallable()1026   public final UnaryCallable<GetLocationRequest, Location> getLocationCallable() {
1027     return stub.getLocationCallable();
1028   }
1029 
1030   @Override
close()1031   public final void close() {
1032     stub.close();
1033   }
1034 
1035   @Override
shutdown()1036   public void shutdown() {
1037     stub.shutdown();
1038   }
1039 
1040   @Override
isShutdown()1041   public boolean isShutdown() {
1042     return stub.isShutdown();
1043   }
1044 
1045   @Override
isTerminated()1046   public boolean isTerminated() {
1047     return stub.isTerminated();
1048   }
1049 
1050   @Override
shutdownNow()1051   public void shutdownNow() {
1052     stub.shutdownNow();
1053   }
1054 
1055   @Override
awaitTermination(long duration, TimeUnit unit)1056   public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
1057     return stub.awaitTermination(duration, unit);
1058   }
1059 
1060   public static class ListKnowledgeBasesPagedResponse
1061       extends AbstractPagedListResponse<
1062           ListKnowledgeBasesRequest,
1063           ListKnowledgeBasesResponse,
1064           KnowledgeBase,
1065           ListKnowledgeBasesPage,
1066           ListKnowledgeBasesFixedSizeCollection> {
1067 
createAsync( PageContext<ListKnowledgeBasesRequest, ListKnowledgeBasesResponse, KnowledgeBase> context, ApiFuture<ListKnowledgeBasesResponse> futureResponse)1068     public static ApiFuture<ListKnowledgeBasesPagedResponse> createAsync(
1069         PageContext<ListKnowledgeBasesRequest, ListKnowledgeBasesResponse, KnowledgeBase> context,
1070         ApiFuture<ListKnowledgeBasesResponse> futureResponse) {
1071       ApiFuture<ListKnowledgeBasesPage> futurePage =
1072           ListKnowledgeBasesPage.createEmptyPage().createPageAsync(context, futureResponse);
1073       return ApiFutures.transform(
1074           futurePage,
1075           input -> new ListKnowledgeBasesPagedResponse(input),
1076           MoreExecutors.directExecutor());
1077     }
1078 
ListKnowledgeBasesPagedResponse(ListKnowledgeBasesPage page)1079     private ListKnowledgeBasesPagedResponse(ListKnowledgeBasesPage page) {
1080       super(page, ListKnowledgeBasesFixedSizeCollection.createEmptyCollection());
1081     }
1082   }
1083 
1084   public static class ListKnowledgeBasesPage
1085       extends AbstractPage<
1086           ListKnowledgeBasesRequest,
1087           ListKnowledgeBasesResponse,
1088           KnowledgeBase,
1089           ListKnowledgeBasesPage> {
1090 
ListKnowledgeBasesPage( PageContext<ListKnowledgeBasesRequest, ListKnowledgeBasesResponse, KnowledgeBase> context, ListKnowledgeBasesResponse response)1091     private ListKnowledgeBasesPage(
1092         PageContext<ListKnowledgeBasesRequest, ListKnowledgeBasesResponse, KnowledgeBase> context,
1093         ListKnowledgeBasesResponse response) {
1094       super(context, response);
1095     }
1096 
createEmptyPage()1097     private static ListKnowledgeBasesPage createEmptyPage() {
1098       return new ListKnowledgeBasesPage(null, null);
1099     }
1100 
1101     @Override
createPage( PageContext<ListKnowledgeBasesRequest, ListKnowledgeBasesResponse, KnowledgeBase> context, ListKnowledgeBasesResponse response)1102     protected ListKnowledgeBasesPage createPage(
1103         PageContext<ListKnowledgeBasesRequest, ListKnowledgeBasesResponse, KnowledgeBase> context,
1104         ListKnowledgeBasesResponse response) {
1105       return new ListKnowledgeBasesPage(context, response);
1106     }
1107 
1108     @Override
createPageAsync( PageContext<ListKnowledgeBasesRequest, ListKnowledgeBasesResponse, KnowledgeBase> context, ApiFuture<ListKnowledgeBasesResponse> futureResponse)1109     public ApiFuture<ListKnowledgeBasesPage> createPageAsync(
1110         PageContext<ListKnowledgeBasesRequest, ListKnowledgeBasesResponse, KnowledgeBase> context,
1111         ApiFuture<ListKnowledgeBasesResponse> futureResponse) {
1112       return super.createPageAsync(context, futureResponse);
1113     }
1114   }
1115 
1116   public static class ListKnowledgeBasesFixedSizeCollection
1117       extends AbstractFixedSizeCollection<
1118           ListKnowledgeBasesRequest,
1119           ListKnowledgeBasesResponse,
1120           KnowledgeBase,
1121           ListKnowledgeBasesPage,
1122           ListKnowledgeBasesFixedSizeCollection> {
1123 
ListKnowledgeBasesFixedSizeCollection( List<ListKnowledgeBasesPage> pages, int collectionSize)1124     private ListKnowledgeBasesFixedSizeCollection(
1125         List<ListKnowledgeBasesPage> pages, int collectionSize) {
1126       super(pages, collectionSize);
1127     }
1128 
createEmptyCollection()1129     private static ListKnowledgeBasesFixedSizeCollection createEmptyCollection() {
1130       return new ListKnowledgeBasesFixedSizeCollection(null, 0);
1131     }
1132 
1133     @Override
createCollection( List<ListKnowledgeBasesPage> pages, int collectionSize)1134     protected ListKnowledgeBasesFixedSizeCollection createCollection(
1135         List<ListKnowledgeBasesPage> pages, int collectionSize) {
1136       return new ListKnowledgeBasesFixedSizeCollection(pages, collectionSize);
1137     }
1138   }
1139 
1140   public static class ListLocationsPagedResponse
1141       extends AbstractPagedListResponse<
1142           ListLocationsRequest,
1143           ListLocationsResponse,
1144           Location,
1145           ListLocationsPage,
1146           ListLocationsFixedSizeCollection> {
1147 
createAsync( PageContext<ListLocationsRequest, ListLocationsResponse, Location> context, ApiFuture<ListLocationsResponse> futureResponse)1148     public static ApiFuture<ListLocationsPagedResponse> createAsync(
1149         PageContext<ListLocationsRequest, ListLocationsResponse, Location> context,
1150         ApiFuture<ListLocationsResponse> futureResponse) {
1151       ApiFuture<ListLocationsPage> futurePage =
1152           ListLocationsPage.createEmptyPage().createPageAsync(context, futureResponse);
1153       return ApiFutures.transform(
1154           futurePage,
1155           input -> new ListLocationsPagedResponse(input),
1156           MoreExecutors.directExecutor());
1157     }
1158 
ListLocationsPagedResponse(ListLocationsPage page)1159     private ListLocationsPagedResponse(ListLocationsPage page) {
1160       super(page, ListLocationsFixedSizeCollection.createEmptyCollection());
1161     }
1162   }
1163 
1164   public static class ListLocationsPage
1165       extends AbstractPage<
1166           ListLocationsRequest, ListLocationsResponse, Location, ListLocationsPage> {
1167 
ListLocationsPage( PageContext<ListLocationsRequest, ListLocationsResponse, Location> context, ListLocationsResponse response)1168     private ListLocationsPage(
1169         PageContext<ListLocationsRequest, ListLocationsResponse, Location> context,
1170         ListLocationsResponse response) {
1171       super(context, response);
1172     }
1173 
createEmptyPage()1174     private static ListLocationsPage createEmptyPage() {
1175       return new ListLocationsPage(null, null);
1176     }
1177 
1178     @Override
createPage( PageContext<ListLocationsRequest, ListLocationsResponse, Location> context, ListLocationsResponse response)1179     protected ListLocationsPage createPage(
1180         PageContext<ListLocationsRequest, ListLocationsResponse, Location> context,
1181         ListLocationsResponse response) {
1182       return new ListLocationsPage(context, response);
1183     }
1184 
1185     @Override
createPageAsync( PageContext<ListLocationsRequest, ListLocationsResponse, Location> context, ApiFuture<ListLocationsResponse> futureResponse)1186     public ApiFuture<ListLocationsPage> createPageAsync(
1187         PageContext<ListLocationsRequest, ListLocationsResponse, Location> context,
1188         ApiFuture<ListLocationsResponse> futureResponse) {
1189       return super.createPageAsync(context, futureResponse);
1190     }
1191   }
1192 
1193   public static class ListLocationsFixedSizeCollection
1194       extends AbstractFixedSizeCollection<
1195           ListLocationsRequest,
1196           ListLocationsResponse,
1197           Location,
1198           ListLocationsPage,
1199           ListLocationsFixedSizeCollection> {
1200 
ListLocationsFixedSizeCollection(List<ListLocationsPage> pages, int collectionSize)1201     private ListLocationsFixedSizeCollection(List<ListLocationsPage> pages, int collectionSize) {
1202       super(pages, collectionSize);
1203     }
1204 
createEmptyCollection()1205     private static ListLocationsFixedSizeCollection createEmptyCollection() {
1206       return new ListLocationsFixedSizeCollection(null, 0);
1207     }
1208 
1209     @Override
createCollection( List<ListLocationsPage> pages, int collectionSize)1210     protected ListLocationsFixedSizeCollection createCollection(
1211         List<ListLocationsPage> pages, int collectionSize) {
1212       return new ListLocationsFixedSizeCollection(pages, collectionSize);
1213     }
1214   }
1215 }
1216