• 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.ProjectsClient.GetXpnResourcesPagedResponse;
20 import static com.google.cloud.compute.v1.ProjectsClient.ListXpnHostsPagedResponse;
21 
22 import com.google.api.core.BetaApi;
23 import com.google.api.core.InternalApi;
24 import com.google.api.gax.core.BackgroundResource;
25 import com.google.api.gax.core.BackgroundResourceAggregation;
26 import com.google.api.gax.httpjson.ApiMethodDescriptor;
27 import com.google.api.gax.httpjson.HttpJsonCallSettings;
28 import com.google.api.gax.httpjson.HttpJsonOperationSnapshot;
29 import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
30 import com.google.api.gax.httpjson.ProtoMessageRequestFormatter;
31 import com.google.api.gax.httpjson.ProtoMessageResponseParser;
32 import com.google.api.gax.httpjson.ProtoRestSerializer;
33 import com.google.api.gax.rpc.ClientContext;
34 import com.google.api.gax.rpc.OperationCallable;
35 import com.google.api.gax.rpc.UnaryCallable;
36 import com.google.cloud.compute.v1.DisableXpnHostProjectRequest;
37 import com.google.cloud.compute.v1.DisableXpnResourceProjectRequest;
38 import com.google.cloud.compute.v1.EnableXpnHostProjectRequest;
39 import com.google.cloud.compute.v1.EnableXpnResourceProjectRequest;
40 import com.google.cloud.compute.v1.GetProjectRequest;
41 import com.google.cloud.compute.v1.GetXpnHostProjectRequest;
42 import com.google.cloud.compute.v1.GetXpnResourcesProjectsRequest;
43 import com.google.cloud.compute.v1.ListXpnHostsProjectsRequest;
44 import com.google.cloud.compute.v1.MoveDiskProjectRequest;
45 import com.google.cloud.compute.v1.MoveInstanceProjectRequest;
46 import com.google.cloud.compute.v1.Operation;
47 import com.google.cloud.compute.v1.Operation.Status;
48 import com.google.cloud.compute.v1.Project;
49 import com.google.cloud.compute.v1.ProjectsGetXpnResources;
50 import com.google.cloud.compute.v1.SetCommonInstanceMetadataProjectRequest;
51 import com.google.cloud.compute.v1.SetDefaultNetworkTierProjectRequest;
52 import com.google.cloud.compute.v1.SetUsageExportBucketProjectRequest;
53 import com.google.cloud.compute.v1.XpnHostList;
54 import com.google.protobuf.TypeRegistry;
55 import java.io.IOException;
56 import java.util.ArrayList;
57 import java.util.HashMap;
58 import java.util.List;
59 import java.util.Map;
60 import java.util.concurrent.TimeUnit;
61 import javax.annotation.Generated;
62 
63 // AUTO-GENERATED DOCUMENTATION AND CLASS.
64 /**
65  * REST stub implementation for the Projects service API.
66  *
67  * <p>This class is for advanced usage and reflects the underlying API directly.
68  */
69 @Generated("by gapic-generator-java")
70 @BetaApi
71 public class HttpJsonProjectsStub extends ProjectsStub {
72   private static final TypeRegistry typeRegistry =
73       TypeRegistry.newBuilder().add(Operation.getDescriptor()).build();
74 
75   private static final ApiMethodDescriptor<DisableXpnHostProjectRequest, Operation>
76       disableXpnHostMethodDescriptor =
77           ApiMethodDescriptor.<DisableXpnHostProjectRequest, Operation>newBuilder()
78               .setFullMethodName("google.cloud.compute.v1.Projects/DisableXpnHost")
79               .setHttpMethod("POST")
80               .setType(ApiMethodDescriptor.MethodType.UNARY)
81               .setRequestFormatter(
82                   ProtoMessageRequestFormatter.<DisableXpnHostProjectRequest>newBuilder()
83                       .setPath(
84                           "/compute/v1/projects/{project}/disableXpnHost",
85                           request -> {
86                             Map<String, String> fields = new HashMap<>();
87                             ProtoRestSerializer<DisableXpnHostProjectRequest> serializer =
88                                 ProtoRestSerializer.create();
89                             serializer.putPathParam(fields, "project", request.getProject());
90                             return fields;
91                           })
92                       .setQueryParamsExtractor(
93                           request -> {
94                             Map<String, List<String>> fields = new HashMap<>();
95                             ProtoRestSerializer<DisableXpnHostProjectRequest> serializer =
96                                 ProtoRestSerializer.create();
97                             if (request.hasRequestId()) {
98                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
99                             }
100                             return fields;
101                           })
102                       .setRequestBodyExtractor(request -> null)
103                       .build())
104               .setResponseParser(
105                   ProtoMessageResponseParser.<Operation>newBuilder()
106                       .setDefaultInstance(Operation.getDefaultInstance())
107                       .setDefaultTypeRegistry(typeRegistry)
108                       .build())
109               .setOperationSnapshotFactory(
110                   (DisableXpnHostProjectRequest request, Operation response) -> {
111                     StringBuilder opName = new StringBuilder(response.getName());
112                     opName.append(":").append(request.getProject());
113                     return HttpJsonOperationSnapshot.newBuilder()
114                         .setName(opName.toString())
115                         .setMetadata(response)
116                         .setDone(Status.DONE.equals(response.getStatus()))
117                         .setResponse(response)
118                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
119                         .build();
120                   })
121               .build();
122 
123   private static final ApiMethodDescriptor<DisableXpnResourceProjectRequest, Operation>
124       disableXpnResourceMethodDescriptor =
125           ApiMethodDescriptor.<DisableXpnResourceProjectRequest, Operation>newBuilder()
126               .setFullMethodName("google.cloud.compute.v1.Projects/DisableXpnResource")
127               .setHttpMethod("POST")
128               .setType(ApiMethodDescriptor.MethodType.UNARY)
129               .setRequestFormatter(
130                   ProtoMessageRequestFormatter.<DisableXpnResourceProjectRequest>newBuilder()
131                       .setPath(
132                           "/compute/v1/projects/{project}/disableXpnResource",
133                           request -> {
134                             Map<String, String> fields = new HashMap<>();
135                             ProtoRestSerializer<DisableXpnResourceProjectRequest> serializer =
136                                 ProtoRestSerializer.create();
137                             serializer.putPathParam(fields, "project", request.getProject());
138                             return fields;
139                           })
140                       .setQueryParamsExtractor(
141                           request -> {
142                             Map<String, List<String>> fields = new HashMap<>();
143                             ProtoRestSerializer<DisableXpnResourceProjectRequest> serializer =
144                                 ProtoRestSerializer.create();
145                             if (request.hasRequestId()) {
146                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
147                             }
148                             return fields;
149                           })
150                       .setRequestBodyExtractor(
151                           request ->
152                               ProtoRestSerializer.create()
153                                   .toBody(
154                                       "projectsDisableXpnResourceRequestResource",
155                                       request.getProjectsDisableXpnResourceRequestResource(),
156                                       false))
157                       .build())
158               .setResponseParser(
159                   ProtoMessageResponseParser.<Operation>newBuilder()
160                       .setDefaultInstance(Operation.getDefaultInstance())
161                       .setDefaultTypeRegistry(typeRegistry)
162                       .build())
163               .setOperationSnapshotFactory(
164                   (DisableXpnResourceProjectRequest request, Operation response) -> {
165                     StringBuilder opName = new StringBuilder(response.getName());
166                     opName.append(":").append(request.getProject());
167                     return HttpJsonOperationSnapshot.newBuilder()
168                         .setName(opName.toString())
169                         .setMetadata(response)
170                         .setDone(Status.DONE.equals(response.getStatus()))
171                         .setResponse(response)
172                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
173                         .build();
174                   })
175               .build();
176 
177   private static final ApiMethodDescriptor<EnableXpnHostProjectRequest, Operation>
178       enableXpnHostMethodDescriptor =
179           ApiMethodDescriptor.<EnableXpnHostProjectRequest, Operation>newBuilder()
180               .setFullMethodName("google.cloud.compute.v1.Projects/EnableXpnHost")
181               .setHttpMethod("POST")
182               .setType(ApiMethodDescriptor.MethodType.UNARY)
183               .setRequestFormatter(
184                   ProtoMessageRequestFormatter.<EnableXpnHostProjectRequest>newBuilder()
185                       .setPath(
186                           "/compute/v1/projects/{project}/enableXpnHost",
187                           request -> {
188                             Map<String, String> fields = new HashMap<>();
189                             ProtoRestSerializer<EnableXpnHostProjectRequest> serializer =
190                                 ProtoRestSerializer.create();
191                             serializer.putPathParam(fields, "project", request.getProject());
192                             return fields;
193                           })
194                       .setQueryParamsExtractor(
195                           request -> {
196                             Map<String, List<String>> fields = new HashMap<>();
197                             ProtoRestSerializer<EnableXpnHostProjectRequest> serializer =
198                                 ProtoRestSerializer.create();
199                             if (request.hasRequestId()) {
200                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
201                             }
202                             return fields;
203                           })
204                       .setRequestBodyExtractor(request -> null)
205                       .build())
206               .setResponseParser(
207                   ProtoMessageResponseParser.<Operation>newBuilder()
208                       .setDefaultInstance(Operation.getDefaultInstance())
209                       .setDefaultTypeRegistry(typeRegistry)
210                       .build())
211               .setOperationSnapshotFactory(
212                   (EnableXpnHostProjectRequest request, Operation response) -> {
213                     StringBuilder opName = new StringBuilder(response.getName());
214                     opName.append(":").append(request.getProject());
215                     return HttpJsonOperationSnapshot.newBuilder()
216                         .setName(opName.toString())
217                         .setMetadata(response)
218                         .setDone(Status.DONE.equals(response.getStatus()))
219                         .setResponse(response)
220                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
221                         .build();
222                   })
223               .build();
224 
225   private static final ApiMethodDescriptor<EnableXpnResourceProjectRequest, Operation>
226       enableXpnResourceMethodDescriptor =
227           ApiMethodDescriptor.<EnableXpnResourceProjectRequest, Operation>newBuilder()
228               .setFullMethodName("google.cloud.compute.v1.Projects/EnableXpnResource")
229               .setHttpMethod("POST")
230               .setType(ApiMethodDescriptor.MethodType.UNARY)
231               .setRequestFormatter(
232                   ProtoMessageRequestFormatter.<EnableXpnResourceProjectRequest>newBuilder()
233                       .setPath(
234                           "/compute/v1/projects/{project}/enableXpnResource",
235                           request -> {
236                             Map<String, String> fields = new HashMap<>();
237                             ProtoRestSerializer<EnableXpnResourceProjectRequest> serializer =
238                                 ProtoRestSerializer.create();
239                             serializer.putPathParam(fields, "project", request.getProject());
240                             return fields;
241                           })
242                       .setQueryParamsExtractor(
243                           request -> {
244                             Map<String, List<String>> fields = new HashMap<>();
245                             ProtoRestSerializer<EnableXpnResourceProjectRequest> serializer =
246                                 ProtoRestSerializer.create();
247                             if (request.hasRequestId()) {
248                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
249                             }
250                             return fields;
251                           })
252                       .setRequestBodyExtractor(
253                           request ->
254                               ProtoRestSerializer.create()
255                                   .toBody(
256                                       "projectsEnableXpnResourceRequestResource",
257                                       request.getProjectsEnableXpnResourceRequestResource(),
258                                       false))
259                       .build())
260               .setResponseParser(
261                   ProtoMessageResponseParser.<Operation>newBuilder()
262                       .setDefaultInstance(Operation.getDefaultInstance())
263                       .setDefaultTypeRegistry(typeRegistry)
264                       .build())
265               .setOperationSnapshotFactory(
266                   (EnableXpnResourceProjectRequest request, Operation response) -> {
267                     StringBuilder opName = new StringBuilder(response.getName());
268                     opName.append(":").append(request.getProject());
269                     return HttpJsonOperationSnapshot.newBuilder()
270                         .setName(opName.toString())
271                         .setMetadata(response)
272                         .setDone(Status.DONE.equals(response.getStatus()))
273                         .setResponse(response)
274                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
275                         .build();
276                   })
277               .build();
278 
279   private static final ApiMethodDescriptor<GetProjectRequest, Project> getMethodDescriptor =
280       ApiMethodDescriptor.<GetProjectRequest, Project>newBuilder()
281           .setFullMethodName("google.cloud.compute.v1.Projects/Get")
282           .setHttpMethod("GET")
283           .setType(ApiMethodDescriptor.MethodType.UNARY)
284           .setRequestFormatter(
285               ProtoMessageRequestFormatter.<GetProjectRequest>newBuilder()
286                   .setPath(
287                       "/compute/v1/projects/{project}",
288                       request -> {
289                         Map<String, String> fields = new HashMap<>();
290                         ProtoRestSerializer<GetProjectRequest> serializer =
291                             ProtoRestSerializer.create();
292                         serializer.putPathParam(fields, "project", request.getProject());
293                         return fields;
294                       })
295                   .setQueryParamsExtractor(
296                       request -> {
297                         Map<String, List<String>> fields = new HashMap<>();
298                         ProtoRestSerializer<GetProjectRequest> serializer =
299                             ProtoRestSerializer.create();
300                         return fields;
301                       })
302                   .setRequestBodyExtractor(request -> null)
303                   .build())
304           .setResponseParser(
305               ProtoMessageResponseParser.<Project>newBuilder()
306                   .setDefaultInstance(Project.getDefaultInstance())
307                   .setDefaultTypeRegistry(typeRegistry)
308                   .build())
309           .build();
310 
311   private static final ApiMethodDescriptor<GetXpnHostProjectRequest, Project>
312       getXpnHostMethodDescriptor =
313           ApiMethodDescriptor.<GetXpnHostProjectRequest, Project>newBuilder()
314               .setFullMethodName("google.cloud.compute.v1.Projects/GetXpnHost")
315               .setHttpMethod("GET")
316               .setType(ApiMethodDescriptor.MethodType.UNARY)
317               .setRequestFormatter(
318                   ProtoMessageRequestFormatter.<GetXpnHostProjectRequest>newBuilder()
319                       .setPath(
320                           "/compute/v1/projects/{project}/getXpnHost",
321                           request -> {
322                             Map<String, String> fields = new HashMap<>();
323                             ProtoRestSerializer<GetXpnHostProjectRequest> serializer =
324                                 ProtoRestSerializer.create();
325                             serializer.putPathParam(fields, "project", request.getProject());
326                             return fields;
327                           })
328                       .setQueryParamsExtractor(
329                           request -> {
330                             Map<String, List<String>> fields = new HashMap<>();
331                             ProtoRestSerializer<GetXpnHostProjectRequest> serializer =
332                                 ProtoRestSerializer.create();
333                             return fields;
334                           })
335                       .setRequestBodyExtractor(request -> null)
336                       .build())
337               .setResponseParser(
338                   ProtoMessageResponseParser.<Project>newBuilder()
339                       .setDefaultInstance(Project.getDefaultInstance())
340                       .setDefaultTypeRegistry(typeRegistry)
341                       .build())
342               .build();
343 
344   private static final ApiMethodDescriptor<GetXpnResourcesProjectsRequest, ProjectsGetXpnResources>
345       getXpnResourcesMethodDescriptor =
346           ApiMethodDescriptor.<GetXpnResourcesProjectsRequest, ProjectsGetXpnResources>newBuilder()
347               .setFullMethodName("google.cloud.compute.v1.Projects/GetXpnResources")
348               .setHttpMethod("GET")
349               .setType(ApiMethodDescriptor.MethodType.UNARY)
350               .setRequestFormatter(
351                   ProtoMessageRequestFormatter.<GetXpnResourcesProjectsRequest>newBuilder()
352                       .setPath(
353                           "/compute/v1/projects/{project}/getXpnResources",
354                           request -> {
355                             Map<String, String> fields = new HashMap<>();
356                             ProtoRestSerializer<GetXpnResourcesProjectsRequest> serializer =
357                                 ProtoRestSerializer.create();
358                             serializer.putPathParam(fields, "project", request.getProject());
359                             return fields;
360                           })
361                       .setQueryParamsExtractor(
362                           request -> {
363                             Map<String, List<String>> fields = new HashMap<>();
364                             ProtoRestSerializer<GetXpnResourcesProjectsRequest> serializer =
365                                 ProtoRestSerializer.create();
366                             if (request.hasFilter()) {
367                               serializer.putQueryParam(fields, "filter", request.getFilter());
368                             }
369                             if (request.hasMaxResults()) {
370                               serializer.putQueryParam(
371                                   fields, "maxResults", request.getMaxResults());
372                             }
373                             if (request.hasOrderBy()) {
374                               serializer.putQueryParam(fields, "orderBy", request.getOrderBy());
375                             }
376                             if (request.hasPageToken()) {
377                               serializer.putQueryParam(fields, "pageToken", request.getPageToken());
378                             }
379                             if (request.hasReturnPartialSuccess()) {
380                               serializer.putQueryParam(
381                                   fields,
382                                   "returnPartialSuccess",
383                                   request.getReturnPartialSuccess());
384                             }
385                             return fields;
386                           })
387                       .setRequestBodyExtractor(request -> null)
388                       .build())
389               .setResponseParser(
390                   ProtoMessageResponseParser.<ProjectsGetXpnResources>newBuilder()
391                       .setDefaultInstance(ProjectsGetXpnResources.getDefaultInstance())
392                       .setDefaultTypeRegistry(typeRegistry)
393                       .build())
394               .build();
395 
396   private static final ApiMethodDescriptor<ListXpnHostsProjectsRequest, XpnHostList>
397       listXpnHostsMethodDescriptor =
398           ApiMethodDescriptor.<ListXpnHostsProjectsRequest, XpnHostList>newBuilder()
399               .setFullMethodName("google.cloud.compute.v1.Projects/ListXpnHosts")
400               .setHttpMethod("POST")
401               .setType(ApiMethodDescriptor.MethodType.UNARY)
402               .setRequestFormatter(
403                   ProtoMessageRequestFormatter.<ListXpnHostsProjectsRequest>newBuilder()
404                       .setPath(
405                           "/compute/v1/projects/{project}/listXpnHosts",
406                           request -> {
407                             Map<String, String> fields = new HashMap<>();
408                             ProtoRestSerializer<ListXpnHostsProjectsRequest> serializer =
409                                 ProtoRestSerializer.create();
410                             serializer.putPathParam(fields, "project", request.getProject());
411                             return fields;
412                           })
413                       .setQueryParamsExtractor(
414                           request -> {
415                             Map<String, List<String>> fields = new HashMap<>();
416                             ProtoRestSerializer<ListXpnHostsProjectsRequest> serializer =
417                                 ProtoRestSerializer.create();
418                             if (request.hasFilter()) {
419                               serializer.putQueryParam(fields, "filter", request.getFilter());
420                             }
421                             if (request.hasMaxResults()) {
422                               serializer.putQueryParam(
423                                   fields, "maxResults", request.getMaxResults());
424                             }
425                             if (request.hasOrderBy()) {
426                               serializer.putQueryParam(fields, "orderBy", request.getOrderBy());
427                             }
428                             if (request.hasPageToken()) {
429                               serializer.putQueryParam(fields, "pageToken", request.getPageToken());
430                             }
431                             if (request.hasReturnPartialSuccess()) {
432                               serializer.putQueryParam(
433                                   fields,
434                                   "returnPartialSuccess",
435                                   request.getReturnPartialSuccess());
436                             }
437                             return fields;
438                           })
439                       .setRequestBodyExtractor(
440                           request ->
441                               ProtoRestSerializer.create()
442                                   .toBody(
443                                       "projectsListXpnHostsRequestResource",
444                                       request.getProjectsListXpnHostsRequestResource(),
445                                       false))
446                       .build())
447               .setResponseParser(
448                   ProtoMessageResponseParser.<XpnHostList>newBuilder()
449                       .setDefaultInstance(XpnHostList.getDefaultInstance())
450                       .setDefaultTypeRegistry(typeRegistry)
451                       .build())
452               .build();
453 
454   private static final ApiMethodDescriptor<MoveDiskProjectRequest, Operation>
455       moveDiskMethodDescriptor =
456           ApiMethodDescriptor.<MoveDiskProjectRequest, Operation>newBuilder()
457               .setFullMethodName("google.cloud.compute.v1.Projects/MoveDisk")
458               .setHttpMethod("POST")
459               .setType(ApiMethodDescriptor.MethodType.UNARY)
460               .setRequestFormatter(
461                   ProtoMessageRequestFormatter.<MoveDiskProjectRequest>newBuilder()
462                       .setPath(
463                           "/compute/v1/projects/{project}/moveDisk",
464                           request -> {
465                             Map<String, String> fields = new HashMap<>();
466                             ProtoRestSerializer<MoveDiskProjectRequest> serializer =
467                                 ProtoRestSerializer.create();
468                             serializer.putPathParam(fields, "project", request.getProject());
469                             return fields;
470                           })
471                       .setQueryParamsExtractor(
472                           request -> {
473                             Map<String, List<String>> fields = new HashMap<>();
474                             ProtoRestSerializer<MoveDiskProjectRequest> serializer =
475                                 ProtoRestSerializer.create();
476                             if (request.hasRequestId()) {
477                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
478                             }
479                             return fields;
480                           })
481                       .setRequestBodyExtractor(
482                           request ->
483                               ProtoRestSerializer.create()
484                                   .toBody(
485                                       "diskMoveRequestResource",
486                                       request.getDiskMoveRequestResource(),
487                                       false))
488                       .build())
489               .setResponseParser(
490                   ProtoMessageResponseParser.<Operation>newBuilder()
491                       .setDefaultInstance(Operation.getDefaultInstance())
492                       .setDefaultTypeRegistry(typeRegistry)
493                       .build())
494               .setOperationSnapshotFactory(
495                   (MoveDiskProjectRequest request, Operation response) -> {
496                     StringBuilder opName = new StringBuilder(response.getName());
497                     opName.append(":").append(request.getProject());
498                     return HttpJsonOperationSnapshot.newBuilder()
499                         .setName(opName.toString())
500                         .setMetadata(response)
501                         .setDone(Status.DONE.equals(response.getStatus()))
502                         .setResponse(response)
503                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
504                         .build();
505                   })
506               .build();
507 
508   private static final ApiMethodDescriptor<MoveInstanceProjectRequest, Operation>
509       moveInstanceMethodDescriptor =
510           ApiMethodDescriptor.<MoveInstanceProjectRequest, Operation>newBuilder()
511               .setFullMethodName("google.cloud.compute.v1.Projects/MoveInstance")
512               .setHttpMethod("POST")
513               .setType(ApiMethodDescriptor.MethodType.UNARY)
514               .setRequestFormatter(
515                   ProtoMessageRequestFormatter.<MoveInstanceProjectRequest>newBuilder()
516                       .setPath(
517                           "/compute/v1/projects/{project}/moveInstance",
518                           request -> {
519                             Map<String, String> fields = new HashMap<>();
520                             ProtoRestSerializer<MoveInstanceProjectRequest> serializer =
521                                 ProtoRestSerializer.create();
522                             serializer.putPathParam(fields, "project", request.getProject());
523                             return fields;
524                           })
525                       .setQueryParamsExtractor(
526                           request -> {
527                             Map<String, List<String>> fields = new HashMap<>();
528                             ProtoRestSerializer<MoveInstanceProjectRequest> serializer =
529                                 ProtoRestSerializer.create();
530                             if (request.hasRequestId()) {
531                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
532                             }
533                             return fields;
534                           })
535                       .setRequestBodyExtractor(
536                           request ->
537                               ProtoRestSerializer.create()
538                                   .toBody(
539                                       "instanceMoveRequestResource",
540                                       request.getInstanceMoveRequestResource(),
541                                       false))
542                       .build())
543               .setResponseParser(
544                   ProtoMessageResponseParser.<Operation>newBuilder()
545                       .setDefaultInstance(Operation.getDefaultInstance())
546                       .setDefaultTypeRegistry(typeRegistry)
547                       .build())
548               .setOperationSnapshotFactory(
549                   (MoveInstanceProjectRequest request, Operation response) -> {
550                     StringBuilder opName = new StringBuilder(response.getName());
551                     opName.append(":").append(request.getProject());
552                     return HttpJsonOperationSnapshot.newBuilder()
553                         .setName(opName.toString())
554                         .setMetadata(response)
555                         .setDone(Status.DONE.equals(response.getStatus()))
556                         .setResponse(response)
557                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
558                         .build();
559                   })
560               .build();
561 
562   private static final ApiMethodDescriptor<SetCommonInstanceMetadataProjectRequest, Operation>
563       setCommonInstanceMetadataMethodDescriptor =
564           ApiMethodDescriptor.<SetCommonInstanceMetadataProjectRequest, Operation>newBuilder()
565               .setFullMethodName("google.cloud.compute.v1.Projects/SetCommonInstanceMetadata")
566               .setHttpMethod("POST")
567               .setType(ApiMethodDescriptor.MethodType.UNARY)
568               .setRequestFormatter(
569                   ProtoMessageRequestFormatter.<SetCommonInstanceMetadataProjectRequest>newBuilder()
570                       .setPath(
571                           "/compute/v1/projects/{project}/setCommonInstanceMetadata",
572                           request -> {
573                             Map<String, String> fields = new HashMap<>();
574                             ProtoRestSerializer<SetCommonInstanceMetadataProjectRequest>
575                                 serializer = ProtoRestSerializer.create();
576                             serializer.putPathParam(fields, "project", request.getProject());
577                             return fields;
578                           })
579                       .setQueryParamsExtractor(
580                           request -> {
581                             Map<String, List<String>> fields = new HashMap<>();
582                             ProtoRestSerializer<SetCommonInstanceMetadataProjectRequest>
583                                 serializer = ProtoRestSerializer.create();
584                             if (request.hasRequestId()) {
585                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
586                             }
587                             return fields;
588                           })
589                       .setRequestBodyExtractor(
590                           request ->
591                               ProtoRestSerializer.create()
592                                   .toBody("metadataResource", request.getMetadataResource(), false))
593                       .build())
594               .setResponseParser(
595                   ProtoMessageResponseParser.<Operation>newBuilder()
596                       .setDefaultInstance(Operation.getDefaultInstance())
597                       .setDefaultTypeRegistry(typeRegistry)
598                       .build())
599               .setOperationSnapshotFactory(
600                   (SetCommonInstanceMetadataProjectRequest request, Operation response) -> {
601                     StringBuilder opName = new StringBuilder(response.getName());
602                     opName.append(":").append(request.getProject());
603                     return HttpJsonOperationSnapshot.newBuilder()
604                         .setName(opName.toString())
605                         .setMetadata(response)
606                         .setDone(Status.DONE.equals(response.getStatus()))
607                         .setResponse(response)
608                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
609                         .build();
610                   })
611               .build();
612 
613   private static final ApiMethodDescriptor<SetDefaultNetworkTierProjectRequest, Operation>
614       setDefaultNetworkTierMethodDescriptor =
615           ApiMethodDescriptor.<SetDefaultNetworkTierProjectRequest, Operation>newBuilder()
616               .setFullMethodName("google.cloud.compute.v1.Projects/SetDefaultNetworkTier")
617               .setHttpMethod("POST")
618               .setType(ApiMethodDescriptor.MethodType.UNARY)
619               .setRequestFormatter(
620                   ProtoMessageRequestFormatter.<SetDefaultNetworkTierProjectRequest>newBuilder()
621                       .setPath(
622                           "/compute/v1/projects/{project}/setDefaultNetworkTier",
623                           request -> {
624                             Map<String, String> fields = new HashMap<>();
625                             ProtoRestSerializer<SetDefaultNetworkTierProjectRequest> serializer =
626                                 ProtoRestSerializer.create();
627                             serializer.putPathParam(fields, "project", request.getProject());
628                             return fields;
629                           })
630                       .setQueryParamsExtractor(
631                           request -> {
632                             Map<String, List<String>> fields = new HashMap<>();
633                             ProtoRestSerializer<SetDefaultNetworkTierProjectRequest> serializer =
634                                 ProtoRestSerializer.create();
635                             if (request.hasRequestId()) {
636                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
637                             }
638                             return fields;
639                           })
640                       .setRequestBodyExtractor(
641                           request ->
642                               ProtoRestSerializer.create()
643                                   .toBody(
644                                       "projectsSetDefaultNetworkTierRequestResource",
645                                       request.getProjectsSetDefaultNetworkTierRequestResource(),
646                                       false))
647                       .build())
648               .setResponseParser(
649                   ProtoMessageResponseParser.<Operation>newBuilder()
650                       .setDefaultInstance(Operation.getDefaultInstance())
651                       .setDefaultTypeRegistry(typeRegistry)
652                       .build())
653               .setOperationSnapshotFactory(
654                   (SetDefaultNetworkTierProjectRequest request, Operation response) -> {
655                     StringBuilder opName = new StringBuilder(response.getName());
656                     opName.append(":").append(request.getProject());
657                     return HttpJsonOperationSnapshot.newBuilder()
658                         .setName(opName.toString())
659                         .setMetadata(response)
660                         .setDone(Status.DONE.equals(response.getStatus()))
661                         .setResponse(response)
662                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
663                         .build();
664                   })
665               .build();
666 
667   private static final ApiMethodDescriptor<SetUsageExportBucketProjectRequest, Operation>
668       setUsageExportBucketMethodDescriptor =
669           ApiMethodDescriptor.<SetUsageExportBucketProjectRequest, Operation>newBuilder()
670               .setFullMethodName("google.cloud.compute.v1.Projects/SetUsageExportBucket")
671               .setHttpMethod("POST")
672               .setType(ApiMethodDescriptor.MethodType.UNARY)
673               .setRequestFormatter(
674                   ProtoMessageRequestFormatter.<SetUsageExportBucketProjectRequest>newBuilder()
675                       .setPath(
676                           "/compute/v1/projects/{project}/setUsageExportBucket",
677                           request -> {
678                             Map<String, String> fields = new HashMap<>();
679                             ProtoRestSerializer<SetUsageExportBucketProjectRequest> serializer =
680                                 ProtoRestSerializer.create();
681                             serializer.putPathParam(fields, "project", request.getProject());
682                             return fields;
683                           })
684                       .setQueryParamsExtractor(
685                           request -> {
686                             Map<String, List<String>> fields = new HashMap<>();
687                             ProtoRestSerializer<SetUsageExportBucketProjectRequest> serializer =
688                                 ProtoRestSerializer.create();
689                             if (request.hasRequestId()) {
690                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
691                             }
692                             return fields;
693                           })
694                       .setRequestBodyExtractor(
695                           request ->
696                               ProtoRestSerializer.create()
697                                   .toBody(
698                                       "usageExportLocationResource",
699                                       request.getUsageExportLocationResource(),
700                                       false))
701                       .build())
702               .setResponseParser(
703                   ProtoMessageResponseParser.<Operation>newBuilder()
704                       .setDefaultInstance(Operation.getDefaultInstance())
705                       .setDefaultTypeRegistry(typeRegistry)
706                       .build())
707               .setOperationSnapshotFactory(
708                   (SetUsageExportBucketProjectRequest request, Operation response) -> {
709                     StringBuilder opName = new StringBuilder(response.getName());
710                     opName.append(":").append(request.getProject());
711                     return HttpJsonOperationSnapshot.newBuilder()
712                         .setName(opName.toString())
713                         .setMetadata(response)
714                         .setDone(Status.DONE.equals(response.getStatus()))
715                         .setResponse(response)
716                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
717                         .build();
718                   })
719               .build();
720 
721   private final UnaryCallable<DisableXpnHostProjectRequest, Operation> disableXpnHostCallable;
722   private final OperationCallable<DisableXpnHostProjectRequest, Operation, Operation>
723       disableXpnHostOperationCallable;
724   private final UnaryCallable<DisableXpnResourceProjectRequest, Operation>
725       disableXpnResourceCallable;
726   private final OperationCallable<DisableXpnResourceProjectRequest, Operation, Operation>
727       disableXpnResourceOperationCallable;
728   private final UnaryCallable<EnableXpnHostProjectRequest, Operation> enableXpnHostCallable;
729   private final OperationCallable<EnableXpnHostProjectRequest, Operation, Operation>
730       enableXpnHostOperationCallable;
731   private final UnaryCallable<EnableXpnResourceProjectRequest, Operation> enableXpnResourceCallable;
732   private final OperationCallable<EnableXpnResourceProjectRequest, Operation, Operation>
733       enableXpnResourceOperationCallable;
734   private final UnaryCallable<GetProjectRequest, Project> getCallable;
735   private final UnaryCallable<GetXpnHostProjectRequest, Project> getXpnHostCallable;
736   private final UnaryCallable<GetXpnResourcesProjectsRequest, ProjectsGetXpnResources>
737       getXpnResourcesCallable;
738   private final UnaryCallable<GetXpnResourcesProjectsRequest, GetXpnResourcesPagedResponse>
739       getXpnResourcesPagedCallable;
740   private final UnaryCallable<ListXpnHostsProjectsRequest, XpnHostList> listXpnHostsCallable;
741   private final UnaryCallable<ListXpnHostsProjectsRequest, ListXpnHostsPagedResponse>
742       listXpnHostsPagedCallable;
743   private final UnaryCallable<MoveDiskProjectRequest, Operation> moveDiskCallable;
744   private final OperationCallable<MoveDiskProjectRequest, Operation, Operation>
745       moveDiskOperationCallable;
746   private final UnaryCallable<MoveInstanceProjectRequest, Operation> moveInstanceCallable;
747   private final OperationCallable<MoveInstanceProjectRequest, Operation, Operation>
748       moveInstanceOperationCallable;
749   private final UnaryCallable<SetCommonInstanceMetadataProjectRequest, Operation>
750       setCommonInstanceMetadataCallable;
751   private final OperationCallable<SetCommonInstanceMetadataProjectRequest, Operation, Operation>
752       setCommonInstanceMetadataOperationCallable;
753   private final UnaryCallable<SetDefaultNetworkTierProjectRequest, Operation>
754       setDefaultNetworkTierCallable;
755   private final OperationCallable<SetDefaultNetworkTierProjectRequest, Operation, Operation>
756       setDefaultNetworkTierOperationCallable;
757   private final UnaryCallable<SetUsageExportBucketProjectRequest, Operation>
758       setUsageExportBucketCallable;
759   private final OperationCallable<SetUsageExportBucketProjectRequest, Operation, Operation>
760       setUsageExportBucketOperationCallable;
761 
762   private final BackgroundResource backgroundResources;
763   private final HttpJsonGlobalOperationsStub httpJsonOperationsStub;
764   private final HttpJsonStubCallableFactory callableFactory;
765 
create(ProjectsStubSettings settings)766   public static final HttpJsonProjectsStub create(ProjectsStubSettings settings)
767       throws IOException {
768     return new HttpJsonProjectsStub(settings, ClientContext.create(settings));
769   }
770 
create(ClientContext clientContext)771   public static final HttpJsonProjectsStub create(ClientContext clientContext) throws IOException {
772     return new HttpJsonProjectsStub(ProjectsStubSettings.newBuilder().build(), clientContext);
773   }
774 
create( ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)775   public static final HttpJsonProjectsStub create(
776       ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException {
777     return new HttpJsonProjectsStub(
778         ProjectsStubSettings.newBuilder().build(), clientContext, callableFactory);
779   }
780 
781   /**
782    * Constructs an instance of HttpJsonProjectsStub, using the given settings. This is protected so
783    * that it is easy to make a subclass, but otherwise, the static factory methods should be
784    * preferred.
785    */
HttpJsonProjectsStub(ProjectsStubSettings settings, ClientContext clientContext)786   protected HttpJsonProjectsStub(ProjectsStubSettings settings, ClientContext clientContext)
787       throws IOException {
788     this(settings, clientContext, new HttpJsonProjectsCallableFactory());
789   }
790 
791   /**
792    * Constructs an instance of HttpJsonProjectsStub, using the given settings. This is protected so
793    * that it is easy to make a subclass, but otherwise, the static factory methods should be
794    * preferred.
795    */
HttpJsonProjectsStub( ProjectsStubSettings settings, ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)796   protected HttpJsonProjectsStub(
797       ProjectsStubSettings settings,
798       ClientContext clientContext,
799       HttpJsonStubCallableFactory callableFactory)
800       throws IOException {
801     this.callableFactory = callableFactory;
802     this.httpJsonOperationsStub =
803         HttpJsonGlobalOperationsStub.create(clientContext, callableFactory);
804 
805     HttpJsonCallSettings<DisableXpnHostProjectRequest, Operation> disableXpnHostTransportSettings =
806         HttpJsonCallSettings.<DisableXpnHostProjectRequest, Operation>newBuilder()
807             .setMethodDescriptor(disableXpnHostMethodDescriptor)
808             .setTypeRegistry(typeRegistry)
809             .build();
810     HttpJsonCallSettings<DisableXpnResourceProjectRequest, Operation>
811         disableXpnResourceTransportSettings =
812             HttpJsonCallSettings.<DisableXpnResourceProjectRequest, Operation>newBuilder()
813                 .setMethodDescriptor(disableXpnResourceMethodDescriptor)
814                 .setTypeRegistry(typeRegistry)
815                 .build();
816     HttpJsonCallSettings<EnableXpnHostProjectRequest, Operation> enableXpnHostTransportSettings =
817         HttpJsonCallSettings.<EnableXpnHostProjectRequest, Operation>newBuilder()
818             .setMethodDescriptor(enableXpnHostMethodDescriptor)
819             .setTypeRegistry(typeRegistry)
820             .build();
821     HttpJsonCallSettings<EnableXpnResourceProjectRequest, Operation>
822         enableXpnResourceTransportSettings =
823             HttpJsonCallSettings.<EnableXpnResourceProjectRequest, Operation>newBuilder()
824                 .setMethodDescriptor(enableXpnResourceMethodDescriptor)
825                 .setTypeRegistry(typeRegistry)
826                 .build();
827     HttpJsonCallSettings<GetProjectRequest, Project> getTransportSettings =
828         HttpJsonCallSettings.<GetProjectRequest, Project>newBuilder()
829             .setMethodDescriptor(getMethodDescriptor)
830             .setTypeRegistry(typeRegistry)
831             .build();
832     HttpJsonCallSettings<GetXpnHostProjectRequest, Project> getXpnHostTransportSettings =
833         HttpJsonCallSettings.<GetXpnHostProjectRequest, Project>newBuilder()
834             .setMethodDescriptor(getXpnHostMethodDescriptor)
835             .setTypeRegistry(typeRegistry)
836             .build();
837     HttpJsonCallSettings<GetXpnResourcesProjectsRequest, ProjectsGetXpnResources>
838         getXpnResourcesTransportSettings =
839             HttpJsonCallSettings
840                 .<GetXpnResourcesProjectsRequest, ProjectsGetXpnResources>newBuilder()
841                 .setMethodDescriptor(getXpnResourcesMethodDescriptor)
842                 .setTypeRegistry(typeRegistry)
843                 .build();
844     HttpJsonCallSettings<ListXpnHostsProjectsRequest, XpnHostList> listXpnHostsTransportSettings =
845         HttpJsonCallSettings.<ListXpnHostsProjectsRequest, XpnHostList>newBuilder()
846             .setMethodDescriptor(listXpnHostsMethodDescriptor)
847             .setTypeRegistry(typeRegistry)
848             .build();
849     HttpJsonCallSettings<MoveDiskProjectRequest, Operation> moveDiskTransportSettings =
850         HttpJsonCallSettings.<MoveDiskProjectRequest, Operation>newBuilder()
851             .setMethodDescriptor(moveDiskMethodDescriptor)
852             .setTypeRegistry(typeRegistry)
853             .build();
854     HttpJsonCallSettings<MoveInstanceProjectRequest, Operation> moveInstanceTransportSettings =
855         HttpJsonCallSettings.<MoveInstanceProjectRequest, Operation>newBuilder()
856             .setMethodDescriptor(moveInstanceMethodDescriptor)
857             .setTypeRegistry(typeRegistry)
858             .build();
859     HttpJsonCallSettings<SetCommonInstanceMetadataProjectRequest, Operation>
860         setCommonInstanceMetadataTransportSettings =
861             HttpJsonCallSettings.<SetCommonInstanceMetadataProjectRequest, Operation>newBuilder()
862                 .setMethodDescriptor(setCommonInstanceMetadataMethodDescriptor)
863                 .setTypeRegistry(typeRegistry)
864                 .build();
865     HttpJsonCallSettings<SetDefaultNetworkTierProjectRequest, Operation>
866         setDefaultNetworkTierTransportSettings =
867             HttpJsonCallSettings.<SetDefaultNetworkTierProjectRequest, Operation>newBuilder()
868                 .setMethodDescriptor(setDefaultNetworkTierMethodDescriptor)
869                 .setTypeRegistry(typeRegistry)
870                 .build();
871     HttpJsonCallSettings<SetUsageExportBucketProjectRequest, Operation>
872         setUsageExportBucketTransportSettings =
873             HttpJsonCallSettings.<SetUsageExportBucketProjectRequest, Operation>newBuilder()
874                 .setMethodDescriptor(setUsageExportBucketMethodDescriptor)
875                 .setTypeRegistry(typeRegistry)
876                 .build();
877 
878     this.disableXpnHostCallable =
879         callableFactory.createUnaryCallable(
880             disableXpnHostTransportSettings, settings.disableXpnHostSettings(), clientContext);
881     this.disableXpnHostOperationCallable =
882         callableFactory.createOperationCallable(
883             disableXpnHostTransportSettings,
884             settings.disableXpnHostOperationSettings(),
885             clientContext,
886             httpJsonOperationsStub);
887     this.disableXpnResourceCallable =
888         callableFactory.createUnaryCallable(
889             disableXpnResourceTransportSettings,
890             settings.disableXpnResourceSettings(),
891             clientContext);
892     this.disableXpnResourceOperationCallable =
893         callableFactory.createOperationCallable(
894             disableXpnResourceTransportSettings,
895             settings.disableXpnResourceOperationSettings(),
896             clientContext,
897             httpJsonOperationsStub);
898     this.enableXpnHostCallable =
899         callableFactory.createUnaryCallable(
900             enableXpnHostTransportSettings, settings.enableXpnHostSettings(), clientContext);
901     this.enableXpnHostOperationCallable =
902         callableFactory.createOperationCallable(
903             enableXpnHostTransportSettings,
904             settings.enableXpnHostOperationSettings(),
905             clientContext,
906             httpJsonOperationsStub);
907     this.enableXpnResourceCallable =
908         callableFactory.createUnaryCallable(
909             enableXpnResourceTransportSettings,
910             settings.enableXpnResourceSettings(),
911             clientContext);
912     this.enableXpnResourceOperationCallable =
913         callableFactory.createOperationCallable(
914             enableXpnResourceTransportSettings,
915             settings.enableXpnResourceOperationSettings(),
916             clientContext,
917             httpJsonOperationsStub);
918     this.getCallable =
919         callableFactory.createUnaryCallable(
920             getTransportSettings, settings.getSettings(), clientContext);
921     this.getXpnHostCallable =
922         callableFactory.createUnaryCallable(
923             getXpnHostTransportSettings, settings.getXpnHostSettings(), clientContext);
924     this.getXpnResourcesCallable =
925         callableFactory.createUnaryCallable(
926             getXpnResourcesTransportSettings, settings.getXpnResourcesSettings(), clientContext);
927     this.getXpnResourcesPagedCallable =
928         callableFactory.createPagedCallable(
929             getXpnResourcesTransportSettings, settings.getXpnResourcesSettings(), clientContext);
930     this.listXpnHostsCallable =
931         callableFactory.createUnaryCallable(
932             listXpnHostsTransportSettings, settings.listXpnHostsSettings(), clientContext);
933     this.listXpnHostsPagedCallable =
934         callableFactory.createPagedCallable(
935             listXpnHostsTransportSettings, settings.listXpnHostsSettings(), clientContext);
936     this.moveDiskCallable =
937         callableFactory.createUnaryCallable(
938             moveDiskTransportSettings, settings.moveDiskSettings(), clientContext);
939     this.moveDiskOperationCallable =
940         callableFactory.createOperationCallable(
941             moveDiskTransportSettings,
942             settings.moveDiskOperationSettings(),
943             clientContext,
944             httpJsonOperationsStub);
945     this.moveInstanceCallable =
946         callableFactory.createUnaryCallable(
947             moveInstanceTransportSettings, settings.moveInstanceSettings(), clientContext);
948     this.moveInstanceOperationCallable =
949         callableFactory.createOperationCallable(
950             moveInstanceTransportSettings,
951             settings.moveInstanceOperationSettings(),
952             clientContext,
953             httpJsonOperationsStub);
954     this.setCommonInstanceMetadataCallable =
955         callableFactory.createUnaryCallable(
956             setCommonInstanceMetadataTransportSettings,
957             settings.setCommonInstanceMetadataSettings(),
958             clientContext);
959     this.setCommonInstanceMetadataOperationCallable =
960         callableFactory.createOperationCallable(
961             setCommonInstanceMetadataTransportSettings,
962             settings.setCommonInstanceMetadataOperationSettings(),
963             clientContext,
964             httpJsonOperationsStub);
965     this.setDefaultNetworkTierCallable =
966         callableFactory.createUnaryCallable(
967             setDefaultNetworkTierTransportSettings,
968             settings.setDefaultNetworkTierSettings(),
969             clientContext);
970     this.setDefaultNetworkTierOperationCallable =
971         callableFactory.createOperationCallable(
972             setDefaultNetworkTierTransportSettings,
973             settings.setDefaultNetworkTierOperationSettings(),
974             clientContext,
975             httpJsonOperationsStub);
976     this.setUsageExportBucketCallable =
977         callableFactory.createUnaryCallable(
978             setUsageExportBucketTransportSettings,
979             settings.setUsageExportBucketSettings(),
980             clientContext);
981     this.setUsageExportBucketOperationCallable =
982         callableFactory.createOperationCallable(
983             setUsageExportBucketTransportSettings,
984             settings.setUsageExportBucketOperationSettings(),
985             clientContext,
986             httpJsonOperationsStub);
987 
988     this.backgroundResources =
989         new BackgroundResourceAggregation(clientContext.getBackgroundResources());
990   }
991 
992   @InternalApi
getMethodDescriptors()993   public static List<ApiMethodDescriptor> getMethodDescriptors() {
994     List<ApiMethodDescriptor> methodDescriptors = new ArrayList<>();
995     methodDescriptors.add(disableXpnHostMethodDescriptor);
996     methodDescriptors.add(disableXpnResourceMethodDescriptor);
997     methodDescriptors.add(enableXpnHostMethodDescriptor);
998     methodDescriptors.add(enableXpnResourceMethodDescriptor);
999     methodDescriptors.add(getMethodDescriptor);
1000     methodDescriptors.add(getXpnHostMethodDescriptor);
1001     methodDescriptors.add(getXpnResourcesMethodDescriptor);
1002     methodDescriptors.add(listXpnHostsMethodDescriptor);
1003     methodDescriptors.add(moveDiskMethodDescriptor);
1004     methodDescriptors.add(moveInstanceMethodDescriptor);
1005     methodDescriptors.add(setCommonInstanceMetadataMethodDescriptor);
1006     methodDescriptors.add(setDefaultNetworkTierMethodDescriptor);
1007     methodDescriptors.add(setUsageExportBucketMethodDescriptor);
1008     return methodDescriptors;
1009   }
1010 
1011   @Override
disableXpnHostCallable()1012   public UnaryCallable<DisableXpnHostProjectRequest, Operation> disableXpnHostCallable() {
1013     return disableXpnHostCallable;
1014   }
1015 
1016   @Override
1017   public OperationCallable<DisableXpnHostProjectRequest, Operation, Operation>
disableXpnHostOperationCallable()1018       disableXpnHostOperationCallable() {
1019     return disableXpnHostOperationCallable;
1020   }
1021 
1022   @Override
disableXpnResourceCallable()1023   public UnaryCallable<DisableXpnResourceProjectRequest, Operation> disableXpnResourceCallable() {
1024     return disableXpnResourceCallable;
1025   }
1026 
1027   @Override
1028   public OperationCallable<DisableXpnResourceProjectRequest, Operation, Operation>
disableXpnResourceOperationCallable()1029       disableXpnResourceOperationCallable() {
1030     return disableXpnResourceOperationCallable;
1031   }
1032 
1033   @Override
enableXpnHostCallable()1034   public UnaryCallable<EnableXpnHostProjectRequest, Operation> enableXpnHostCallable() {
1035     return enableXpnHostCallable;
1036   }
1037 
1038   @Override
1039   public OperationCallable<EnableXpnHostProjectRequest, Operation, Operation>
enableXpnHostOperationCallable()1040       enableXpnHostOperationCallable() {
1041     return enableXpnHostOperationCallable;
1042   }
1043 
1044   @Override
enableXpnResourceCallable()1045   public UnaryCallable<EnableXpnResourceProjectRequest, Operation> enableXpnResourceCallable() {
1046     return enableXpnResourceCallable;
1047   }
1048 
1049   @Override
1050   public OperationCallable<EnableXpnResourceProjectRequest, Operation, Operation>
enableXpnResourceOperationCallable()1051       enableXpnResourceOperationCallable() {
1052     return enableXpnResourceOperationCallable;
1053   }
1054 
1055   @Override
getCallable()1056   public UnaryCallable<GetProjectRequest, Project> getCallable() {
1057     return getCallable;
1058   }
1059 
1060   @Override
getXpnHostCallable()1061   public UnaryCallable<GetXpnHostProjectRequest, Project> getXpnHostCallable() {
1062     return getXpnHostCallable;
1063   }
1064 
1065   @Override
1066   public UnaryCallable<GetXpnResourcesProjectsRequest, ProjectsGetXpnResources>
getXpnResourcesCallable()1067       getXpnResourcesCallable() {
1068     return getXpnResourcesCallable;
1069   }
1070 
1071   @Override
1072   public UnaryCallable<GetXpnResourcesProjectsRequest, GetXpnResourcesPagedResponse>
getXpnResourcesPagedCallable()1073       getXpnResourcesPagedCallable() {
1074     return getXpnResourcesPagedCallable;
1075   }
1076 
1077   @Override
listXpnHostsCallable()1078   public UnaryCallable<ListXpnHostsProjectsRequest, XpnHostList> listXpnHostsCallable() {
1079     return listXpnHostsCallable;
1080   }
1081 
1082   @Override
1083   public UnaryCallable<ListXpnHostsProjectsRequest, ListXpnHostsPagedResponse>
listXpnHostsPagedCallable()1084       listXpnHostsPagedCallable() {
1085     return listXpnHostsPagedCallable;
1086   }
1087 
1088   @Override
moveDiskCallable()1089   public UnaryCallable<MoveDiskProjectRequest, Operation> moveDiskCallable() {
1090     return moveDiskCallable;
1091   }
1092 
1093   @Override
1094   public OperationCallable<MoveDiskProjectRequest, Operation, Operation>
moveDiskOperationCallable()1095       moveDiskOperationCallable() {
1096     return moveDiskOperationCallable;
1097   }
1098 
1099   @Override
moveInstanceCallable()1100   public UnaryCallable<MoveInstanceProjectRequest, Operation> moveInstanceCallable() {
1101     return moveInstanceCallable;
1102   }
1103 
1104   @Override
1105   public OperationCallable<MoveInstanceProjectRequest, Operation, Operation>
moveInstanceOperationCallable()1106       moveInstanceOperationCallable() {
1107     return moveInstanceOperationCallable;
1108   }
1109 
1110   @Override
1111   public UnaryCallable<SetCommonInstanceMetadataProjectRequest, Operation>
setCommonInstanceMetadataCallable()1112       setCommonInstanceMetadataCallable() {
1113     return setCommonInstanceMetadataCallable;
1114   }
1115 
1116   @Override
1117   public OperationCallable<SetCommonInstanceMetadataProjectRequest, Operation, Operation>
setCommonInstanceMetadataOperationCallable()1118       setCommonInstanceMetadataOperationCallable() {
1119     return setCommonInstanceMetadataOperationCallable;
1120   }
1121 
1122   @Override
1123   public UnaryCallable<SetDefaultNetworkTierProjectRequest, Operation>
setDefaultNetworkTierCallable()1124       setDefaultNetworkTierCallable() {
1125     return setDefaultNetworkTierCallable;
1126   }
1127 
1128   @Override
1129   public OperationCallable<SetDefaultNetworkTierProjectRequest, Operation, Operation>
setDefaultNetworkTierOperationCallable()1130       setDefaultNetworkTierOperationCallable() {
1131     return setDefaultNetworkTierOperationCallable;
1132   }
1133 
1134   @Override
1135   public UnaryCallable<SetUsageExportBucketProjectRequest, Operation>
setUsageExportBucketCallable()1136       setUsageExportBucketCallable() {
1137     return setUsageExportBucketCallable;
1138   }
1139 
1140   @Override
1141   public OperationCallable<SetUsageExportBucketProjectRequest, Operation, Operation>
setUsageExportBucketOperationCallable()1142       setUsageExportBucketOperationCallable() {
1143     return setUsageExportBucketOperationCallable;
1144   }
1145 
1146   @Override
close()1147   public final void close() {
1148     try {
1149       backgroundResources.close();
1150     } catch (RuntimeException e) {
1151       throw e;
1152     } catch (Exception e) {
1153       throw new IllegalStateException("Failed to close resource", e);
1154     }
1155   }
1156 
1157   @Override
shutdown()1158   public void shutdown() {
1159     backgroundResources.shutdown();
1160   }
1161 
1162   @Override
isShutdown()1163   public boolean isShutdown() {
1164     return backgroundResources.isShutdown();
1165   }
1166 
1167   @Override
isTerminated()1168   public boolean isTerminated() {
1169     return backgroundResources.isTerminated();
1170   }
1171 
1172   @Override
shutdownNow()1173   public void shutdownNow() {
1174     backgroundResources.shutdownNow();
1175   }
1176 
1177   @Override
awaitTermination(long duration, TimeUnit unit)1178   public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
1179     return backgroundResources.awaitTermination(duration, unit);
1180   }
1181 }
1182