Skip to content

Commit 856cf41

Browse files
feat: Enable REST transport for most of Java and Go clients (googleapis#899)
- [ ] 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 a4fbf80 commit 856cf41

File tree

7 files changed

+6812
-5
lines changed

7 files changed

+6812
-5
lines changed

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

+16
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>
@@ -76,12 +80,24 @@
7680
<scope>test</scope>
7781
</dependency>
7882
<!-- Need testing utility classes for generated gRPC clients tests -->
83+
<dependency>
84+
<groupId>com.google.api</groupId>
85+
<artifactId>gax</artifactId>
86+
<classifier>testlib</classifier>
87+
<scope>test</scope>
88+
</dependency>
7989
<dependency>
8090
<groupId>com.google.api</groupId>
8191
<artifactId>gax-grpc</artifactId>
8292
<classifier>testlib</classifier>
8393
<scope>test</scope>
8494
</dependency>
95+
<dependency>
96+
<groupId>com.google.api</groupId>
97+
<artifactId>gax-httpjson</artifactId>
98+
<classifier>testlib</classifier>
99+
<scope>test</scope>
100+
</dependency>
85101
</dependencies>
86102

87103
<profiles>

java-dlp/google-cloud-dlp/src/main/java/com/google/cloud/dlp/v2/DlpServiceClient.java

+14
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,20 @@
173173
* DlpServiceClient dlpServiceClient = DlpServiceClient.create(dlpServiceSettings);
174174
* }</pre>
175175
*
176+
* <p>To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
177+
* the wire:
178+
*
179+
* <pre>{@code
180+
* // This snippet has been automatically generated for illustrative purposes only.
181+
* // It may require modifications to work in your environment.
182+
* DlpServiceSettings dlpServiceSettings =
183+
* DlpServiceSettings.newBuilder()
184+
* .setTransportChannelProvider(
185+
* DlpServiceSettings.defaultHttpJsonTransportProviderBuilder().build())
186+
* .build();
187+
* DlpServiceClient dlpServiceClient = DlpServiceClient.create(dlpServiceSettings);
188+
* }</pre>
189+
*
176190
* <p>Please refer to the GitHub repository's samples for more quickstart code snippets.
177191
*/
178192
@Generated("by gapic-generator-java")

java-dlp/google-cloud-dlp/src/main/java/com/google/cloud/dlp/v2/DlpServiceSettings.java

+21-2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.google.api.gax.core.GoogleCredentialsProvider;
2828
import com.google.api.gax.core.InstantiatingExecutorProvider;
2929
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
30+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
3031
import com.google.api.gax.rpc.ApiClientHeaderProvider;
3132
import com.google.api.gax.rpc.ClientContext;
3233
import com.google.api.gax.rpc.ClientSettings;
@@ -345,11 +346,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
345346
return DlpServiceStubSettings.defaultCredentialsProviderBuilder();
346347
}
347348

348-
/** Returns a builder for the default ChannelProvider for this service. */
349+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
349350
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
350351
return DlpServiceStubSettings.defaultGrpcTransportProviderBuilder();
351352
}
352353

354+
/** Returns a builder for the default REST ChannelProvider for this service. */
355+
@BetaApi
356+
public static InstantiatingHttpJsonChannelProvider.Builder
357+
defaultHttpJsonTransportProviderBuilder() {
358+
return DlpServiceStubSettings.defaultHttpJsonTransportProviderBuilder();
359+
}
360+
353361
public static TransportChannelProvider defaultTransportChannelProvider() {
354362
return DlpServiceStubSettings.defaultTransportChannelProvider();
355363
}
@@ -359,11 +367,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
359367
return DlpServiceStubSettings.defaultApiClientHeaderProviderBuilder();
360368
}
361369

362-
/** Returns a new builder for this class. */
370+
/** Returns a new gRPC builder for this class. */
363371
public static Builder newBuilder() {
364372
return Builder.createDefault();
365373
}
366374

375+
/** Returns a new REST builder for this class. */
376+
@BetaApi
377+
public static Builder newHttpJsonBuilder() {
378+
return Builder.createHttpJsonDefault();
379+
}
380+
367381
/** Returns a new builder for this class. */
368382
public static Builder newBuilder(ClientContext clientContext) {
369383
return new Builder(clientContext);
@@ -401,6 +415,11 @@ private static Builder createDefault() {
401415
return new Builder(DlpServiceStubSettings.newBuilder());
402416
}
403417

418+
@BetaApi
419+
private static Builder createHttpJsonDefault() {
420+
return new Builder(DlpServiceStubSettings.newHttpJsonBuilder());
421+
}
422+
404423
public DlpServiceStubSettings.Builder getStubSettingsBuilder() {
405424
return ((DlpServiceStubSettings.Builder) getStubSettings());
406425
}

java-dlp/google-cloud-dlp/src/main/java/com/google/cloud/dlp/v2/stub/DlpServiceStubSettings.java

+50-3
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@
3131
import com.google.api.gax.grpc.GaxGrpcProperties;
3232
import com.google.api.gax.grpc.GrpcTransportChannel;
3333
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
34+
import com.google.api.gax.httpjson.GaxHttpJsonProperties;
35+
import com.google.api.gax.httpjson.HttpJsonTransportChannel;
36+
import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
3437
import com.google.api.gax.retrying.RetrySettings;
3538
import com.google.api.gax.rpc.ApiCallContext;
3639
import com.google.api.gax.rpc.ApiClientHeaderProvider;
@@ -717,6 +720,11 @@ public DlpServiceStub createStub() throws IOException {
717720
.equals(GrpcTransportChannel.getGrpcTransportName())) {
718721
return GrpcDlpServiceStub.create(this);
719722
}
723+
if (getTransportChannelProvider()
724+
.getTransportName()
725+
.equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
726+
return HttpJsonDlpServiceStub.create(this);
727+
}
720728
throw new UnsupportedOperationException(
721729
String.format(
722730
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
@@ -749,30 +757,56 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
749757
.setUseJwtAccessWithScope(true);
750758
}
751759

752-
/** Returns a builder for the default ChannelProvider for this service. */
760+
/** Returns a builder for the default gRPC ChannelProvider for this service. */
753761
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
754762
return InstantiatingGrpcChannelProvider.newBuilder()
755763
.setMaxInboundMessageSize(Integer.MAX_VALUE);
756764
}
757765

766+
/** Returns a builder for the default REST ChannelProvider for this service. */
767+
@BetaApi
768+
public static InstantiatingHttpJsonChannelProvider.Builder
769+
defaultHttpJsonTransportProviderBuilder() {
770+
return InstantiatingHttpJsonChannelProvider.newBuilder();
771+
}
772+
758773
public static TransportChannelProvider defaultTransportChannelProvider() {
759774
return defaultGrpcTransportProviderBuilder().build();
760775
}
761776

762777
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
763-
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
778+
public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
764779
return ApiClientHeaderProvider.newBuilder()
765780
.setGeneratedLibToken(
766781
"gapic", GaxProperties.getLibraryVersion(DlpServiceStubSettings.class))
767782
.setTransportToken(
768783
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
769784
}
770785

771-
/** Returns a new builder for this class. */
786+
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
787+
public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
788+
return ApiClientHeaderProvider.newBuilder()
789+
.setGeneratedLibToken(
790+
"gapic", GaxProperties.getLibraryVersion(DlpServiceStubSettings.class))
791+
.setTransportToken(
792+
GaxHttpJsonProperties.getHttpJsonTokenName(),
793+
GaxHttpJsonProperties.getHttpJsonVersion());
794+
}
795+
796+
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
797+
return DlpServiceStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
798+
}
799+
800+
/** Returns a new gRPC builder for this class. */
772801
public static Builder newBuilder() {
773802
return Builder.createDefault();
774803
}
775804

805+
/** Returns a new REST builder for this class. */
806+
public static Builder newHttpJsonBuilder() {
807+
return Builder.createHttpJsonDefault();
808+
}
809+
776810
/** Returns a new builder for this class. */
777811
public static Builder newBuilder(ClientContext clientContext) {
778812
return new Builder(clientContext);
@@ -1114,6 +1148,19 @@ private static Builder createDefault() {
11141148
return initDefaults(builder);
11151149
}
11161150

1151+
private static Builder createHttpJsonDefault() {
1152+
Builder builder = new Builder(((ClientContext) null));
1153+
1154+
builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
1155+
builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
1156+
builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
1157+
builder.setEndpoint(getDefaultEndpoint());
1158+
builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
1159+
builder.setSwitchToMtlsEndpointAllowed(true);
1160+
1161+
return initDefaults(builder);
1162+
}
1163+
11171164
private static Builder initDefaults(Builder builder) {
11181165
builder
11191166
.inspectContentSettings()
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.dlp.v2.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 DlpService service API.
40+
*
41+
* <p>This class is for advanced usage.
42+
*/
43+
@Generated("by gapic-generator-java")
44+
@BetaApi
45+
public class HttpJsonDlpServiceCallableFactory
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)