Interface GrpcJsonTranscoderOrBuilder

  • All Superinterfaces:
    com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
    All Known Implementing Classes:
    GrpcJsonTranscoder, GrpcJsonTranscoder.Builder

    public interface GrpcJsonTranscoderOrBuilder
    extends com.google.protobuf.MessageOrBuilder
    • Method Detail

      • hasProtoDescriptor

        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;
        Returns:
        Whether the protoDescriptor field is set.
      • getProtoDescriptor

        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;
        Returns:
        The protoDescriptor.
      • getProtoDescriptorBytes

        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;
        Returns:
        The bytes for protoDescriptor.
      • hasProtoDescriptorBin

        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;
        Returns:
        Whether the protoDescriptorBin field is set.
      • getProtoDescriptorBin

        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;
        Returns:
        The protoDescriptorBin.
      • getServicesList

        List<String> 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;
        Returns:
        A list containing the services.
      • getServicesCount

        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;
        Returns:
        The count of services.
      • getServices

        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;
        Parameters:
        index - The index of the element to return.
        Returns:
        The services at the given index.
      • getServicesBytes

        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;
        Parameters:
        index - The index of the value to return.
        Returns:
        The bytes of the services at the given index.
      • hasPrintOptions

        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;
        Returns:
        Whether the printOptions field is set.
      • getPrintOptions

        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;
        Returns:
        The printOptions.
      • getPrintOptionsOrBuilder

        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;
      • getMatchIncomingRequestRoute

        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;
        Returns:
        The matchIncomingRequestRoute.
      • getIgnoredQueryParametersList

        List<String> 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;
        Returns:
        A list containing the ignoredQueryParameters.
      • getIgnoredQueryParametersCount

        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;
        Returns:
        The count of ignoredQueryParameters.
      • getIgnoredQueryParameters

        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;
        Parameters:
        index - The index of the element to return.
        Returns:
        The ignoredQueryParameters at the given index.
      • getIgnoredQueryParametersBytes

        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;
        Parameters:
        index - The index of the value to return.
        Returns:
        The bytes of the ignoredQueryParameters at the given index.
      • getAutoMapping

        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;
        Returns:
        The autoMapping.
      • getIgnoreUnknownQueryParameters

        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;
        Returns:
        The ignoreUnknownQueryParameters.
      • getConvertGrpcStatus

        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;
        Returns:
        The convertGrpcStatus.
      • getUrlUnescapeSpecValue

        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) = { ... }
        Returns:
        The enum numeric value on the wire for urlUnescapeSpec.
      • getUrlUnescapeSpec

        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) = { ... }
        Returns:
        The urlUnescapeSpec.
      • getQueryParamUnescapePlus

        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;
        Returns:
        The queryParamUnescapePlus.
      • getMatchUnregisteredCustomVerb

        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;
        Returns:
        The matchUnregisteredCustomVerb.
      • hasRequestValidationOptions

        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;
        Returns:
        Whether the requestValidationOptions field is set.
      • getRequestValidationOptions

        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;
        Returns:
        The requestValidationOptions.
      • getRequestValidationOptionsOrBuilder

        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;