Class 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.
     
    Protobuf type envoy.extensions.filters.network.tcp_proxy.v3.TcpProxy.TunnelingConfig
    See Also:
    Serialized Form
    • 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
      • 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
      • 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
      • newBuilderForType

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

        public TcpProxy.TunnelingConfig.Builder 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
      • 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