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.compute.v1; 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.longrunning.OperationFuture; 24 import com.google.api.gax.paging.AbstractFixedSizeCollection; 25 import com.google.api.gax.paging.AbstractPage; 26 import com.google.api.gax.paging.AbstractPagedListResponse; 27 import com.google.api.gax.rpc.OperationCallable; 28 import com.google.api.gax.rpc.PageContext; 29 import com.google.api.gax.rpc.UnaryCallable; 30 import com.google.cloud.compute.v1.stub.RegionInstanceGroupsStub; 31 import com.google.cloud.compute.v1.stub.RegionInstanceGroupsStubSettings; 32 import com.google.common.util.concurrent.MoreExecutors; 33 import java.io.IOException; 34 import java.util.List; 35 import java.util.concurrent.TimeUnit; 36 import javax.annotation.Generated; 37 38 // AUTO-GENERATED DOCUMENTATION AND CLASS. 39 /** 40 * Service Description: The RegionInstanceGroups API. 41 * 42 * <p>This class provides the ability to make remote calls to the backing service through method 43 * calls that map to API methods. Sample code to get started: 44 * 45 * <pre>{@code 46 * // This snippet has been automatically generated and should be regarded as a code template only. 47 * // It will require modifications to work: 48 * // - It may require correct/in-range values for request initialization. 49 * // - It may require specifying regional endpoints when creating the service client as shown in 50 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 51 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 52 * RegionInstanceGroupsClient.create()) { 53 * String project = "project-309310695"; 54 * String region = "region-934795532"; 55 * String instanceGroup = "instanceGroup-1404696854"; 56 * InstanceGroup response = regionInstanceGroupsClient.get(project, region, instanceGroup); 57 * } 58 * }</pre> 59 * 60 * <p>Note: close() needs to be called on the RegionInstanceGroupsClient object to clean up 61 * resources such as threads. In the example above, try-with-resources is used, which automatically 62 * calls close(). 63 * 64 * <p>The surface of this class includes several types of Java methods for each of the API's 65 * methods: 66 * 67 * <ol> 68 * <li>A "flattened" method. With this type of method, the fields of the request type have been 69 * converted into function parameters. It may be the case that not all fields are available as 70 * parameters, and not every API method will have a flattened method entry point. 71 * <li>A "request object" method. This type of method only takes one parameter, a request object, 72 * which must be constructed before the call. Not every API method will have a request object 73 * method. 74 * <li>A "callable" method. This type of method takes no parameters and returns an immutable API 75 * callable object, which can be used to initiate calls to the service. 76 * </ol> 77 * 78 * <p>See the individual methods for example code. 79 * 80 * <p>Many parameters require resource names to be formatted in a particular way. To assist with 81 * these names, this class includes a format method for each type of name, and additionally a parse 82 * method to extract the individual identifiers contained within names that are returned. 83 * 84 * <p>This class can be customized by passing in a custom instance of RegionInstanceGroupsSettings 85 * to create(). For example: 86 * 87 * <p>To customize credentials: 88 * 89 * <pre>{@code 90 * // This snippet has been automatically generated and should be regarded as a code template only. 91 * // It will require modifications to work: 92 * // - It may require correct/in-range values for request initialization. 93 * // - It may require specifying regional endpoints when creating the service client as shown in 94 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 95 * RegionInstanceGroupsSettings regionInstanceGroupsSettings = 96 * RegionInstanceGroupsSettings.newBuilder() 97 * .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials)) 98 * .build(); 99 * RegionInstanceGroupsClient regionInstanceGroupsClient = 100 * RegionInstanceGroupsClient.create(regionInstanceGroupsSettings); 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 * RegionInstanceGroupsSettings regionInstanceGroupsSettings = 112 * RegionInstanceGroupsSettings.newBuilder().setEndpoint(myEndpoint).build(); 113 * RegionInstanceGroupsClient regionInstanceGroupsClient = 114 * RegionInstanceGroupsClient.create(regionInstanceGroupsSettings); 115 * }</pre> 116 * 117 * <p>Please refer to the GitHub repository's samples for more quickstart code snippets. 118 */ 119 @Generated("by gapic-generator-java") 120 public class RegionInstanceGroupsClient implements BackgroundResource { 121 private final RegionInstanceGroupsSettings settings; 122 private final RegionInstanceGroupsStub stub; 123 124 /** Constructs an instance of RegionInstanceGroupsClient with default settings. */ create()125 public static final RegionInstanceGroupsClient create() throws IOException { 126 return create(RegionInstanceGroupsSettings.newBuilder().build()); 127 } 128 129 /** 130 * Constructs an instance of RegionInstanceGroupsClient, using the given settings. The channels 131 * are created based on the settings passed in, or defaults for any settings that are not set. 132 */ create(RegionInstanceGroupsSettings settings)133 public static final RegionInstanceGroupsClient create(RegionInstanceGroupsSettings settings) 134 throws IOException { 135 return new RegionInstanceGroupsClient(settings); 136 } 137 138 /** 139 * Constructs an instance of RegionInstanceGroupsClient, using the given stub for making calls. 140 * This is for advanced usage - prefer using create(RegionInstanceGroupsSettings). 141 */ create(RegionInstanceGroupsStub stub)142 public static final RegionInstanceGroupsClient create(RegionInstanceGroupsStub stub) { 143 return new RegionInstanceGroupsClient(stub); 144 } 145 146 /** 147 * Constructs an instance of RegionInstanceGroupsClient, using the given settings. This is 148 * protected so that it is easy to make a subclass, but otherwise, the static factory methods 149 * should be preferred. 150 */ RegionInstanceGroupsClient(RegionInstanceGroupsSettings settings)151 protected RegionInstanceGroupsClient(RegionInstanceGroupsSettings settings) throws IOException { 152 this.settings = settings; 153 this.stub = ((RegionInstanceGroupsStubSettings) settings.getStubSettings()).createStub(); 154 } 155 RegionInstanceGroupsClient(RegionInstanceGroupsStub stub)156 protected RegionInstanceGroupsClient(RegionInstanceGroupsStub stub) { 157 this.settings = null; 158 this.stub = stub; 159 } 160 getSettings()161 public final RegionInstanceGroupsSettings getSettings() { 162 return settings; 163 } 164 getStub()165 public RegionInstanceGroupsStub getStub() { 166 return stub; 167 } 168 169 // AUTO-GENERATED DOCUMENTATION AND METHOD. 170 /** 171 * Returns the specified instance group resource. 172 * 173 * <p>Sample code: 174 * 175 * <pre>{@code 176 * // This snippet has been automatically generated and should be regarded as a code template only. 177 * // It will require modifications to work: 178 * // - It may require correct/in-range values for request initialization. 179 * // - It may require specifying regional endpoints when creating the service client as shown in 180 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 181 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 182 * RegionInstanceGroupsClient.create()) { 183 * String project = "project-309310695"; 184 * String region = "region-934795532"; 185 * String instanceGroup = "instanceGroup-1404696854"; 186 * InstanceGroup response = regionInstanceGroupsClient.get(project, region, instanceGroup); 187 * } 188 * }</pre> 189 * 190 * @param project Project ID for this request. 191 * @param region Name of the region scoping this request. 192 * @param instanceGroup Name of the instance group resource to return. 193 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 194 */ get(String project, String region, String instanceGroup)195 public final InstanceGroup get(String project, String region, String instanceGroup) { 196 GetRegionInstanceGroupRequest request = 197 GetRegionInstanceGroupRequest.newBuilder() 198 .setProject(project) 199 .setRegion(region) 200 .setInstanceGroup(instanceGroup) 201 .build(); 202 return get(request); 203 } 204 205 // AUTO-GENERATED DOCUMENTATION AND METHOD. 206 /** 207 * Returns the specified instance group resource. 208 * 209 * <p>Sample code: 210 * 211 * <pre>{@code 212 * // This snippet has been automatically generated and should be regarded as a code template only. 213 * // It will require modifications to work: 214 * // - It may require correct/in-range values for request initialization. 215 * // - It may require specifying regional endpoints when creating the service client as shown in 216 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 217 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 218 * RegionInstanceGroupsClient.create()) { 219 * GetRegionInstanceGroupRequest request = 220 * GetRegionInstanceGroupRequest.newBuilder() 221 * .setInstanceGroup("instanceGroup-1404696854") 222 * .setProject("project-309310695") 223 * .setRegion("region-934795532") 224 * .build(); 225 * InstanceGroup response = regionInstanceGroupsClient.get(request); 226 * } 227 * }</pre> 228 * 229 * @param request The request object containing all of the parameters for the API call. 230 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 231 */ get(GetRegionInstanceGroupRequest request)232 public final InstanceGroup get(GetRegionInstanceGroupRequest request) { 233 return getCallable().call(request); 234 } 235 236 // AUTO-GENERATED DOCUMENTATION AND METHOD. 237 /** 238 * Returns the specified instance group resource. 239 * 240 * <p>Sample code: 241 * 242 * <pre>{@code 243 * // This snippet has been automatically generated and should be regarded as a code template only. 244 * // It will require modifications to work: 245 * // - It may require correct/in-range values for request initialization. 246 * // - It may require specifying regional endpoints when creating the service client as shown in 247 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 248 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 249 * RegionInstanceGroupsClient.create()) { 250 * GetRegionInstanceGroupRequest request = 251 * GetRegionInstanceGroupRequest.newBuilder() 252 * .setInstanceGroup("instanceGroup-1404696854") 253 * .setProject("project-309310695") 254 * .setRegion("region-934795532") 255 * .build(); 256 * ApiFuture<InstanceGroup> future = 257 * regionInstanceGroupsClient.getCallable().futureCall(request); 258 * // Do something. 259 * InstanceGroup response = future.get(); 260 * } 261 * }</pre> 262 */ getCallable()263 public final UnaryCallable<GetRegionInstanceGroupRequest, InstanceGroup> getCallable() { 264 return stub.getCallable(); 265 } 266 267 // AUTO-GENERATED DOCUMENTATION AND METHOD. 268 /** 269 * Retrieves the list of instance group resources contained within the specified region. 270 * 271 * <p>Sample code: 272 * 273 * <pre>{@code 274 * // This snippet has been automatically generated and should be regarded as a code template only. 275 * // It will require modifications to work: 276 * // - It may require correct/in-range values for request initialization. 277 * // - It may require specifying regional endpoints when creating the service client as shown in 278 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 279 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 280 * RegionInstanceGroupsClient.create()) { 281 * String project = "project-309310695"; 282 * String region = "region-934795532"; 283 * for (InstanceGroup element : regionInstanceGroupsClient.list(project, region).iterateAll()) { 284 * // doThingsWith(element); 285 * } 286 * } 287 * }</pre> 288 * 289 * @param project Project ID for this request. 290 * @param region Name of the region scoping this request. 291 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 292 */ list(String project, String region)293 public final ListPagedResponse list(String project, String region) { 294 ListRegionInstanceGroupsRequest request = 295 ListRegionInstanceGroupsRequest.newBuilder().setProject(project).setRegion(region).build(); 296 return list(request); 297 } 298 299 // AUTO-GENERATED DOCUMENTATION AND METHOD. 300 /** 301 * Retrieves the list of instance group resources contained within the specified region. 302 * 303 * <p>Sample code: 304 * 305 * <pre>{@code 306 * // This snippet has been automatically generated and should be regarded as a code template only. 307 * // It will require modifications to work: 308 * // - It may require correct/in-range values for request initialization. 309 * // - It may require specifying regional endpoints when creating the service client as shown in 310 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 311 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 312 * RegionInstanceGroupsClient.create()) { 313 * ListRegionInstanceGroupsRequest request = 314 * ListRegionInstanceGroupsRequest.newBuilder() 315 * .setFilter("filter-1274492040") 316 * .setMaxResults(1128457243) 317 * .setOrderBy("orderBy-1207110587") 318 * .setPageToken("pageToken873572522") 319 * .setProject("project-309310695") 320 * .setRegion("region-934795532") 321 * .setReturnPartialSuccess(true) 322 * .build(); 323 * for (InstanceGroup element : regionInstanceGroupsClient.list(request).iterateAll()) { 324 * // doThingsWith(element); 325 * } 326 * } 327 * }</pre> 328 * 329 * @param request The request object containing all of the parameters for the API call. 330 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 331 */ list(ListRegionInstanceGroupsRequest request)332 public final ListPagedResponse list(ListRegionInstanceGroupsRequest request) { 333 return listPagedCallable().call(request); 334 } 335 336 // AUTO-GENERATED DOCUMENTATION AND METHOD. 337 /** 338 * Retrieves the list of instance group resources contained within the specified region. 339 * 340 * <p>Sample code: 341 * 342 * <pre>{@code 343 * // This snippet has been automatically generated and should be regarded as a code template only. 344 * // It will require modifications to work: 345 * // - It may require correct/in-range values for request initialization. 346 * // - It may require specifying regional endpoints when creating the service client as shown in 347 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 348 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 349 * RegionInstanceGroupsClient.create()) { 350 * ListRegionInstanceGroupsRequest request = 351 * ListRegionInstanceGroupsRequest.newBuilder() 352 * .setFilter("filter-1274492040") 353 * .setMaxResults(1128457243) 354 * .setOrderBy("orderBy-1207110587") 355 * .setPageToken("pageToken873572522") 356 * .setProject("project-309310695") 357 * .setRegion("region-934795532") 358 * .setReturnPartialSuccess(true) 359 * .build(); 360 * ApiFuture<InstanceGroup> future = 361 * regionInstanceGroupsClient.listPagedCallable().futureCall(request); 362 * // Do something. 363 * for (InstanceGroup element : future.get().iterateAll()) { 364 * // doThingsWith(element); 365 * } 366 * } 367 * }</pre> 368 */ 369 public final UnaryCallable<ListRegionInstanceGroupsRequest, ListPagedResponse> listPagedCallable()370 listPagedCallable() { 371 return stub.listPagedCallable(); 372 } 373 374 // AUTO-GENERATED DOCUMENTATION AND METHOD. 375 /** 376 * Retrieves the list of instance group resources contained within the specified region. 377 * 378 * <p>Sample code: 379 * 380 * <pre>{@code 381 * // This snippet has been automatically generated and should be regarded as a code template only. 382 * // It will require modifications to work: 383 * // - It may require correct/in-range values for request initialization. 384 * // - It may require specifying regional endpoints when creating the service client as shown in 385 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 386 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 387 * RegionInstanceGroupsClient.create()) { 388 * ListRegionInstanceGroupsRequest request = 389 * ListRegionInstanceGroupsRequest.newBuilder() 390 * .setFilter("filter-1274492040") 391 * .setMaxResults(1128457243) 392 * .setOrderBy("orderBy-1207110587") 393 * .setPageToken("pageToken873572522") 394 * .setProject("project-309310695") 395 * .setRegion("region-934795532") 396 * .setReturnPartialSuccess(true) 397 * .build(); 398 * while (true) { 399 * RegionInstanceGroupList response = regionInstanceGroupsClient.listCallable().call(request); 400 * for (InstanceGroup element : response.getItemsList()) { 401 * // doThingsWith(element); 402 * } 403 * String nextPageToken = response.getNextPageToken(); 404 * if (!Strings.isNullOrEmpty(nextPageToken)) { 405 * request = request.toBuilder().setPageToken(nextPageToken).build(); 406 * } else { 407 * break; 408 * } 409 * } 410 * } 411 * }</pre> 412 */ 413 public final UnaryCallable<ListRegionInstanceGroupsRequest, RegionInstanceGroupList> listCallable()414 listCallable() { 415 return stub.listCallable(); 416 } 417 418 // AUTO-GENERATED DOCUMENTATION AND METHOD. 419 /** 420 * Lists the instances in the specified instance group and displays information about the named 421 * ports. Depending on the specified options, this method can list all instances or only the 422 * instances that are running. The orderBy query parameter is not supported. 423 * 424 * <p>Sample code: 425 * 426 * <pre>{@code 427 * // This snippet has been automatically generated and should be regarded as a code template only. 428 * // It will require modifications to work: 429 * // - It may require correct/in-range values for request initialization. 430 * // - It may require specifying regional endpoints when creating the service client as shown in 431 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 432 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 433 * RegionInstanceGroupsClient.create()) { 434 * String project = "project-309310695"; 435 * String region = "region-934795532"; 436 * String instanceGroup = "instanceGroup-1404696854"; 437 * RegionInstanceGroupsListInstancesRequest regionInstanceGroupsListInstancesRequestResource = 438 * RegionInstanceGroupsListInstancesRequest.newBuilder().build(); 439 * for (InstanceWithNamedPorts element : 440 * regionInstanceGroupsClient 441 * .listInstances( 442 * project, region, instanceGroup, regionInstanceGroupsListInstancesRequestResource) 443 * .iterateAll()) { 444 * // doThingsWith(element); 445 * } 446 * } 447 * }</pre> 448 * 449 * @param project Project ID for this request. 450 * @param region Name of the region scoping this request. 451 * @param instanceGroup Name of the regional instance group for which we want to list the 452 * instances. 453 * @param regionInstanceGroupsListInstancesRequestResource The body resource for this request 454 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 455 */ listInstances( String project, String region, String instanceGroup, RegionInstanceGroupsListInstancesRequest regionInstanceGroupsListInstancesRequestResource)456 public final ListInstancesPagedResponse listInstances( 457 String project, 458 String region, 459 String instanceGroup, 460 RegionInstanceGroupsListInstancesRequest regionInstanceGroupsListInstancesRequestResource) { 461 ListInstancesRegionInstanceGroupsRequest request = 462 ListInstancesRegionInstanceGroupsRequest.newBuilder() 463 .setProject(project) 464 .setRegion(region) 465 .setInstanceGroup(instanceGroup) 466 .setRegionInstanceGroupsListInstancesRequestResource( 467 regionInstanceGroupsListInstancesRequestResource) 468 .build(); 469 return listInstances(request); 470 } 471 472 // AUTO-GENERATED DOCUMENTATION AND METHOD. 473 /** 474 * Lists the instances in the specified instance group and displays information about the named 475 * ports. Depending on the specified options, this method can list all instances or only the 476 * instances that are running. The orderBy query parameter is not supported. 477 * 478 * <p>Sample code: 479 * 480 * <pre>{@code 481 * // This snippet has been automatically generated and should be regarded as a code template only. 482 * // It will require modifications to work: 483 * // - It may require correct/in-range values for request initialization. 484 * // - It may require specifying regional endpoints when creating the service client as shown in 485 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 486 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 487 * RegionInstanceGroupsClient.create()) { 488 * ListInstancesRegionInstanceGroupsRequest request = 489 * ListInstancesRegionInstanceGroupsRequest.newBuilder() 490 * .setFilter("filter-1274492040") 491 * .setInstanceGroup("instanceGroup-1404696854") 492 * .setMaxResults(1128457243) 493 * .setOrderBy("orderBy-1207110587") 494 * .setPageToken("pageToken873572522") 495 * .setProject("project-309310695") 496 * .setRegion("region-934795532") 497 * .setRegionInstanceGroupsListInstancesRequestResource( 498 * RegionInstanceGroupsListInstancesRequest.newBuilder().build()) 499 * .setReturnPartialSuccess(true) 500 * .build(); 501 * for (InstanceWithNamedPorts element : 502 * regionInstanceGroupsClient.listInstances(request).iterateAll()) { 503 * // doThingsWith(element); 504 * } 505 * } 506 * }</pre> 507 * 508 * @param request The request object containing all of the parameters for the API call. 509 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 510 */ listInstances( ListInstancesRegionInstanceGroupsRequest request)511 public final ListInstancesPagedResponse listInstances( 512 ListInstancesRegionInstanceGroupsRequest request) { 513 return listInstancesPagedCallable().call(request); 514 } 515 516 // AUTO-GENERATED DOCUMENTATION AND METHOD. 517 /** 518 * Lists the instances in the specified instance group and displays information about the named 519 * ports. Depending on the specified options, this method can list all instances or only the 520 * instances that are running. The orderBy query parameter is not supported. 521 * 522 * <p>Sample code: 523 * 524 * <pre>{@code 525 * // This snippet has been automatically generated and should be regarded as a code template only. 526 * // It will require modifications to work: 527 * // - It may require correct/in-range values for request initialization. 528 * // - It may require specifying regional endpoints when creating the service client as shown in 529 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 530 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 531 * RegionInstanceGroupsClient.create()) { 532 * ListInstancesRegionInstanceGroupsRequest request = 533 * ListInstancesRegionInstanceGroupsRequest.newBuilder() 534 * .setFilter("filter-1274492040") 535 * .setInstanceGroup("instanceGroup-1404696854") 536 * .setMaxResults(1128457243) 537 * .setOrderBy("orderBy-1207110587") 538 * .setPageToken("pageToken873572522") 539 * .setProject("project-309310695") 540 * .setRegion("region-934795532") 541 * .setRegionInstanceGroupsListInstancesRequestResource( 542 * RegionInstanceGroupsListInstancesRequest.newBuilder().build()) 543 * .setReturnPartialSuccess(true) 544 * .build(); 545 * ApiFuture<InstanceWithNamedPorts> future = 546 * regionInstanceGroupsClient.listInstancesPagedCallable().futureCall(request); 547 * // Do something. 548 * for (InstanceWithNamedPorts element : future.get().iterateAll()) { 549 * // doThingsWith(element); 550 * } 551 * } 552 * }</pre> 553 */ 554 public final UnaryCallable<ListInstancesRegionInstanceGroupsRequest, ListInstancesPagedResponse> listInstancesPagedCallable()555 listInstancesPagedCallable() { 556 return stub.listInstancesPagedCallable(); 557 } 558 559 // AUTO-GENERATED DOCUMENTATION AND METHOD. 560 /** 561 * Lists the instances in the specified instance group and displays information about the named 562 * ports. Depending on the specified options, this method can list all instances or only the 563 * instances that are running. The orderBy query parameter is not supported. 564 * 565 * <p>Sample code: 566 * 567 * <pre>{@code 568 * // This snippet has been automatically generated and should be regarded as a code template only. 569 * // It will require modifications to work: 570 * // - It may require correct/in-range values for request initialization. 571 * // - It may require specifying regional endpoints when creating the service client as shown in 572 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 573 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 574 * RegionInstanceGroupsClient.create()) { 575 * ListInstancesRegionInstanceGroupsRequest request = 576 * ListInstancesRegionInstanceGroupsRequest.newBuilder() 577 * .setFilter("filter-1274492040") 578 * .setInstanceGroup("instanceGroup-1404696854") 579 * .setMaxResults(1128457243) 580 * .setOrderBy("orderBy-1207110587") 581 * .setPageToken("pageToken873572522") 582 * .setProject("project-309310695") 583 * .setRegion("region-934795532") 584 * .setRegionInstanceGroupsListInstancesRequestResource( 585 * RegionInstanceGroupsListInstancesRequest.newBuilder().build()) 586 * .setReturnPartialSuccess(true) 587 * .build(); 588 * while (true) { 589 * RegionInstanceGroupsListInstances response = 590 * regionInstanceGroupsClient.listInstancesCallable().call(request); 591 * for (InstanceWithNamedPorts element : response.getItemsList()) { 592 * // doThingsWith(element); 593 * } 594 * String nextPageToken = response.getNextPageToken(); 595 * if (!Strings.isNullOrEmpty(nextPageToken)) { 596 * request = request.toBuilder().setPageToken(nextPageToken).build(); 597 * } else { 598 * break; 599 * } 600 * } 601 * } 602 * }</pre> 603 */ 604 public final UnaryCallable< 605 ListInstancesRegionInstanceGroupsRequest, RegionInstanceGroupsListInstances> listInstancesCallable()606 listInstancesCallable() { 607 return stub.listInstancesCallable(); 608 } 609 610 // AUTO-GENERATED DOCUMENTATION AND METHOD. 611 /** 612 * Sets the named ports for the specified regional instance group. 613 * 614 * <p>Sample code: 615 * 616 * <pre>{@code 617 * // This snippet has been automatically generated and should be regarded as a code template only. 618 * // It will require modifications to work: 619 * // - It may require correct/in-range values for request initialization. 620 * // - It may require specifying regional endpoints when creating the service client as shown in 621 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 622 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 623 * RegionInstanceGroupsClient.create()) { 624 * String project = "project-309310695"; 625 * String region = "region-934795532"; 626 * String instanceGroup = "instanceGroup-1404696854"; 627 * RegionInstanceGroupsSetNamedPortsRequest regionInstanceGroupsSetNamedPortsRequestResource = 628 * RegionInstanceGroupsSetNamedPortsRequest.newBuilder().build(); 629 * Operation response = 630 * regionInstanceGroupsClient 631 * .setNamedPortsAsync( 632 * project, region, instanceGroup, regionInstanceGroupsSetNamedPortsRequestResource) 633 * .get(); 634 * } 635 * }</pre> 636 * 637 * @param project Project ID for this request. 638 * @param region Name of the region scoping this request. 639 * @param instanceGroup The name of the regional instance group where the named ports are updated. 640 * @param regionInstanceGroupsSetNamedPortsRequestResource The body resource for this request 641 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 642 */ setNamedPortsAsync( String project, String region, String instanceGroup, RegionInstanceGroupsSetNamedPortsRequest regionInstanceGroupsSetNamedPortsRequestResource)643 public final OperationFuture<Operation, Operation> setNamedPortsAsync( 644 String project, 645 String region, 646 String instanceGroup, 647 RegionInstanceGroupsSetNamedPortsRequest regionInstanceGroupsSetNamedPortsRequestResource) { 648 SetNamedPortsRegionInstanceGroupRequest request = 649 SetNamedPortsRegionInstanceGroupRequest.newBuilder() 650 .setProject(project) 651 .setRegion(region) 652 .setInstanceGroup(instanceGroup) 653 .setRegionInstanceGroupsSetNamedPortsRequestResource( 654 regionInstanceGroupsSetNamedPortsRequestResource) 655 .build(); 656 return setNamedPortsAsync(request); 657 } 658 659 // AUTO-GENERATED DOCUMENTATION AND METHOD. 660 /** 661 * Sets the named ports for the specified regional instance group. 662 * 663 * <p>Sample code: 664 * 665 * <pre>{@code 666 * // This snippet has been automatically generated and should be regarded as a code template only. 667 * // It will require modifications to work: 668 * // - It may require correct/in-range values for request initialization. 669 * // - It may require specifying regional endpoints when creating the service client as shown in 670 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 671 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 672 * RegionInstanceGroupsClient.create()) { 673 * SetNamedPortsRegionInstanceGroupRequest request = 674 * SetNamedPortsRegionInstanceGroupRequest.newBuilder() 675 * .setInstanceGroup("instanceGroup-1404696854") 676 * .setProject("project-309310695") 677 * .setRegion("region-934795532") 678 * .setRegionInstanceGroupsSetNamedPortsRequestResource( 679 * RegionInstanceGroupsSetNamedPortsRequest.newBuilder().build()) 680 * .setRequestId("requestId693933066") 681 * .build(); 682 * Operation response = regionInstanceGroupsClient.setNamedPortsAsync(request).get(); 683 * } 684 * }</pre> 685 * 686 * @param request The request object containing all of the parameters for the API call. 687 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 688 */ 689 @BetaApi( 690 "The surface for long-running operations is not stable yet and may change in the future.") setNamedPortsAsync( SetNamedPortsRegionInstanceGroupRequest request)691 public final OperationFuture<Operation, Operation> setNamedPortsAsync( 692 SetNamedPortsRegionInstanceGroupRequest request) { 693 return setNamedPortsOperationCallable().futureCall(request); 694 } 695 696 // AUTO-GENERATED DOCUMENTATION AND METHOD. 697 /** 698 * Sets the named ports for the specified regional instance group. 699 * 700 * <p>Sample code: 701 * 702 * <pre>{@code 703 * // This snippet has been automatically generated and should be regarded as a code template only. 704 * // It will require modifications to work: 705 * // - It may require correct/in-range values for request initialization. 706 * // - It may require specifying regional endpoints when creating the service client as shown in 707 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 708 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 709 * RegionInstanceGroupsClient.create()) { 710 * SetNamedPortsRegionInstanceGroupRequest request = 711 * SetNamedPortsRegionInstanceGroupRequest.newBuilder() 712 * .setInstanceGroup("instanceGroup-1404696854") 713 * .setProject("project-309310695") 714 * .setRegion("region-934795532") 715 * .setRegionInstanceGroupsSetNamedPortsRequestResource( 716 * RegionInstanceGroupsSetNamedPortsRequest.newBuilder().build()) 717 * .setRequestId("requestId693933066") 718 * .build(); 719 * OperationFuture<Operation, Operation> future = 720 * regionInstanceGroupsClient.setNamedPortsOperationCallable().futureCall(request); 721 * // Do something. 722 * Operation response = future.get(); 723 * } 724 * }</pre> 725 */ 726 public final OperationCallable<SetNamedPortsRegionInstanceGroupRequest, Operation, Operation> setNamedPortsOperationCallable()727 setNamedPortsOperationCallable() { 728 return stub.setNamedPortsOperationCallable(); 729 } 730 731 // AUTO-GENERATED DOCUMENTATION AND METHOD. 732 /** 733 * Sets the named ports for the specified regional instance group. 734 * 735 * <p>Sample code: 736 * 737 * <pre>{@code 738 * // This snippet has been automatically generated and should be regarded as a code template only. 739 * // It will require modifications to work: 740 * // - It may require correct/in-range values for request initialization. 741 * // - It may require specifying regional endpoints when creating the service client as shown in 742 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 743 * try (RegionInstanceGroupsClient regionInstanceGroupsClient = 744 * RegionInstanceGroupsClient.create()) { 745 * SetNamedPortsRegionInstanceGroupRequest request = 746 * SetNamedPortsRegionInstanceGroupRequest.newBuilder() 747 * .setInstanceGroup("instanceGroup-1404696854") 748 * .setProject("project-309310695") 749 * .setRegion("region-934795532") 750 * .setRegionInstanceGroupsSetNamedPortsRequestResource( 751 * RegionInstanceGroupsSetNamedPortsRequest.newBuilder().build()) 752 * .setRequestId("requestId693933066") 753 * .build(); 754 * ApiFuture<Operation> future = 755 * regionInstanceGroupsClient.setNamedPortsCallable().futureCall(request); 756 * // Do something. 757 * Operation response = future.get(); 758 * } 759 * }</pre> 760 */ 761 public final UnaryCallable<SetNamedPortsRegionInstanceGroupRequest, Operation> setNamedPortsCallable()762 setNamedPortsCallable() { 763 return stub.setNamedPortsCallable(); 764 } 765 766 @Override close()767 public final void close() { 768 stub.close(); 769 } 770 771 @Override shutdown()772 public void shutdown() { 773 stub.shutdown(); 774 } 775 776 @Override isShutdown()777 public boolean isShutdown() { 778 return stub.isShutdown(); 779 } 780 781 @Override isTerminated()782 public boolean isTerminated() { 783 return stub.isTerminated(); 784 } 785 786 @Override shutdownNow()787 public void shutdownNow() { 788 stub.shutdownNow(); 789 } 790 791 @Override awaitTermination(long duration, TimeUnit unit)792 public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { 793 return stub.awaitTermination(duration, unit); 794 } 795 796 public static class ListPagedResponse 797 extends AbstractPagedListResponse< 798 ListRegionInstanceGroupsRequest, 799 RegionInstanceGroupList, 800 InstanceGroup, 801 ListPage, 802 ListFixedSizeCollection> { 803 createAsync( PageContext<ListRegionInstanceGroupsRequest, RegionInstanceGroupList, InstanceGroup> context, ApiFuture<RegionInstanceGroupList> futureResponse)804 public static ApiFuture<ListPagedResponse> createAsync( 805 PageContext<ListRegionInstanceGroupsRequest, RegionInstanceGroupList, InstanceGroup> 806 context, 807 ApiFuture<RegionInstanceGroupList> futureResponse) { 808 ApiFuture<ListPage> futurePage = 809 ListPage.createEmptyPage().createPageAsync(context, futureResponse); 810 return ApiFutures.transform( 811 futurePage, input -> new ListPagedResponse(input), MoreExecutors.directExecutor()); 812 } 813 ListPagedResponse(ListPage page)814 private ListPagedResponse(ListPage page) { 815 super(page, ListFixedSizeCollection.createEmptyCollection()); 816 } 817 } 818 819 public static class ListPage 820 extends AbstractPage< 821 ListRegionInstanceGroupsRequest, RegionInstanceGroupList, InstanceGroup, ListPage> { 822 ListPage( PageContext<ListRegionInstanceGroupsRequest, RegionInstanceGroupList, InstanceGroup> context, RegionInstanceGroupList response)823 private ListPage( 824 PageContext<ListRegionInstanceGroupsRequest, RegionInstanceGroupList, InstanceGroup> 825 context, 826 RegionInstanceGroupList response) { 827 super(context, response); 828 } 829 createEmptyPage()830 private static ListPage createEmptyPage() { 831 return new ListPage(null, null); 832 } 833 834 @Override createPage( PageContext<ListRegionInstanceGroupsRequest, RegionInstanceGroupList, InstanceGroup> context, RegionInstanceGroupList response)835 protected ListPage createPage( 836 PageContext<ListRegionInstanceGroupsRequest, RegionInstanceGroupList, InstanceGroup> 837 context, 838 RegionInstanceGroupList response) { 839 return new ListPage(context, response); 840 } 841 842 @Override createPageAsync( PageContext<ListRegionInstanceGroupsRequest, RegionInstanceGroupList, InstanceGroup> context, ApiFuture<RegionInstanceGroupList> futureResponse)843 public ApiFuture<ListPage> createPageAsync( 844 PageContext<ListRegionInstanceGroupsRequest, RegionInstanceGroupList, InstanceGroup> 845 context, 846 ApiFuture<RegionInstanceGroupList> futureResponse) { 847 return super.createPageAsync(context, futureResponse); 848 } 849 } 850 851 public static class ListFixedSizeCollection 852 extends AbstractFixedSizeCollection< 853 ListRegionInstanceGroupsRequest, 854 RegionInstanceGroupList, 855 InstanceGroup, 856 ListPage, 857 ListFixedSizeCollection> { 858 ListFixedSizeCollection(List<ListPage> pages, int collectionSize)859 private ListFixedSizeCollection(List<ListPage> pages, int collectionSize) { 860 super(pages, collectionSize); 861 } 862 createEmptyCollection()863 private static ListFixedSizeCollection createEmptyCollection() { 864 return new ListFixedSizeCollection(null, 0); 865 } 866 867 @Override createCollection(List<ListPage> pages, int collectionSize)868 protected ListFixedSizeCollection createCollection(List<ListPage> pages, int collectionSize) { 869 return new ListFixedSizeCollection(pages, collectionSize); 870 } 871 } 872 873 public static class ListInstancesPagedResponse 874 extends AbstractPagedListResponse< 875 ListInstancesRegionInstanceGroupsRequest, 876 RegionInstanceGroupsListInstances, 877 InstanceWithNamedPorts, 878 ListInstancesPage, 879 ListInstancesFixedSizeCollection> { 880 createAsync( PageContext< ListInstancesRegionInstanceGroupsRequest, RegionInstanceGroupsListInstances, InstanceWithNamedPorts> context, ApiFuture<RegionInstanceGroupsListInstances> futureResponse)881 public static ApiFuture<ListInstancesPagedResponse> createAsync( 882 PageContext< 883 ListInstancesRegionInstanceGroupsRequest, 884 RegionInstanceGroupsListInstances, 885 InstanceWithNamedPorts> 886 context, 887 ApiFuture<RegionInstanceGroupsListInstances> futureResponse) { 888 ApiFuture<ListInstancesPage> futurePage = 889 ListInstancesPage.createEmptyPage().createPageAsync(context, futureResponse); 890 return ApiFutures.transform( 891 futurePage, 892 input -> new ListInstancesPagedResponse(input), 893 MoreExecutors.directExecutor()); 894 } 895 ListInstancesPagedResponse(ListInstancesPage page)896 private ListInstancesPagedResponse(ListInstancesPage page) { 897 super(page, ListInstancesFixedSizeCollection.createEmptyCollection()); 898 } 899 } 900 901 public static class ListInstancesPage 902 extends AbstractPage< 903 ListInstancesRegionInstanceGroupsRequest, 904 RegionInstanceGroupsListInstances, 905 InstanceWithNamedPorts, 906 ListInstancesPage> { 907 ListInstancesPage( PageContext< ListInstancesRegionInstanceGroupsRequest, RegionInstanceGroupsListInstances, InstanceWithNamedPorts> context, RegionInstanceGroupsListInstances response)908 private ListInstancesPage( 909 PageContext< 910 ListInstancesRegionInstanceGroupsRequest, 911 RegionInstanceGroupsListInstances, 912 InstanceWithNamedPorts> 913 context, 914 RegionInstanceGroupsListInstances response) { 915 super(context, response); 916 } 917 createEmptyPage()918 private static ListInstancesPage createEmptyPage() { 919 return new ListInstancesPage(null, null); 920 } 921 922 @Override createPage( PageContext< ListInstancesRegionInstanceGroupsRequest, RegionInstanceGroupsListInstances, InstanceWithNamedPorts> context, RegionInstanceGroupsListInstances response)923 protected ListInstancesPage createPage( 924 PageContext< 925 ListInstancesRegionInstanceGroupsRequest, 926 RegionInstanceGroupsListInstances, 927 InstanceWithNamedPorts> 928 context, 929 RegionInstanceGroupsListInstances response) { 930 return new ListInstancesPage(context, response); 931 } 932 933 @Override createPageAsync( PageContext< ListInstancesRegionInstanceGroupsRequest, RegionInstanceGroupsListInstances, InstanceWithNamedPorts> context, ApiFuture<RegionInstanceGroupsListInstances> futureResponse)934 public ApiFuture<ListInstancesPage> createPageAsync( 935 PageContext< 936 ListInstancesRegionInstanceGroupsRequest, 937 RegionInstanceGroupsListInstances, 938 InstanceWithNamedPorts> 939 context, 940 ApiFuture<RegionInstanceGroupsListInstances> futureResponse) { 941 return super.createPageAsync(context, futureResponse); 942 } 943 } 944 945 public static class ListInstancesFixedSizeCollection 946 extends AbstractFixedSizeCollection< 947 ListInstancesRegionInstanceGroupsRequest, 948 RegionInstanceGroupsListInstances, 949 InstanceWithNamedPorts, 950 ListInstancesPage, 951 ListInstancesFixedSizeCollection> { 952 ListInstancesFixedSizeCollection(List<ListInstancesPage> pages, int collectionSize)953 private ListInstancesFixedSizeCollection(List<ListInstancesPage> pages, int collectionSize) { 954 super(pages, collectionSize); 955 } 956 createEmptyCollection()957 private static ListInstancesFixedSizeCollection createEmptyCollection() { 958 return new ListInstancesFixedSizeCollection(null, 0); 959 } 960 961 @Override createCollection( List<ListInstancesPage> pages, int collectionSize)962 protected ListInstancesFixedSizeCollection createCollection( 963 List<ListInstancesPage> pages, int collectionSize) { 964 return new ListInstancesFixedSizeCollection(pages, collectionSize); 965 } 966 } 967 } 968