• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.cloud.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