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