grpc_json_transcoderv3

package
v1.36.11-2025121120105... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: unknown License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const GrpcJsonTranscoder_DescriptorSet_not_set_case case_GrpcJsonTranscoder_DescriptorSet = 0
View Source
const GrpcJsonTranscoder_ProtoDescriptorBin_case case_GrpcJsonTranscoder_DescriptorSet = 4
View Source
const GrpcJsonTranscoder_ProtoDescriptor_case case_GrpcJsonTranscoder_DescriptorSet = 1

Variables

View Source
var (
	GrpcJsonTranscoder_UrlUnescapeSpec_name = map[int32]string{
		0: "ALL_CHARACTERS_EXCEPT_RESERVED",
		1: "ALL_CHARACTERS_EXCEPT_SLASH",
		2: "ALL_CHARACTERS",
	}
	GrpcJsonTranscoder_UrlUnescapeSpec_value = map[string]int32{
		"ALL_CHARACTERS_EXCEPT_RESERVED": 0,
		"ALL_CHARACTERS_EXCEPT_SLASH":    1,
		"ALL_CHARACTERS":                 2,
	}
)

Enum value maps for GrpcJsonTranscoder_UrlUnescapeSpec.

View Source
var File_envoy_extensions_filters_http_grpc_json_transcoder_v3_transcoder_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type GrpcJsonTranscoder

type GrpcJsonTranscoder struct {

	// Types that are valid to be assigned to DescriptorSet:
	//
	//	*GrpcJsonTranscoder_ProtoDescriptor
	//	*GrpcJsonTranscoder_ProtoDescriptorBin
	DescriptorSet isGrpcJsonTranscoder_DescriptorSet `protobuf_oneof:"descriptor_set"`
	// 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.
	//
	// By default, the filter will pass through requests that do not map to any specified services.
	// If the list of services is empty, filter is considered disabled.
	// However, this behavior changes if
	// :ref:`reject_unknown_method <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.RequestValidationOptions.reject_unknown_method>`
	// is enabled.
	Services []string `protobuf:"bytes,2,rep,name=services,proto3" json:"services,omitempty"`
	// 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 *GrpcJsonTranscoder_PrintOptions `protobuf:"bytes,3,opt,name=print_options,json=printOptions,proto3" json:"print_options,omitempty"`
	// 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“.
	MatchIncomingRequestRoute bool `` /* 141-byte string literal not displayed */
	// 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“.
	IgnoredQueryParameters []string `` /* 129-byte string literal not displayed */
	// Whether to route methods without the “google.api.http“ option.
	//
	// Example :
	//
	// .. code-block:: proto
	//
	//	package bookstore;
	//
	//	service Bookstore {
	//	  rpc GetShelf(GetShelfRequest) returns (Shelf) {}
	//	}
	//
	//	message GetShelfRequest {
	//	  int64 shelf = 1;
	//	}
	//
	//	message Shelf {}
	//
	// The client could “post“ a json body “{"shelf": 1234}“ with the path of
	// “/bookstore.Bookstore/GetShelfRequest“ to call “GetShelfRequest“.
	AutoMapping bool `protobuf:"varint,7,opt,name=auto_mapping,json=autoMapping,proto3" json:"auto_mapping,omitempty"`
	// Whether to ignore query parameters that cannot be mapped to a corresponding
	// protobuf field. Use this if you cannot control the query parameters and do
	// not know them beforehand. Otherwise use “ignored_query_parameters“.
	// Defaults to false.
	IgnoreUnknownQueryParameters bool `` /* 150-byte string literal not displayed */
	// Whether to convert gRPC status headers to JSON.
	// When trailer indicates a gRPC error and there was no HTTP body, take “google.rpc.Status“
	// from the “grpc-status-details-bin“ header and use it as JSON body.
	// If there was no such header, make “google.rpc.Status“ out of the “grpc-status“ and
	// “grpc-message“ headers.
	// The error details types must be present in the “proto_descriptor“.
	//
	// For example, if an upstream server replies with headers:
	//
	// .. code-block:: none
	//
	//	grpc-status: 5
	//	grpc-status-details-bin:
	//	    CAUaMwoqdHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucnBjLlJlcXVlc3RJbmZvEgUKA3ItMQ
	//
	// The “grpc-status-details-bin“ header contains a base64-encoded protobuf message
	// “google.rpc.Status“. It will be transcoded into:
	//
	// .. code-block:: none
	//
	//	HTTP/1.1 404 Not Found
	//	content-type: application/json
	//
	//	{"code":5,"details":[{"@type":"type.googleapis.com/google.rpc.RequestInfo","requestId":"r-1"}]}
	//
	// In order to transcode the message, the “google.rpc.RequestInfo“ type from
	// the “google/rpc/error_details.proto“ should be included in the configured
	// :ref:`proto descriptor set <config_grpc_json_generate_proto_descriptor_set>`.
	ConvertGrpcStatus bool `protobuf:"varint,9,opt,name=convert_grpc_status,json=convertGrpcStatus,proto3" json:"convert_grpc_status,omitempty"`
	// URL unescaping policy.
	// This spec is only applied when extracting variable with multiple segments in the URL path.
	// For example, in case of “/foo/{x=*}/bar/{y=prefix/*}/{z=**}“ “x“ variable is single segment and “y“ and “z“ are multiple segments.
	// For a path with “/foo/first/bar/prefix/second/third/fourth“, “x=first“, “y=prefix/second“, “z=third/fourth“.
	// If this setting is not specified, the value defaults to :ref:`ALL_CHARACTERS_EXCEPT_RESERVED<envoy_v3_api_enum_value_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.UrlUnescapeSpec.ALL_CHARACTERS_EXCEPT_RESERVED>`.
	UrlUnescapeSpec GrpcJsonTranscoder_UrlUnescapeSpec `` /* 204-byte string literal not displayed */
	// If true, unescape '+' to space when extracting variables in query parameters.
	// This is to support `HTML 2.0 <https://tools.ietf.org/html/rfc1866#section-8.2.1>`_
	QueryParamUnescapePlus bool `` /* 133-byte string literal not displayed */
	// If true, try to match the custom verb even if it is unregistered. By
	// default, only match when it is registered.
	//
	// According to the http template `syntax <https://github.com/googleapis/googleapis/blob/master/google/api/http.proto#L226-L231>`_,
	// the custom verb is **":" LITERAL** at the end of http template.
	//
	// For a request with “/foo/bar:baz“ and “:baz“ is not registered in any url_template, here is the behavior change
	// - if the field is not set, “:baz“ will not be treated as custom verb, so it will match “/foo/{x=*}“.
	// - if the field is set, “:baz“ is treated as custom verb,  so it will NOT match “/foo/{x=*}“ since the template doesn't use any custom verb.
	MatchUnregisteredCustomVerb bool `` /* 148-byte string literal not displayed */
	// Configure the behavior when handling requests that cannot be transcoded.
	//
	// By default, the transcoder will silently pass through HTTP requests that are malformed.
	// This includes requests with unknown query parameters, unregister paths, etc.
	//
	// Set these options to enable strict HTTP request validation, resulting in the transcoder rejecting
	// such requests with a “HTTP 4xx“. See each individual option for more details on the validation.
	// gRPC requests will still silently pass through without transcoding.
	//
	// The benefit is a proper error message to the downstream.
	// If the upstream is a gRPC server, it cannot handle the passed-through HTTP requests and will reset
	// the TCP connection. The downstream will then
	// receive a “HTTP 503 Service Unavailable“ due to the upstream connection reset.
	// This incorrect error message may conflict with other Envoy components, such as retry policies.
	RequestValidationOptions *GrpcJsonTranscoder_RequestValidationOptions `` /* 136-byte string literal not displayed */
	// Proto enum values are supposed to be in upper cases when used in JSON.
	// Set this to true if your JSON request uses non uppercase enum values.
	CaseInsensitiveEnumParsing bool `` /* 145-byte string literal not displayed */
	// The maximum size of a request body to be transcoded, in bytes. A body exceeding this size will
	// provoke a “HTTP 413 Request Entity Too Large“ response.
	//
	// Large values may cause envoy to use a lot of memory if there are many concurrent requests.
	//
	// If unset, the current stream buffer size is used.
	MaxRequestBodySize *wrapperspb.UInt32Value `protobuf:"bytes,15,opt,name=max_request_body_size,json=maxRequestBodySize,proto3" json:"max_request_body_size,omitempty"`
	// The maximum size of a response body to be transcoded, in bytes. A body exceeding this size will
	// provoke a “HTTP 500 Internal Server Error“ response.
	//
	// Large values may cause envoy to use a lot of memory if there are many concurrent requests.
	//
	// If unset, the current stream buffer size is used.
	MaxResponseBodySize *wrapperspb.UInt32Value `protobuf:"bytes,16,opt,name=max_response_body_size,json=maxResponseBodySize,proto3" json:"max_response_body_size,omitempty"`
	// If true, query parameters that cannot be mapped to a corresponding
	// protobuf field are captured in an HttpBody extension of UnknownQueryParams.
	CaptureUnknownQueryParameters bool `` /* 154-byte string literal not displayed */
	// contains filtered or unexported fields
}

[#next-free-field: 18] GrpcJsonTranscoder filter configuration. The filter itself can be used per route / per virtual host or on the general level. The most specific one is being used for a given route. If the list of services is empty - filter is considered to be disabled. Note that if specifying the filter per route, first the route is matched, and then transcoding filter is applied. It matters when specifying the route configuration and paths to match the request - for per-route grpc transcoder configs, the original path should be matched, while in other cases, the grpc-like path is expected (the one AFTER the filter is applied).

func (*GrpcJsonTranscoder) ClearDescriptorSet

func (x *GrpcJsonTranscoder) ClearDescriptorSet()

func (*GrpcJsonTranscoder) ClearMaxRequestBodySize

func (x *GrpcJsonTranscoder) ClearMaxRequestBodySize()

func (*GrpcJsonTranscoder) ClearMaxResponseBodySize

func (x *GrpcJsonTranscoder) ClearMaxResponseBodySize()

func (*GrpcJsonTranscoder) ClearPrintOptions

func (x *GrpcJsonTranscoder) ClearPrintOptions()

func (*GrpcJsonTranscoder) ClearProtoDescriptor

func (x *GrpcJsonTranscoder) ClearProtoDescriptor()

func (*GrpcJsonTranscoder) ClearProtoDescriptorBin

func (x *GrpcJsonTranscoder) ClearProtoDescriptorBin()

func (*GrpcJsonTranscoder) ClearRequestValidationOptions

func (x *GrpcJsonTranscoder) ClearRequestValidationOptions()

func (*GrpcJsonTranscoder) GetAutoMapping

func (x *GrpcJsonTranscoder) GetAutoMapping() bool

func (*GrpcJsonTranscoder) GetCaptureUnknownQueryParameters

func (x *GrpcJsonTranscoder) GetCaptureUnknownQueryParameters() bool

func (*GrpcJsonTranscoder) GetCaseInsensitiveEnumParsing

func (x *GrpcJsonTranscoder) GetCaseInsensitiveEnumParsing() bool

func (*GrpcJsonTranscoder) GetConvertGrpcStatus

func (x *GrpcJsonTranscoder) GetConvertGrpcStatus() bool

func (*GrpcJsonTranscoder) GetDescriptorSet

func (x *GrpcJsonTranscoder) GetDescriptorSet() isGrpcJsonTranscoder_DescriptorSet

func (*GrpcJsonTranscoder) GetIgnoreUnknownQueryParameters

func (x *GrpcJsonTranscoder) GetIgnoreUnknownQueryParameters() bool

func (*GrpcJsonTranscoder) GetIgnoredQueryParameters

func (x *GrpcJsonTranscoder) GetIgnoredQueryParameters() []string

func (*GrpcJsonTranscoder) GetMatchIncomingRequestRoute

func (x *GrpcJsonTranscoder) GetMatchIncomingRequestRoute() bool

func (*GrpcJsonTranscoder) GetMatchUnregisteredCustomVerb

func (x *GrpcJsonTranscoder) GetMatchUnregisteredCustomVerb() bool

func (*GrpcJsonTranscoder) GetMaxRequestBodySize

func (x *GrpcJsonTranscoder) GetMaxRequestBodySize() *wrapperspb.UInt32Value

func (*GrpcJsonTranscoder) GetMaxResponseBodySize

func (x *GrpcJsonTranscoder) GetMaxResponseBodySize() *wrapperspb.UInt32Value

func (*GrpcJsonTranscoder) GetPrintOptions

func (*GrpcJsonTranscoder) GetProtoDescriptor

func (x *GrpcJsonTranscoder) GetProtoDescriptor() string

func (*GrpcJsonTranscoder) GetProtoDescriptorBin

func (x *GrpcJsonTranscoder) GetProtoDescriptorBin() []byte

func (*GrpcJsonTranscoder) GetQueryParamUnescapePlus

func (x *GrpcJsonTranscoder) GetQueryParamUnescapePlus() bool

func (*GrpcJsonTranscoder) GetRequestValidationOptions

func (x *GrpcJsonTranscoder) GetRequestValidationOptions() *GrpcJsonTranscoder_RequestValidationOptions

func (*GrpcJsonTranscoder) GetServices

func (x *GrpcJsonTranscoder) GetServices() []string

func (*GrpcJsonTranscoder) GetUrlUnescapeSpec

func (*GrpcJsonTranscoder) HasDescriptorSet

func (x *GrpcJsonTranscoder) HasDescriptorSet() bool

func (*GrpcJsonTranscoder) HasMaxRequestBodySize

func (x *GrpcJsonTranscoder) HasMaxRequestBodySize() bool

func (*GrpcJsonTranscoder) HasMaxResponseBodySize

func (x *GrpcJsonTranscoder) HasMaxResponseBodySize() bool

func (*GrpcJsonTranscoder) HasPrintOptions

func (x *GrpcJsonTranscoder) HasPrintOptions() bool

func (*GrpcJsonTranscoder) HasProtoDescriptor

func (x *GrpcJsonTranscoder) HasProtoDescriptor() bool

func (*GrpcJsonTranscoder) HasProtoDescriptorBin

func (x *GrpcJsonTranscoder) HasProtoDescriptorBin() bool

func (*GrpcJsonTranscoder) HasRequestValidationOptions

func (x *GrpcJsonTranscoder) HasRequestValidationOptions() bool

func (*GrpcJsonTranscoder) ProtoMessage

func (*GrpcJsonTranscoder) ProtoMessage()

func (*GrpcJsonTranscoder) ProtoReflect

func (x *GrpcJsonTranscoder) ProtoReflect() protoreflect.Message

func (*GrpcJsonTranscoder) Reset

func (x *GrpcJsonTranscoder) Reset()

func (*GrpcJsonTranscoder) SetAutoMapping

func (x *GrpcJsonTranscoder) SetAutoMapping(v bool)

func (*GrpcJsonTranscoder) SetCaptureUnknownQueryParameters

func (x *GrpcJsonTranscoder) SetCaptureUnknownQueryParameters(v bool)

func (*GrpcJsonTranscoder) SetCaseInsensitiveEnumParsing

func (x *GrpcJsonTranscoder) SetCaseInsensitiveEnumParsing(v bool)

func (*GrpcJsonTranscoder) SetConvertGrpcStatus

func (x *GrpcJsonTranscoder) SetConvertGrpcStatus(v bool)

func (*GrpcJsonTranscoder) SetIgnoreUnknownQueryParameters

func (x *GrpcJsonTranscoder) SetIgnoreUnknownQueryParameters(v bool)

func (*GrpcJsonTranscoder) SetIgnoredQueryParameters

func (x *GrpcJsonTranscoder) SetIgnoredQueryParameters(v []string)

func (*GrpcJsonTranscoder) SetMatchIncomingRequestRoute

func (x *GrpcJsonTranscoder) SetMatchIncomingRequestRoute(v bool)

func (*GrpcJsonTranscoder) SetMatchUnregisteredCustomVerb

func (x *GrpcJsonTranscoder) SetMatchUnregisteredCustomVerb(v bool)

func (*GrpcJsonTranscoder) SetMaxRequestBodySize

func (x *GrpcJsonTranscoder) SetMaxRequestBodySize(v *wrapperspb.UInt32Value)

func (*GrpcJsonTranscoder) SetMaxResponseBodySize

func (x *GrpcJsonTranscoder) SetMaxResponseBodySize(v *wrapperspb.UInt32Value)

func (*GrpcJsonTranscoder) SetPrintOptions

func (x *GrpcJsonTranscoder) SetPrintOptions(v *GrpcJsonTranscoder_PrintOptions)

func (*GrpcJsonTranscoder) SetProtoDescriptor

func (x *GrpcJsonTranscoder) SetProtoDescriptor(v string)

func (*GrpcJsonTranscoder) SetProtoDescriptorBin

func (x *GrpcJsonTranscoder) SetProtoDescriptorBin(v []byte)

func (*GrpcJsonTranscoder) SetQueryParamUnescapePlus

func (x *GrpcJsonTranscoder) SetQueryParamUnescapePlus(v bool)

func (*GrpcJsonTranscoder) SetRequestValidationOptions

func (x *GrpcJsonTranscoder) SetRequestValidationOptions(v *GrpcJsonTranscoder_RequestValidationOptions)

func (*GrpcJsonTranscoder) SetServices

func (x *GrpcJsonTranscoder) SetServices(v []string)

func (*GrpcJsonTranscoder) SetUrlUnescapeSpec

func (x *GrpcJsonTranscoder) SetUrlUnescapeSpec(v GrpcJsonTranscoder_UrlUnescapeSpec)

func (*GrpcJsonTranscoder) String

func (x *GrpcJsonTranscoder) String() string

func (*GrpcJsonTranscoder) WhichDescriptorSet

func (x *GrpcJsonTranscoder) WhichDescriptorSet() case_GrpcJsonTranscoder_DescriptorSet

type GrpcJsonTranscoder_PrintOptions

type GrpcJsonTranscoder_PrintOptions struct {

	// Whether to add spaces, line breaks and indentation to make the JSON
	// output easy to read. Defaults to false.
	AddWhitespace bool `protobuf:"varint,1,opt,name=add_whitespace,json=addWhitespace,proto3" json:"add_whitespace,omitempty"`
	// 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.
	AlwaysPrintPrimitiveFields bool `` /* 144-byte string literal not displayed */
	// Whether to always print enums as ints. By default they are rendered
	// as strings. Defaults to false.
	AlwaysPrintEnumsAsInts bool `` /* 134-byte string literal not displayed */
	// 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.
	PreserveProtoFieldNames bool `` /* 135-byte string literal not displayed */
	// If true, return all streams as newline-delimited JSON messages instead of as a comma-separated array
	StreamNewlineDelimited bool `` /* 130-byte string literal not displayed */
	// If true, enforces Server-Sent Events (SSE) message framing (“data:
	// <message>\n\n“) and, “stream_newline_delimited“ is ignored. If false,
	// message framing is determined by “stream_newline_delimited“.
	StreamSseStyleDelimited bool `` /* 135-byte string literal not displayed */
	// contains filtered or unexported fields
}

[#next-free-field: 7]

func (*GrpcJsonTranscoder_PrintOptions) GetAddWhitespace

func (x *GrpcJsonTranscoder_PrintOptions) GetAddWhitespace() bool

func (*GrpcJsonTranscoder_PrintOptions) GetAlwaysPrintEnumsAsInts

func (x *GrpcJsonTranscoder_PrintOptions) GetAlwaysPrintEnumsAsInts() bool

func (*GrpcJsonTranscoder_PrintOptions) GetAlwaysPrintPrimitiveFields

func (x *GrpcJsonTranscoder_PrintOptions) GetAlwaysPrintPrimitiveFields() bool

func (*GrpcJsonTranscoder_PrintOptions) GetPreserveProtoFieldNames

func (x *GrpcJsonTranscoder_PrintOptions) GetPreserveProtoFieldNames() bool

func (*GrpcJsonTranscoder_PrintOptions) GetStreamNewlineDelimited

func (x *GrpcJsonTranscoder_PrintOptions) GetStreamNewlineDelimited() bool

func (*GrpcJsonTranscoder_PrintOptions) GetStreamSseStyleDelimited

func (x *GrpcJsonTranscoder_PrintOptions) GetStreamSseStyleDelimited() bool

func (*GrpcJsonTranscoder_PrintOptions) ProtoMessage

func (*GrpcJsonTranscoder_PrintOptions) ProtoMessage()

func (*GrpcJsonTranscoder_PrintOptions) ProtoReflect

func (*GrpcJsonTranscoder_PrintOptions) Reset

func (*GrpcJsonTranscoder_PrintOptions) SetAddWhitespace

func (x *GrpcJsonTranscoder_PrintOptions) SetAddWhitespace(v bool)

func (*GrpcJsonTranscoder_PrintOptions) SetAlwaysPrintEnumsAsInts

func (x *GrpcJsonTranscoder_PrintOptions) SetAlwaysPrintEnumsAsInts(v bool)

func (*GrpcJsonTranscoder_PrintOptions) SetAlwaysPrintPrimitiveFields

func (x *GrpcJsonTranscoder_PrintOptions) SetAlwaysPrintPrimitiveFields(v bool)

func (*GrpcJsonTranscoder_PrintOptions) SetPreserveProtoFieldNames

func (x *GrpcJsonTranscoder_PrintOptions) SetPreserveProtoFieldNames(v bool)

func (*GrpcJsonTranscoder_PrintOptions) SetStreamNewlineDelimited

func (x *GrpcJsonTranscoder_PrintOptions) SetStreamNewlineDelimited(v bool)

func (*GrpcJsonTranscoder_PrintOptions) SetStreamSseStyleDelimited

func (x *GrpcJsonTranscoder_PrintOptions) SetStreamSseStyleDelimited(v bool)

func (*GrpcJsonTranscoder_PrintOptions) String

type GrpcJsonTranscoder_PrintOptions_builder

type GrpcJsonTranscoder_PrintOptions_builder struct {

	// Whether to add spaces, line breaks and indentation to make the JSON
	// output easy to read. Defaults to false.
	AddWhitespace bool
	// 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.
	AlwaysPrintPrimitiveFields bool
	// Whether to always print enums as ints. By default they are rendered
	// as strings. Defaults to false.
	AlwaysPrintEnumsAsInts bool
	// 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.
	PreserveProtoFieldNames bool
	// If true, return all streams as newline-delimited JSON messages instead of as a comma-separated array
	StreamNewlineDelimited bool
	// If true, enforces Server-Sent Events (SSE) message framing (“data:
	// <message>\n\n“) and, “stream_newline_delimited“ is ignored. If false,
	// message framing is determined by “stream_newline_delimited“.
	StreamSseStyleDelimited bool
	// contains filtered or unexported fields
}

func (GrpcJsonTranscoder_PrintOptions_builder) Build

type GrpcJsonTranscoder_ProtoDescriptor

type GrpcJsonTranscoder_ProtoDescriptor struct {
	// Supplies the filename of
	// :ref:`the proto descriptor set <config_grpc_json_generate_proto_descriptor_set>` for the gRPC
	// services.
	ProtoDescriptor string `protobuf:"bytes,1,opt,name=proto_descriptor,json=protoDescriptor,proto3,oneof"`
}

type GrpcJsonTranscoder_ProtoDescriptorBin

type GrpcJsonTranscoder_ProtoDescriptorBin struct {
	// Supplies the binary content of
	// :ref:`the proto descriptor set <config_grpc_json_generate_proto_descriptor_set>` for the gRPC
	// services.
	ProtoDescriptorBin []byte `protobuf:"bytes,4,opt,name=proto_descriptor_bin,json=protoDescriptorBin,proto3,oneof"`
}

type GrpcJsonTranscoder_RequestValidationOptions

type GrpcJsonTranscoder_RequestValidationOptions struct {

	// By default, a request that cannot be mapped to any specified gRPC
	// :ref:`services <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.services>`
	// will pass-through this filter.
	// When set to true, the request will be rejected with a “HTTP 404 Not Found“.
	RejectUnknownMethod bool `protobuf:"varint,1,opt,name=reject_unknown_method,json=rejectUnknownMethod,proto3" json:"reject_unknown_method,omitempty"`
	// By default, a request with query parameters that cannot be mapped to the gRPC request message
	// will pass-through this filter.
	// When set to true, the request will be rejected with a “HTTP 400 Bad Request“.
	//
	// The fields
	// :ref:`ignore_unknown_query_parameters <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.ignore_unknown_query_parameters>`,
	// :ref:`capture_unknown_query_parameters <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.capture_unknown_query_parameters>`,
	// and
	// :ref:`ignored_query_parameters <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.ignored_query_parameters>`
	// have priority over this strict validation behavior.
	RejectUnknownQueryParameters bool `` /* 150-byte string literal not displayed */
	// "id: 456" in the body will override "id=123" in the binding.
	//
	// If this field is set to true, the request will be rejected if the binding
	// value is different from the body value.
	RejectBindingBodyFieldCollisions bool `` /* 164-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*GrpcJsonTranscoder_RequestValidationOptions) GetRejectBindingBodyFieldCollisions

func (x *GrpcJsonTranscoder_RequestValidationOptions) GetRejectBindingBodyFieldCollisions() bool

func (*GrpcJsonTranscoder_RequestValidationOptions) GetRejectUnknownMethod

func (x *GrpcJsonTranscoder_RequestValidationOptions) GetRejectUnknownMethod() bool

func (*GrpcJsonTranscoder_RequestValidationOptions) GetRejectUnknownQueryParameters

func (x *GrpcJsonTranscoder_RequestValidationOptions) GetRejectUnknownQueryParameters() bool

func (*GrpcJsonTranscoder_RequestValidationOptions) ProtoMessage

func (*GrpcJsonTranscoder_RequestValidationOptions) ProtoReflect

func (*GrpcJsonTranscoder_RequestValidationOptions) Reset

func (*GrpcJsonTranscoder_RequestValidationOptions) SetRejectBindingBodyFieldCollisions

func (x *GrpcJsonTranscoder_RequestValidationOptions) SetRejectBindingBodyFieldCollisions(v bool)

func (*GrpcJsonTranscoder_RequestValidationOptions) SetRejectUnknownMethod

func (x *GrpcJsonTranscoder_RequestValidationOptions) SetRejectUnknownMethod(v bool)

func (*GrpcJsonTranscoder_RequestValidationOptions) SetRejectUnknownQueryParameters

func (x *GrpcJsonTranscoder_RequestValidationOptions) SetRejectUnknownQueryParameters(v bool)

func (*GrpcJsonTranscoder_RequestValidationOptions) String

type GrpcJsonTranscoder_RequestValidationOptions_builder

type GrpcJsonTranscoder_RequestValidationOptions_builder struct {

	// By default, a request that cannot be mapped to any specified gRPC
	// :ref:`services <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.services>`
	// will pass-through this filter.
	// When set to true, the request will be rejected with a “HTTP 404 Not Found“.
	RejectUnknownMethod bool
	// By default, a request with query parameters that cannot be mapped to the gRPC request message
	// will pass-through this filter.
	// When set to true, the request will be rejected with a “HTTP 400 Bad Request“.
	//
	// The fields
	// :ref:`ignore_unknown_query_parameters <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.ignore_unknown_query_parameters>`,
	// :ref:`capture_unknown_query_parameters <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.capture_unknown_query_parameters>`,
	// and
	// :ref:`ignored_query_parameters <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.ignored_query_parameters>`
	// have priority over this strict validation behavior.
	RejectUnknownQueryParameters bool
	// "id: 456" in the body will override "id=123" in the binding.
	//
	// If this field is set to true, the request will be rejected if the binding
	// value is different from the body value.
	RejectBindingBodyFieldCollisions bool
	// contains filtered or unexported fields
}

func (GrpcJsonTranscoder_RequestValidationOptions_builder) Build

type GrpcJsonTranscoder_UrlUnescapeSpec

type GrpcJsonTranscoder_UrlUnescapeSpec int32
const (
	// URL path parameters will not decode RFC 6570 reserved characters.
	// For example, segment “%2f%23/%20%2523“ is unescaped to “%2f%23/ %23“.
	GrpcJsonTranscoder_ALL_CHARACTERS_EXCEPT_RESERVED GrpcJsonTranscoder_UrlUnescapeSpec = 0
	// URL path parameters will be fully URI-decoded except in
	// cases of single segment matches in reserved expansion, where “%2F“ will be
	// left encoded.
	// For example, segment “%2f%23/%20%2523“ is unescaped to “%2f#/ %23“.
	GrpcJsonTranscoder_ALL_CHARACTERS_EXCEPT_SLASH GrpcJsonTranscoder_UrlUnescapeSpec = 1
	// URL path parameters will be fully URI-decoded.
	// For example, segment “%2f%23/%20%2523“ is unescaped to “/#/ %23“.
	GrpcJsonTranscoder_ALL_CHARACTERS GrpcJsonTranscoder_UrlUnescapeSpec = 2
)

func (GrpcJsonTranscoder_UrlUnescapeSpec) Descriptor

func (GrpcJsonTranscoder_UrlUnescapeSpec) Enum

func (GrpcJsonTranscoder_UrlUnescapeSpec) Number

func (GrpcJsonTranscoder_UrlUnescapeSpec) String

func (GrpcJsonTranscoder_UrlUnescapeSpec) Type

type GrpcJsonTranscoder_builder

type GrpcJsonTranscoder_builder struct {

	// Fields of oneof DescriptorSet:
	// Supplies the filename of
	// :ref:`the proto descriptor set <config_grpc_json_generate_proto_descriptor_set>` for the gRPC
	// services.
	ProtoDescriptor *string
	// Supplies the binary content of
	// :ref:`the proto descriptor set <config_grpc_json_generate_proto_descriptor_set>` for the gRPC
	// services.
	ProtoDescriptorBin []byte
	// -- end of DescriptorSet
	// 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.
	//
	// By default, the filter will pass through requests that do not map to any specified services.
	// If the list of services is empty, filter is considered disabled.
	// However, this behavior changes if
	// :ref:`reject_unknown_method <envoy_v3_api_field_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.RequestValidationOptions.reject_unknown_method>`
	// is enabled.
	Services []string
	// 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 *GrpcJsonTranscoder_PrintOptions
	// 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“.
	MatchIncomingRequestRoute bool
	// 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“.
	IgnoredQueryParameters []string
	// Whether to route methods without the “google.api.http“ option.
	//
	// Example :
	//
	// .. code-block:: proto
	//
	//	package bookstore;
	//
	//	service Bookstore {
	//	  rpc GetShelf(GetShelfRequest) returns (Shelf) {}
	//	}
	//
	//	message GetShelfRequest {
	//	  int64 shelf = 1;
	//	}
	//
	//	message Shelf {}
	//
	// The client could “post“ a json body “{"shelf": 1234}“ with the path of
	// “/bookstore.Bookstore/GetShelfRequest“ to call “GetShelfRequest“.
	AutoMapping bool
	// Whether to ignore query parameters that cannot be mapped to a corresponding
	// protobuf field. Use this if you cannot control the query parameters and do
	// not know them beforehand. Otherwise use “ignored_query_parameters“.
	// Defaults to false.
	IgnoreUnknownQueryParameters bool
	// Whether to convert gRPC status headers to JSON.
	// When trailer indicates a gRPC error and there was no HTTP body, take “google.rpc.Status“
	// from the “grpc-status-details-bin“ header and use it as JSON body.
	// If there was no such header, make “google.rpc.Status“ out of the “grpc-status“ and
	// “grpc-message“ headers.
	// The error details types must be present in the “proto_descriptor“.
	//
	// For example, if an upstream server replies with headers:
	//
	// .. code-block:: none
	//
	//	grpc-status: 5
	//	grpc-status-details-bin:
	//	    CAUaMwoqdHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucnBjLlJlcXVlc3RJbmZvEgUKA3ItMQ
	//
	// The “grpc-status-details-bin“ header contains a base64-encoded protobuf message
	// “google.rpc.Status“. It will be transcoded into:
	//
	// .. code-block:: none
	//
	//	HTTP/1.1 404 Not Found
	//	content-type: application/json
	//
	//	{"code":5,"details":[{"@type":"type.googleapis.com/google.rpc.RequestInfo","requestId":"r-1"}]}
	//
	// In order to transcode the message, the “google.rpc.RequestInfo“ type from
	// the “google/rpc/error_details.proto“ should be included in the configured
	// :ref:`proto descriptor set <config_grpc_json_generate_proto_descriptor_set>`.
	ConvertGrpcStatus bool
	// URL unescaping policy.
	// This spec is only applied when extracting variable with multiple segments in the URL path.
	// For example, in case of “/foo/{x=*}/bar/{y=prefix/*}/{z=**}“ “x“ variable is single segment and “y“ and “z“ are multiple segments.
	// For a path with “/foo/first/bar/prefix/second/third/fourth“, “x=first“, “y=prefix/second“, “z=third/fourth“.
	// If this setting is not specified, the value defaults to :ref:`ALL_CHARACTERS_EXCEPT_RESERVED<envoy_v3_api_enum_value_extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.UrlUnescapeSpec.ALL_CHARACTERS_EXCEPT_RESERVED>`.
	UrlUnescapeSpec GrpcJsonTranscoder_UrlUnescapeSpec
	// If true, unescape '+' to space when extracting variables in query parameters.
	// This is to support `HTML 2.0 <https://tools.ietf.org/html/rfc1866#section-8.2.1>`_
	QueryParamUnescapePlus bool
	// If true, try to match the custom verb even if it is unregistered. By
	// default, only match when it is registered.
	//
	// According to the http template `syntax <https://github.com/googleapis/googleapis/blob/master/google/api/http.proto#L226-L231>`_,
	// the custom verb is **":" LITERAL** at the end of http template.
	//
	// For a request with “/foo/bar:baz“ and “:baz“ is not registered in any url_template, here is the behavior change
	// - if the field is not set, “:baz“ will not be treated as custom verb, so it will match “/foo/{x=*}“.
	// - if the field is set, “:baz“ is treated as custom verb,  so it will NOT match “/foo/{x=*}“ since the template doesn't use any custom verb.
	MatchUnregisteredCustomVerb bool
	// Configure the behavior when handling requests that cannot be transcoded.
	//
	// By default, the transcoder will silently pass through HTTP requests that are malformed.
	// This includes requests with unknown query parameters, unregister paths, etc.
	//
	// Set these options to enable strict HTTP request validation, resulting in the transcoder rejecting
	// such requests with a “HTTP 4xx“. See each individual option for more details on the validation.
	// gRPC requests will still silently pass through without transcoding.
	//
	// The benefit is a proper error message to the downstream.
	// If the upstream is a gRPC server, it cannot handle the passed-through HTTP requests and will reset
	// the TCP connection. The downstream will then
	// receive a “HTTP 503 Service Unavailable“ due to the upstream connection reset.
	// This incorrect error message may conflict with other Envoy components, such as retry policies.
	RequestValidationOptions *GrpcJsonTranscoder_RequestValidationOptions
	// Proto enum values are supposed to be in upper cases when used in JSON.
	// Set this to true if your JSON request uses non uppercase enum values.
	CaseInsensitiveEnumParsing bool
	// The maximum size of a request body to be transcoded, in bytes. A body exceeding this size will
	// provoke a “HTTP 413 Request Entity Too Large“ response.
	//
	// Large values may cause envoy to use a lot of memory if there are many concurrent requests.
	//
	// If unset, the current stream buffer size is used.
	MaxRequestBodySize *wrapperspb.UInt32Value
	// The maximum size of a response body to be transcoded, in bytes. A body exceeding this size will
	// provoke a “HTTP 500 Internal Server Error“ response.
	//
	// Large values may cause envoy to use a lot of memory if there are many concurrent requests.
	//
	// If unset, the current stream buffer size is used.
	MaxResponseBodySize *wrapperspb.UInt32Value
	// If true, query parameters that cannot be mapped to a corresponding
	// protobuf field are captured in an HttpBody extension of UnknownQueryParams.
	CaptureUnknownQueryParameters bool
	// contains filtered or unexported fields
}

func (GrpcJsonTranscoder_builder) Build

type UnknownQueryParams

type UnknownQueryParams struct {

	// A map from unrecognized query parameter keys, to the values associated with those keys.
	Key map[string]*UnknownQueryParams_Values `` /* 133-byte string literal not displayed */
	// contains filtered or unexported fields
}

“UnknownQueryParams“ is added as an extension field in “HttpBody“ if “GrpcJsonTranscoder::capture_unknown_query_parameters“ is true and unknown query parameters were present in the request.

func (*UnknownQueryParams) GetKey

func (*UnknownQueryParams) ProtoMessage

func (*UnknownQueryParams) ProtoMessage()

func (*UnknownQueryParams) ProtoReflect

func (x *UnknownQueryParams) ProtoReflect() protoreflect.Message

func (*UnknownQueryParams) Reset

func (x *UnknownQueryParams) Reset()

func (*UnknownQueryParams) SetKey

func (*UnknownQueryParams) String

func (x *UnknownQueryParams) String() string

type UnknownQueryParams_Values

type UnknownQueryParams_Values struct {
	Values []string `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
	// contains filtered or unexported fields
}

func (*UnknownQueryParams_Values) GetValues

func (x *UnknownQueryParams_Values) GetValues() []string

func (*UnknownQueryParams_Values) ProtoMessage

func (*UnknownQueryParams_Values) ProtoMessage()

func (*UnknownQueryParams_Values) ProtoReflect

func (*UnknownQueryParams_Values) Reset

func (x *UnknownQueryParams_Values) Reset()

func (*UnknownQueryParams_Values) SetValues

func (x *UnknownQueryParams_Values) SetValues(v []string)

func (*UnknownQueryParams_Values) String

func (x *UnknownQueryParams_Values) String() string

type UnknownQueryParams_Values_builder

type UnknownQueryParams_Values_builder struct {
	Values []string
	// contains filtered or unexported fields
}

func (UnknownQueryParams_Values_builder) Build

type UnknownQueryParams_builder

type UnknownQueryParams_builder struct {

	// A map from unrecognized query parameter keys, to the values associated with those keys.
	Key map[string]*UnknownQueryParams_Values
	// contains filtered or unexported fields
}

func (UnknownQueryParams_builder) Build

Source Files

  • transcoder.pb.go

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL