syntax = "proto3"; package envoy.config.ratelimit.v4alpha; import "envoy/config/core/v4alpha/config_source.proto"; import "envoy/config/core/v4alpha/grpc_service.proto"; import "udpa/annotations/status.proto"; import "udpa/annotations/versioning.proto"; import "validate/validate.proto"; option java_package = "io.envoyproxy.envoy.config.ratelimit.v4alpha"; option java_outer_classname = "RlsProto"; option java_multiple_files = true; option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; // [#protodoc-title: Rate limit service] // Rate limit :ref:`configuration overview `. // [#next-free-field: 6] message RateLimitServiceConfig { option (udpa.annotations.versioning).previous_message_type = "envoy.config.ratelimit.v3.RateLimitServiceConfig"; reserved 1, 3; // Specifies the gRPC service that hosts the rate limit service. The client // will connect to this cluster when it needs to make rate limit service // requests. core.v4alpha.GrpcService grpc_service = 2 [(validate.rules).message = {required: true}]; // API version for rate limit transport protocol. This describes the rate limit gRPC endpoint and // version of messages used on the wire. If set to `V2`, then the `use_alpha` option will instead // select the old alpha protocol. core.v4alpha.ApiVersion transport_api_version = 4 [(validate.rules).enum = {defined_only: true}]; // API version for rate limit transport protocol. If `transport_api_version` is set to `V2`, then // this will instead select the alpha version of the V2 API; `pb.lyft.ratelimit.RateLimitService` // rather than the final V2 API `envoy.service.ratelimit.v2.RateLimitService`. This setting has // no affect if `transport_api_version` is set to `V3`. bool use_alpha = 5; }