Permalink
Find file Copy path
93 lines (78 sloc) 3.67 KB
syntax = "proto3";
package envoy.config.filter.http.transcoder.v2;
option java_package = "io.envoyproxy.envoy.config.filter.http.transcoder.v2";
option go_package = "v2";
import "validate/validate.proto";
// [#protodoc-title: gRPC-JSON transcoder]
// gRPC-JSON transcoder :ref:`configuration overview <config_http_filters_grpc_json_transcoder>`.
message GrpcJsonTranscoder {
oneof descriptor_set {
option (validate.required) = true;
// Supplies the filename of
// :ref:`the proto descriptor set <config_grpc_json_generate_proto_descriptor_set>` for the gRPC
// services.
string proto_descriptor = 1;
// Supplies the binary content of
// :ref:`the proto descriptor set <config_grpc_json_generate_proto_descriptor_set>` for the gRPC
// services.
bytes proto_descriptor_bin = 4;
}
// A list of strings that
// supplies the fully qualified service names (i.e. "package_name.service_name") that
// the transcoder will translate. If the service name doesn't exist in ``proto_descriptor``,
// Envoy will fail at startup. The ``proto_descriptor`` may contain more services than
// the service names specified here, but they won't be translated.
repeated string services = 2 [(validate.rules).repeated .min_items = 1];
message PrintOptions {
// Whether to add spaces, line breaks and indentation to make the JSON
// output easy to read. Defaults to false.
bool add_whitespace = 1;
// Whether to always print primitive fields. By default primitive
// fields with default values will be omitted in JSON output. For
// example, an int32 field set to 0 will be omitted. Setting this flag to
// true will override the default behavior and print primitive fields
// regardless of their values. Defaults to false.
bool always_print_primitive_fields = 2;
// Whether to always print enums as ints. By default they are rendered
// as strings. Defaults to false.
bool always_print_enums_as_ints = 3;
// Whether to preserve proto field names. By default protobuf will
// generate JSON field names using the ``json_name`` option, or lower camel case,
// in that order. Setting this flag will preserve the original field names. Defaults to false.
bool preserve_proto_field_names = 4;
};
// Control options for response JSON. These options are passed directly to
// `JsonPrintOptions <https://developers.google.com/protocol-buffers/docs/reference/cpp/
// google.protobuf.util.json_util#JsonPrintOptions>`_.
PrintOptions print_options = 3;
// Whether to keep the incoming request route after the outgoing headers have been transformed to
// the match the upstream gRPC service. Note: This means that routes for gRPC services that are
// not transcoded cannot be used in combination with *match_incoming_request_route*.
bool match_incoming_request_route = 5;
// A list of query parameters to be ignored for transcoding method mapping.
// By default, the transcoder filter will not transcode a request if there are any
// unknown/invalid query parameters.
//
// Example :
//
// .. code-block:: proto
//
// service Bookstore {
// rpc GetShelf(GetShelfRequest) returns (Shelf) {
// option (google.api.http) = {
// get: "/shelves/{shelf}"
// };
// }
// }
//
// message GetShelfRequest {
// int64 shelf = 1;
// }
//
// message Shelf {}
//
// The request ``/shelves/100?foo=bar`` will not be mapped to ``GetShelf``` because variable
// binding for ``foo`` is not defined. Adding ``foo`` to ``ignored_query_parameters`` will allow
// the same request to be mapped to ``GetShelf``.
repeated string ignored_query_parameters = 6;
}