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