Class GrpcJsonTranscoder

  • All Implemented Interfaces:
    com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, GrpcJsonTranscoderOrBuilder, Serializable

    public final class GrpcJsonTranscoder
    extends com.google.protobuf.GeneratedMessageV3
    implements GrpcJsonTranscoderOrBuilder
     [#next-free-field: 14]
     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).
     
    Protobuf type envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder
    See Also:
    Serialized Form
    • Field Detail

      • PROTO_DESCRIPTOR_FIELD_NUMBER

        public static final int PROTO_DESCRIPTOR_FIELD_NUMBER
        See Also:
        Constant Field Values
      • PROTO_DESCRIPTOR_BIN_FIELD_NUMBER

        public static final int PROTO_DESCRIPTOR_BIN_FIELD_NUMBER
        See Also:
        Constant Field Values
      • PRINT_OPTIONS_FIELD_NUMBER

        public static final int PRINT_OPTIONS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • MATCH_INCOMING_REQUEST_ROUTE_FIELD_NUMBER

        public static final int MATCH_INCOMING_REQUEST_ROUTE_FIELD_NUMBER
        See Also:
        Constant Field Values
      • IGNORED_QUERY_PARAMETERS_FIELD_NUMBER

        public static final int IGNORED_QUERY_PARAMETERS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • AUTO_MAPPING_FIELD_NUMBER

        public static final int AUTO_MAPPING_FIELD_NUMBER
        See Also:
        Constant Field Values
      • IGNORE_UNKNOWN_QUERY_PARAMETERS_FIELD_NUMBER

        public static final int IGNORE_UNKNOWN_QUERY_PARAMETERS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • CONVERT_GRPC_STATUS_FIELD_NUMBER

        public static final int CONVERT_GRPC_STATUS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • URL_UNESCAPE_SPEC_FIELD_NUMBER

        public static final int URL_UNESCAPE_SPEC_FIELD_NUMBER
        See Also:
        Constant Field Values
      • QUERY_PARAM_UNESCAPE_PLUS_FIELD_NUMBER

        public static final int QUERY_PARAM_UNESCAPE_PLUS_FIELD_NUMBER
        See Also:
        Constant Field Values
      • MATCH_UNREGISTERED_CUSTOM_VERB_FIELD_NUMBER

        public static final int MATCH_UNREGISTERED_CUSTOM_VERB_FIELD_NUMBER
        See Also:
        Constant Field Values
      • REQUEST_VALIDATION_OPTIONS_FIELD_NUMBER

        public static final int REQUEST_VALIDATION_OPTIONS_FIELD_NUMBER
        See Also:
        Constant Field Values
    • Method Detail

      • newInstance

        protected Object newInstance​(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
        Overrides:
        newInstance in class com.google.protobuf.GeneratedMessageV3
      • getUnknownFields

        public final com.google.protobuf.UnknownFieldSet getUnknownFields()
        Specified by:
        getUnknownFields in interface com.google.protobuf.MessageOrBuilder
        Overrides:
        getUnknownFields in class com.google.protobuf.GeneratedMessageV3
      • getDescriptor

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      • internalGetFieldAccessorTable

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      • hasProtoDescriptor

        public boolean hasProtoDescriptor()
         Supplies the filename of
         :ref:`the proto descriptor set <config_grpc_json_generate_proto_descriptor_set>` for the gRPC
         services.
         
        string proto_descriptor = 1;
        Specified by:
        hasProtoDescriptor in interface GrpcJsonTranscoderOrBuilder
        Returns:
        Whether the protoDescriptor field is set.
      • getProtoDescriptor

        public String getProtoDescriptor()
         Supplies the filename of
         :ref:`the proto descriptor set <config_grpc_json_generate_proto_descriptor_set>` for the gRPC
         services.
         
        string proto_descriptor = 1;
        Specified by:
        getProtoDescriptor in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The protoDescriptor.
      • getProtoDescriptorBytes

        public com.google.protobuf.ByteString getProtoDescriptorBytes()
         Supplies the filename of
         :ref:`the proto descriptor set <config_grpc_json_generate_proto_descriptor_set>` for the gRPC
         services.
         
        string proto_descriptor = 1;
        Specified by:
        getProtoDescriptorBytes in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The bytes for protoDescriptor.
      • hasProtoDescriptorBin

        public boolean hasProtoDescriptorBin()
         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;
        Specified by:
        hasProtoDescriptorBin in interface GrpcJsonTranscoderOrBuilder
        Returns:
        Whether the protoDescriptorBin field is set.
      • getProtoDescriptorBin

        public com.google.protobuf.ByteString getProtoDescriptorBin()
         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;
        Specified by:
        getProtoDescriptorBin in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The protoDescriptorBin.
      • getServicesList

        public com.google.protobuf.ProtocolStringList getServicesList()
         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.
         
        repeated string services = 2;
        Specified by:
        getServicesList in interface GrpcJsonTranscoderOrBuilder
        Returns:
        A list containing the services.
      • getServicesCount

        public int getServicesCount()
         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.
         
        repeated string services = 2;
        Specified by:
        getServicesCount in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The count of services.
      • getServices

        public String getServices​(int index)
         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.
         
        repeated string services = 2;
        Specified by:
        getServices in interface GrpcJsonTranscoderOrBuilder
        Parameters:
        index - The index of the element to return.
        Returns:
        The services at the given index.
      • getServicesBytes

        public com.google.protobuf.ByteString getServicesBytes​(int index)
         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.
         
        repeated string services = 2;
        Specified by:
        getServicesBytes in interface GrpcJsonTranscoderOrBuilder
        Parameters:
        index - The index of the value to return.
        Returns:
        The bytes of the services at the given index.
      • hasPrintOptions

        public boolean hasPrintOptions()
         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>`_.
         
        .envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.PrintOptions print_options = 3;
        Specified by:
        hasPrintOptions in interface GrpcJsonTranscoderOrBuilder
        Returns:
        Whether the printOptions field is set.
      • getPrintOptions

        public GrpcJsonTranscoder.PrintOptions getPrintOptions()
         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>`_.
         
        .envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.PrintOptions print_options = 3;
        Specified by:
        getPrintOptions in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The printOptions.
      • getPrintOptionsOrBuilder

        public GrpcJsonTranscoder.PrintOptionsOrBuilder getPrintOptionsOrBuilder()
         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>`_.
         
        .envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.PrintOptions print_options = 3;
        Specified by:
        getPrintOptionsOrBuilder in interface GrpcJsonTranscoderOrBuilder
      • getMatchIncomingRequestRoute

        public boolean getMatchIncomingRequestRoute()
         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;
        Specified by:
        getMatchIncomingRequestRoute in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The matchIncomingRequestRoute.
      • getIgnoredQueryParametersList

        public com.google.protobuf.ProtocolStringList getIgnoredQueryParametersList()
         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;
        Specified by:
        getIgnoredQueryParametersList in interface GrpcJsonTranscoderOrBuilder
        Returns:
        A list containing the ignoredQueryParameters.
      • getIgnoredQueryParametersCount

        public int getIgnoredQueryParametersCount()
         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;
        Specified by:
        getIgnoredQueryParametersCount in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The count of ignoredQueryParameters.
      • getIgnoredQueryParameters

        public String getIgnoredQueryParameters​(int index)
         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;
        Specified by:
        getIgnoredQueryParameters in interface GrpcJsonTranscoderOrBuilder
        Parameters:
        index - The index of the element to return.
        Returns:
        The ignoredQueryParameters at the given index.
      • getIgnoredQueryParametersBytes

        public com.google.protobuf.ByteString getIgnoredQueryParametersBytes​(int index)
         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;
        Specified by:
        getIgnoredQueryParametersBytes in interface GrpcJsonTranscoderOrBuilder
        Parameters:
        index - The index of the value to return.
        Returns:
        The bytes of the ignoredQueryParameters at the given index.
      • getAutoMapping

        public boolean getAutoMapping()
         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``.
         
        bool auto_mapping = 7;
        Specified by:
        getAutoMapping in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The autoMapping.
      • getIgnoreUnknownQueryParameters

        public boolean getIgnoreUnknownQueryParameters()
         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.
         
        bool ignore_unknown_query_parameters = 8;
        Specified by:
        getIgnoreUnknownQueryParameters in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The ignoreUnknownQueryParameters.
      • getConvertGrpcStatus

        public boolean getConvertGrpcStatus()
         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>`.
         
        bool convert_grpc_status = 9;
        Specified by:
        getConvertGrpcStatus in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The convertGrpcStatus.
      • getUrlUnescapeSpecValue

        public int getUrlUnescapeSpecValue()
         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>`.
         
        .envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.UrlUnescapeSpec url_unescape_spec = 10 [(.validate.rules) = { ... }
        Specified by:
        getUrlUnescapeSpecValue in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The enum numeric value on the wire for urlUnescapeSpec.
      • getUrlUnescapeSpec

        public GrpcJsonTranscoder.UrlUnescapeSpec getUrlUnescapeSpec()
         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>`.
         
        .envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.UrlUnescapeSpec url_unescape_spec = 10 [(.validate.rules) = { ... }
        Specified by:
        getUrlUnescapeSpec in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The urlUnescapeSpec.
      • getQueryParamUnescapePlus

        public boolean getQueryParamUnescapePlus()
         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>`_
         
        bool query_param_unescape_plus = 12;
        Specified by:
        getQueryParamUnescapePlus in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The queryParamUnescapePlus.
      • getMatchUnregisteredCustomVerb

        public boolean getMatchUnregisteredCustomVerb()
         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.
         
        bool match_unregistered_custom_verb = 13;
        Specified by:
        getMatchUnregisteredCustomVerb in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The matchUnregisteredCustomVerb.
      • hasRequestValidationOptions

        public boolean hasRequestValidationOptions()
         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.
         
        .envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.RequestValidationOptions request_validation_options = 11;
        Specified by:
        hasRequestValidationOptions in interface GrpcJsonTranscoderOrBuilder
        Returns:
        Whether the requestValidationOptions field is set.
      • getRequestValidationOptions

        public GrpcJsonTranscoder.RequestValidationOptions getRequestValidationOptions()
         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.
         
        .envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.RequestValidationOptions request_validation_options = 11;
        Specified by:
        getRequestValidationOptions in interface GrpcJsonTranscoderOrBuilder
        Returns:
        The requestValidationOptions.
      • getRequestValidationOptionsOrBuilder

        public GrpcJsonTranscoder.RequestValidationOptionsOrBuilder getRequestValidationOptionsOrBuilder()
         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.
         
        .envoy.extensions.filters.http.grpc_json_transcoder.v3.GrpcJsonTranscoder.RequestValidationOptions request_validation_options = 11;
        Specified by:
        getRequestValidationOptionsOrBuilder in interface GrpcJsonTranscoderOrBuilder
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3
      • writeTo

        public void writeTo​(com.google.protobuf.CodedOutputStream output)
                     throws IOException
        Specified by:
        writeTo in interface com.google.protobuf.MessageLite
        Overrides:
        writeTo in class com.google.protobuf.GeneratedMessageV3
        Throws:
        IOException
      • getSerializedSize

        public int getSerializedSize()
        Specified by:
        getSerializedSize in interface com.google.protobuf.MessageLite
        Overrides:
        getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      • equals

        public boolean equals​(Object obj)
        Specified by:
        equals in interface com.google.protobuf.Message
        Overrides:
        equals in class com.google.protobuf.AbstractMessage
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface com.google.protobuf.Message
        Overrides:
        hashCode in class com.google.protobuf.AbstractMessage
      • parseFrom

        public static GrpcJsonTranscoder parseFrom​(ByteBuffer data)
                                            throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static GrpcJsonTranscoder parseFrom​(ByteBuffer data,
                                                   com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                            throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static GrpcJsonTranscoder parseFrom​(com.google.protobuf.ByteString data)
                                            throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static GrpcJsonTranscoder parseFrom​(com.google.protobuf.ByteString data,
                                                   com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                            throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static GrpcJsonTranscoder parseFrom​(byte[] data)
                                            throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static GrpcJsonTranscoder parseFrom​(byte[] data,
                                                   com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                            throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static GrpcJsonTranscoder parseFrom​(com.google.protobuf.CodedInputStream input,
                                                   com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                            throws IOException
        Throws:
        IOException
      • newBuilderForType

        public GrpcJsonTranscoder.Builder newBuilderForType()
        Specified by:
        newBuilderForType in interface com.google.protobuf.Message
        Specified by:
        newBuilderForType in interface com.google.protobuf.MessageLite
      • toBuilder

        public GrpcJsonTranscoder.Builder toBuilder()
        Specified by:
        toBuilder in interface com.google.protobuf.Message
        Specified by:
        toBuilder in interface com.google.protobuf.MessageLite
      • newBuilderForType

        protected GrpcJsonTranscoder.Builder newBuilderForType​(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
        Specified by:
        newBuilderForType in class com.google.protobuf.GeneratedMessageV3
      • getParserForType

        public com.google.protobuf.Parser<GrpcJsonTranscoder> getParserForType()
        Specified by:
        getParserForType in interface com.google.protobuf.Message
        Specified by:
        getParserForType in interface com.google.protobuf.MessageLite
        Overrides:
        getParserForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstanceForType

        public GrpcJsonTranscoder getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder