Class ScopedRouteConfiguration.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder
com.google.protobuf.AbstractMessage.Builder<ScopedRouteConfiguration.Builder>
com.google.protobuf.GeneratedMessage.Builder<ScopedRouteConfiguration.Builder>
io.envoyproxy.envoy.config.route.v3.ScopedRouteConfiguration.Builder
All Implemented Interfaces:
com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ScopedRouteConfigurationOrBuilder, Cloneable
Enclosing class:
ScopedRouteConfiguration

public static final class ScopedRouteConfiguration.Builder extends com.google.protobuf.GeneratedMessage.Builder<ScopedRouteConfiguration.Builder> implements ScopedRouteConfigurationOrBuilder
Specifies a routing scope, which associates a
:ref:`Key<envoy_v3_api_msg_config.route.v3.ScopedRouteConfiguration.Key>` to a
:ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration`.
The :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` can be obtained dynamically
via RDS (:ref:`route_configuration_name<envoy_v3_api_field_config.route.v3.ScopedRouteConfiguration.route_configuration_name>`)
or specified inline (:ref:`route_configuration<envoy_v3_api_field_config.route.v3.ScopedRouteConfiguration.route_configuration>`).

The HTTP connection manager builds up a table consisting of these Key to
RouteConfiguration mappings, and looks up the RouteConfiguration to use per
request according to the algorithm specified in the
:ref:`scope_key_builder<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scope_key_builder>`
assigned to the HttpConnectionManager.

For example, with the following configurations (in YAML):

HttpConnectionManager config:

.. code::

...
scoped_routes:
name: foo-scoped-routes
scope_key_builder:
fragments:
- header_value_extractor:
name: X-Route-Selector
element_separator: ","
element:
separator: =
key: vip

ScopedRouteConfiguration resources (specified statically via
:ref:`scoped_route_configurations_list<envoy_v3_api_field_extensions.filters.network.http_connection_manager.v3.ScopedRoutes.scoped_route_configurations_list>`
or obtained dynamically via SRDS):

.. code::

(1)
name: route-scope1
route_configuration_name: route-config1
key:
fragments:
- string_key: 172.10.10.20

(2)
name: route-scope2
route_configuration_name: route-config2
key:
fragments:
- string_key: 172.20.20.30

A request from a client such as:

.. code::

GET / HTTP/1.1
Host: foo.com
X-Route-Selector: vip=172.10.10.20

would result in the routing table defined by the ``route-config1``
RouteConfiguration being assigned to the HTTP request/stream.

[#next-free-field: 6]
Protobuf type envoy.config.route.v3.ScopedRouteConfiguration
  • Field Details

  • Constructor Details

    • Builder

      private Builder()
    • Builder

      private Builder(com.google.protobuf.AbstractMessage.BuilderParent parent)
  • Method Details

    • getDescriptor

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage.Builder<ScopedRouteConfiguration.Builder>
    • maybeForceBuilderInitialization

      private void maybeForceBuilderInitialization()
    • 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.GeneratedMessage.Builder<ScopedRouteConfiguration.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.GeneratedMessage.Builder<ScopedRouteConfiguration.Builder>
    • getDefaultInstanceForType

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

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

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

      private void buildPartial0(ScopedRouteConfiguration result)
    • mergeFrom

      public ScopedRouteConfiguration.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<ScopedRouteConfiguration.Builder>
    • mergeFrom

    • isInitialized

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

      public ScopedRouteConfiguration.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<ScopedRouteConfiguration.Builder>
      Throws:
      IOException
    • getOnDemand

      public boolean getOnDemand()
      Whether the RouteConfiguration should be loaded on demand.
      
      bool on_demand = 4;
      Specified by:
      getOnDemand in interface ScopedRouteConfigurationOrBuilder
      Returns:
      The onDemand.
    • setOnDemand

      public ScopedRouteConfiguration.Builder setOnDemand(boolean value)
      Whether the RouteConfiguration should be loaded on demand.
      
      bool on_demand = 4;
      Parameters:
      value - The onDemand to set.
      Returns:
      This builder for chaining.
    • clearOnDemand

      public ScopedRouteConfiguration.Builder clearOnDemand()
      Whether the RouteConfiguration should be loaded on demand.
      
      bool on_demand = 4;
      Returns:
      This builder for chaining.
    • getName

      public String getName()
      The name assigned to the routing scope.
      
      string name = 1 [(.validate.rules) = { ... }
      Specified by:
      getName in interface ScopedRouteConfigurationOrBuilder
      Returns:
      The name.
    • getNameBytes

      public com.google.protobuf.ByteString getNameBytes()
      The name assigned to the routing scope.
      
      string name = 1 [(.validate.rules) = { ... }
      Specified by:
      getNameBytes in interface ScopedRouteConfigurationOrBuilder
      Returns:
      The bytes for name.
    • setName

      public ScopedRouteConfiguration.Builder setName(String value)
      The name assigned to the routing scope.
      
      string name = 1 [(.validate.rules) = { ... }
      Parameters:
      value - The name to set.
      Returns:
      This builder for chaining.
    • clearName

      The name assigned to the routing scope.
      
      string name = 1 [(.validate.rules) = { ... }
      Returns:
      This builder for chaining.
    • setNameBytes

      public ScopedRouteConfiguration.Builder setNameBytes(com.google.protobuf.ByteString value)
      The name assigned to the routing scope.
      
      string name = 1 [(.validate.rules) = { ... }
      Parameters:
      value - The bytes for name to set.
      Returns:
      This builder for chaining.
    • getRouteConfigurationName

      public String getRouteConfigurationName()
      The resource name to use for a :ref:`envoy_v3_api_msg_service.discovery.v3.DiscoveryRequest` to an
      RDS server to fetch the :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated
      with this scope.
      
      string route_configuration_name = 2 [(.udpa.annotations.field_migrate) = { ... }
      Specified by:
      getRouteConfigurationName in interface ScopedRouteConfigurationOrBuilder
      Returns:
      The routeConfigurationName.
    • getRouteConfigurationNameBytes

      public com.google.protobuf.ByteString getRouteConfigurationNameBytes()
      The resource name to use for a :ref:`envoy_v3_api_msg_service.discovery.v3.DiscoveryRequest` to an
      RDS server to fetch the :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated
      with this scope.
      
      string route_configuration_name = 2 [(.udpa.annotations.field_migrate) = { ... }
      Specified by:
      getRouteConfigurationNameBytes in interface ScopedRouteConfigurationOrBuilder
      Returns:
      The bytes for routeConfigurationName.
    • setRouteConfigurationName

      public ScopedRouteConfiguration.Builder setRouteConfigurationName(String value)
      The resource name to use for a :ref:`envoy_v3_api_msg_service.discovery.v3.DiscoveryRequest` to an
      RDS server to fetch the :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated
      with this scope.
      
      string route_configuration_name = 2 [(.udpa.annotations.field_migrate) = { ... }
      Parameters:
      value - The routeConfigurationName to set.
      Returns:
      This builder for chaining.
    • clearRouteConfigurationName

      public ScopedRouteConfiguration.Builder clearRouteConfigurationName()
      The resource name to use for a :ref:`envoy_v3_api_msg_service.discovery.v3.DiscoveryRequest` to an
      RDS server to fetch the :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated
      with this scope.
      
      string route_configuration_name = 2 [(.udpa.annotations.field_migrate) = { ... }
      Returns:
      This builder for chaining.
    • setRouteConfigurationNameBytes

      public ScopedRouteConfiguration.Builder setRouteConfigurationNameBytes(com.google.protobuf.ByteString value)
      The resource name to use for a :ref:`envoy_v3_api_msg_service.discovery.v3.DiscoveryRequest` to an
      RDS server to fetch the :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated
      with this scope.
      
      string route_configuration_name = 2 [(.udpa.annotations.field_migrate) = { ... }
      Parameters:
      value - The bytes for routeConfigurationName to set.
      Returns:
      This builder for chaining.
    • hasRouteConfiguration

      public boolean hasRouteConfiguration()
      The :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated with the scope.
      
      .envoy.config.route.v3.RouteConfiguration route_configuration = 5 [(.udpa.annotations.field_migrate) = { ... }
      Specified by:
      hasRouteConfiguration in interface ScopedRouteConfigurationOrBuilder
      Returns:
      Whether the routeConfiguration field is set.
    • getRouteConfiguration

      public RouteConfiguration getRouteConfiguration()
      The :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated with the scope.
      
      .envoy.config.route.v3.RouteConfiguration route_configuration = 5 [(.udpa.annotations.field_migrate) = { ... }
      Specified by:
      getRouteConfiguration in interface ScopedRouteConfigurationOrBuilder
      Returns:
      The routeConfiguration.
    • setRouteConfiguration

      public ScopedRouteConfiguration.Builder setRouteConfiguration(RouteConfiguration value)
      The :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated with the scope.
      
      .envoy.config.route.v3.RouteConfiguration route_configuration = 5 [(.udpa.annotations.field_migrate) = { ... }
    • setRouteConfiguration

      public ScopedRouteConfiguration.Builder setRouteConfiguration(RouteConfiguration.Builder builderForValue)
      The :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated with the scope.
      
      .envoy.config.route.v3.RouteConfiguration route_configuration = 5 [(.udpa.annotations.field_migrate) = { ... }
    • mergeRouteConfiguration

      public ScopedRouteConfiguration.Builder mergeRouteConfiguration(RouteConfiguration value)
      The :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated with the scope.
      
      .envoy.config.route.v3.RouteConfiguration route_configuration = 5 [(.udpa.annotations.field_migrate) = { ... }
    • clearRouteConfiguration

      public ScopedRouteConfiguration.Builder clearRouteConfiguration()
      The :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated with the scope.
      
      .envoy.config.route.v3.RouteConfiguration route_configuration = 5 [(.udpa.annotations.field_migrate) = { ... }
    • getRouteConfigurationBuilder

      public RouteConfiguration.Builder getRouteConfigurationBuilder()
      The :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated with the scope.
      
      .envoy.config.route.v3.RouteConfiguration route_configuration = 5 [(.udpa.annotations.field_migrate) = { ... }
    • getRouteConfigurationOrBuilder

      public RouteConfigurationOrBuilder getRouteConfigurationOrBuilder()
      The :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated with the scope.
      
      .envoy.config.route.v3.RouteConfiguration route_configuration = 5 [(.udpa.annotations.field_migrate) = { ... }
      Specified by:
      getRouteConfigurationOrBuilder in interface ScopedRouteConfigurationOrBuilder
    • internalGetRouteConfigurationFieldBuilder

      private com.google.protobuf.SingleFieldBuilder<RouteConfiguration, RouteConfiguration.Builder, RouteConfigurationOrBuilder> internalGetRouteConfigurationFieldBuilder()
      The :ref:`envoy_v3_api_msg_config.route.v3.RouteConfiguration` associated with the scope.
      
      .envoy.config.route.v3.RouteConfiguration route_configuration = 5 [(.udpa.annotations.field_migrate) = { ... }
    • hasKey

      public boolean hasKey()
      The key to match against.
      
      .envoy.config.route.v3.ScopedRouteConfiguration.Key key = 3 [(.validate.rules) = { ... }
      Specified by:
      hasKey in interface ScopedRouteConfigurationOrBuilder
      Returns:
      Whether the key field is set.
    • getKey

      The key to match against.
      
      .envoy.config.route.v3.ScopedRouteConfiguration.Key key = 3 [(.validate.rules) = { ... }
      Specified by:
      getKey in interface ScopedRouteConfigurationOrBuilder
      Returns:
      The key.
    • setKey

      The key to match against.
      
      .envoy.config.route.v3.ScopedRouteConfiguration.Key key = 3 [(.validate.rules) = { ... }
    • setKey

      The key to match against.
      
      .envoy.config.route.v3.ScopedRouteConfiguration.Key key = 3 [(.validate.rules) = { ... }
    • mergeKey

      The key to match against.
      
      .envoy.config.route.v3.ScopedRouteConfiguration.Key key = 3 [(.validate.rules) = { ... }
    • clearKey

      The key to match against.
      
      .envoy.config.route.v3.ScopedRouteConfiguration.Key key = 3 [(.validate.rules) = { ... }
    • getKeyBuilder

      public ScopedRouteConfiguration.Key.Builder getKeyBuilder()
      The key to match against.
      
      .envoy.config.route.v3.ScopedRouteConfiguration.Key key = 3 [(.validate.rules) = { ... }
    • getKeyOrBuilder

      public ScopedRouteConfiguration.KeyOrBuilder getKeyOrBuilder()
      The key to match against.
      
      .envoy.config.route.v3.ScopedRouteConfiguration.Key key = 3 [(.validate.rules) = { ... }
      Specified by:
      getKeyOrBuilder in interface ScopedRouteConfigurationOrBuilder
    • internalGetKeyFieldBuilder

      private com.google.protobuf.SingleFieldBuilder<ScopedRouteConfiguration.Key, ScopedRouteConfiguration.Key.Builder, ScopedRouteConfiguration.KeyOrBuilder> internalGetKeyFieldBuilder()
      The key to match against.
      
      .envoy.config.route.v3.ScopedRouteConfiguration.Key key = 3 [(.validate.rules) = { ... }