grpc_json_transcoderv3

package
v1.33.0-20240422202039... 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

This section is empty.

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 assignable 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"`
	// contains filtered or unexported fields
}

[#next-free-field: 17] 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) Descriptor deprecated

func (*GrpcJsonTranscoder) Descriptor() ([]byte, []int)

Deprecated: Use GrpcJsonTranscoder.ProtoReflect.Descriptor instead.

func (*GrpcJsonTranscoder) GetAutoMapping

func (x *GrpcJsonTranscoder) GetAutoMapping() bool

func (*GrpcJsonTranscoder) GetCaseInsensitiveEnumParsing

func (x *GrpcJsonTranscoder) GetCaseInsensitiveEnumParsing() bool

func (*GrpcJsonTranscoder) GetConvertGrpcStatus

func (x *GrpcJsonTranscoder) GetConvertGrpcStatus() bool

func (*GrpcJsonTranscoder) GetDescriptorSet

func (m *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) ProtoMessage

func (*GrpcJsonTranscoder) ProtoMessage()

func (*GrpcJsonTranscoder) ProtoReflect

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

func (*GrpcJsonTranscoder) Reset

func (x *GrpcJsonTranscoder) Reset()

func (*GrpcJsonTranscoder) String

func (x *GrpcJsonTranscoder) String() string

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 */
	// contains filtered or unexported fields
}

[#next-free-field: 6]

func (*GrpcJsonTranscoder_PrintOptions) Descriptor deprecated

func (*GrpcJsonTranscoder_PrintOptions) Descriptor() ([]byte, []int)

Deprecated: Use GrpcJsonTranscoder_PrintOptions.ProtoReflect.Descriptor instead.

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) ProtoMessage

func (*GrpcJsonTranscoder_PrintOptions) ProtoMessage()

func (*GrpcJsonTranscoder_PrintOptions) ProtoReflect

func (*GrpcJsonTranscoder_PrintOptions) Reset

func (*GrpcJsonTranscoder_PrintOptions) String

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>`
	// 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) Descriptor deprecated

Deprecated: Use GrpcJsonTranscoder_RequestValidationOptions.ProtoReflect.Descriptor instead.

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) String

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) EnumDescriptor deprecated

func (GrpcJsonTranscoder_UrlUnescapeSpec) EnumDescriptor() ([]byte, []int)

Deprecated: Use GrpcJsonTranscoder_UrlUnescapeSpec.Descriptor instead.

func (GrpcJsonTranscoder_UrlUnescapeSpec) Number

func (GrpcJsonTranscoder_UrlUnescapeSpec) String

func (GrpcJsonTranscoder_UrlUnescapeSpec) Type

Jump to

Keyboard shortcuts

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