• 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.stub;
18 
19 import static com.google.cloud.compute.v1.FirewallsClient.ListPagedResponse;
20 
21 import com.google.api.core.BetaApi;
22 import com.google.api.core.InternalApi;
23 import com.google.api.gax.core.BackgroundResource;
24 import com.google.api.gax.core.BackgroundResourceAggregation;
25 import com.google.api.gax.httpjson.ApiMethodDescriptor;
26 import com.google.api.gax.httpjson.HttpJsonCallSettings;
27 import com.google.api.gax.httpjson.HttpJsonOperationSnapshot;
28 import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
29 import com.google.api.gax.httpjson.ProtoMessageRequestFormatter;
30 import com.google.api.gax.httpjson.ProtoMessageResponseParser;
31 import com.google.api.gax.httpjson.ProtoRestSerializer;
32 import com.google.api.gax.rpc.ClientContext;
33 import com.google.api.gax.rpc.OperationCallable;
34 import com.google.api.gax.rpc.UnaryCallable;
35 import com.google.cloud.compute.v1.DeleteFirewallRequest;
36 import com.google.cloud.compute.v1.Firewall;
37 import com.google.cloud.compute.v1.FirewallList;
38 import com.google.cloud.compute.v1.GetFirewallRequest;
39 import com.google.cloud.compute.v1.InsertFirewallRequest;
40 import com.google.cloud.compute.v1.ListFirewallsRequest;
41 import com.google.cloud.compute.v1.Operation;
42 import com.google.cloud.compute.v1.Operation.Status;
43 import com.google.cloud.compute.v1.PatchFirewallRequest;
44 import com.google.cloud.compute.v1.UpdateFirewallRequest;
45 import com.google.protobuf.TypeRegistry;
46 import java.io.IOException;
47 import java.util.ArrayList;
48 import java.util.HashMap;
49 import java.util.List;
50 import java.util.Map;
51 import java.util.concurrent.TimeUnit;
52 import javax.annotation.Generated;
53 
54 // AUTO-GENERATED DOCUMENTATION AND CLASS.
55 /**
56  * REST stub implementation for the Firewalls service API.
57  *
58  * <p>This class is for advanced usage and reflects the underlying API directly.
59  */
60 @Generated("by gapic-generator-java")
61 @BetaApi
62 public class HttpJsonFirewallsStub extends FirewallsStub {
63   private static final TypeRegistry typeRegistry =
64       TypeRegistry.newBuilder().add(Operation.getDescriptor()).build();
65 
66   private static final ApiMethodDescriptor<DeleteFirewallRequest, Operation>
67       deleteMethodDescriptor =
68           ApiMethodDescriptor.<DeleteFirewallRequest, Operation>newBuilder()
69               .setFullMethodName("google.cloud.compute.v1.Firewalls/Delete")
70               .setHttpMethod("DELETE")
71               .setType(ApiMethodDescriptor.MethodType.UNARY)
72               .setRequestFormatter(
73                   ProtoMessageRequestFormatter.<DeleteFirewallRequest>newBuilder()
74                       .setPath(
75                           "/compute/v1/projects/{project}/global/firewalls/{firewall}",
76                           request -> {
77                             Map<String, String> fields = new HashMap<>();
78                             ProtoRestSerializer<DeleteFirewallRequest> serializer =
79                                 ProtoRestSerializer.create();
80                             serializer.putPathParam(fields, "firewall", request.getFirewall());
81                             serializer.putPathParam(fields, "project", request.getProject());
82                             return fields;
83                           })
84                       .setQueryParamsExtractor(
85                           request -> {
86                             Map<String, List<String>> fields = new HashMap<>();
87                             ProtoRestSerializer<DeleteFirewallRequest> serializer =
88                                 ProtoRestSerializer.create();
89                             if (request.hasRequestId()) {
90                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
91                             }
92                             return fields;
93                           })
94                       .setRequestBodyExtractor(request -> null)
95                       .build())
96               .setResponseParser(
97                   ProtoMessageResponseParser.<Operation>newBuilder()
98                       .setDefaultInstance(Operation.getDefaultInstance())
99                       .setDefaultTypeRegistry(typeRegistry)
100                       .build())
101               .setOperationSnapshotFactory(
102                   (DeleteFirewallRequest request, Operation response) -> {
103                     StringBuilder opName = new StringBuilder(response.getName());
104                     opName.append(":").append(request.getProject());
105                     return HttpJsonOperationSnapshot.newBuilder()
106                         .setName(opName.toString())
107                         .setMetadata(response)
108                         .setDone(Status.DONE.equals(response.getStatus()))
109                         .setResponse(response)
110                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
111                         .build();
112                   })
113               .build();
114 
115   private static final ApiMethodDescriptor<GetFirewallRequest, Firewall> getMethodDescriptor =
116       ApiMethodDescriptor.<GetFirewallRequest, Firewall>newBuilder()
117           .setFullMethodName("google.cloud.compute.v1.Firewalls/Get")
118           .setHttpMethod("GET")
119           .setType(ApiMethodDescriptor.MethodType.UNARY)
120           .setRequestFormatter(
121               ProtoMessageRequestFormatter.<GetFirewallRequest>newBuilder()
122                   .setPath(
123                       "/compute/v1/projects/{project}/global/firewalls/{firewall}",
124                       request -> {
125                         Map<String, String> fields = new HashMap<>();
126                         ProtoRestSerializer<GetFirewallRequest> serializer =
127                             ProtoRestSerializer.create();
128                         serializer.putPathParam(fields, "firewall", request.getFirewall());
129                         serializer.putPathParam(fields, "project", request.getProject());
130                         return fields;
131                       })
132                   .setQueryParamsExtractor(
133                       request -> {
134                         Map<String, List<String>> fields = new HashMap<>();
135                         ProtoRestSerializer<GetFirewallRequest> serializer =
136                             ProtoRestSerializer.create();
137                         return fields;
138                       })
139                   .setRequestBodyExtractor(request -> null)
140                   .build())
141           .setResponseParser(
142               ProtoMessageResponseParser.<Firewall>newBuilder()
143                   .setDefaultInstance(Firewall.getDefaultInstance())
144                   .setDefaultTypeRegistry(typeRegistry)
145                   .build())
146           .build();
147 
148   private static final ApiMethodDescriptor<InsertFirewallRequest, Operation>
149       insertMethodDescriptor =
150           ApiMethodDescriptor.<InsertFirewallRequest, Operation>newBuilder()
151               .setFullMethodName("google.cloud.compute.v1.Firewalls/Insert")
152               .setHttpMethod("POST")
153               .setType(ApiMethodDescriptor.MethodType.UNARY)
154               .setRequestFormatter(
155                   ProtoMessageRequestFormatter.<InsertFirewallRequest>newBuilder()
156                       .setPath(
157                           "/compute/v1/projects/{project}/global/firewalls",
158                           request -> {
159                             Map<String, String> fields = new HashMap<>();
160                             ProtoRestSerializer<InsertFirewallRequest> serializer =
161                                 ProtoRestSerializer.create();
162                             serializer.putPathParam(fields, "project", request.getProject());
163                             return fields;
164                           })
165                       .setQueryParamsExtractor(
166                           request -> {
167                             Map<String, List<String>> fields = new HashMap<>();
168                             ProtoRestSerializer<InsertFirewallRequest> serializer =
169                                 ProtoRestSerializer.create();
170                             if (request.hasRequestId()) {
171                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
172                             }
173                             return fields;
174                           })
175                       .setRequestBodyExtractor(
176                           request ->
177                               ProtoRestSerializer.create()
178                                   .toBody("firewallResource", request.getFirewallResource(), false))
179                       .build())
180               .setResponseParser(
181                   ProtoMessageResponseParser.<Operation>newBuilder()
182                       .setDefaultInstance(Operation.getDefaultInstance())
183                       .setDefaultTypeRegistry(typeRegistry)
184                       .build())
185               .setOperationSnapshotFactory(
186                   (InsertFirewallRequest request, Operation response) -> {
187                     StringBuilder opName = new StringBuilder(response.getName());
188                     opName.append(":").append(request.getProject());
189                     return HttpJsonOperationSnapshot.newBuilder()
190                         .setName(opName.toString())
191                         .setMetadata(response)
192                         .setDone(Status.DONE.equals(response.getStatus()))
193                         .setResponse(response)
194                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
195                         .build();
196                   })
197               .build();
198 
199   private static final ApiMethodDescriptor<ListFirewallsRequest, FirewallList>
200       listMethodDescriptor =
201           ApiMethodDescriptor.<ListFirewallsRequest, FirewallList>newBuilder()
202               .setFullMethodName("google.cloud.compute.v1.Firewalls/List")
203               .setHttpMethod("GET")
204               .setType(ApiMethodDescriptor.MethodType.UNARY)
205               .setRequestFormatter(
206                   ProtoMessageRequestFormatter.<ListFirewallsRequest>newBuilder()
207                       .setPath(
208                           "/compute/v1/projects/{project}/global/firewalls",
209                           request -> {
210                             Map<String, String> fields = new HashMap<>();
211                             ProtoRestSerializer<ListFirewallsRequest> serializer =
212                                 ProtoRestSerializer.create();
213                             serializer.putPathParam(fields, "project", request.getProject());
214                             return fields;
215                           })
216                       .setQueryParamsExtractor(
217                           request -> {
218                             Map<String, List<String>> fields = new HashMap<>();
219                             ProtoRestSerializer<ListFirewallsRequest> serializer =
220                                 ProtoRestSerializer.create();
221                             if (request.hasFilter()) {
222                               serializer.putQueryParam(fields, "filter", request.getFilter());
223                             }
224                             if (request.hasMaxResults()) {
225                               serializer.putQueryParam(
226                                   fields, "maxResults", request.getMaxResults());
227                             }
228                             if (request.hasOrderBy()) {
229                               serializer.putQueryParam(fields, "orderBy", request.getOrderBy());
230                             }
231                             if (request.hasPageToken()) {
232                               serializer.putQueryParam(fields, "pageToken", request.getPageToken());
233                             }
234                             if (request.hasReturnPartialSuccess()) {
235                               serializer.putQueryParam(
236                                   fields,
237                                   "returnPartialSuccess",
238                                   request.getReturnPartialSuccess());
239                             }
240                             return fields;
241                           })
242                       .setRequestBodyExtractor(request -> null)
243                       .build())
244               .setResponseParser(
245                   ProtoMessageResponseParser.<FirewallList>newBuilder()
246                       .setDefaultInstance(FirewallList.getDefaultInstance())
247                       .setDefaultTypeRegistry(typeRegistry)
248                       .build())
249               .build();
250 
251   private static final ApiMethodDescriptor<PatchFirewallRequest, Operation> patchMethodDescriptor =
252       ApiMethodDescriptor.<PatchFirewallRequest, Operation>newBuilder()
253           .setFullMethodName("google.cloud.compute.v1.Firewalls/Patch")
254           .setHttpMethod("PATCH")
255           .setType(ApiMethodDescriptor.MethodType.UNARY)
256           .setRequestFormatter(
257               ProtoMessageRequestFormatter.<PatchFirewallRequest>newBuilder()
258                   .setPath(
259                       "/compute/v1/projects/{project}/global/firewalls/{firewall}",
260                       request -> {
261                         Map<String, String> fields = new HashMap<>();
262                         ProtoRestSerializer<PatchFirewallRequest> serializer =
263                             ProtoRestSerializer.create();
264                         serializer.putPathParam(fields, "firewall", request.getFirewall());
265                         serializer.putPathParam(fields, "project", request.getProject());
266                         return fields;
267                       })
268                   .setQueryParamsExtractor(
269                       request -> {
270                         Map<String, List<String>> fields = new HashMap<>();
271                         ProtoRestSerializer<PatchFirewallRequest> serializer =
272                             ProtoRestSerializer.create();
273                         if (request.hasRequestId()) {
274                           serializer.putQueryParam(fields, "requestId", request.getRequestId());
275                         }
276                         return fields;
277                       })
278                   .setRequestBodyExtractor(
279                       request ->
280                           ProtoRestSerializer.create()
281                               .toBody("firewallResource", request.getFirewallResource(), false))
282                   .build())
283           .setResponseParser(
284               ProtoMessageResponseParser.<Operation>newBuilder()
285                   .setDefaultInstance(Operation.getDefaultInstance())
286                   .setDefaultTypeRegistry(typeRegistry)
287                   .build())
288           .setOperationSnapshotFactory(
289               (PatchFirewallRequest request, Operation response) -> {
290                 StringBuilder opName = new StringBuilder(response.getName());
291                 opName.append(":").append(request.getProject());
292                 return HttpJsonOperationSnapshot.newBuilder()
293                     .setName(opName.toString())
294                     .setMetadata(response)
295                     .setDone(Status.DONE.equals(response.getStatus()))
296                     .setResponse(response)
297                     .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
298                     .build();
299               })
300           .build();
301 
302   private static final ApiMethodDescriptor<UpdateFirewallRequest, Operation>
303       updateMethodDescriptor =
304           ApiMethodDescriptor.<UpdateFirewallRequest, Operation>newBuilder()
305               .setFullMethodName("google.cloud.compute.v1.Firewalls/Update")
306               .setHttpMethod("PUT")
307               .setType(ApiMethodDescriptor.MethodType.UNARY)
308               .setRequestFormatter(
309                   ProtoMessageRequestFormatter.<UpdateFirewallRequest>newBuilder()
310                       .setPath(
311                           "/compute/v1/projects/{project}/global/firewalls/{firewall}",
312                           request -> {
313                             Map<String, String> fields = new HashMap<>();
314                             ProtoRestSerializer<UpdateFirewallRequest> serializer =
315                                 ProtoRestSerializer.create();
316                             serializer.putPathParam(fields, "firewall", request.getFirewall());
317                             serializer.putPathParam(fields, "project", request.getProject());
318                             return fields;
319                           })
320                       .setQueryParamsExtractor(
321                           request -> {
322                             Map<String, List<String>> fields = new HashMap<>();
323                             ProtoRestSerializer<UpdateFirewallRequest> serializer =
324                                 ProtoRestSerializer.create();
325                             if (request.hasRequestId()) {
326                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
327                             }
328                             return fields;
329                           })
330                       .setRequestBodyExtractor(
331                           request ->
332                               ProtoRestSerializer.create()
333                                   .toBody("firewallResource", request.getFirewallResource(), false))
334                       .build())
335               .setResponseParser(
336                   ProtoMessageResponseParser.<Operation>newBuilder()
337                       .setDefaultInstance(Operation.getDefaultInstance())
338                       .setDefaultTypeRegistry(typeRegistry)
339                       .build())
340               .setOperationSnapshotFactory(
341                   (UpdateFirewallRequest request, Operation response) -> {
342                     StringBuilder opName = new StringBuilder(response.getName());
343                     opName.append(":").append(request.getProject());
344                     return HttpJsonOperationSnapshot.newBuilder()
345                         .setName(opName.toString())
346                         .setMetadata(response)
347                         .setDone(Status.DONE.equals(response.getStatus()))
348                         .setResponse(response)
349                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
350                         .build();
351                   })
352               .build();
353 
354   private final UnaryCallable<DeleteFirewallRequest, Operation> deleteCallable;
355   private final OperationCallable<DeleteFirewallRequest, Operation, Operation>
356       deleteOperationCallable;
357   private final UnaryCallable<GetFirewallRequest, Firewall> getCallable;
358   private final UnaryCallable<InsertFirewallRequest, Operation> insertCallable;
359   private final OperationCallable<InsertFirewallRequest, Operation, Operation>
360       insertOperationCallable;
361   private final UnaryCallable<ListFirewallsRequest, FirewallList> listCallable;
362   private final UnaryCallable<ListFirewallsRequest, ListPagedResponse> listPagedCallable;
363   private final UnaryCallable<PatchFirewallRequest, Operation> patchCallable;
364   private final OperationCallable<PatchFirewallRequest, Operation, Operation>
365       patchOperationCallable;
366   private final UnaryCallable<UpdateFirewallRequest, Operation> updateCallable;
367   private final OperationCallable<UpdateFirewallRequest, Operation, Operation>
368       updateOperationCallable;
369 
370   private final BackgroundResource backgroundResources;
371   private final HttpJsonGlobalOperationsStub httpJsonOperationsStub;
372   private final HttpJsonStubCallableFactory callableFactory;
373 
create(FirewallsStubSettings settings)374   public static final HttpJsonFirewallsStub create(FirewallsStubSettings settings)
375       throws IOException {
376     return new HttpJsonFirewallsStub(settings, ClientContext.create(settings));
377   }
378 
create(ClientContext clientContext)379   public static final HttpJsonFirewallsStub create(ClientContext clientContext) throws IOException {
380     return new HttpJsonFirewallsStub(FirewallsStubSettings.newBuilder().build(), clientContext);
381   }
382 
create( ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)383   public static final HttpJsonFirewallsStub create(
384       ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException {
385     return new HttpJsonFirewallsStub(
386         FirewallsStubSettings.newBuilder().build(), clientContext, callableFactory);
387   }
388 
389   /**
390    * Constructs an instance of HttpJsonFirewallsStub, using the given settings. This is protected so
391    * that it is easy to make a subclass, but otherwise, the static factory methods should be
392    * preferred.
393    */
HttpJsonFirewallsStub(FirewallsStubSettings settings, ClientContext clientContext)394   protected HttpJsonFirewallsStub(FirewallsStubSettings settings, ClientContext clientContext)
395       throws IOException {
396     this(settings, clientContext, new HttpJsonFirewallsCallableFactory());
397   }
398 
399   /**
400    * Constructs an instance of HttpJsonFirewallsStub, using the given settings. This is protected so
401    * that it is easy to make a subclass, but otherwise, the static factory methods should be
402    * preferred.
403    */
HttpJsonFirewallsStub( FirewallsStubSettings settings, ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)404   protected HttpJsonFirewallsStub(
405       FirewallsStubSettings settings,
406       ClientContext clientContext,
407       HttpJsonStubCallableFactory callableFactory)
408       throws IOException {
409     this.callableFactory = callableFactory;
410     this.httpJsonOperationsStub =
411         HttpJsonGlobalOperationsStub.create(clientContext, callableFactory);
412 
413     HttpJsonCallSettings<DeleteFirewallRequest, Operation> deleteTransportSettings =
414         HttpJsonCallSettings.<DeleteFirewallRequest, Operation>newBuilder()
415             .setMethodDescriptor(deleteMethodDescriptor)
416             .setTypeRegistry(typeRegistry)
417             .build();
418     HttpJsonCallSettings<GetFirewallRequest, Firewall> getTransportSettings =
419         HttpJsonCallSettings.<GetFirewallRequest, Firewall>newBuilder()
420             .setMethodDescriptor(getMethodDescriptor)
421             .setTypeRegistry(typeRegistry)
422             .build();
423     HttpJsonCallSettings<InsertFirewallRequest, Operation> insertTransportSettings =
424         HttpJsonCallSettings.<InsertFirewallRequest, Operation>newBuilder()
425             .setMethodDescriptor(insertMethodDescriptor)
426             .setTypeRegistry(typeRegistry)
427             .build();
428     HttpJsonCallSettings<ListFirewallsRequest, FirewallList> listTransportSettings =
429         HttpJsonCallSettings.<ListFirewallsRequest, FirewallList>newBuilder()
430             .setMethodDescriptor(listMethodDescriptor)
431             .setTypeRegistry(typeRegistry)
432             .build();
433     HttpJsonCallSettings<PatchFirewallRequest, Operation> patchTransportSettings =
434         HttpJsonCallSettings.<PatchFirewallRequest, Operation>newBuilder()
435             .setMethodDescriptor(patchMethodDescriptor)
436             .setTypeRegistry(typeRegistry)
437             .build();
438     HttpJsonCallSettings<UpdateFirewallRequest, Operation> updateTransportSettings =
439         HttpJsonCallSettings.<UpdateFirewallRequest, Operation>newBuilder()
440             .setMethodDescriptor(updateMethodDescriptor)
441             .setTypeRegistry(typeRegistry)
442             .build();
443 
444     this.deleteCallable =
445         callableFactory.createUnaryCallable(
446             deleteTransportSettings, settings.deleteSettings(), clientContext);
447     this.deleteOperationCallable =
448         callableFactory.createOperationCallable(
449             deleteTransportSettings,
450             settings.deleteOperationSettings(),
451             clientContext,
452             httpJsonOperationsStub);
453     this.getCallable =
454         callableFactory.createUnaryCallable(
455             getTransportSettings, settings.getSettings(), clientContext);
456     this.insertCallable =
457         callableFactory.createUnaryCallable(
458             insertTransportSettings, settings.insertSettings(), clientContext);
459     this.insertOperationCallable =
460         callableFactory.createOperationCallable(
461             insertTransportSettings,
462             settings.insertOperationSettings(),
463             clientContext,
464             httpJsonOperationsStub);
465     this.listCallable =
466         callableFactory.createUnaryCallable(
467             listTransportSettings, settings.listSettings(), clientContext);
468     this.listPagedCallable =
469         callableFactory.createPagedCallable(
470             listTransportSettings, settings.listSettings(), clientContext);
471     this.patchCallable =
472         callableFactory.createUnaryCallable(
473             patchTransportSettings, settings.patchSettings(), clientContext);
474     this.patchOperationCallable =
475         callableFactory.createOperationCallable(
476             patchTransportSettings,
477             settings.patchOperationSettings(),
478             clientContext,
479             httpJsonOperationsStub);
480     this.updateCallable =
481         callableFactory.createUnaryCallable(
482             updateTransportSettings, settings.updateSettings(), clientContext);
483     this.updateOperationCallable =
484         callableFactory.createOperationCallable(
485             updateTransportSettings,
486             settings.updateOperationSettings(),
487             clientContext,
488             httpJsonOperationsStub);
489 
490     this.backgroundResources =
491         new BackgroundResourceAggregation(clientContext.getBackgroundResources());
492   }
493 
494   @InternalApi
getMethodDescriptors()495   public static List<ApiMethodDescriptor> getMethodDescriptors() {
496     List<ApiMethodDescriptor> methodDescriptors = new ArrayList<>();
497     methodDescriptors.add(deleteMethodDescriptor);
498     methodDescriptors.add(getMethodDescriptor);
499     methodDescriptors.add(insertMethodDescriptor);
500     methodDescriptors.add(listMethodDescriptor);
501     methodDescriptors.add(patchMethodDescriptor);
502     methodDescriptors.add(updateMethodDescriptor);
503     return methodDescriptors;
504   }
505 
506   @Override
deleteCallable()507   public UnaryCallable<DeleteFirewallRequest, Operation> deleteCallable() {
508     return deleteCallable;
509   }
510 
511   @Override
deleteOperationCallable()512   public OperationCallable<DeleteFirewallRequest, Operation, Operation> deleteOperationCallable() {
513     return deleteOperationCallable;
514   }
515 
516   @Override
getCallable()517   public UnaryCallable<GetFirewallRequest, Firewall> getCallable() {
518     return getCallable;
519   }
520 
521   @Override
insertCallable()522   public UnaryCallable<InsertFirewallRequest, Operation> insertCallable() {
523     return insertCallable;
524   }
525 
526   @Override
insertOperationCallable()527   public OperationCallable<InsertFirewallRequest, Operation, Operation> insertOperationCallable() {
528     return insertOperationCallable;
529   }
530 
531   @Override
listCallable()532   public UnaryCallable<ListFirewallsRequest, FirewallList> listCallable() {
533     return listCallable;
534   }
535 
536   @Override
listPagedCallable()537   public UnaryCallable<ListFirewallsRequest, ListPagedResponse> listPagedCallable() {
538     return listPagedCallable;
539   }
540 
541   @Override
patchCallable()542   public UnaryCallable<PatchFirewallRequest, Operation> patchCallable() {
543     return patchCallable;
544   }
545 
546   @Override
patchOperationCallable()547   public OperationCallable<PatchFirewallRequest, Operation, Operation> patchOperationCallable() {
548     return patchOperationCallable;
549   }
550 
551   @Override
updateCallable()552   public UnaryCallable<UpdateFirewallRequest, Operation> updateCallable() {
553     return updateCallable;
554   }
555 
556   @Override
updateOperationCallable()557   public OperationCallable<UpdateFirewallRequest, Operation, Operation> updateOperationCallable() {
558     return updateOperationCallable;
559   }
560 
561   @Override
close()562   public final void close() {
563     try {
564       backgroundResources.close();
565     } catch (RuntimeException e) {
566       throw e;
567     } catch (Exception e) {
568       throw new IllegalStateException("Failed to close resource", e);
569     }
570   }
571 
572   @Override
shutdown()573   public void shutdown() {
574     backgroundResources.shutdown();
575   }
576 
577   @Override
isShutdown()578   public boolean isShutdown() {
579     return backgroundResources.isShutdown();
580   }
581 
582   @Override
isTerminated()583   public boolean isTerminated() {
584     return backgroundResources.isTerminated();
585   }
586 
587   @Override
shutdownNow()588   public void shutdownNow() {
589     backgroundResources.shutdownNow();
590   }
591 
592   @Override
awaitTermination(long duration, TimeUnit unit)593   public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
594     return backgroundResources.awaitTermination(duration, unit);
595   }
596 }
597