Class TcpProxy.TunnelingConfig

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessageV3
io.envoyproxy.envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy.TunnelingConfig
All Implemented Interfaces:
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, TcpProxy.TunnelingConfigOrBuilder, Serializable
Enclosing class:
TcpProxy

public static final class TcpProxy.TunnelingConfig extends com.google.protobuf.GeneratedMessageV3 implements TcpProxy.TunnelingConfigOrBuilder
 Configuration for tunneling TCP over other transports or application layers.
 Tunneling is supported over both HTTP/1.1 and HTTP/2. Upstream protocol is
 determined by the cluster configuration.
 [#next-free-field: 7]
 
Protobuf type envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy.TunnelingConfig
See Also:
  • Field Details

    • HOSTNAME_FIELD_NUMBER

      public static final int HOSTNAME_FIELD_NUMBER
      See Also:
    • USE_POST_FIELD_NUMBER

      public static final int USE_POST_FIELD_NUMBER
      See Also:
    • HEADERS_TO_ADD_FIELD_NUMBER

      public static final int HEADERS_TO_ADD_FIELD_NUMBER
      See Also:
    • PROPAGATE_RESPONSE_HEADERS_FIELD_NUMBER

      public static final int PROPAGATE_RESPONSE_HEADERS_FIELD_NUMBER
      See Also:
    • POST_PATH_FIELD_NUMBER

      public static final int POST_PATH_FIELD_NUMBER
      See Also:
    • PROPAGATE_RESPONSE_TRAILERS_FIELD_NUMBER

      public static final int PROPAGATE_RESPONSE_TRAILERS_FIELD_NUMBER
      See Also:
  • Method Details

    • newInstance

      protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
      Overrides:
      newInstance 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
    • getHostname

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

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

      public boolean getUsePost()
       Use POST method instead of CONNECT method to tunnel the TCP stream.
       The 'protocol: bytestream' header is also NOT set for HTTP/2 to comply with the spec.
      
       The upstream proxy is expected to convert POST payload as raw TCP.
       
      bool use_post = 2;
      Specified by:
      getUsePost in interface TcpProxy.TunnelingConfigOrBuilder
      Returns:
      The usePost.
    • getHeadersToAddList

      public List<HeaderValueOption> getHeadersToAddList()
       Additional request headers to upstream proxy. This is mainly used to
       trigger upstream to convert POST requests back to CONNECT requests.
      
       Neither ``:-prefixed`` pseudo-headers nor the Host: header can be overridden.
       
      repeated .envoy.config.core.v3.HeaderValueOption headers_to_add = 3 [(.validate.rules) = { ... }
      Specified by:
      getHeadersToAddList in interface TcpProxy.TunnelingConfigOrBuilder
    • getHeadersToAddOrBuilderList

      public List<? extends HeaderValueOptionOrBuilder> getHeadersToAddOrBuilderList()
       Additional request headers to upstream proxy. This is mainly used to
       trigger upstream to convert POST requests back to CONNECT requests.
      
       Neither ``:-prefixed`` pseudo-headers nor the Host: header can be overridden.
       
      repeated .envoy.config.core.v3.HeaderValueOption headers_to_add = 3 [(.validate.rules) = { ... }
      Specified by:
      getHeadersToAddOrBuilderList in interface TcpProxy.TunnelingConfigOrBuilder
    • getHeadersToAddCount

      public int getHeadersToAddCount()
       Additional request headers to upstream proxy. This is mainly used to
       trigger upstream to convert POST requests back to CONNECT requests.
      
       Neither ``:-prefixed`` pseudo-headers nor the Host: header can be overridden.
       
      repeated .envoy.config.core.v3.HeaderValueOption headers_to_add = 3 [(.validate.rules) = { ... }
      Specified by:
      getHeadersToAddCount in interface TcpProxy.TunnelingConfigOrBuilder
    • getHeadersToAdd

      public HeaderValueOption getHeadersToAdd(int index)
       Additional request headers to upstream proxy. This is mainly used to
       trigger upstream to convert POST requests back to CONNECT requests.
      
       Neither ``:-prefixed`` pseudo-headers nor the Host: header can be overridden.
       
      repeated .envoy.config.core.v3.HeaderValueOption headers_to_add = 3 [(.validate.rules) = { ... }
      Specified by:
      getHeadersToAdd in interface TcpProxy.TunnelingConfigOrBuilder
    • getHeadersToAddOrBuilder

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

      public boolean getPropagateResponseHeaders()
       Save the response headers to the downstream info filter state for consumption
       by the network filters. The filter state key is ``envoy.tcp_proxy.propagate_response_headers``.
       
      bool propagate_response_headers = 4;
      Specified by:
      getPropagateResponseHeaders in interface TcpProxy.TunnelingConfigOrBuilder
      Returns:
      The propagateResponseHeaders.
    • getPostPath

      public String getPostPath()
       The path used with POST method. Default path is ``/``. If post path is specified and
       :ref:`use_post field <envoy_v3_api_field_extensions.filters.network.tcp_proxy.v3.TcpProxy.TunnelingConfig.use_post>`
       isn't true, it will be rejected.
       
      string post_path = 5;
      Specified by:
      getPostPath in interface TcpProxy.TunnelingConfigOrBuilder
      Returns:
      The postPath.
    • getPostPathBytes

      public com.google.protobuf.ByteString getPostPathBytes()
       The path used with POST method. Default path is ``/``. If post path is specified and
       :ref:`use_post field <envoy_v3_api_field_extensions.filters.network.tcp_proxy.v3.TcpProxy.TunnelingConfig.use_post>`
       isn't true, it will be rejected.
       
      string post_path = 5;
      Specified by:
      getPostPathBytes in interface TcpProxy.TunnelingConfigOrBuilder
      Returns:
      The bytes for postPath.
    • getPropagateResponseTrailers

      public boolean getPropagateResponseTrailers()
       Save the response trailers to the downstream info filter state for consumption
       by the network filters. The filter state key is ``envoy.tcp_proxy.propagate_response_trailers``.
       
      bool propagate_response_trailers = 6;
      Specified by:
      getPropagateResponseTrailers in interface TcpProxy.TunnelingConfigOrBuilder
      Returns:
      The propagateResponseTrailers.
    • 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 TcpProxy.TunnelingConfig parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

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

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

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

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

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

      public static TcpProxy.TunnelingConfig parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

      public static TcpProxy.TunnelingConfig parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static TcpProxy.TunnelingConfig parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

      public static TcpProxy.TunnelingConfig parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Throws:
      IOException
    • parseFrom

      public static TcpProxy.TunnelingConfig parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

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

      public TcpProxy.TunnelingConfig.Builder newBuilderForType()
      Specified by:
      newBuilderForType in interface com.google.protobuf.Message
      Specified by:
      newBuilderForType in interface com.google.protobuf.MessageLite
    • newBuilder

      public static TcpProxy.TunnelingConfig.Builder newBuilder()
    • newBuilder

      public static TcpProxy.TunnelingConfig.Builder newBuilder(TcpProxy.TunnelingConfig prototype)
    • toBuilder

      Specified by:
      toBuilder in interface com.google.protobuf.Message
      Specified by:
      toBuilder in interface com.google.protobuf.MessageLite
    • newBuilderForType

      protected TcpProxy.TunnelingConfig.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
      Specified by:
      newBuilderForType in class com.google.protobuf.GeneratedMessageV3
    • getDefaultInstance

      public static TcpProxy.TunnelingConfig getDefaultInstance()
    • parser

      public static com.google.protobuf.Parser<TcpProxy.TunnelingConfig> parser()
    • getParserForType

      public com.google.protobuf.Parser<TcpProxy.TunnelingConfig> 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 TcpProxy.TunnelingConfig getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder