Skip to content

Commit b1afa06

Browse files
feat: Enable REST transport for most of Java and Go clients (#235)
- [ ] 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 9bbd0b6 commit b1afa06

File tree

49 files changed

+3443
-8
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+3443
-8
lines changed

java-gsuite-addons/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,20 @@ If you are using Maven, add this to your pom.xml file:
1919
<dependency>
2020
<groupId>com.google.cloud</groupId>
2121
<artifactId>google-cloud-gsuite-addons</artifactId>
22-
<version>2.2.0</version>
22+
<version>2.2.1</version>
2323
</dependency>
2424
```
2525

2626
If you are using Gradle without BOM, add this to your dependencies
2727

2828
```Groovy
29-
implementation 'com.google.cloud:google-cloud-gsuite-addons:2.2.0'
29+
implementation 'com.google.cloud:google-cloud-gsuite-addons:2.2.1'
3030
```
3131

3232
If you are using SBT, add this to your dependencies
3333

3434
```Scala
35-
libraryDependencies += "com.google.cloud" % "google-cloud-gsuite-addons" % "2.2.0"
35+
libraryDependencies += "com.google.cloud" % "google-cloud-gsuite-addons" % "2.2.1"
3636
```
3737

3838
## Authentication

java-gsuite-addons/google-cloud-gsuite-addons/pom.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@
5858
<groupId>com.google.api</groupId>
5959
<artifactId>gax-grpc</artifactId>
6060
</dependency>
61+
<dependency>
62+
<groupId>com.google.api</groupId>
63+
<artifactId>gax-httpjson</artifactId>
64+
</dependency>
6165
<dependency>
6266
<groupId>org.threeten</groupId>
6367
<artifactId>threetenbp</artifactId>
@@ -77,12 +81,24 @@
7781
<scope>test</scope>
7882
</dependency>
7983
<!-- Need testing utility classes for generated gRPC clients tests -->
84+
<dependency>
85+
<groupId>com.google.api</groupId>
86+
<artifactId>gax</artifactId>
87+
<classifier>testlib</classifier>
88+
<scope>test</scope>
89+
</dependency>
8090
<dependency>
8191
<groupId>com.google.api</groupId>
8292
<artifactId>gax-grpc</artifactId>
8393
<classifier>testlib</classifier>
8494
<scope>test</scope>
8595
</dependency>
96+
<dependency>
97+
<groupId>com.google.api</groupId>
98+
<artifactId>gax-httpjson</artifactId>
99+
<classifier>testlib</classifier>
100+
<scope>test</scope>
101+
</dependency>
86102
</dependencies>
87103

88104
<profiles>

java-gsuite-addons/google-cloud-gsuite-addons/src/main/java/com/google/cloud/gsuiteaddons/v1/GSuiteAddOnsClient.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,20 @@
118118
* GSuiteAddOnsClient gSuiteAddOnsClient = GSuiteAddOnsClient.create(gSuiteAddOnsSettings);
119119
* }</pre>
120120
*
121+
* <p>To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
122+
* the wire:
123+
*
124+
* <pre>{@code
125+
* // This snippet has been automatically generated for illustrative purposes only.
126+
* // It may require modifications to work in your environment.
127+
* GSuiteAddOnsSettings gSuiteAddOnsSettings =
128+
* GSuiteAddOnsSettings.newBuilder()
129+
* .setTransportChannelProvider(
130+
* GSuiteAddOnsSettings.defaultHttpJsonTransportProviderBuilder().build())
131+
* .build();
132+
* GSuiteAddOnsClient gSuiteAddOnsClient = GSuiteAddOnsClient.create(gSuiteAddOnsSettings);
133+
* }</pre>
134+
*
121135
* <p>Please refer to the GitHub repository's samples for more quickstart code snippets.
122136
*/
123137
@Generated("by gapic-generator-java")

java-gsuite-addons/google-cloud-gsuite-addons/src/main/java/com/google/cloud/gsuiteaddons/v1/GSuiteAddOnsSettings.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;
@@ -143,11 +144,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
143144
return GSuiteAddOnsStubSettings.defaultCredentialsProviderBuilder();
144145
}
145146

146-
/** Returns a builder for the default ChannelProvider for this service. */
147+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
147148
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
148149
return GSuiteAddOnsStubSettings.defaultGrpcTransportProviderBuilder();
149150
}
150151

152+
/** Returns a builder for the default REST ChannelProvider for this service. */
153+
@BetaApi
154+
public static InstantiatingHttpJsonChannelProvider.Builder
155+
defaultHttpJsonTransportProviderBuilder() {
156+
return GSuiteAddOnsStubSettings.defaultHttpJsonTransportProviderBuilder();
157+
}
158+
151159
public static TransportChannelProvider defaultTransportChannelProvider() {
152160
return GSuiteAddOnsStubSettings.defaultTransportChannelProvider();
153161
}
@@ -157,11 +165,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
157165
return GSuiteAddOnsStubSettings.defaultApiClientHeaderProviderBuilder();
158166
}
159167

160-
/** Returns a new builder for this class. */
168+
/** Returns a new gRPC builder for this class. */
161169
public static Builder newBuilder() {
162170
return Builder.createDefault();
163171
}
164172

173+
/** Returns a new REST builder for this class. */
174+
@BetaApi
175+
public static Builder newHttpJsonBuilder() {
176+
return Builder.createHttpJsonDefault();
177+
}
178+
165179
/** Returns a new builder for this class. */
166180
public static Builder newBuilder(ClientContext clientContext) {
167181
return new Builder(clientContext);
@@ -199,6 +213,11 @@ private static Builder createDefault() {
199213
return new Builder(GSuiteAddOnsStubSettings.newBuilder());
200214
}
201215

216+
@BetaApi
217+
private static Builder createHttpJsonDefault() {
218+
return new Builder(GSuiteAddOnsStubSettings.newHttpJsonBuilder());
219+
}
220+
202221
public GSuiteAddOnsStubSettings.Builder getStubSettingsBuilder() {
203222
return ((GSuiteAddOnsStubSettings.Builder) getStubSettings());
204223
}

java-gsuite-addons/google-cloud-gsuite-addons/src/main/java/com/google/cloud/gsuiteaddons/v1/stub/GSuiteAddOnsStubSettings.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;
@@ -224,6 +227,11 @@ public GSuiteAddOnsStub createStub() throws IOException {
224227
.equals(GrpcTransportChannel.getGrpcTransportName())) {
225228
return GrpcGSuiteAddOnsStub.create(this);
226229
}
230+
if (getTransportChannelProvider()
231+
.getTransportName()
232+
.equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
233+
return HttpJsonGSuiteAddOnsStub.create(this);
234+
}
227235
throw new UnsupportedOperationException(
228236
String.format(
229237
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
@@ -256,30 +264,56 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
256264
.setUseJwtAccessWithScope(true);
257265
}
258266

259-
/** Returns a builder for the default ChannelProvider for this service. */
267+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
260268
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
261269
return InstantiatingGrpcChannelProvider.newBuilder()
262270
.setMaxInboundMessageSize(Integer.MAX_VALUE);
263271
}
264272

273+
/** Returns a builder for the default REST ChannelProvider for this service. */
274+
@BetaApi
275+
public static InstantiatingHttpJsonChannelProvider.Builder
276+
defaultHttpJsonTransportProviderBuilder() {
277+
return InstantiatingHttpJsonChannelProvider.newBuilder();
278+
}
279+
265280
public static TransportChannelProvider defaultTransportChannelProvider() {
266281
return defaultGrpcTransportProviderBuilder().build();
267282
}
268283

269284
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
270-
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
285+
public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
271286
return ApiClientHeaderProvider.newBuilder()
272287
.setGeneratedLibToken(
273288
"gapic", GaxProperties.getLibraryVersion(GSuiteAddOnsStubSettings.class))
274289
.setTransportToken(
275290
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
276291
}
277292

278-
/** Returns a new builder for this class. */
293+
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
294+
public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
295+
return ApiClientHeaderProvider.newBuilder()
296+
.setGeneratedLibToken(
297+
"gapic", GaxProperties.getLibraryVersion(GSuiteAddOnsStubSettings.class))
298+
.setTransportToken(
299+
GaxHttpJsonProperties.getHttpJsonTokenName(),
300+
GaxHttpJsonProperties.getHttpJsonVersion());
301+
}
302+
303+
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
304+
return GSuiteAddOnsStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
305+
}
306+
307+
/** Returns a new gRPC builder for this class. */
279308
public static Builder newBuilder() {
280309
return Builder.createDefault();
281310
}
282311

312+
/** Returns a new REST builder for this class. */
313+
public static Builder newHttpJsonBuilder() {
314+
return Builder.createHttpJsonDefault();
315+
}
316+
283317
/** Returns a new builder for this class. */
284318
public static Builder newBuilder(ClientContext clientContext) {
285319
return new Builder(clientContext);
@@ -448,6 +482,19 @@ private static Builder createDefault() {
448482
return initDefaults(builder);
449483
}
450484

485+
private static Builder createHttpJsonDefault() {
486+
Builder builder = new Builder(((ClientContext) null));
487+
488+
builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
489+
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
490+
builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
491+
builder.setEndpoint(getDefaultEndpoint());
492+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
493+
builder.setSwitchToMtlsEndpointAllowed(true);
494+
495+
return initDefaults(builder);
496+
}
497+
451498
private static Builder initDefaults(Builder builder) {
452499
builder
453500
.getAuthorizationSettings()
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.gsuiteaddons.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 GSuiteAddOns service API.
40+
*
41+
* <p>This class is for advanced usage.
42+
*/
43+
@Generated("by gapic-generator-java")
44+
@BetaApi
45+
public class HttpJsonGSuiteAddOnsCallableFactory
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)