8000 xds: Import RLQS protos (#11418) · grpc/grpc-java@c29763d · GitHub
[go: up one dir, main page]

Skip to content

Commit c29763d

Browse files
authored
xds: Import RLQS protos (#11418)
Imports the protos of Rate Limiting Quota Service (RLQS) and Rate Limit Quota HTTP Filter. Note: the list below only shows the new top-level protos, and excludes their direct and transitional dependencies (those from import statements). #### RLQS Imports - Service — envoy/service/rate_limit_quota/v3/rlqs.proto (Service): 7b8a304 - HTTP Filter — envoy/extensions/filters/http/rate_limit_quota/v3/rate_limit_quota.proto: 49c77c4 #### CEL Imports - Initial third-party repo setup: 99a64bd - Parsed CEL Expression: cel/expr/syntax.proto: 99a64bd - Parsed and type-checked CEL Expression: cel/expr/checked.proto: 99a64bd #### Required typed_config extensions ##### `bucket_matchers` predicate input - `HttpAttributesCelMatchInput` — xds/type/matcher/v3/http_inputs.proto: 54924e0 - `HttpRequestHeaderMatchInput` — envoy/type/matcher/v3/http_inputs.proto: 49c77c4 ##### `bucket_matchers` predicate custom_match - `CelMatcher` — xds/type/matcher/v3/cel.proto: 54924e0
1 parent 0013609 commit c29763d

File tree

18 files changed

+2503
-0
lines changed

18 files changed

+2503
-0
lines changed

xds/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ sourceSets {
2020
srcDir 'third_party/envoy/src/main/proto'
2121
srcDir 'third_party/protoc-gen-validate/src/main/proto'
2222
srcDir 'third_party/xds/src/main/proto'
23+
srcDir 'third_party/cel-spec/src/main/proto'
2324
srcDir 'third_party/googleapis/src/main/proto'
2425
srcDir 'third_party/istio/src/main/proto'
2526
}
@@ -185,6 +186,7 @@ tasks.named("shadowJar").configure {
185186
relocate 'com.google.api.expr', "${prefixName}.shaded.com.google.api.expr"
186187
relocate 'com.google.security', "${prefixName}.shaded.com.google.security"
187188
// TODO: missing java_package option in .proto
189+
relocate 'dev.cel.expr', "${prefixName}.shaded.dev.cel.expr"
188190
relocate 'envoy.annotations', "${prefixName}.shaded.envoy.annotations"
189191
relocate 'io.envoyproxy', "${prefixName}.shaded.io.envoyproxy"
190192
relocate 'io.grpc.netty', 'io.grpc.netty.shaded.io.grpc.netty'
@@ -212,6 +214,7 @@ tasks.named("jacocoTestReport").configure {
212214
'**/com/github/xds/**',
213215
'**/com/google/api/expr/**',
214216
'**/com/google/security/**',
217+
'**/cel/expr/**',
215218
'**/envoy/annotations/**',
216219
'**/io/envoyproxy/**',
217220
'**/udpa/annotations/**',
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,303 @@
1+
package io.envoyproxy.envoy.service.rate_limit_quota.v3;
2+
3+
import static io.grpc.MethodDescriptor.generateFullMethodName;
4+
5+
/**
6+
* <pre>
7+
* Defines the Rate Limit Quota Service (RLQS).
8+
* </pre>
9+
*/
10+
@javax.annotation. F438 Generated(
11+
value = "by gRPC proto compiler",
12+
comments = "Source: envoy/service/rate_limit_quota/v3/rlqs.proto")
13+
@io.grpc.stub.annotations.GrpcGenerated
14+
public final class RateLimitQuotaServiceGrpc {
15+
16+
private RateLimitQuotaServiceGrpc() {}
17+
18+
public static final java.lang.String SERVICE_NAME = "envoy.service.rate_limit_quota.v3.RateLimitQuotaService";
19+
20+
// Static method descriptors that strictly reflect the proto.
21+
private static volatile io.grpc.MethodDescriptor<io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaUsageReports,
22+
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse> getStreamRateLimitQuotasMethod;
23+
24+
@io.grpc.stub.annotations.RpcMethod(
25+
fullMethodName = SERVICE_NAME + '/' + "StreamRateLimitQuotas",
26+
requestType = io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaUsageReports.class,
27+
responseType = io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.class,
28+
methodType = io.grpc.MethodDescriptor.MethodType.BIDI_STREAMING)
29+
public static io.grpc.MethodDescriptor<io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaUsageReports,
30+
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse> getStreamRateLimitQuotasMethod() {
31+
io.grpc.MethodDescriptor<io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaUsageReports, io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse> getStreamRateLimitQuotasMethod;
32+
if ((getStreamRateLimitQuotasMethod = RateLimitQuotaServiceGrpc.getStreamRateLimitQuotasMethod) == null) {
33+
synchronized (RateLimitQuotaServiceGrpc.class) {
34+
if ((getStreamRateLimitQuotasMethod = RateLimitQuotaServiceGrpc.getStreamRateLimitQuotasMethod) == null) {
35+
RateLimitQuotaServiceGrpc.getStreamRateLimitQuotasMethod = getStreamRateLimitQuotasMethod =
36+
io.grpc.MethodDescriptor.<io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaUsageReports, io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse>newBuilder()
37+
.setType(io.grpc.MethodDescriptor.MethodType.BIDI_STREAMING)
38+
.setFullMethodName(generateFullMethodName(SERVICE_NAME, "StreamRateLimitQuotas"))
39+
.setSampledToLocalTracing(true)
40+
.setRequestMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
41+
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaUsageReports.getDefaultInstance()))
42+
.setResponseMarshaller(io.grpc.protobuf.ProtoUtils.marshaller(
43+
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse.getDefaultInstance()))
44+
.setSchemaDescriptor(new RateLimitQuotaServiceMethodDescriptorSupplier("StreamRateLimitQuotas"))
45+
.build();
46+
}
47+
}
48+
}
49+
return getStreamRateLimitQuotasMethod;
50+
}
51+
52+
/**
53+
* Creates a new async stub that supports all call types for the service
54+
*/
55+
public static RateLimitQuotaServiceStub newStub(io.grpc.Channel channel) {
56+
io.grpc.stub.AbstractStub.StubFactory<RateLimitQuotaServiceStub> factory =
57+
new io.grpc.stub.AbstractStub.StubFactory<RateLimitQuotaServiceStub>() {
58+
@java.lang.Override
59+
public RateLimitQuotaServiceStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
60+
return new RateLimitQuotaServiceStub(channel, callOptions);
61+
}
62+
};
63+
return RateLimitQuotaServiceStub.newStub(factory, channel);
64+
}
65+
66+
/**
67+
* Creates a new blocking-style stub that supports unary and streaming output calls on the service
68+
*/
69+
public static RateLimitQuotaServiceBlockingStub newBlockingStub(
70+
io.grpc.Channel channel) {
71+
io.grpc.stub.AbstractStub.StubFactory<RateLimitQuotaServiceBlockingStub> factory =
72+
new io.grpc.stub.AbstractStub.StubFactory<RateLimitQuotaServiceBlockingStub>() {
73+
@java.lang.Override
74+
public RateLimitQuotaServiceBlockingStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
75+
return new RateLimitQuotaServiceBlockingStub(channel, callOptions);
76+
}
77+
};
78+
return RateLimitQuotaServiceBlockingStub.newStub(factory, channel);
79+
}
80+
81+
/**
82+
* Creates a new ListenableFuture-style stub that supports unary calls on the service
83+
*/
84+
public static RateLimitQuotaServiceFutureStub newFutureStub(
85+
io.grpc.Channel channel) {
86+
io.grpc.stub.AbstractStub.StubFactory<RateLimitQuotaServiceFutureStub> factory =
87+
new io.grpc.stub.AbstractStub.StubFactory<RateLimitQuotaServiceFutureStub>() {
88+
@java.lang.Override
89+
public RateLimitQuotaServiceFutureStub newStub(io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
90+
return new RateLimitQuotaServiceFutureStub(channel, callOptions);
91+
}
92+
};
93+
return RateLimitQuotaServiceFutureStub.newStub(factory, channel);
94+
}
95+
96+
/**
97+
* <pre>
98+
* Defines the Rate Limit Quota Service (RLQS).
99+
* </pre>
100+
*/
101+
public interface AsyncService {
102+
103+
/**
104+
* <pre>
105+
* Main communication channel: the data plane sends usage reports to the RLQS server,
106+
* and the server asynchronously responding with the assignments.
107+
* </pre>
108+
*/
109+
default io.grpc.stub.StreamObserver<io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaUsageReports> streamRateLimitQuotas(
110+
io.grpc.stub.StreamObserver<io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse> responseObserver) {
111+
return io.grpc.stub.ServerCalls.asyncUnimplementedStreamingCall(getStreamRateLimitQuotasMethod(), responseObserver);
112+
}
113+
}
114+
115+
/**
116+
* Base class for the server implementation of the service RateLimitQuotaService.
117+
* <pre>
118+
* Defines the Rate Limit Quota Service (RLQS).
119+
* </pre>
120+
*/
121+
public static abstract class RateLimitQuotaServiceImplBase
122+
implements io.grpc.BindableService, AsyncService {
123+
124+
@java.lang.Override public final io.grpc.ServerServiceDefinition bindService() {
125+
return RateLimitQuotaServiceGrpc.bindService(this);
126+
}
127+
}
128+
129+
/**
130+
* A stub to allow clients to do asynchronous rpc calls to service RateLimitQuotaService.
131+
* <pre>
132+
* Defines the Rate Limit Quota Service (RLQS).
133+
* </pre>
134+
*/
135+
public static final class RateLimitQuotaServiceStub
136+
extends io.grpc.stub.AbstractAsyncStub<RateLimitQuotaServiceStub> {
137+
private RateLimitQuotaServiceStub(
138+
io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
139+
super(channel, callOptions);
140+
}
141+
142+
@java.lang.Override
143+
protected RateLimitQuotaServiceStub build(
144+
io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
145+
return new RateLimitQuotaServiceStub(channel, callOptions);
146+
}
147+
148+
/**
149+
* <pre>
150+
* Main communication channel: the data plane sends usage reports to the RLQS server,
151+
* and the server asynchronously responding with the assignments.
152+
* </pre>
153+
*/
154+
public io.grpc.stub.StreamObserver<io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaUsageReports> streamRateLimitQuotas(
155+
io.grpc.stub.StreamObserver<io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse> responseObserver) {
156+
return io.grpc.stub.ClientCalls.asyncBidiStreamingCall(
157+
getChannel().newCall(getStreamRateLimitQuotasMethod(), getCallOptions()), responseObserver);
158+
}
159+
}
160+
161+
/**
162+
* A stub to allow clients to do synchronous rpc calls to service RateLimitQuotaService.
163+
* <pre>
164+
* Defines the Rate Limit Quota Service (RLQS).
165+
* </pre>
166+
*/
167+
public static final class RateLimitQuotaServiceBlockingStub
168+
extends io.grpc.stub.AbstractBlockingStub<RateLimitQuotaServiceBlockingStub> {
169+
private RateLimitQuotaServiceBlockingStub(
170+
io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
171+
super(channel, callOptions);
172+
}
173+
174+
@java.lang.Override
175+
protected RateLimitQuotaServiceBlockingStub build(
176+
io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
177+
return new RateLimitQuotaServiceBlockingStub(channel, callOptions);
178+
}
179+
}
180+
181+
/**
182+
* A stub to allow clients to do ListenableFuture-style rpc calls to service RateLimitQuotaService.
183+
* <pre>
184+
* Defines the Rate Limit Quota Service (RLQS).
185+
* </pre>
186+
*/
187+
public static final class RateLimitQuotaServiceFutureStub
188+
extends io.grpc.stub.AbstractFutureStub<RateLimitQuotaServiceFutureStub> {
189+
private RateLimitQuotaServiceFutureStub(
190+
io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
191+
super(channel, callOptions);
192+
}
193+
194+
@java.lang.Override
195+
protected RateLimitQuotaServiceFutureStub build(
196+
io.grpc.Channel channel, io.grpc.CallOptions callOptions) {
197+
return new RateLimitQuotaServiceFutureStub(channel, callOptions);
198+
}
199+
}
200+
201+
private static final int METHODID_STREAM_RATE_LIMIT_QUOTAS = 0;
202+
203+
private static final class MethodHandlers<Req, Resp> implements
204+
io.grpc.stub.ServerCalls.UnaryMethod<Req, Resp>,
205+
io.grpc.stub.ServerCalls.ServerStreamingMethod<Req, Resp>,
206+
io.grpc.stub.ServerCalls.ClientStreamingMethod<Req, Resp>,
207+
io.grpc.stub.ServerCalls.BidiStreamingMethod<Req, Resp> {
208+
private final AsyncService serviceImpl;
209+
private final int methodId;
210+
211+
MethodHandlers(AsyncService serviceImpl, int methodId) {
212+
this.serviceImpl = serviceImpl;
213+
this.methodId = methodId;
214+
}
215+
216+
@java.lang.Override
217+
@java.lang.SuppressWarnings("unchecked")
218+
public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) {
219+
switch (methodId) {
220+
default:
221+
throw new AssertionError();
222+
}
223+
}
224+
225+
@java.lang.Override
226+
@java.lang.SuppressWarnings("unchecked")
227+
public io.grpc.stub.StreamObserver<Req> invoke(
228+
io.grpc.stub.StreamObserver<Resp> responseObserver) {
229+
switch (methodId) {
230+
case METHODID_STREAM_RATE_LIMIT_QUOTAS:
231+
return (io.grpc.stub.StreamObserver<Req>) serviceImpl.streamRateLimitQuotas(
232+
(io.grpc.stub.StreamObserver<io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse>) responseObserver);
233+
default:
234+
throw new AssertionError();
235+
}
236+
}
237+
}
238+
239+
public static final io.grpc.ServerServiceDefinition bindService(AsyncService service) {
240+
return io.grpc.ServerServiceDefinition.builder(getServiceDescriptor())
241+
.addMethod(
242+
getStreamRateLimitQuotasMethod(),
243+
io.grpc.stub.ServerCalls.asyncBidiStreamingCall(
244+
new MethodHandlers<
245+
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaUsageReports,
246+
io.envoyproxy.envoy.service.rate_limit_quota.v3.RateLimitQuotaResponse>(
247+
service, METHODID_STREAM_RATE_LIMIT_QUOTAS)))
248+
.build();
249+
}
250+
251+
private static abstract class RateLimitQuotaServiceBaseDescriptorSupplier
252+
implements io.grpc.protobuf.ProtoFileDescriptorSupplier, io.grpc.protobuf.ProtoServiceDescriptorSupplier {
253+
RateLimitQuotaServiceBaseDescriptorSupplier() {}
254+
255+
@java.lang.Override
256+
public com.google.protobuf.Descriptors.FileDescriptor getFileDescriptor() {
257+
return io.envoyproxy.envoy.service.rate_limit_quota.v3.RlqsProto.getDescriptor();
258+
}
259+
260+
@java.lang.Override
261+
public com.google.protobuf.Descriptors.ServiceDescriptor getServiceDescriptor() {
262+
return getFileDescriptor().findServiceByName("RateLimitQuotaService");
263+
}
264+
}
265+
266+
private static final class RateLimitQuotaServiceFileDescriptorSupplier
267+
extends RateLimitQuotaServiceBaseDescriptorSupplier {
268+
RateLimitQuotaServiceFileDescriptorSupplier() {}
269+
}
270+
271+
private static final class RateLimitQuotaServiceMethodDescriptorSupplier
272+
extends RateLimitQuotaServiceBaseDescriptorSupplier
273+
implements io.grpc.protobuf.ProtoMethodDescriptorSupplier {
274+
private final java.lang.String methodName;
275+
276+
RateLimitQuotaServiceMethodDescriptorSupplier(java.lang.String methodName) {
277+
this.methodName = methodName;
278+
}
279+
280+
@java.lang.Override
281+
public com.google.protobuf.Descriptors.MethodDescriptor getMethodDescriptor() {
282+
return getServiceDescriptor().findMethodByName(methodName);
283+
}
284+
}
285+
286+
private static volatile io.grpc.ServiceDescriptor serviceDescriptor;
287+
288+
public static io.grpc.ServiceDescriptor getServiceDescriptor() {
289+
io.grpc.ServiceDescriptor result = serviceDescriptor;
290+
if (result == null) {
291+
synchronized (RateLimitQuotaServiceGrpc.class) {
292+
result = serviceDescriptor;
293+
if (result == null) {
294+
serviceDescriptor = result = io.grpc.ServiceDescriptor.newBuilder(SERVICE_NAME)
295+
.setSchemaDescriptor(new RateLimitQuotaServiceFileDescriptorSupplier())
296+
.addMethod(getStreamRateLimitQuotasMethod())
297+
.build();
298+
}
299+
}
300+
}
301+
return result;
302+
}
303+
}

0 commit comments

Comments
 (0)
0