Interface TcpProxy.TunnelingConfigOrBuilder

All Superinterfaces:
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
All Known Implementing Classes:
TcpProxy.TunnelingConfig, TcpProxy.TunnelingConfig.Builder
Enclosing class:
TcpProxy

public static interface TcpProxy.TunnelingConfigOrBuilder extends com.google.protobuf.MessageOrBuilder
  • Method Summary

    Modifier and Type
    Method
    Description
    getHeadersToAdd(int index)
    Additional request headers to send to the upstream proxy.
    int
    Additional request headers to send to the upstream proxy.
    Additional request headers to send to the upstream proxy.
    Additional request headers to send to the upstream proxy.
    Additional request headers to send to the upstream proxy.
    The hostname to send in the synthesized CONNECT headers to the upstream proxy.
    com.google.protobuf.ByteString
    The hostname to send in the synthesized CONNECT headers to the upstream proxy.
    The path used with the POST method.
    com.google.protobuf.ByteString
    The path used with the POST method.
    boolean
    Save response headers to the downstream connection's filter state for consumption by network filters.
    boolean
    Save response trailers to the downstream connection's filter state for consumption by network filters.
    The configuration of the request ID extension used for generation, validation, and associated tracing operations when tunneling.
    The configuration of the request ID extension used for generation, validation, and associated tracing operations when tunneling.
    The request header name to use for emitting the generated request ID on the tunneling HTTP request.
    com.google.protobuf.ByteString
    The request header name to use for emitting the generated request ID on the tunneling HTTP request.
    The dynamic metadata key to use when storing the generated request ID.
    com.google.protobuf.ByteString
    The dynamic metadata key to use when storing the generated request ID.
    boolean
    Use the ``POST`` method instead of the ``CONNECT`` method to tunnel the TCP stream.
    boolean
    The configuration of the request ID extension used for generation, validation, and associated tracing operations when tunneling.

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    isInitialized

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
  • Method Details

    • getHostname

      String getHostname()
       The hostname to send in the synthesized CONNECT headers to the upstream proxy.
       This field evaluates command operators if present; otherwise, the value is used as-is.
      
       For example, dynamically set the hostname using downstream SNI:
      
       .. code-block:: yaml
      
          tunneling_config:
            hostname: "%REQUESTED_SERVER_NAME%:443"
      
       For example, dynamically set the hostname using dynamic metadata:
      
       .. code-block:: yaml
      
          tunneling_config:
            hostname: "%DYNAMIC_METADATA(tunnel:address)%"
       
      string hostname = 1 [(.validate.rules) = { ... }
      Returns:
      The hostname.
    • getHostnameBytes

      com.google.protobuf.ByteString getHostnameBytes()
       The hostname to send in the synthesized CONNECT headers to the upstream proxy.
       This field evaluates command operators if present; otherwise, the value is used as-is.
      
       For example, dynamically set the hostname using downstream SNI:
      
       .. code-block:: yaml
      
          tunneling_config:
            hostname: "%REQUESTED_SERVER_NAME%:443"
      
       For example, dynamically set the hostname using dynamic metadata:
      
       .. code-block:: yaml
      
          tunneling_config:
            hostname: "%DYNAMIC_METADATA(tunnel:address)%"
       
      string hostname = 1 [(.validate.rules) = { ... }
      Returns:
      The bytes for hostname.
    • getUsePost

      boolean getUsePost()
       Use the ``POST`` method instead of the ``CONNECT`` method to tunnel the TCP stream.
       The ``protocol: bytestream`` header is not set for HTTP/2 to comply with the specification.
      
       The upstream proxy is expected to interpret the POST payload as raw TCP.
       
      bool use_post = 2;
      Returns:
      The usePost.
    • getHeadersToAddList

      List<HeaderValueOption> getHeadersToAddList()
       Additional request headers to send to the upstream proxy. This is mainly used to
       trigger the upstream to convert POST requests back to CONNECT requests.
      
       Neither ``:``-prefixed pseudo-headers like ``:path`` nor the ``host`` header can be overridden.
       
      repeated .envoy.config.core.v3.HeaderValueOption headers_to_add = 3 [(.validate.rules) = { ... }
    • getHeadersToAdd

      HeaderValueOption getHeadersToAdd(int index)
       Additional request headers to send to the upstream proxy. This is mainly used to
       trigger the upstream to convert POST requests back to CONNECT requests.
      
       Neither ``:``-prefixed pseudo-headers like ``:path`` nor the ``host`` header can be overridden.
       
      repeated .envoy.config.core.v3.HeaderValueOption headers_to_add = 3 [(.validate.rules) = { ... }
    • getHeadersToAddCount

      int getHeadersToAddCount()
       Additional request headers to send to the upstream proxy. This is mainly used to
       trigger the upstream to convert POST requests back to CONNECT requests.
      
       Neither ``:``-prefixed pseudo-headers like ``:path`` nor the ``host`` header can be overridden.
       
      repeated .envoy.config.core.v3.HeaderValueOption headers_to_add = 3 [(.validate.rules) = { ... }
    • getHeadersToAddOrBuilderList

      List<? extends HeaderValueOptionOrBuilder> getHeadersToAddOrBuilderList()
       Additional request headers to send to the upstream proxy. This is mainly used to
       trigger the upstream to convert POST requests back to CONNECT requests.
      
       Neither ``:``-prefixed pseudo-headers like ``:path`` nor the ``host`` header can be overridden.
       
      repeated .envoy.config.core.v3.HeaderValueOption headers_to_add = 3 [(.validate.rules) = { ... }
    • getHeadersToAddOrBuilder

      HeaderValueOptionOrBuilder getHeadersToAddOrBuilder(int index)
       Additional request headers to send to the upstream proxy. This is mainly used to
       trigger the upstream to convert POST requests back to CONNECT requests.
      
       Neither ``:``-prefixed pseudo-headers like ``:path`` nor the ``host`` header can be overridden.
       
      repeated .envoy.config.core.v3.HeaderValueOption headers_to_add = 3 [(.validate.rules) = { ... }
    • getPropagateResponseHeaders

      boolean getPropagateResponseHeaders()
       Save response headers to the downstream connection's filter state for consumption
       by network filters. The filter state key is ``envoy.tcp_proxy.propagate_response_headers``.
       
      bool propagate_response_headers = 4;
      Returns:
      The propagateResponseHeaders.
    • getPostPath

      String getPostPath()
       The path used with the POST method. The default path is ``/``. If this field is specified and
       :ref:`use_post field <envoy_v3_api_field_extensions.filters.network.tcp_proxy.v3.TcpProxy.TunnelingConfig.use_post>`
       is not set to true, the configuration will be rejected.
       
      string post_path = 5;
      Returns:
      The postPath.
    • getPostPathBytes

      com.google.protobuf.ByteString getPostPathBytes()
       The path used with the POST method. The default path is ``/``. If this field is specified and
       :ref:`use_post field <envoy_v3_api_field_extensions.filters.network.tcp_proxy.v3.TcpProxy.TunnelingConfig.use_post>`
       is not set to true, the configuration will be rejected.
       
      string post_path = 5;
      Returns:
      The bytes for postPath.
    • getPropagateResponseTrailers

      boolean getPropagateResponseTrailers()
       Save response trailers to the downstream connection's filter state for consumption
       by network filters. The filter state key is ``envoy.tcp_proxy.propagate_response_trailers``.
       
      bool propagate_response_trailers = 6;
      Returns:
      The propagateResponseTrailers.
    • hasRequestIdExtension

      boolean hasRequestIdExtension()
       The configuration of the request ID extension used for generation, validation, and
       associated tracing operations when tunneling.
      
       If this field is set, a request ID is generated using the specified extension. If
       this field is not set, no request ID is generated.
      
       When a request ID is generated, it is also stored in the downstream connection's
       dynamic metadata under the namespace ``envoy.filters.network.tcp_proxy`` with the key
       ``tunnel_request_id`` to allow emission from TCP proxy access logs via the
       ``%DYNAMIC_METADATA(envoy.filters.network.tcp_proxy:tunnel_request_id)%`` formatter.
       [#extension-category: envoy.request_id]
       
      .envoy.extensions.filters.network.http_connection_manager.v3.RequestIDExtension request_id_extension = 7;
      Returns:
      Whether the requestIdExtension field is set.
    • getRequestIdExtension

      RequestIDExtension getRequestIdExtension()
       The configuration of the request ID extension used for generation, validation, and
       associated tracing operations when tunneling.
      
       If this field is set, a request ID is generated using the specified extension. If
       this field is not set, no request ID is generated.
      
       When a request ID is generated, it is also stored in the downstream connection's
       dynamic metadata under the namespace ``envoy.filters.network.tcp_proxy`` with the key
       ``tunnel_request_id`` to allow emission from TCP proxy access logs via the
       ``%DYNAMIC_METADATA(envoy.filters.network.tcp_proxy:tunnel_request_id)%`` formatter.
       [#extension-category: envoy.request_id]
       
      .envoy.extensions.filters.network.http_connection_manager.v3.RequestIDExtension request_id_extension = 7;
      Returns:
      The requestIdExtension.
    • getRequestIdExtensionOrBuilder

      RequestIDExtensionOrBuilder getRequestIdExtensionOrBuilder()
       The configuration of the request ID extension used for generation, validation, and
       associated tracing operations when tunneling.
      
       If this field is set, a request ID is generated using the specified extension. If
       this field is not set, no request ID is generated.
      
       When a request ID is generated, it is also stored in the downstream connection's
       dynamic metadata under the namespace ``envoy.filters.network.tcp_proxy`` with the key
       ``tunnel_request_id`` to allow emission from TCP proxy access logs via the
       ``%DYNAMIC_METADATA(envoy.filters.network.tcp_proxy:tunnel_request_id)%`` formatter.
       [#extension-category: envoy.request_id]
       
      .envoy.extensions.filters.network.http_connection_manager.v3.RequestIDExtension request_id_extension = 7;
    • getRequestIdHeader

      String getRequestIdHeader()
       The request header name to use for emitting the generated request ID on the tunneling
       HTTP request.
      
       If not specified or set to an empty string, the default header name ``x-request-id`` is
       used.
      
       .. note::
         This setting does not alter the internal request ID handling elsewhere in Envoy and
         only controls the header emitted on the tunneling request.
       
      string request_id_header = 8;
      Returns:
      The requestIdHeader.
    • getRequestIdHeaderBytes

      com.google.protobuf.ByteString getRequestIdHeaderBytes()
       The request header name to use for emitting the generated request ID on the tunneling
       HTTP request.
      
       If not specified or set to an empty string, the default header name ``x-request-id`` is
       used.
      
       .. note::
         This setting does not alter the internal request ID handling elsewhere in Envoy and
         only controls the header emitted on the tunneling request.
       
      string request_id_header = 8;
      Returns:
      The bytes for requestIdHeader.
    • getRequestIdMetadataKey

      String getRequestIdMetadataKey()
       The dynamic metadata key to use when storing the generated request ID. The metadata is
       stored under the namespace ``envoy.filters.network.tcp_proxy``.
      
       If not specified or set to an empty string, the default key ``tunnel_request_id`` is used.
       This enables customizing the key used by access log formatters such as
       ``%DYNAMIC_METADATA(envoy.filters.network.tcp_proxy:<key>)%``.
       
      string request_id_metadata_key = 9;
      Returns:
      The requestIdMetadataKey.
    • getRequestIdMetadataKeyBytes

      com.google.protobuf.ByteString getRequestIdMetadataKeyBytes()
       The dynamic metadata key to use when storing the generated request ID. The metadata is
       stored under the namespace ``envoy.filters.network.tcp_proxy``.
      
       If not specified or set to an empty string, the default key ``tunnel_request_id`` is used.
       This enables customizing the key used by access log formatters such as
       ``%DYNAMIC_METADATA(envoy.filters.network.tcp_proxy:<key>)%``.
       
      string request_id_metadata_key = 9;
      Returns:
      The bytes for requestIdMetadataKey.