Skip to content

Commit 189975e

Browse files
feat: Enable REST transport for most of Java and Go clients (googleapis#193)
- [ ] 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 6999a03 commit 189975e

123 files changed

Lines changed: 9489 additions & 22 deletions

File tree

Some content is hidden

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

java-filestore/google-cloud-filestore/pom.xml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@
6262
<groupId>com.google.api</groupId>
6363
<artifactId>gax-grpc</artifactId>
6464
</dependency>
65+
<dependency>
66+
<groupId>com.google.api</groupId>
67+
<artifactId>gax-httpjson</artifactId>
68+
</dependency>
6569
<dependency>
6670
<groupId>org.threeten</groupId>
6771
<artifactId>threetenbp</artifactId>
@@ -86,12 +90,24 @@
8690
<scope>test</scope>
8791
</dependency>
8892
<!-- Need testing utility classes for generated gRPC clients tests -->
93+
<dependency>
94+
<groupId>com.google.api</groupId>
95+
<artifactId>gax</artifactId>
96+
<classifier>testlib</classifier>
97+
<scope>test</scope>
98+
</dependency>
8999
<dependency>
90100
<groupId>com.google.api</groupId>
91101
<artifactId>gax-grpc</artifactId>
92102
<classifier>testlib</classifier>
93103
<scope>test</scope>
94104
</dependency>
105+
<dependency>
106+
<groupId>com.google.api</groupId>
107+
<artifactId>gax-httpjson</artifactId>
108+
<classifier>testlib</classifier>
109+
<scope>test</scope>
110+
</dependency>
95111
</dependencies>
96112

97113
<profiles>

java-filestore/google-cloud-filestore/src/main/java/com/google/cloud/filestore/v1/CloudFilestoreManagerClient.java

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.google.api.core.ApiFuture;
2020
import com.google.api.core.ApiFutures;
2121
import com.google.api.gax.core.BackgroundResource;
22+
import com.google.api.gax.httpjson.longrunning.OperationsClient;
2223
import com.google.api.gax.longrunning.OperationFuture;
2324
import com.google.api.gax.paging.AbstractFixedSizeCollection;
2425
import com.google.api.gax.paging.AbstractPage;
@@ -31,7 +32,6 @@
3132
import com.google.cloud.filestore.v1.stub.CloudFilestoreManagerStubSettings;
3233
import com.google.common.util.concurrent.MoreExecutors;
3334
import com.google.longrunning.Operation;
34-
import com.google.longrunning.OperationsClient;
3535
import com.google.protobuf.Empty;
3636
import com.google.protobuf.FieldMask;
3737
import java.io.IOException;
@@ -131,13 +131,29 @@
131131
* CloudFilestoreManagerClient.create(cloudFilestoreManagerSettings);
132132
* }</pre>
133133
*
134+
* <p>To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
135+
* the wire:
136+
*
137+
* <pre>{@code
138+
* // This snippet has been automatically generated for illustrative purposes only.
139+
* // It may require modifications to work in your environment.
140+
* CloudFilestoreManagerSettings cloudFilestoreManagerSettings =
141+
* CloudFilestoreManagerSettings.newBuilder()
142+
* .setTransportChannelProvider(
143+
* CloudFilestoreManagerSettings.defaultHttpJsonTransportProviderBuilder().build())
144+
* .build();
145+
* CloudFilestoreManagerClient cloudFilestoreManagerClient =
146+
* CloudFilestoreManagerClient.create(cloudFilestoreManagerSettings);
147+
* }</pre>
148+
*
134149
* <p>Please refer to the GitHub repository's samples for more quickstart code snippets.
135150
*/
136151
@Generated("by gapic-generator-java")
137152
public class CloudFilestoreManagerClient implements BackgroundResource {
138153
private final CloudFilestoreManagerSettings settings;
139154
private final CloudFilestoreManagerStub stub;
140-
private final OperationsClient operationsClient;
155+
private final OperationsClient httpJsonOperationsClient;
156+
private final com.google.longrunning.OperationsClient operationsClient;
141157

142158
/** Constructs an instance of CloudFilestoreManagerClient with default settings. */
143159
public static final CloudFilestoreManagerClient create() throws IOException {
@@ -169,13 +185,17 @@ public static final CloudFilestoreManagerClient create(CloudFilestoreManagerStub
169185
protected CloudFilestoreManagerClient(CloudFilestoreManagerSettings settings) throws IOException {
170186
this.settings = settings;
171187
this.stub = ((CloudFilestoreManagerStubSettings) settings.getStubSettings()).createStub();
172-
this.operationsClient = OperationsClient.create(this.stub.getOperationsStub());
188+
this.operationsClient =
189+
com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub());
190+
this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub());
173191
}
174192

175193
protected CloudFilestoreManagerClient(CloudFilestoreManagerStub stub) {
176194
this.settings = null;
177195
this.stub = stub;
178-
this.operationsClient = OperationsClient.create(this.stub.getOperationsStub());
196+
this.operationsClient =
197+
com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub());
198+
this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub());
179199
}
180200

181201
public final CloudFilestoreManagerSettings getSettings() {
@@ -190,10 +210,18 @@ public CloudFilestoreManagerStub getStub() {
190210
* Returns the OperationsClient that can be used to query the status of a long-running operation
191211
* returned by another API method call.
192212
*/
193-
public final OperationsClient getOperationsClient() {
213+
public final com.google.longrunning.OperationsClient getOperationsClient() {
194214
return operationsClient;
195215
}
196216

217+
/**
218+
* Returns the OperationsClient that can be used to query the status of a long-running operation
219+
* returned by another API method call.
220+
*/
221+
public final OperationsClient getHttpJsonOperationsClient() {
222+
return httpJsonOperationsClient;
223+
}
224+
197225
// AUTO-GENERATED DOCUMENTATION AND METHOD.
198226
/**
199227
* Lists all instances in a project for either a specified location or for all locations.

java-filestore/google-cloud-filestore/src/main/java/com/google/cloud/filestore/v1/CloudFilestoreManagerSettings.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.google.api.gax.core.GoogleCredentialsProvider;
2525
import com.google.api.gax.core.InstantiatingExecutorProvider;
2626
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
27+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
2728
import com.google.api.gax.rpc.ApiClientHeaderProvider;
2829
import com.google.api.gax.rpc.ClientContext;
2930
import com.google.api.gax.rpc.ClientSettings;
@@ -205,11 +206,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
205206
return CloudFilestoreManagerStubSettings.defaultCredentialsProviderBuilder();
206207
}
207208

208-
/** Returns a builder for the default ChannelProvider for this service. */
209+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
209210
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
210211
return CloudFilestoreManagerStubSettings.defaultGrpcTransportProviderBuilder();
211212
}
212213

214+
/** Returns a builder for the default REST ChannelProvider for this service. */
215+
@BetaApi
216+
public static InstantiatingHttpJsonChannelProvider.Builder
217+
defaultHttpJsonTransportProviderBuilder() {
218+
return CloudFilestoreManagerStubSettings.defaultHttpJsonTransportProviderBuilder();
219+
}
220+
213221
public static TransportChannelProvider defaultTransportChannelProvider() {
214222
return CloudFilestoreManagerStubSettings.defaultTransportChannelProvider();
215223
}
@@ -219,11 +227,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
219227
return CloudFilestoreManagerStubSettings.defaultApiClientHeaderProviderBuilder();
220228
}
221229

222-
/** Returns a new builder for this class. */
230+
/** Returns a new gRPC builder for this class. */
223231
public static Builder newBuilder() {
224232
return Builder.createDefault();
225233
}
226234

235+
/** Returns a new REST builder for this class. */
236+
@BetaApi
237+
public static Builder newHttpJsonBuilder() {
238+
return Builder.createHttpJsonDefault();
239+
}
240+
227241
/** Returns a new builder for this class. */
228242
public static Builder newBuilder(ClientContext clientContext) {
229243
return new Builder(clientContext);
@@ -262,6 +276,11 @@ private static Builder createDefault() {
262276
return new Builder(CloudFilestoreManagerStubSettings.newBuilder());
263277
}
264278

279+
@BetaApi
280+
private static Builder createHttpJsonDefault() {
281+
return new Builder(CloudFilestoreManagerStubSettings.newHttpJsonBuilder());
282+
}
283+
265284
public CloudFilestoreManagerStubSettings.Builder getStubSettingsBuilder() {
266285
return ((CloudFilestoreManagerStubSettings.Builder) getStubSettings());
267286
}

java-filestore/google-cloud-filestore/src/main/java/com/google/cloud/filestore/v1/stub/CloudFilestoreManagerStub.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,11 @@
5353
public abstract class CloudFilestoreManagerStub implements BackgroundResource {
5454

5555
public OperationsStub getOperationsStub() {
56-
throw new UnsupportedOperationException("Not implemented: getOperationsStub()");
56+
return null;
57+
}
58+
59+
public com.google.api.gax.httpjson.longrunning.stub.OperationsStub getHttpJsonOperationsStub() {
60+
return null;
5761
}
5862

5963
public UnaryCallable<ListInstancesRequest, ListInstancesPagedResponse>

java-filestore/google-cloud-filestore/src/main/java/com/google/cloud/filestore/v1/stub/CloudFilestoreManagerStubSettings.java

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@
2929
import com.google.api.gax.grpc.GrpcTransportChannel;
3030
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
3131
import com.google.api.gax.grpc.ProtoOperationTransformers;
32+
import com.google.api.gax.httpjson.GaxHttpJsonProperties;
33+
import com.google.api.gax.httpjson.HttpJsonTransportChannel;
34+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
3235
import com.google.api.gax.longrunning.OperationSnapshot;
3336
import com.google.api.gax.longrunning.OperationTimedPollAlgorithm;
3437
import com.google.api.gax.retrying.RetrySettings;
@@ -354,6 +357,11 @@ public CloudFilestoreManagerStub createStub() throws IOException {
354357
.equals(GrpcTransportChannel.getGrpcTransportName())) {
355358
return GrpcCloudFilestoreManagerStub.create(this);
356359
}
360+
if (getTransportChannelProvider()
361+
.getTransportName()
362+
.equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
363+
return HttpJsonCloudFilestoreManagerStub.create(this);
364+
}
357365
throw new UnsupportedOperationException(
358366
String.format(
359367
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
@@ -386,30 +394,56 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
386394
.setUseJwtAccessWithScope(true);
387395
}
388396

389-
/** Returns a builder for the default ChannelProvider for this service. */
397+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
390398
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
391399
return InstantiatingGrpcChannelProvider.newBuilder()
392400
.setMaxInboundMessageSize(Integer.MAX_VALUE);
393401
}
394402

403+
/** Returns a builder for the default REST ChannelProvider for this service. */
404+
@BetaApi
405+
public static InstantiatingHttpJsonChannelProvider.Builder
406+
defaultHttpJsonTransportProviderBuilder() {
407+
return InstantiatingHttpJsonChannelProvider.newBuilder();
408+
}
409+
395410
public static TransportChannelProvider defaultTransportChannelProvider() {
396411
return defaultGrpcTransportProviderBuilder().build();
397412
}
398413

399414
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
400-
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
415+
public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
401416
return ApiClientHeaderProvider.newBuilder()
402417
.setGeneratedLibToken(
403418
"gapic", GaxProperties.getLibraryVersion(CloudFilestoreManagerStubSettings.class))
404419
.setTransportToken(
405420
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
406421
}
407422

408-
/** Returns a new builder for this class. */
423+
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
424+
public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
425+
return ApiClientHeaderProvider.newBuilder()
426+
.setGeneratedLibToken(
427+
"gapic", GaxProperties.getLibraryVersion(CloudFilestoreManagerStubSettings.class))
428+
.setTransportToken(
429+
GaxHttpJsonProperties.getHttpJsonTokenName(),
430+
GaxHttpJsonProperties.getHttpJsonVersion());
431+
}
432+
433+
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
434+
return CloudFilestoreManagerStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
435+
}
436+
437+
/** Returns a new gRPC builder for this class. */
409438
public static Builder newBuilder() {
410439
return Builder.createDefault();
411440
}
412441

442+
/** Returns a new REST builder for this class. */
443+
public static Builder newHttpJsonBuilder() {
444+
return Builder.createHttpJsonDefault();
445+
}
446+
413447
/** Returns a new builder for this class. */
414448
public static Builder newBuilder(ClientContext clientContext) {
415449
return new Builder(clientContext);
@@ -633,6 +667,19 @@ private static Builder createDefault() {
633667
return initDefaults(builder);
634668
}
635669

670+
private static Builder createHttpJsonDefault() {
671+
Builder builder = new Builder(((ClientContext) null));
672+
673+
builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
674+
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
675+
builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
676+
builder.setEndpoint(getDefaultEndpoint());
677+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
678+
builder.setSwitchToMtlsEndpointAllowed(true);
679+
680+
return initDefaults(builder);
681+
}
682+
636683
private static Builder initDefaults(Builder builder) {
637684
builder
638685
.listInstancesSettings()

0 commit comments

Comments
 (0)