java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<BuilderT>
com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder>
io.envoyproxy.envoy.extensions.quic.connection_id_generator.quic_lb.v3.Config.Builder
All Implemented Interfaces:
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ConfigOrBuilder, Cloneable
Enclosing class:
Config

public static final class Config.Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder> implements ConfigOrBuilder
 Configuration for a connection ID generator implementation for the QUIC-LB draft RFC for
 routable connection IDs.

 Connection IDs always have the length self encoded, as described in
 https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-length-self-description.

 See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers for details.

 .. warning::

    This is still a work in progress. Interoperability testing has not yet been performed.
 [#next-free-field: 7]
 
Protobuf type envoy.extensions.quic.connection_id_generator.quic_lb.v3.Config
  • Method Details

    • 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.Builder<Config.Builder>
    • clear

      public Config.Builder clear()
      Specified by:
      clear in interface com.google.protobuf.Message.Builder
      Specified by:
      clear in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      clear in class com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder>
    • getDescriptorForType

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      Specified by:
      getDescriptorForType in interface com.google.protobuf.Message.Builder
      Specified by:
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      Overrides:
      getDescriptorForType in class com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder>
    • getDefaultInstanceForType

      public Config getDefaultInstanceForType()
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
      Specified by:
      getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder
    • build

      public Config build()
      Specified by:
      build in interface com.google.protobuf.Message.Builder
      Specified by:
      build in interface com.google.protobuf.MessageLite.Builder
    • buildPartial

      public Config buildPartial()
      Specified by:
      buildPartial in interface com.google.protobuf.Message.Builder
      Specified by:
      buildPartial in interface com.google.protobuf.MessageLite.Builder
    • clone

      public Config.Builder clone()
      Specified by:
      clone in interface com.google.protobuf.Message.Builder
      Specified by:
      clone in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      clone in class com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder>
    • setField

      public Config.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)
      Specified by:
      setField in interface com.google.protobuf.Message.Builder
      Overrides:
      setField in class com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder>
    • clearField

      public Config.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
      Specified by:
      clearField in interface com.google.protobuf.Message.Builder
      Overrides:
      clearField in class com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder>
    • clearOneof

      public Config.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
      Specified by:
      clearOneof in interface com.google.protobuf.Message.Builder
      Overrides:
      clearOneof in class com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder>
    • setRepeatedField

      public Config.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, Object value)
      Specified by:
      setRepeatedField in interface com.google.protobuf.Message.Builder
      Overrides:
      setRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder>
    • addRepeatedField

      public Config.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, Object value)
      Specified by:
      addRepeatedField in interface com.google.protobuf.Message.Builder
      Overrides:
      addRepeatedField in class com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder>
    • mergeFrom

      public Config.Builder mergeFrom(com.google.protobuf.Message other)
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<Config.Builder>
    • mergeFrom

      public Config.Builder mergeFrom(Config other)
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder>
    • mergeFrom

      public Config.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
      Specified by:
      mergeFrom in interface com.google.protobuf.Message.Builder
      Specified by:
      mergeFrom in interface com.google.protobuf.MessageLite.Builder
      Overrides:
      mergeFrom in class com.google.protobuf.AbstractMessage.Builder<Config.Builder>
      Throws:
      IOException
    • hasServerId

      public boolean hasServerId()
       Must be at least 1 octet.
       The length of server_id and nonce_length_bytes must be 18 or less.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-server-id-allocation.
       
      .envoy.config.core.v3.DataSource server_id = 2 [(.validate.rules) = { ... }
      Specified by:
      hasServerId in interface ConfigOrBuilder
      Returns:
      Whether the serverId field is set.
    • getServerId

      public DataSource getServerId()
       Must be at least 1 octet.
       The length of server_id and nonce_length_bytes must be 18 or less.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-server-id-allocation.
       
      .envoy.config.core.v3.DataSource server_id = 2 [(.validate.rules) = { ... }
      Specified by:
      getServerId in interface ConfigOrBuilder
      Returns:
      The serverId.
    • setServerId

      public Config.Builder setServerId(DataSource value)
       Must be at least 1 octet.
       The length of server_id and nonce_length_bytes must be 18 or less.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-server-id-allocation.
       
      .envoy.config.core.v3.DataSource server_id = 2 [(.validate.rules) = { ... }
    • setServerId

      public Config.Builder setServerId(DataSource.Builder builderForValue)
       Must be at least 1 octet.
       The length of server_id and nonce_length_bytes must be 18 or less.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-server-id-allocation.
       
      .envoy.config.core.v3.DataSource server_id = 2 [(.validate.rules) = { ... }
    • mergeServerId

      public Config.Builder mergeServerId(DataSource value)
       Must be at least 1 octet.
       The length of server_id and nonce_length_bytes must be 18 or less.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-server-id-allocation.
       
      .envoy.config.core.v3.DataSource server_id = 2 [(.validate.rules) = { ... }
    • clearServerId

      public Config.Builder clearServerId()
       Must be at least 1 octet.
       The length of server_id and nonce_length_bytes must be 18 or less.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-server-id-allocation.
       
      .envoy.config.core.v3.DataSource server_id = 2 [(.validate.rules) = { ... }
    • getServerIdBuilder

      public DataSource.Builder getServerIdBuilder()
       Must be at least 1 octet.
       The length of server_id and nonce_length_bytes must be 18 or less.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-server-id-allocation.
       
      .envoy.config.core.v3.DataSource server_id = 2 [(.validate.rules) = { ... }
    • getServerIdOrBuilder

      public DataSourceOrBuilder getServerIdOrBuilder()
       Must be at least 1 octet.
       The length of server_id and nonce_length_bytes must be 18 or less.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-server-id-allocation.
       
      .envoy.config.core.v3.DataSource server_id = 2 [(.validate.rules) = { ... }
      Specified by:
      getServerIdOrBuilder in interface ConfigOrBuilder
    • getServerIdBase64Encoded

      public boolean getServerIdBase64Encoded()
       If true, indicates that the :ref:`server_id
       <envoy_v3_api_field_extensions.quic.connection_id_generator.quic_lb.v3.Config.server_id>` is base64 encoded.
      
       This can be useful if the ID may contain binary data and must be transmitted as a string, for example in
       an environment variable.
       
      bool server_id_base64_encoded = 6;
      Specified by:
      getServerIdBase64Encoded in interface ConfigOrBuilder
      Returns:
      The serverIdBase64Encoded.
    • setServerIdBase64Encoded

      public Config.Builder setServerIdBase64Encoded(boolean value)
       If true, indicates that the :ref:`server_id
       <envoy_v3_api_field_extensions.quic.connection_id_generator.quic_lb.v3.Config.server_id>` is base64 encoded.
      
       This can be useful if the ID may contain binary data and must be transmitted as a string, for example in
       an environment variable.
       
      bool server_id_base64_encoded = 6;
      Parameters:
      value - The serverIdBase64Encoded to set.
      Returns:
      This builder for chaining.
    • clearServerIdBase64Encoded

      public Config.Builder clearServerIdBase64Encoded()
       If true, indicates that the :ref:`server_id
       <envoy_v3_api_field_extensions.quic.connection_id_generator.quic_lb.v3.Config.server_id>` is base64 encoded.
      
       This can be useful if the ID may contain binary data and must be transmitted as a string, for example in
       an environment variable.
       
      bool server_id_base64_encoded = 6;
      Returns:
      This builder for chaining.
    • getExpectedServerIdLength

      public int getExpectedServerIdLength()
       Optional validation of the expected server ID length. If this is non-zero and the value in ``server_id``
       does not have a matching length, a configuration error is generated. This can be useful for validating
       that the server ID is valid.
       
      uint32 expected_server_id_length = 3 [(.validate.rules) = { ... }
      Specified by:
      getExpectedServerIdLength in interface ConfigOrBuilder
      Returns:
      The expectedServerIdLength.
    • setExpectedServerIdLength

      public Config.Builder setExpectedServerIdLength(int value)
       Optional validation of the expected server ID length. If this is non-zero and the value in ``server_id``
       does not have a matching length, a configuration error is generated. This can be useful for validating
       that the server ID is valid.
       
      uint32 expected_server_id_length = 3 [(.validate.rules) = { ... }
      Parameters:
      value - The expectedServerIdLength to set.
      Returns:
      This builder for chaining.
    • clearExpectedServerIdLength

      public Config.Builder clearExpectedServerIdLength()
       Optional validation of the expected server ID length. If this is non-zero and the value in ``server_id``
       does not have a matching length, a configuration error is generated. This can be useful for validating
       that the server ID is valid.
       
      uint32 expected_server_id_length = 3 [(.validate.rules) = { ... }
      Returns:
      This builder for chaining.
    • getNonceLengthBytes

      public int getNonceLengthBytes()
       The nonce length must be at least 4 bytes.
       The length of server_id and nonce_length_bytes must be 18 bytes or less.
       
      uint32 nonce_length_bytes = 4 [(.validate.rules) = { ... }
      Specified by:
      getNonceLengthBytes in interface ConfigOrBuilder
      Returns:
      The nonceLengthBytes.
    • setNonceLengthBytes

      public Config.Builder setNonceLengthBytes(int value)
       The nonce length must be at least 4 bytes.
       The length of server_id and nonce_length_bytes must be 18 bytes or less.
       
      uint32 nonce_length_bytes = 4 [(.validate.rules) = { ... }
      Parameters:
      value - The nonceLengthBytes to set.
      Returns:
      This builder for chaining.
    • clearNonceLengthBytes

      public Config.Builder clearNonceLengthBytes()
       The nonce length must be at least 4 bytes.
       The length of server_id and nonce_length_bytes must be 18 bytes or less.
       
      uint32 nonce_length_bytes = 4 [(.validate.rules) = { ... }
      Returns:
      This builder for chaining.
    • hasEncryptionParameters

      public boolean hasEncryptionParameters()
       Configuration to fetch the encryption key and configuration version.
      
       The SDS service is for a :ref:`GenericSecret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.GenericSecret>`.
       The data should populate :ref:`secrets <envoy_v3_api_field_extensions.transport_sockets.tls.v3.GenericSecret.secrets>`:
      
       "encryption_key" must contain the 16 byte encryption key.
      
       "configuration_version" must contain a 1 byte unsigned integer of value less than 7.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-config-rotation.
       
      .envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig encryption_parameters = 5 [(.validate.rules) = { ... }
      Specified by:
      hasEncryptionParameters in interface ConfigOrBuilder
      Returns:
      Whether the encryptionParameters field is set.
    • getEncryptionParameters

      public SdsSecretConfig getEncryptionParameters()
       Configuration to fetch the encryption key and configuration version.
      
       The SDS service is for a :ref:`GenericSecret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.GenericSecret>`.
       The data should populate :ref:`secrets <envoy_v3_api_field_extensions.transport_sockets.tls.v3.GenericSecret.secrets>`:
      
       "encryption_key" must contain the 16 byte encryption key.
      
       "configuration_version" must contain a 1 byte unsigned integer of value less than 7.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-config-rotation.
       
      .envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig encryption_parameters = 5 [(.validate.rules) = { ... }
      Specified by:
      getEncryptionParameters in interface ConfigOrBuilder
      Returns:
      The encryptionParameters.
    • setEncryptionParameters

      public Config.Builder setEncryptionParameters(SdsSecretConfig value)
       Configuration to fetch the encryption key and configuration version.
      
       The SDS service is for a :ref:`GenericSecret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.GenericSecret>`.
       The data should populate :ref:`secrets <envoy_v3_api_field_extensions.transport_sockets.tls.v3.GenericSecret.secrets>`:
      
       "encryption_key" must contain the 16 byte encryption key.
      
       "configuration_version" must contain a 1 byte unsigned integer of value less than 7.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-config-rotation.
       
      .envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig encryption_parameters = 5 [(.validate.rules) = { ... }
    • setEncryptionParameters

      public Config.Builder setEncryptionParameters(SdsSecretConfig.Builder builderForValue)
       Configuration to fetch the encryption key and configuration version.
      
       The SDS service is for a :ref:`GenericSecret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.GenericSecret>`.
       The data should populate :ref:`secrets <envoy_v3_api_field_extensions.transport_sockets.tls.v3.GenericSecret.secrets>`:
      
       "encryption_key" must contain the 16 byte encryption key.
      
       "configuration_version" must contain a 1 byte unsigned integer of value less than 7.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-config-rotation.
       
      .envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig encryption_parameters = 5 [(.validate.rules) = { ... }
    • mergeEncryptionParameters

      public Config.Builder mergeEncryptionParameters(SdsSecretConfig value)
       Configuration to fetch the encryption key and configuration version.
      
       The SDS service is for a :ref:`GenericSecret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.GenericSecret>`.
       The data should populate :ref:`secrets <envoy_v3_api_field_extensions.transport_sockets.tls.v3.GenericSecret.secrets>`:
      
       "encryption_key" must contain the 16 byte encryption key.
      
       "configuration_version" must contain a 1 byte unsigned integer of value less than 7.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-config-rotation.
       
      .envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig encryption_parameters = 5 [(.validate.rules) = { ... }
    • clearEncryptionParameters

      public Config.Builder clearEncryptionParameters()
       Configuration to fetch the encryption key and configuration version.
      
       The SDS service is for a :ref:`GenericSecret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.GenericSecret>`.
       The data should populate :ref:`secrets <envoy_v3_api_field_extensions.transport_sockets.tls.v3.GenericSecret.secrets>`:
      
       "encryption_key" must contain the 16 byte encryption key.
      
       "configuration_version" must contain a 1 byte unsigned integer of value less than 7.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-config-rotation.
       
      .envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig encryption_parameters = 5 [(.validate.rules) = { ... }
    • getEncryptionParametersBuilder

      public SdsSecretConfig.Builder getEncryptionParametersBuilder()
       Configuration to fetch the encryption key and configuration version.
      
       The SDS service is for a :ref:`GenericSecret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.GenericSecret>`.
       The data should populate :ref:`secrets <envoy_v3_api_field_extensions.transport_sockets.tls.v3.GenericSecret.secrets>`:
      
       "encryption_key" must contain the 16 byte encryption key.
      
       "configuration_version" must contain a 1 byte unsigned integer of value less than 7.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-config-rotation.
       
      .envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig encryption_parameters = 5 [(.validate.rules) = { ... }
    • getEncryptionParametersOrBuilder

      public SdsSecretConfigOrBuilder getEncryptionParametersOrBuilder()
       Configuration to fetch the encryption key and configuration version.
      
       The SDS service is for a :ref:`GenericSecret <envoy_v3_api_msg_extensions.transport_sockets.tls.v3.GenericSecret>`.
       The data should populate :ref:`secrets <envoy_v3_api_field_extensions.transport_sockets.tls.v3.GenericSecret.secrets>`:
      
       "encryption_key" must contain the 16 byte encryption key.
      
       "configuration_version" must contain a 1 byte unsigned integer of value less than 7.
       See https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers#name-config-rotation.
       
      .envoy.extensions.transport_sockets.tls.v3.SdsSecretConfig encryption_parameters = 5 [(.validate.rules) = { ... }
      Specified by:
      getEncryptionParametersOrBuilder in interface ConfigOrBuilder
    • getUnencryptedMode

      public boolean getUnencryptedMode()
       Use the unencrypted mode. This is useful for testing or a simplified implementation of the
       downstream load balancer, but allows for linking different CIDs for the same connection, and
       leaks information about the valid server IDs in use. This mode does not comply with the RFC.
      
       Note that in this mode, :ref:`encryption_parameters
       <envoy_v3_api_field_extensions.quic.connection_id_generator.quic_lb.v3.Config.encryption_parameters>`
       is still required because it contains ``configuration_version``, which is still
       needed. ``encryption_key`` can be set to ``inline_string: '0000000000000000'``.
       
      bool unencrypted_mode = 1;
      Specified by:
      getUnencryptedMode in interface ConfigOrBuilder
      Returns:
      The unencryptedMode.
    • setUnencryptedMode

      public Config.Builder setUnencryptedMode(boolean value)
       Use the unencrypted mode. This is useful for testing or a simplified implementation of the
       downstream load balancer, but allows for linking different CIDs for the same connection, and
       leaks information about the valid server IDs in use. This mode does not comply with the RFC.
      
       Note that in this mode, :ref:`encryption_parameters
       <envoy_v3_api_field_extensions.quic.connection_id_generator.quic_lb.v3.Config.encryption_parameters>`
       is still required because it contains ``configuration_version``, which is still
       needed. ``encryption_key`` can be set to ``inline_string: '0000000000000000'``.
       
      bool unencrypted_mode = 1;
      Parameters:
      value - The unencryptedMode to set.
      Returns:
      This builder for chaining.
    • clearUnencryptedMode

      public Config.Builder clearUnencryptedMode()
       Use the unencrypted mode. This is useful for testing or a simplified implementation of the
       downstream load balancer, but allows for linking different CIDs for the same connection, and
       leaks information about the valid server IDs in use. This mode does not comply with the RFC.
      
       Note that in this mode, :ref:`encryption_parameters
       <envoy_v3_api_field_extensions.quic.connection_id_generator.quic_lb.v3.Config.encryption_parameters>`
       is still required because it contains ``configuration_version``, which is still
       needed. ``encryption_key`` can be set to ``inline_string: '0000000000000000'``.
       
      bool unencrypted_mode = 1;
      Returns:
      This builder for chaining.
    • setUnknownFields

      public final Config.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      Specified by:
      setUnknownFields in interface com.google.protobuf.Message.Builder
      Overrides:
      setUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder>
    • mergeUnknownFields

      public final Config.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
      Specified by:
      mergeUnknownFields in interface com.google.protobuf.Message.Builder
      Overrides:
      mergeUnknownFields in class com.google.protobuf.GeneratedMessageV3.Builder<Config.Builder>