Class ScopedRouteConfiguration

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessage
io.envoyproxy.envoy.config.route.v3.ScopedRouteConfiguration
All Implemented Interfaces:
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, ScopedRouteConfigurationOrBuilder, Serializable

@Generated public final class ScopedRouteConfiguration extends com.google.protobuf.GeneratedMessage 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
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • bitField0_

      private int bitField0_
    • ON_DEMAND_FIELD_NUMBER

      public static final int ON_DEMAND_FIELD_NUMBER
      See Also:
    • onDemand_

      private boolean onDemand_
    • NAME_FIELD_NUMBER

      public static final int NAME_FIELD_NUMBER
      See Also:
    • name_

      private volatile Object name_
    • ROUTE_CONFIGURATION_NAME_FIELD_NUMBER

      public static final int ROUTE_CONFIGURATION_NAME_FIELD_NUMBER
      See Also:
    • routeConfigurationName_

      private volatile Object routeConfigurationName_
    • ROUTE_CONFIGURATION_FIELD_NUMBER

      public static final int ROUTE_CONFIGURATION_FIELD_NUMBER
      See Also:
    • routeConfiguration_

      private RouteConfiguration routeConfiguration_
    • KEY_FIELD_NUMBER

      public static final int KEY_FIELD_NUMBER
      See Also:
    • key_

    • memoizedIsInitialized

      private byte memoizedIsInitialized
    • DEFAULT_INSTANCE

      private static final ScopedRouteConfiguration DEFAULT_INSTANCE
    • PARSER

      private static final com.google.protobuf.Parser<ScopedRouteConfiguration> PARSER
  • Constructor Details

    • ScopedRouteConfiguration

      private ScopedRouteConfiguration(com.google.protobuf.GeneratedMessage.Builder<?> builder)
    • ScopedRouteConfiguration

      private ScopedRouteConfiguration()
  • Method Details

    • getDescriptor

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

      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
      Specified by:
      getDescriptorForType in interface com.google.protobuf.MessageOrBuilder
      Overrides:
      getDescriptorForType in class com.google.protobuf.GeneratedMessage
    • internalGetFieldAccessorTable

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()
      Specified by:
      internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessage
    • 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.
    • 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.
    • 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.
    • 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.
    • 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
    • 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.
    • 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
    • isInitialized

      public final boolean isInitialized()
      Specified by:
      isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
      Overrides:
      isInitialized in class com.google.protobuf.GeneratedMessage
    • 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.GeneratedMessage
      Throws:
      IOException
    • getSerializedSize

      public int getSerializedSize()
      Specified by:
      getSerializedSize in interface com.google.protobuf.MessageLite
      Overrides:
      getSerializedSize in class com.google.protobuf.GeneratedMessage
    • 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 ScopedRouteConfiguration parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

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

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

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

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

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

      public static ScopedRouteConfiguration parseFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseFrom

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

      public static ScopedRouteConfiguration parseDelimitedFrom(InputStream input) throws IOException
      Throws:
      IOException
    • parseDelimitedFrom

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

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

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

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

      public static ScopedRouteConfiguration.Builder newBuilder()
    • newBuilder

      public static ScopedRouteConfiguration.Builder newBuilder(ScopedRouteConfiguration prototype)
    • toBuilder

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

      protected ScopedRouteConfiguration.Builder newBuilderForType(com.google.protobuf.AbstractMessage.BuilderParent parent)
      Overrides:
      newBuilderForType in class com.google.protobuf.AbstractMessage
    • getDefaultInstance

      public static ScopedRouteConfiguration getDefaultInstance()
    • parser

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

      public com.google.protobuf.Parser<ScopedRouteConfiguration> 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.GeneratedMessage
    • getDefaultInstanceForType

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