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/<Project ID>/locations/<Location ID>`. 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/<Project ID>/locations/<Location ID>`. 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/<Project ID>/locations/<Location ID>`. 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/<Project 405 * ID>/locations/<Location ID>/knowledgeBases/<Knowledge Base ID>`. 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/<Project 434 * ID>/locations/<Location ID>/knowledgeBases/<Knowledge Base ID>`. 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/<Project ID>/locations/<Location ID>`. 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/<Project ID>/locations/<Location ID>`. 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/<Project ID>/locations/<Location ID>`. 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/<Project 680 * ID>/locations/<Location ID>/knowledgeBases/<Knowledge Base ID>`. 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/<Project 711 * ID>/locations/<Location ID>/knowledgeBases/<Knowledge Base ID>`. 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