Skip to content
This repository was archived by the owner on Sep 18, 2023. It is now read-only.

Commit 8353ebb

Browse files
feat: Enable REST transport for most of Java and Go clients (#754)
- [ ] Regenerate this pull request now. PiperOrigin-RevId: 456641589 Source-Link: googleapis/googleapis@8a251f5 Source-Link: https://github.com/googleapis/googleapis-gen/commit/4ca52a529cf01308d9714950edffbea3560cfbdb Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNGNhNTJhNTI5Y2YwMTMwOGQ5NzE0OTUwZWRmZmJlYTM1NjBjZmJkYiJ9
1 parent 070c23b commit 8353ebb

8 files changed

Lines changed: 1830 additions & 5 deletions

File tree

google-cloud-accessapproval/pom.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,10 @@
5757
<groupId>com.google.api</groupId>
5858
<artifactId>gax-grpc</artifactId>
5959
</dependency>
60+
<dependency>
61+
<groupId>com.google.api</groupId>
62+
<artifactId>gax-httpjson</artifactId>
63+
</dependency>
6064
<dependency>
6165
<groupId>org.threeten</groupId>
6266
<artifactId>threetenbp</artifactId>
@@ -74,12 +78,24 @@
7478
<scope>test</scope>
7579
</dependency>
7680
<!-- Need testing utility classes for generated gRPC clients tests -->
81+
<dependency>
82+
<groupId>com.google.api</groupId>
83+
<artifactId>gax</artifactId>
84+
<classifier>testlib</classifier>
85+
<scope>test</scope>
86+
</dependency>
7787
<dependency>
7888
<groupId>com.google.api</groupId>
7989
<artifactId>gax-grpc</artifactId>
8090
<classifier>testlib</classifier>
8191
<scope>test</scope>
8292
</dependency>
93+
<dependency>
94+
<groupId>com.google.api</groupId>
95+
<artifactId>gax-httpjson</artifactId>
96+
<classifier>testlib</classifier>
97+
<scope>test</scope>
98+
</dependency>
8399
</dependencies>
84100

85101
<profiles>

google-cloud-accessapproval/src/main/java/com/google/cloud/accessapproval/v1/AccessApprovalAdminClient.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,21 @@
130130
* AccessApprovalAdminClient.create(accessApprovalAdminSettings);
131131
* }</pre>
132132
*
133+
* <p>To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
134+
* the wire:
135+
*
136+
* <pre>{@code
137+
* // This snippet has been automatically generated for illustrative purposes only.
138+
* // It may require modifications to work in your environment.
139+
* AccessApprovalAdminSettings accessApprovalAdminSettings =
140+
* AccessApprovalAdminSettings.newBuilder()
141+
* .setTransportChannelProvider(
142+
* AccessApprovalAdminSettings.defaultHttpJsonTransportProviderBuilder().build())
143+
* .build();
144+
* AccessApprovalAdminClient accessApprovalAdminClient =
145+
* AccessApprovalAdminClient.create(accessApprovalAdminSettings);
146+
* }</pre>
147+
*
133148
* <p>Please refer to the GitHub repository's samples for more quickstart code snippets.
134149
*/
135150
@Generated("by gapic-generator-java")

google-cloud-accessapproval/src/main/java/com/google/cloud/accessapproval/v1/AccessApprovalAdminSettings.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.api.gax.core.GoogleCredentialsProvider;
2424
import com.google.api.gax.core.InstantiatingExecutorProvider;
2525
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
26+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
2627
import com.google.api.gax.rpc.ApiClientHeaderProvider;
2728
import com.google.api.gax.rpc.ClientContext;
2829
import com.google.api.gax.rpc.ClientSettings;
@@ -157,11 +158,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
157158
return AccessApprovalStubSettings.defaultCredentialsProviderBuilder();
158159
}
159160

160-
/** Returns a builder for the default ChannelProvider for this service. */
161+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
161162
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
162163
return AccessApprovalStubSettings.defaultGrpcTransportProviderBuilder();
163164
}
164165

166+
/** Returns a builder for the default REST ChannelProvider for this service. */
167+
@BetaApi
168+
public static InstantiatingHttpJsonChannelProvider.Builder
169+
defaultHttpJsonTransportProviderBuilder() {
170+
return AccessApprovalStubSettings.defaultHttpJsonTransportProviderBuilder();
171+
}
172+
165173
public static TransportChannelProvider defaultTransportChannelProvider() {
166174
return AccessApprovalStubSettings.defaultTransportChannelProvider();
167175
}
@@ -171,11 +179,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
171179
return AccessApprovalStubSettings.defaultApiClientHeaderProviderBuilder();
172180
}
173181

174-
/** Returns a new builder for this class. */
182+
/** Returns a new gRPC builder for this class. */
175183
public static Builder newBuilder() {
176184
return Builder.createDefault();
177185
}
178186

187+
/** Returns a new REST builder for this class. */
188+
@BetaApi
189+
public static Builder newHttpJsonBuilder() {
190+
return Builder.createHttpJsonDefault();
191+
}
192+
179193
/** Returns a new builder for this class. */
180194
public static Builder newBuilder(ClientContext clientContext) {
181195
return new Builder(clientContext);
@@ -213,6 +227,11 @@ private static Builder createDefault() {
213227
return new Builder(AccessApprovalStubSettings.newBuilder());
214228
}
215229

230+
@BetaApi
231+
private static Builder createHttpJsonDefault() {
232+
return new Builder(AccessApprovalStubSettings.newHttpJsonBuilder());
233+
}
234+
216235
public AccessApprovalStubSettings.Builder getStubSettingsBuilder() {
217236
return ((AccessApprovalStubSettings.Builder) getStubSettings());
218237
}

google-cloud-accessapproval/src/main/java/com/google/cloud/accessapproval/v1/stub/AccessApprovalStubSettings.java

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
import com.google.api.gax.grpc.GaxGrpcProperties;
2828
import com.google.api.gax.grpc.GrpcTransportChannel;
2929
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
30+
import com.google.api.gax.httpjson.GaxHttpJsonProperties;
31+
import com.google.api.gax.httpjson.HttpJsonTransportChannel;
32+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
3033
import com.google.api.gax.retrying.RetrySettings;
3134
import com.google.api.gax.rpc.ApiCallContext;
3235
import com.google.api.gax.rpc.ApiClientHeaderProvider;
@@ -256,6 +259,11 @@ public AccessApprovalStub createStub() throws IOException {
256259
.equals(GrpcTransportChannel.getGrpcTransportName())) {
257260
return GrpcAccessApprovalStub.create(this);
258261
}
262+
if (getTransportChannelProvider()
263+
.getTransportName()
264+
.equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
265+
return HttpJsonAccessApprovalStub.create(this);
266+
}
259267
throw new UnsupportedOperationException(
260268
String.format(
261269
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
@@ -288,30 +296,56 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
288296
.setUseJwtAccessWithScope(true);
289297
}
290298

291-
/** Returns a builder for the default ChannelProvider for this service. */
299+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
292300
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
293301
return InstantiatingGrpcChannelProvider.newBuilder()
294302
.setMaxInboundMessageSize(Integer.MAX_VALUE);
295303
}
296304

305+
/** Returns a builder for the default REST ChannelProvider for this service. */
306+
@BetaApi
307+
public static InstantiatingHttpJsonChannelProvider.Builder
308+
defaultHttpJsonTransportProviderBuilder() {
309+
return InstantiatingHttpJsonChannelProvider.newBuilder();
310+
}
311+
297312
public static TransportChannelProvider defaultTransportChannelProvider() {
298313
return defaultGrpcTransportProviderBuilder().build();
299314
}
300315

301316
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
302-
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
317+
public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
303318
return ApiClientHeaderProvider.newBuilder()
304319
.setGeneratedLibToken(
305320
"gapic", GaxProperties.getLibraryVersion(AccessApprovalStubSettings.class))
306321
.setTransportToken(
307322
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
308323
}
309324

310-
/** Returns a new builder for this class. */
325+
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
326+
public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
327+
return ApiClientHeaderProvider.newBuilder()
328+
.setGeneratedLibToken(
329+
"gapic", GaxProperties.getLibraryVersion(AccessApprovalStubSettings.class))
330+
.setTransportToken(
331+
GaxHttpJsonProperties.getHttpJsonTokenName(),
332+
GaxHttpJsonProperties.getHttpJsonVersion());
333+
}
334+
335+
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
336+
return AccessApprovalStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
337+
}
338+
339+
/** Returns a new gRPC builder for this class. */
311340
public static Builder newBuilder() {
312341
return Builder.createDefault();
313342
}
314343

344+
/** Returns a new REST builder for this class. */
345+
public static Builder newHttpJsonBuilder() {
346+
return Builder.createHttpJsonDefault();
347+
}
348+
315349
/** Returns a new builder for this class. */
316350
public static Builder newBuilder(ClientContext clientContext) {
317351
return new Builder(clientContext);
@@ -484,6 +518,19 @@ private static Builder createDefault() {
484518
return initDefaults(builder);
485519
}
486520

521+
private static Builder createHttpJsonDefault() {
522+
Builder builder = new Builder(((ClientContext) null));
523+
524+
builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
525+
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
526+
builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
527+
builder.setEndpoint(getDefaultEndpoint());
528+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
529+
builder.setSwitchToMtlsEndpointAllowed(true);
530+
531+
return initDefaults(builder);
532+
}
533+
487534
private static Builder initDefaults(Builder builder) {
488535
builder
489536
.listApprovalRequestsSettings()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
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.accessapproval.v1.stub;
18+
19+
import com.google.api.core.BetaApi;
20+
import com.google.api.gax.httpjson.HttpJsonCallSettings;
21+
import com.google.api.gax.httpjson.HttpJsonCallableFactory;
22+
import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable;
23+
import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
24+
import com.google.api.gax.httpjson.longrunning.stub.OperationsStub;
25+
import com.google.api.gax.rpc.BatchingCallSettings;
26+
import com.google.api.gax.rpc.ClientContext;
27+
import com.google.api.gax.rpc.OperationCallSettings;
28+
import com.google.api.gax.rpc.OperationCallable;
29+
import com.google.api.gax.rpc.PagedCallSettings;
30+
import com.google.api.gax.rpc.ServerStreamingCallSettings;
31+
import com.google.api.gax.rpc.ServerStreamingCallable;
32+
import com.google.api.gax.rpc.UnaryCallSettings;
33+
import com.google.api.gax.rpc.UnaryCallable;
34+
import com.google.longrunning.Operation;
35+
import javax.annotation.Generated;
36+
37+
// AUTO-GENERATED DOCUMENTATION AND CLASS.
38+
/**
39+
* REST callable factory implementation for the AccessApproval service API.
40+
*
41+
* <p>This class is for advanced usage.
42+
*/
43+
@Generated("by gapic-generator-java")
44+
@BetaApi
45+
public class HttpJsonAccessApprovalCallableFactory
46+
implements HttpJsonStubCallableFactory<Operation, OperationsStub> {
47+
48+
@Override
49+
public <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createUnaryCallable(
50+
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
51+
UnaryCallSettings<RequestT, ResponseT> callSettings,
52+
ClientContext clientContext) {
53+
return HttpJsonCallableFactory.createUnaryCallable(
54+
httpJsonCallSettings, callSettings, clientContext);
55+
}
56+
57+
@Override
58+
public <RequestT, ResponseT, PagedListResponseT>
59+
UnaryCallable<RequestT, PagedListResponseT> createPagedCallable(
60+
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
61+
PagedCallSettings<RequestT, ResponseT, PagedListResponseT> callSettings,
62+
ClientContext clientContext) {
63+
return HttpJsonCallableFactory.createPagedCallable(
64+
httpJsonCallSettings, callSettings, clientContext);
65+
}
66+
67+
@Override
68+
public <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createBatchingCallable(
69+
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
70+
BatchingCallSettings<RequestT, ResponseT> callSettings,
71+
ClientContext clientContext) {
72+
return HttpJsonCallableFactory.createBatchingCallable(
73+
httpJsonCallSettings, callSettings, clientContext);
74+
}
75+
76+
@BetaApi(
77+
"The surface for long-running operations is not stable yet and may change in the future.")
78+
@Override
79+
public <RequestT, ResponseT, MetadataT>
80+
OperationCallable<RequestT, ResponseT, MetadataT> createOperationCallable(
81+
HttpJsonCallSettings<RequestT, Operation> httpJsonCallSettings,
82+
OperationCallSettings<RequestT, ResponseT, MetadataT> callSettings,
83+
ClientContext clientContext,
84+
OperationsStub operationsStub) {
85+
UnaryCallable<RequestT, Operation> innerCallable =
86+
HttpJsonCallableFactory.createBaseUnaryCallable(
87+
httpJsonCallSettings, callSettings.getInitialCallSettings(), clientContext);
88+
HttpJsonOperationSnapshotCallable<RequestT, Operation> initialCallable =
89+
new HttpJsonOperationSnapshotCallable<RequestT, Operation>(
90+
innerCallable,
91+
httpJsonCallSettings.getMethodDescriptor().getOperationSnapshotFactory());
92+
return HttpJsonCallableFactory.createOperationCallable(
93+
callSettings, clientContext, operationsStub.longRunningClient(), initialCallable);
94+
}
95+
96+
@Override
97+
public <RequestT, ResponseT>
98+
ServerStreamingCallable<RequestT, ResponseT> createServerStreamingCallable(
99+
HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
100+
ServerStreamingCallSettings<RequestT, ResponseT> callSettings,
101+
ClientContext clientContext) {
102+
return HttpJsonCallableFactory.createServerStreamingCallable(
103+
httpJsonCallSettings, callSettings, clientContext);
104+
}
105+
}

0 commit comments

Comments
 (0)