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.ResourcePoliciesStub; 31 import com.google.cloud.compute.v1.stub.ResourcePoliciesStubSettings; 32 import com.google.common.util.concurrent.MoreExecutors; 33 import java.io.IOException; 34 import java.util.List; 35 import java.util.Map; 36 import java.util.concurrent.TimeUnit; 37 import javax.annotation.Generated; 38 39 // AUTO-GENERATED DOCUMENTATION AND CLASS. 40 /** 41 * Service Description: The ResourcePolicies API. 42 * 43 * <p>This class provides the ability to make remote calls to the backing service through method 44 * calls that map to API methods. Sample code to get started: 45 * 46 * <pre>{@code 47 * // This snippet has been automatically generated and should be regarded as a code template only. 48 * // It will require modifications to work: 49 * // - It may require correct/in-range values for request initialization. 50 * // - It may require specifying regional endpoints when creating the service client as shown in 51 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 52 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 53 * String project = "project-309310695"; 54 * String region = "region-934795532"; 55 * String resourcePolicy = "resourcePolicy-130903328"; 56 * ResourcePolicy response = resourcePoliciesClient.get(project, region, resourcePolicy); 57 * } 58 * }</pre> 59 * 60 * <p>Note: close() needs to be called on the ResourcePoliciesClient object to clean up resources 61 * such as threads. In the example above, try-with-resources is used, which automatically calls 62 * 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 ResourcePoliciesSettings to 85 * 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 * ResourcePoliciesSettings resourcePoliciesSettings = 96 * ResourcePoliciesSettings.newBuilder() 97 * .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials)) 98 * .build(); 99 * ResourcePoliciesClient resourcePoliciesClient = 100 * ResourcePoliciesClient.create(resourcePoliciesSettings); 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 * ResourcePoliciesSettings resourcePoliciesSettings = 112 * ResourcePoliciesSettings.newBuilder().setEndpoint(myEndpoint).build(); 113 * ResourcePoliciesClient resourcePoliciesClient = 114 * ResourcePoliciesClient.create(resourcePoliciesSettings); 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 ResourcePoliciesClient implements BackgroundResource { 121 private final ResourcePoliciesSettings settings; 122 private final ResourcePoliciesStub stub; 123 124 /** Constructs an instance of ResourcePoliciesClient with default settings. */ create()125 public static final ResourcePoliciesClient create() throws IOException { 126 return create(ResourcePoliciesSettings.newBuilder().build()); 127 } 128 129 /** 130 * Constructs an instance of ResourcePoliciesClient, using the given settings. The channels are 131 * created based on the settings passed in, or defaults for any settings that are not set. 132 */ create(ResourcePoliciesSettings settings)133 public static final ResourcePoliciesClient create(ResourcePoliciesSettings settings) 134 throws IOException { 135 return new ResourcePoliciesClient(settings); 136 } 137 138 /** 139 * Constructs an instance of ResourcePoliciesClient, using the given stub for making calls. This 140 * is for advanced usage - prefer using create(ResourcePoliciesSettings). 141 */ create(ResourcePoliciesStub stub)142 public static final ResourcePoliciesClient create(ResourcePoliciesStub stub) { 143 return new ResourcePoliciesClient(stub); 144 } 145 146 /** 147 * Constructs an instance of ResourcePoliciesClient, using the given settings. This is protected 148 * so that it is easy to make a subclass, but otherwise, the static factory methods should be 149 * preferred. 150 */ ResourcePoliciesClient(ResourcePoliciesSettings settings)151 protected ResourcePoliciesClient(ResourcePoliciesSettings settings) throws IOException { 152 this.settings = settings; 153 this.stub = ((ResourcePoliciesStubSettings) settings.getStubSettings()).createStub(); 154 } 155 ResourcePoliciesClient(ResourcePoliciesStub stub)156 protected ResourcePoliciesClient(ResourcePoliciesStub stub) { 157 this.settings = null; 158 this.stub = stub; 159 } 160 getSettings()161 public final ResourcePoliciesSettings getSettings() { 162 return settings; 163 } 164 getStub()165 public ResourcePoliciesStub getStub() { 166 return stub; 167 } 168 169 // AUTO-GENERATED DOCUMENTATION AND METHOD. 170 /** 171 * Retrieves an aggregated list of resource policies. 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 (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 182 * String project = "project-309310695"; 183 * for (Map.Entry<String, ResourcePoliciesScopedList> element : 184 * resourcePoliciesClient.aggregatedList(project).iterateAll()) { 185 * // doThingsWith(element); 186 * } 187 * } 188 * }</pre> 189 * 190 * @param project Project ID for this request. 191 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 192 */ aggregatedList(String project)193 public final AggregatedListPagedResponse aggregatedList(String project) { 194 AggregatedListResourcePoliciesRequest request = 195 AggregatedListResourcePoliciesRequest.newBuilder().setProject(project).build(); 196 return aggregatedList(request); 197 } 198 199 // AUTO-GENERATED DOCUMENTATION AND METHOD. 200 /** 201 * Retrieves an aggregated list of resource policies. 202 * 203 * <p>Sample code: 204 * 205 * <pre>{@code 206 * // This snippet has been automatically generated and should be regarded as a code template only. 207 * // It will require modifications to work: 208 * // - It may require correct/in-range values for request initialization. 209 * // - It may require specifying regional endpoints when creating the service client as shown in 210 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 211 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 212 * AggregatedListResourcePoliciesRequest request = 213 * AggregatedListResourcePoliciesRequest.newBuilder() 214 * .setFilter("filter-1274492040") 215 * .setIncludeAllScopes(true) 216 * .setMaxResults(1128457243) 217 * .setOrderBy("orderBy-1207110587") 218 * .setPageToken("pageToken873572522") 219 * .setProject("project-309310695") 220 * .setReturnPartialSuccess(true) 221 * .build(); 222 * for (Map.Entry<String, ResourcePoliciesScopedList> element : 223 * resourcePoliciesClient.aggregatedList(request).iterateAll()) { 224 * // doThingsWith(element); 225 * } 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 */ aggregatedList( AggregatedListResourcePoliciesRequest request)232 public final AggregatedListPagedResponse aggregatedList( 233 AggregatedListResourcePoliciesRequest request) { 234 return aggregatedListPagedCallable().call(request); 235 } 236 237 // AUTO-GENERATED DOCUMENTATION AND METHOD. 238 /** 239 * Retrieves an aggregated list of resource policies. 240 * 241 * <p>Sample code: 242 * 243 * <pre>{@code 244 * // This snippet has been automatically generated and should be regarded as a code template only. 245 * // It will require modifications to work: 246 * // - It may require correct/in-range values for request initialization. 247 * // - It may require specifying regional endpoints when creating the service client as shown in 248 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 249 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 250 * AggregatedListResourcePoliciesRequest request = 251 * AggregatedListResourcePoliciesRequest.newBuilder() 252 * .setFilter("filter-1274492040") 253 * .setIncludeAllScopes(true) 254 * .setMaxResults(1128457243) 255 * .setOrderBy("orderBy-1207110587") 256 * .setPageToken("pageToken873572522") 257 * .setProject("project-309310695") 258 * .setReturnPartialSuccess(true) 259 * .build(); 260 * ApiFuture<Map.Entry<String, ResourcePoliciesScopedList>> future = 261 * resourcePoliciesClient.aggregatedListPagedCallable().futureCall(request); 262 * // Do something. 263 * for (Map.Entry<String, ResourcePoliciesScopedList> element : future.get().iterateAll()) { 264 * // doThingsWith(element); 265 * } 266 * } 267 * }</pre> 268 */ 269 public final UnaryCallable<AggregatedListResourcePoliciesRequest, AggregatedListPagedResponse> aggregatedListPagedCallable()270 aggregatedListPagedCallable() { 271 return stub.aggregatedListPagedCallable(); 272 } 273 274 // AUTO-GENERATED DOCUMENTATION AND METHOD. 275 /** 276 * Retrieves an aggregated list of resource policies. 277 * 278 * <p>Sample code: 279 * 280 * <pre>{@code 281 * // This snippet has been automatically generated and should be regarded as a code template only. 282 * // It will require modifications to work: 283 * // - It may require correct/in-range values for request initialization. 284 * // - It may require specifying regional endpoints when creating the service client as shown in 285 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 286 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 287 * AggregatedListResourcePoliciesRequest request = 288 * AggregatedListResourcePoliciesRequest.newBuilder() 289 * .setFilter("filter-1274492040") 290 * .setIncludeAllScopes(true) 291 * .setMaxResults(1128457243) 292 * .setOrderBy("orderBy-1207110587") 293 * .setPageToken("pageToken873572522") 294 * .setProject("project-309310695") 295 * .setReturnPartialSuccess(true) 296 * .build(); 297 * while (true) { 298 * ResourcePolicyAggregatedList response = 299 * resourcePoliciesClient.aggregatedListCallable().call(request); 300 * for (Map.Entry<String, ResourcePoliciesScopedList> element : response.getItemsList()) { 301 * // doThingsWith(element); 302 * } 303 * String nextPageToken = response.getNextPageToken(); 304 * if (!Strings.isNullOrEmpty(nextPageToken)) { 305 * request = request.toBuilder().setPageToken(nextPageToken).build(); 306 * } else { 307 * break; 308 * } 309 * } 310 * } 311 * }</pre> 312 */ 313 public final UnaryCallable<AggregatedListResourcePoliciesRequest, ResourcePolicyAggregatedList> aggregatedListCallable()314 aggregatedListCallable() { 315 return stub.aggregatedListCallable(); 316 } 317 318 // AUTO-GENERATED DOCUMENTATION AND METHOD. 319 /** 320 * Deletes the specified resource policy. 321 * 322 * <p>Sample code: 323 * 324 * <pre>{@code 325 * // This snippet has been automatically generated and should be regarded as a code template only. 326 * // It will require modifications to work: 327 * // - It may require correct/in-range values for request initialization. 328 * // - It may require specifying regional endpoints when creating the service client as shown in 329 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 330 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 331 * String project = "project-309310695"; 332 * String region = "region-934795532"; 333 * String resourcePolicy = "resourcePolicy-130903328"; 334 * Operation response = 335 * resourcePoliciesClient.deleteAsync(project, region, resourcePolicy).get(); 336 * } 337 * }</pre> 338 * 339 * @param project Project ID for this request. 340 * @param region Name of the region for this request. 341 * @param resourcePolicy Name of the resource policy to delete. 342 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 343 */ deleteAsync( String project, String region, String resourcePolicy)344 public final OperationFuture<Operation, Operation> deleteAsync( 345 String project, String region, String resourcePolicy) { 346 DeleteResourcePolicyRequest request = 347 DeleteResourcePolicyRequest.newBuilder() 348 .setProject(project) 349 .setRegion(region) 350 .setResourcePolicy(resourcePolicy) 351 .build(); 352 return deleteAsync(request); 353 } 354 355 // AUTO-GENERATED DOCUMENTATION AND METHOD. 356 /** 357 * Deletes the specified resource policy. 358 * 359 * <p>Sample code: 360 * 361 * <pre>{@code 362 * // This snippet has been automatically generated and should be regarded as a code template only. 363 * // It will require modifications to work: 364 * // - It may require correct/in-range values for request initialization. 365 * // - It may require specifying regional endpoints when creating the service client as shown in 366 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 367 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 368 * DeleteResourcePolicyRequest request = 369 * DeleteResourcePolicyRequest.newBuilder() 370 * .setProject("project-309310695") 371 * .setRegion("region-934795532") 372 * .setRequestId("requestId693933066") 373 * .setResourcePolicy("resourcePolicy-130903328") 374 * .build(); 375 * Operation response = resourcePoliciesClient.deleteAsync(request).get(); 376 * } 377 * }</pre> 378 * 379 * @param request The request object containing all of the parameters for the API call. 380 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 381 */ 382 @BetaApi( 383 "The surface for long-running operations is not stable yet and may change in the future.") deleteAsync( DeleteResourcePolicyRequest request)384 public final OperationFuture<Operation, Operation> deleteAsync( 385 DeleteResourcePolicyRequest request) { 386 return deleteOperationCallable().futureCall(request); 387 } 388 389 // AUTO-GENERATED DOCUMENTATION AND METHOD. 390 /** 391 * Deletes the specified resource policy. 392 * 393 * <p>Sample code: 394 * 395 * <pre>{@code 396 * // This snippet has been automatically generated and should be regarded as a code template only. 397 * // It will require modifications to work: 398 * // - It may require correct/in-range values for request initialization. 399 * // - It may require specifying regional endpoints when creating the service client as shown in 400 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 401 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 402 * DeleteResourcePolicyRequest request = 403 * DeleteResourcePolicyRequest.newBuilder() 404 * .setProject("project-309310695") 405 * .setRegion("region-934795532") 406 * .setRequestId("requestId693933066") 407 * .setResourcePolicy("resourcePolicy-130903328") 408 * .build(); 409 * OperationFuture<Operation, Operation> future = 410 * resourcePoliciesClient.deleteOperationCallable().futureCall(request); 411 * // Do something. 412 * Operation response = future.get(); 413 * } 414 * }</pre> 415 */ 416 public final OperationCallable<DeleteResourcePolicyRequest, Operation, Operation> deleteOperationCallable()417 deleteOperationCallable() { 418 return stub.deleteOperationCallable(); 419 } 420 421 // AUTO-GENERATED DOCUMENTATION AND METHOD. 422 /** 423 * Deletes the specified resource policy. 424 * 425 * <p>Sample code: 426 * 427 * <pre>{@code 428 * // This snippet has been automatically generated and should be regarded as a code template only. 429 * // It will require modifications to work: 430 * // - It may require correct/in-range values for request initialization. 431 * // - It may require specifying regional endpoints when creating the service client as shown in 432 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 433 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 434 * DeleteResourcePolicyRequest request = 435 * DeleteResourcePolicyRequest.newBuilder() 436 * .setProject("project-309310695") 437 * .setRegion("region-934795532") 438 * .setRequestId("requestId693933066") 439 * .setResourcePolicy("resourcePolicy-130903328") 440 * .build(); 441 * ApiFuture<Operation> future = resourcePoliciesClient.deleteCallable().futureCall(request); 442 * // Do something. 443 * Operation response = future.get(); 444 * } 445 * }</pre> 446 */ deleteCallable()447 public final UnaryCallable<DeleteResourcePolicyRequest, Operation> deleteCallable() { 448 return stub.deleteCallable(); 449 } 450 451 // AUTO-GENERATED DOCUMENTATION AND METHOD. 452 /** 453 * Retrieves all information of the specified resource policy. 454 * 455 * <p>Sample code: 456 * 457 * <pre>{@code 458 * // This snippet has been automatically generated and should be regarded as a code template only. 459 * // It will require modifications to work: 460 * // - It may require correct/in-range values for request initialization. 461 * // - It may require specifying regional endpoints when creating the service client as shown in 462 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 463 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 464 * String project = "project-309310695"; 465 * String region = "region-934795532"; 466 * String resourcePolicy = "resourcePolicy-130903328"; 467 * ResourcePolicy response = resourcePoliciesClient.get(project, region, resourcePolicy); 468 * } 469 * }</pre> 470 * 471 * @param project Project ID for this request. 472 * @param region Name of the region for this request. 473 * @param resourcePolicy Name of the resource policy to retrieve. 474 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 475 */ get(String project, String region, String resourcePolicy)476 public final ResourcePolicy get(String project, String region, String resourcePolicy) { 477 GetResourcePolicyRequest request = 478 GetResourcePolicyRequest.newBuilder() 479 .setProject(project) 480 .setRegion(region) 481 .setResourcePolicy(resourcePolicy) 482 .build(); 483 return get(request); 484 } 485 486 // AUTO-GENERATED DOCUMENTATION AND METHOD. 487 /** 488 * Retrieves all information of the specified resource policy. 489 * 490 * <p>Sample code: 491 * 492 * <pre>{@code 493 * // This snippet has been automatically generated and should be regarded as a code template only. 494 * // It will require modifications to work: 495 * // - It may require correct/in-range values for request initialization. 496 * // - It may require specifying regional endpoints when creating the service client as shown in 497 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 498 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 499 * GetResourcePolicyRequest request = 500 * GetResourcePolicyRequest.newBuilder() 501 * .setProject("project-309310695") 502 * .setRegion("region-934795532") 503 * .setResourcePolicy("resourcePolicy-130903328") 504 * .build(); 505 * ResourcePolicy response = resourcePoliciesClient.get(request); 506 * } 507 * }</pre> 508 * 509 * @param request The request object containing all of the parameters for the API call. 510 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 511 */ get(GetResourcePolicyRequest request)512 public final ResourcePolicy get(GetResourcePolicyRequest request) { 513 return getCallable().call(request); 514 } 515 516 // AUTO-GENERATED DOCUMENTATION AND METHOD. 517 /** 518 * Retrieves all information of the specified resource policy. 519 * 520 * <p>Sample code: 521 * 522 * <pre>{@code 523 * // This snippet has been automatically generated and should be regarded as a code template only. 524 * // It will require modifications to work: 525 * // - It may require correct/in-range values for request initialization. 526 * // - It may require specifying regional endpoints when creating the service client as shown in 527 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 528 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 529 * GetResourcePolicyRequest request = 530 * GetResourcePolicyRequest.newBuilder() 531 * .setProject("project-309310695") 532 * .setRegion("region-934795532") 533 * .setResourcePolicy("resourcePolicy-130903328") 534 * .build(); 535 * ApiFuture<ResourcePolicy> future = resourcePoliciesClient.getCallable().futureCall(request); 536 * // Do something. 537 * ResourcePolicy response = future.get(); 538 * } 539 * }</pre> 540 */ getCallable()541 public final UnaryCallable<GetResourcePolicyRequest, ResourcePolicy> getCallable() { 542 return stub.getCallable(); 543 } 544 545 // AUTO-GENERATED DOCUMENTATION AND METHOD. 546 /** 547 * Gets the access control policy for a resource. May be empty if no such policy or resource 548 * exists. 549 * 550 * <p>Sample code: 551 * 552 * <pre>{@code 553 * // This snippet has been automatically generated and should be regarded as a code template only. 554 * // It will require modifications to work: 555 * // - It may require correct/in-range values for request initialization. 556 * // - It may require specifying regional endpoints when creating the service client as shown in 557 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 558 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 559 * String project = "project-309310695"; 560 * String region = "region-934795532"; 561 * String resource = "resource-341064690"; 562 * Policy response = resourcePoliciesClient.getIamPolicy(project, region, resource); 563 * } 564 * }</pre> 565 * 566 * @param project Project ID for this request. 567 * @param region The name of the region for this request. 568 * @param resource Name or id of the resource for this request. 569 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 570 */ getIamPolicy(String project, String region, String resource)571 public final Policy getIamPolicy(String project, String region, String resource) { 572 GetIamPolicyResourcePolicyRequest request = 573 GetIamPolicyResourcePolicyRequest.newBuilder() 574 .setProject(project) 575 .setRegion(region) 576 .setResource(resource) 577 .build(); 578 return getIamPolicy(request); 579 } 580 581 // AUTO-GENERATED DOCUMENTATION AND METHOD. 582 /** 583 * Gets the access control policy for a resource. May be empty if no such policy or resource 584 * exists. 585 * 586 * <p>Sample code: 587 * 588 * <pre>{@code 589 * // This snippet has been automatically generated and should be regarded as a code template only. 590 * // It will require modifications to work: 591 * // - It may require correct/in-range values for request initialization. 592 * // - It may require specifying regional endpoints when creating the service client as shown in 593 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 594 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 595 * GetIamPolicyResourcePolicyRequest request = 596 * GetIamPolicyResourcePolicyRequest.newBuilder() 597 * .setOptionsRequestedPolicyVersion(-574521795) 598 * .setProject("project-309310695") 599 * .setRegion("region-934795532") 600 * .setResource("resource-341064690") 601 * .build(); 602 * Policy response = resourcePoliciesClient.getIamPolicy(request); 603 * } 604 * }</pre> 605 * 606 * @param request The request object containing all of the parameters for the API call. 607 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 608 */ getIamPolicy(GetIamPolicyResourcePolicyRequest request)609 public final Policy getIamPolicy(GetIamPolicyResourcePolicyRequest request) { 610 return getIamPolicyCallable().call(request); 611 } 612 613 // AUTO-GENERATED DOCUMENTATION AND METHOD. 614 /** 615 * Gets the access control policy for a resource. May be empty if no such policy or resource 616 * exists. 617 * 618 * <p>Sample code: 619 * 620 * <pre>{@code 621 * // This snippet has been automatically generated and should be regarded as a code template only. 622 * // It will require modifications to work: 623 * // - It may require correct/in-range values for request initialization. 624 * // - It may require specifying regional endpoints when creating the service client as shown in 625 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 626 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 627 * GetIamPolicyResourcePolicyRequest request = 628 * GetIamPolicyResourcePolicyRequest.newBuilder() 629 * .setOptionsRequestedPolicyVersion(-574521795) 630 * .setProject("project-309310695") 631 * .setRegion("region-934795532") 632 * .setResource("resource-341064690") 633 * .build(); 634 * ApiFuture<Policy> future = resourcePoliciesClient.getIamPolicyCallable().futureCall(request); 635 * // Do something. 636 * Policy response = future.get(); 637 * } 638 * }</pre> 639 */ getIamPolicyCallable()640 public final UnaryCallable<GetIamPolicyResourcePolicyRequest, Policy> getIamPolicyCallable() { 641 return stub.getIamPolicyCallable(); 642 } 643 644 // AUTO-GENERATED DOCUMENTATION AND METHOD. 645 /** 646 * Creates a new resource policy. 647 * 648 * <p>Sample code: 649 * 650 * <pre>{@code 651 * // This snippet has been automatically generated and should be regarded as a code template only. 652 * // It will require modifications to work: 653 * // - It may require correct/in-range values for request initialization. 654 * // - It may require specifying regional endpoints when creating the service client as shown in 655 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 656 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 657 * String project = "project-309310695"; 658 * String region = "region-934795532"; 659 * ResourcePolicy resourcePolicyResource = ResourcePolicy.newBuilder().build(); 660 * Operation response = 661 * resourcePoliciesClient.insertAsync(project, region, resourcePolicyResource).get(); 662 * } 663 * }</pre> 664 * 665 * @param project Project ID for this request. 666 * @param region Name of the region for this request. 667 * @param resourcePolicyResource The body resource for this request 668 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 669 */ insertAsync( String project, String region, ResourcePolicy resourcePolicyResource)670 public final OperationFuture<Operation, Operation> insertAsync( 671 String project, String region, ResourcePolicy resourcePolicyResource) { 672 InsertResourcePolicyRequest request = 673 InsertResourcePolicyRequest.newBuilder() 674 .setProject(project) 675 .setRegion(region) 676 .setResourcePolicyResource(resourcePolicyResource) 677 .build(); 678 return insertAsync(request); 679 } 680 681 // AUTO-GENERATED DOCUMENTATION AND METHOD. 682 /** 683 * Creates a new resource policy. 684 * 685 * <p>Sample code: 686 * 687 * <pre>{@code 688 * // This snippet has been automatically generated and should be regarded as a code template only. 689 * // It will require modifications to work: 690 * // - It may require correct/in-range values for request initialization. 691 * // - It may require specifying regional endpoints when creating the service client as shown in 692 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 693 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 694 * InsertResourcePolicyRequest request = 695 * InsertResourcePolicyRequest.newBuilder() 696 * .setProject("project-309310695") 697 * .setRegion("region-934795532") 698 * .setRequestId("requestId693933066") 699 * .setResourcePolicyResource(ResourcePolicy.newBuilder().build()) 700 * .build(); 701 * Operation response = resourcePoliciesClient.insertAsync(request).get(); 702 * } 703 * }</pre> 704 * 705 * @param request The request object containing all of the parameters for the API call. 706 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 707 */ 708 @BetaApi( 709 "The surface for long-running operations is not stable yet and may change in the future.") insertAsync( InsertResourcePolicyRequest request)710 public final OperationFuture<Operation, Operation> insertAsync( 711 InsertResourcePolicyRequest request) { 712 return insertOperationCallable().futureCall(request); 713 } 714 715 // AUTO-GENERATED DOCUMENTATION AND METHOD. 716 /** 717 * Creates a new resource policy. 718 * 719 * <p>Sample code: 720 * 721 * <pre>{@code 722 * // This snippet has been automatically generated and should be regarded as a code template only. 723 * // It will require modifications to work: 724 * // - It may require correct/in-range values for request initialization. 725 * // - It may require specifying regional endpoints when creating the service client as shown in 726 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 727 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 728 * InsertResourcePolicyRequest request = 729 * InsertResourcePolicyRequest.newBuilder() 730 * .setProject("project-309310695") 731 * .setRegion("region-934795532") 732 * .setRequestId("requestId693933066") 733 * .setResourcePolicyResource(ResourcePolicy.newBuilder().build()) 734 * .build(); 735 * OperationFuture<Operation, Operation> future = 736 * resourcePoliciesClient.insertOperationCallable().futureCall(request); 737 * // Do something. 738 * Operation response = future.get(); 739 * } 740 * }</pre> 741 */ 742 public final OperationCallable<InsertResourcePolicyRequest, Operation, Operation> insertOperationCallable()743 insertOperationCallable() { 744 return stub.insertOperationCallable(); 745 } 746 747 // AUTO-GENERATED DOCUMENTATION AND METHOD. 748 /** 749 * Creates a new resource policy. 750 * 751 * <p>Sample code: 752 * 753 * <pre>{@code 754 * // This snippet has been automatically generated and should be regarded as a code template only. 755 * // It will require modifications to work: 756 * // - It may require correct/in-range values for request initialization. 757 * // - It may require specifying regional endpoints when creating the service client as shown in 758 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 759 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 760 * InsertResourcePolicyRequest request = 761 * InsertResourcePolicyRequest.newBuilder() 762 * .setProject("project-309310695") 763 * .setRegion("region-934795532") 764 * .setRequestId("requestId693933066") 765 * .setResourcePolicyResource(ResourcePolicy.newBuilder().build()) 766 * .build(); 767 * ApiFuture<Operation> future = resourcePoliciesClient.insertCallable().futureCall(request); 768 * // Do something. 769 * Operation response = future.get(); 770 * } 771 * }</pre> 772 */ insertCallable()773 public final UnaryCallable<InsertResourcePolicyRequest, Operation> insertCallable() { 774 return stub.insertCallable(); 775 } 776 777 // AUTO-GENERATED DOCUMENTATION AND METHOD. 778 /** 779 * A list all the resource policies that have been configured for the specified project in 780 * specified region. 781 * 782 * <p>Sample code: 783 * 784 * <pre>{@code 785 * // This snippet has been automatically generated and should be regarded as a code template only. 786 * // It will require modifications to work: 787 * // - It may require correct/in-range values for request initialization. 788 * // - It may require specifying regional endpoints when creating the service client as shown in 789 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 790 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 791 * String project = "project-309310695"; 792 * String region = "region-934795532"; 793 * for (ResourcePolicy element : resourcePoliciesClient.list(project, region).iterateAll()) { 794 * // doThingsWith(element); 795 * } 796 * } 797 * }</pre> 798 * 799 * @param project Project ID for this request. 800 * @param region Name of the region for this request. 801 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 802 */ list(String project, String region)803 public final ListPagedResponse list(String project, String region) { 804 ListResourcePoliciesRequest request = 805 ListResourcePoliciesRequest.newBuilder().setProject(project).setRegion(region).build(); 806 return list(request); 807 } 808 809 // AUTO-GENERATED DOCUMENTATION AND METHOD. 810 /** 811 * A list all the resource policies that have been configured for the specified project in 812 * specified region. 813 * 814 * <p>Sample code: 815 * 816 * <pre>{@code 817 * // This snippet has been automatically generated and should be regarded as a code template only. 818 * // It will require modifications to work: 819 * // - It may require correct/in-range values for request initialization. 820 * // - It may require specifying regional endpoints when creating the service client as shown in 821 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 822 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 823 * ListResourcePoliciesRequest request = 824 * ListResourcePoliciesRequest.newBuilder() 825 * .setFilter("filter-1274492040") 826 * .setMaxResults(1128457243) 827 * .setOrderBy("orderBy-1207110587") 828 * .setPageToken("pageToken873572522") 829 * .setProject("project-309310695") 830 * .setRegion("region-934795532") 831 * .setReturnPartialSuccess(true) 832 * .build(); 833 * for (ResourcePolicy element : resourcePoliciesClient.list(request).iterateAll()) { 834 * // doThingsWith(element); 835 * } 836 * } 837 * }</pre> 838 * 839 * @param request The request object containing all of the parameters for the API call. 840 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 841 */ list(ListResourcePoliciesRequest request)842 public final ListPagedResponse list(ListResourcePoliciesRequest request) { 843 return listPagedCallable().call(request); 844 } 845 846 // AUTO-GENERATED DOCUMENTATION AND METHOD. 847 /** 848 * A list all the resource policies that have been configured for the specified project in 849 * specified region. 850 * 851 * <p>Sample code: 852 * 853 * <pre>{@code 854 * // This snippet has been automatically generated and should be regarded as a code template only. 855 * // It will require modifications to work: 856 * // - It may require correct/in-range values for request initialization. 857 * // - It may require specifying regional endpoints when creating the service client as shown in 858 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 859 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 860 * ListResourcePoliciesRequest request = 861 * ListResourcePoliciesRequest.newBuilder() 862 * .setFilter("filter-1274492040") 863 * .setMaxResults(1128457243) 864 * .setOrderBy("orderBy-1207110587") 865 * .setPageToken("pageToken873572522") 866 * .setProject("project-309310695") 867 * .setRegion("region-934795532") 868 * .setReturnPartialSuccess(true) 869 * .build(); 870 * ApiFuture<ResourcePolicy> future = 871 * resourcePoliciesClient.listPagedCallable().futureCall(request); 872 * // Do something. 873 * for (ResourcePolicy element : future.get().iterateAll()) { 874 * // doThingsWith(element); 875 * } 876 * } 877 * }</pre> 878 */ listPagedCallable()879 public final UnaryCallable<ListResourcePoliciesRequest, ListPagedResponse> listPagedCallable() { 880 return stub.listPagedCallable(); 881 } 882 883 // AUTO-GENERATED DOCUMENTATION AND METHOD. 884 /** 885 * A list all the resource policies that have been configured for the specified project in 886 * specified region. 887 * 888 * <p>Sample code: 889 * 890 * <pre>{@code 891 * // This snippet has been automatically generated and should be regarded as a code template only. 892 * // It will require modifications to work: 893 * // - It may require correct/in-range values for request initialization. 894 * // - It may require specifying regional endpoints when creating the service client as shown in 895 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 896 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 897 * ListResourcePoliciesRequest request = 898 * ListResourcePoliciesRequest.newBuilder() 899 * .setFilter("filter-1274492040") 900 * .setMaxResults(1128457243) 901 * .setOrderBy("orderBy-1207110587") 902 * .setPageToken("pageToken873572522") 903 * .setProject("project-309310695") 904 * .setRegion("region-934795532") 905 * .setReturnPartialSuccess(true) 906 * .build(); 907 * while (true) { 908 * ResourcePolicyList response = resourcePoliciesClient.listCallable().call(request); 909 * for (ResourcePolicy element : response.getItemsList()) { 910 * // doThingsWith(element); 911 * } 912 * String nextPageToken = response.getNextPageToken(); 913 * if (!Strings.isNullOrEmpty(nextPageToken)) { 914 * request = request.toBuilder().setPageToken(nextPageToken).build(); 915 * } else { 916 * break; 917 * } 918 * } 919 * } 920 * }</pre> 921 */ listCallable()922 public final UnaryCallable<ListResourcePoliciesRequest, ResourcePolicyList> listCallable() { 923 return stub.listCallable(); 924 } 925 926 // AUTO-GENERATED DOCUMENTATION AND METHOD. 927 /** 928 * Sets the access control policy on the specified resource. Replaces any existing policy. 929 * 930 * <p>Sample code: 931 * 932 * <pre>{@code 933 * // This snippet has been automatically generated and should be regarded as a code template only. 934 * // It will require modifications to work: 935 * // - It may require correct/in-range values for request initialization. 936 * // - It may require specifying regional endpoints when creating the service client as shown in 937 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 938 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 939 * String project = "project-309310695"; 940 * String region = "region-934795532"; 941 * String resource = "resource-341064690"; 942 * RegionSetPolicyRequest regionSetPolicyRequestResource = 943 * RegionSetPolicyRequest.newBuilder().build(); 944 * Policy response = 945 * resourcePoliciesClient.setIamPolicy( 946 * project, region, resource, regionSetPolicyRequestResource); 947 * } 948 * }</pre> 949 * 950 * @param project Project ID for this request. 951 * @param region The name of the region for this request. 952 * @param resource Name or id of the resource for this request. 953 * @param regionSetPolicyRequestResource The body resource for this request 954 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 955 */ setIamPolicy( String project, String region, String resource, RegionSetPolicyRequest regionSetPolicyRequestResource)956 public final Policy setIamPolicy( 957 String project, 958 String region, 959 String resource, 960 RegionSetPolicyRequest regionSetPolicyRequestResource) { 961 SetIamPolicyResourcePolicyRequest request = 962 SetIamPolicyResourcePolicyRequest.newBuilder() 963 .setProject(project) 964 .setRegion(region) 965 .setResource(resource) 966 .setRegionSetPolicyRequestResource(regionSetPolicyRequestResource) 967 .build(); 968 return setIamPolicy(request); 969 } 970 971 // AUTO-GENERATED DOCUMENTATION AND METHOD. 972 /** 973 * Sets the access control policy on the specified resource. Replaces any existing policy. 974 * 975 * <p>Sample code: 976 * 977 * <pre>{@code 978 * // This snippet has been automatically generated and should be regarded as a code template only. 979 * // It will require modifications to work: 980 * // - It may require correct/in-range values for request initialization. 981 * // - It may require specifying regional endpoints when creating the service client as shown in 982 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 983 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 984 * SetIamPolicyResourcePolicyRequest request = 985 * SetIamPolicyResourcePolicyRequest.newBuilder() 986 * .setProject("project-309310695") 987 * .setRegion("region-934795532") 988 * .setRegionSetPolicyRequestResource(RegionSetPolicyRequest.newBuilder().build()) 989 * .setResource("resource-341064690") 990 * .build(); 991 * Policy response = resourcePoliciesClient.setIamPolicy(request); 992 * } 993 * }</pre> 994 * 995 * @param request The request object containing all of the parameters for the API call. 996 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 997 */ setIamPolicy(SetIamPolicyResourcePolicyRequest request)998 public final Policy setIamPolicy(SetIamPolicyResourcePolicyRequest request) { 999 return setIamPolicyCallable().call(request); 1000 } 1001 1002 // AUTO-GENERATED DOCUMENTATION AND METHOD. 1003 /** 1004 * Sets the access control policy on the specified resource. Replaces any existing policy. 1005 * 1006 * <p>Sample code: 1007 * 1008 * <pre>{@code 1009 * // This snippet has been automatically generated and should be regarded as a code template only. 1010 * // It will require modifications to work: 1011 * // - It may require correct/in-range values for request initialization. 1012 * // - It may require specifying regional endpoints when creating the service client as shown in 1013 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 1014 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 1015 * SetIamPolicyResourcePolicyRequest request = 1016 * SetIamPolicyResourcePolicyRequest.newBuilder() 1017 * .setProject("project-309310695") 1018 * .setRegion("region-934795532") 1019 * .setRegionSetPolicyRequestResource(RegionSetPolicyRequest.newBuilder().build()) 1020 * .setResource("resource-341064690") 1021 * .build(); 1022 * ApiFuture<Policy> future = resourcePoliciesClient.setIamPolicyCallable().futureCall(request); 1023 * // Do something. 1024 * Policy response = future.get(); 1025 * } 1026 * }</pre> 1027 */ setIamPolicyCallable()1028 public final UnaryCallable<SetIamPolicyResourcePolicyRequest, Policy> setIamPolicyCallable() { 1029 return stub.setIamPolicyCallable(); 1030 } 1031 1032 // AUTO-GENERATED DOCUMENTATION AND METHOD. 1033 /** 1034 * Returns permissions that a caller has on the specified resource. 1035 * 1036 * <p>Sample code: 1037 * 1038 * <pre>{@code 1039 * // This snippet has been automatically generated and should be regarded as a code template only. 1040 * // It will require modifications to work: 1041 * // - It may require correct/in-range values for request initialization. 1042 * // - It may require specifying regional endpoints when creating the service client as shown in 1043 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 1044 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 1045 * String project = "project-309310695"; 1046 * String region = "region-934795532"; 1047 * String resource = "resource-341064690"; 1048 * TestPermissionsRequest testPermissionsRequestResource = 1049 * TestPermissionsRequest.newBuilder().build(); 1050 * TestPermissionsResponse response = 1051 * resourcePoliciesClient.testIamPermissions( 1052 * project, region, resource, testPermissionsRequestResource); 1053 * } 1054 * }</pre> 1055 * 1056 * @param project Project ID for this request. 1057 * @param region The name of the region for this request. 1058 * @param resource Name or id of the resource for this request. 1059 * @param testPermissionsRequestResource The body resource for this request 1060 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 1061 */ testIamPermissions( String project, String region, String resource, TestPermissionsRequest testPermissionsRequestResource)1062 public final TestPermissionsResponse testIamPermissions( 1063 String project, 1064 String region, 1065 String resource, 1066 TestPermissionsRequest testPermissionsRequestResource) { 1067 TestIamPermissionsResourcePolicyRequest request = 1068 TestIamPermissionsResourcePolicyRequest.newBuilder() 1069 .setProject(project) 1070 .setRegion(region) 1071 .setResource(resource) 1072 .setTestPermissionsRequestResource(testPermissionsRequestResource) 1073 .build(); 1074 return testIamPermissions(request); 1075 } 1076 1077 // AUTO-GENERATED DOCUMENTATION AND METHOD. 1078 /** 1079 * Returns permissions that a caller has on the specified resource. 1080 * 1081 * <p>Sample code: 1082 * 1083 * <pre>{@code 1084 * // This snippet has been automatically generated and should be regarded as a code template only. 1085 * // It will require modifications to work: 1086 * // - It may require correct/in-range values for request initialization. 1087 * // - It may require specifying regional endpoints when creating the service client as shown in 1088 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 1089 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 1090 * TestIamPermissionsResourcePolicyRequest request = 1091 * TestIamPermissionsResourcePolicyRequest.newBuilder() 1092 * .setProject("project-309310695") 1093 * .setRegion("region-934795532") 1094 * .setResource("resource-341064690") 1095 * .setTestPermissionsRequestResource(TestPermissionsRequest.newBuilder().build()) 1096 * .build(); 1097 * TestPermissionsResponse response = resourcePoliciesClient.testIamPermissions(request); 1098 * } 1099 * }</pre> 1100 * 1101 * @param request The request object containing all of the parameters for the API call. 1102 * @throws com.google.api.gax.rpc.ApiException if the remote call fails 1103 */ testIamPermissions( TestIamPermissionsResourcePolicyRequest request)1104 public final TestPermissionsResponse testIamPermissions( 1105 TestIamPermissionsResourcePolicyRequest request) { 1106 return testIamPermissionsCallable().call(request); 1107 } 1108 1109 // AUTO-GENERATED DOCUMENTATION AND METHOD. 1110 /** 1111 * Returns permissions that a caller has on the specified resource. 1112 * 1113 * <p>Sample code: 1114 * 1115 * <pre>{@code 1116 * // This snippet has been automatically generated and should be regarded as a code template only. 1117 * // It will require modifications to work: 1118 * // - It may require correct/in-range values for request initialization. 1119 * // - It may require specifying regional endpoints when creating the service client as shown in 1120 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 1121 * try (ResourcePoliciesClient resourcePoliciesClient = ResourcePoliciesClient.create()) { 1122 * TestIamPermissionsResourcePolicyRequest request = 1123 * TestIamPermissionsResourcePolicyRequest.newBuilder() 1124 * .setProject("project-309310695") 1125 * .setRegion("region-934795532") 1126 * .setResource("resource-341064690") 1127 * .setTestPermissionsRequestResource(TestPermissionsRequest.newBuilder().build()) 1128 * .build(); 1129 * ApiFuture<TestPermissionsResponse> future = 1130 * resourcePoliciesClient.testIamPermissionsCallable().futureCall(request); 1131 * // Do something. 1132 * TestPermissionsResponse response = future.get(); 1133 * } 1134 * }</pre> 1135 */ 1136 public final UnaryCallable<TestIamPermissionsResourcePolicyRequest, TestPermissionsResponse> testIamPermissionsCallable()1137 testIamPermissionsCallable() { 1138 return stub.testIamPermissionsCallable(); 1139 } 1140 1141 @Override close()1142 public final void close() { 1143 stub.close(); 1144 } 1145 1146 @Override shutdown()1147 public void shutdown() { 1148 stub.shutdown(); 1149 } 1150 1151 @Override isShutdown()1152 public boolean isShutdown() { 1153 return stub.isShutdown(); 1154 } 1155 1156 @Override isTerminated()1157 public boolean isTerminated() { 1158 return stub.isTerminated(); 1159 } 1160 1161 @Override shutdownNow()1162 public void shutdownNow() { 1163 stub.shutdownNow(); 1164 } 1165 1166 @Override awaitTermination(long duration, TimeUnit unit)1167 public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { 1168 return stub.awaitTermination(duration, unit); 1169 } 1170 1171 public static class AggregatedListPagedResponse 1172 extends AbstractPagedListResponse< 1173 AggregatedListResourcePoliciesRequest, 1174 ResourcePolicyAggregatedList, 1175 Map.Entry<String, ResourcePoliciesScopedList>, 1176 AggregatedListPage, 1177 AggregatedListFixedSizeCollection> { 1178 createAsync( PageContext< AggregatedListResourcePoliciesRequest, ResourcePolicyAggregatedList, Map.Entry<String, ResourcePoliciesScopedList>> context, ApiFuture<ResourcePolicyAggregatedList> futureResponse)1179 public static ApiFuture<AggregatedListPagedResponse> createAsync( 1180 PageContext< 1181 AggregatedListResourcePoliciesRequest, 1182 ResourcePolicyAggregatedList, 1183 Map.Entry<String, ResourcePoliciesScopedList>> 1184 context, 1185 ApiFuture<ResourcePolicyAggregatedList> futureResponse) { 1186 ApiFuture<AggregatedListPage> futurePage = 1187 AggregatedListPage.createEmptyPage().createPageAsync(context, futureResponse); 1188 return ApiFutures.transform( 1189 futurePage, 1190 input -> new AggregatedListPagedResponse(input), 1191 MoreExecutors.directExecutor()); 1192 } 1193 AggregatedListPagedResponse(AggregatedListPage page)1194 private AggregatedListPagedResponse(AggregatedListPage page) { 1195 super(page, AggregatedListFixedSizeCollection.createEmptyCollection()); 1196 } 1197 } 1198 1199 public static class AggregatedListPage 1200 extends AbstractPage< 1201 AggregatedListResourcePoliciesRequest, 1202 ResourcePolicyAggregatedList, 1203 Map.Entry<String, ResourcePoliciesScopedList>, 1204 AggregatedListPage> { 1205 AggregatedListPage( PageContext< AggregatedListResourcePoliciesRequest, ResourcePolicyAggregatedList, Map.Entry<String, ResourcePoliciesScopedList>> context, ResourcePolicyAggregatedList response)1206 private AggregatedListPage( 1207 PageContext< 1208 AggregatedListResourcePoliciesRequest, 1209 ResourcePolicyAggregatedList, 1210 Map.Entry<String, ResourcePoliciesScopedList>> 1211 context, 1212 ResourcePolicyAggregatedList response) { 1213 super(context, response); 1214 } 1215 createEmptyPage()1216 private static AggregatedListPage createEmptyPage() { 1217 return new AggregatedListPage(null, null); 1218 } 1219 1220 @Override createPage( PageContext< AggregatedListResourcePoliciesRequest, ResourcePolicyAggregatedList, Map.Entry<String, ResourcePoliciesScopedList>> context, ResourcePolicyAggregatedList response)1221 protected AggregatedListPage createPage( 1222 PageContext< 1223 AggregatedListResourcePoliciesRequest, 1224 ResourcePolicyAggregatedList, 1225 Map.Entry<String, ResourcePoliciesScopedList>> 1226 context, 1227 ResourcePolicyAggregatedList response) { 1228 return new AggregatedListPage(context, response); 1229 } 1230 1231 @Override createPageAsync( PageContext< AggregatedListResourcePoliciesRequest, ResourcePolicyAggregatedList, Map.Entry<String, ResourcePoliciesScopedList>> context, ApiFuture<ResourcePolicyAggregatedList> futureResponse)1232 public ApiFuture<AggregatedListPage> createPageAsync( 1233 PageContext< 1234 AggregatedListResourcePoliciesRequest, 1235 ResourcePolicyAggregatedList, 1236 Map.Entry<String, ResourcePoliciesScopedList>> 1237 context, 1238 ApiFuture<ResourcePolicyAggregatedList> futureResponse) { 1239 return super.createPageAsync(context, futureResponse); 1240 } 1241 } 1242 1243 public static class AggregatedListFixedSizeCollection 1244 extends AbstractFixedSizeCollection< 1245 AggregatedListResourcePoliciesRequest, 1246 ResourcePolicyAggregatedList, 1247 Map.Entry<String, ResourcePoliciesScopedList>, 1248 AggregatedListPage, 1249 AggregatedListFixedSizeCollection> { 1250 AggregatedListFixedSizeCollection(List<AggregatedListPage> pages, int collectionSize)1251 private AggregatedListFixedSizeCollection(List<AggregatedListPage> pages, int collectionSize) { 1252 super(pages, collectionSize); 1253 } 1254 createEmptyCollection()1255 private static AggregatedListFixedSizeCollection createEmptyCollection() { 1256 return new AggregatedListFixedSizeCollection(null, 0); 1257 } 1258 1259 @Override createCollection( List<AggregatedListPage> pages, int collectionSize)1260 protected AggregatedListFixedSizeCollection createCollection( 1261 List<AggregatedListPage> pages, int collectionSize) { 1262 return new AggregatedListFixedSizeCollection(pages, collectionSize); 1263 } 1264 } 1265 1266 public static class ListPagedResponse 1267 extends AbstractPagedListResponse< 1268 ListResourcePoliciesRequest, 1269 ResourcePolicyList, 1270 ResourcePolicy, 1271 ListPage, 1272 ListFixedSizeCollection> { 1273 createAsync( PageContext<ListResourcePoliciesRequest, ResourcePolicyList, ResourcePolicy> context, ApiFuture<ResourcePolicyList> futureResponse)1274 public static ApiFuture<ListPagedResponse> createAsync( 1275 PageContext<ListResourcePoliciesRequest, ResourcePolicyList, ResourcePolicy> context, 1276 ApiFuture<ResourcePolicyList> futureResponse) { 1277 ApiFuture<ListPage> futurePage = 1278 ListPage.createEmptyPage().createPageAsync(context, futureResponse); 1279 return ApiFutures.transform( 1280 futurePage, input -> new ListPagedResponse(input), MoreExecutors.directExecutor()); 1281 } 1282 ListPagedResponse(ListPage page)1283 private ListPagedResponse(ListPage page) { 1284 super(page, ListFixedSizeCollection.createEmptyCollection()); 1285 } 1286 } 1287 1288 public static class ListPage 1289 extends AbstractPage< 1290 ListResourcePoliciesRequest, ResourcePolicyList, ResourcePolicy, ListPage> { 1291 ListPage( PageContext<ListResourcePoliciesRequest, ResourcePolicyList, ResourcePolicy> context, ResourcePolicyList response)1292 private ListPage( 1293 PageContext<ListResourcePoliciesRequest, ResourcePolicyList, ResourcePolicy> context, 1294 ResourcePolicyList response) { 1295 super(context, response); 1296 } 1297 createEmptyPage()1298 private static ListPage createEmptyPage() { 1299 return new ListPage(null, null); 1300 } 1301 1302 @Override createPage( PageContext<ListResourcePoliciesRequest, ResourcePolicyList, ResourcePolicy> context, ResourcePolicyList response)1303 protected ListPage createPage( 1304 PageContext<ListResourcePoliciesRequest, ResourcePolicyList, ResourcePolicy> context, 1305 ResourcePolicyList response) { 1306 return new ListPage(context, response); 1307 } 1308 1309 @Override createPageAsync( PageContext<ListResourcePoliciesRequest, ResourcePolicyList, ResourcePolicy> context, ApiFuture<ResourcePolicyList> futureResponse)1310 public ApiFuture<ListPage> createPageAsync( 1311 PageContext<ListResourcePoliciesRequest, ResourcePolicyList, ResourcePolicy> context, 1312 ApiFuture<ResourcePolicyList> futureResponse) { 1313 return super.createPageAsync(context, futureResponse); 1314 } 1315 } 1316 1317 public static class ListFixedSizeCollection 1318 extends AbstractFixedSizeCollection< 1319 ListResourcePoliciesRequest, 1320 ResourcePolicyList, 1321 ResourcePolicy, 1322 ListPage, 1323 ListFixedSizeCollection> { 1324 ListFixedSizeCollection(List<ListPage> pages, int collectionSize)1325 private ListFixedSizeCollection(List<ListPage> pages, int collectionSize) { 1326 super(pages, collectionSize); 1327 } 1328 createEmptyCollection()1329 private static ListFixedSizeCollection createEmptyCollection() { 1330 return new ListFixedSizeCollection(null, 0); 1331 } 1332 1333 @Override createCollection(List<ListPage> pages, int collectionSize)1334 protected ListFixedSizeCollection createCollection(List<ListPage> pages, int collectionSize) { 1335 return new ListFixedSizeCollection(pages, collectionSize); 1336 } 1337 } 1338 } 1339