Class DynamicModuleBootstrapExtension

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessageV3
io.envoyproxy.envoy.extensions.bootstrap.dynamic_modules.v3.DynamicModuleBootstrapExtension
All Implemented Interfaces:
com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, DynamicModuleBootstrapExtensionOrBuilder, Serializable

public final class DynamicModuleBootstrapExtension extends com.google.protobuf.GeneratedMessageV3 implements DynamicModuleBootstrapExtensionOrBuilder
 Configuration for the Dynamic Modules bootstrap extension. This extension allows loading shared
 object files that can be loaded via ``dlopen`` to extend Envoy's bootstrap behavior.

 A module can be loaded by multiple bootstrap extensions; the module is loaded only once and shared
 across multiple extensions.

 Bootstrap extensions run on the main thread and are initialized when Envoy starts. They can:

 * Perform initialization tasks when the server is initialized.
 * Perform per-worker thread initialization when worker threads start.
 * Access server-level resources like the cluster manager and dispatcher.
 
Protobuf type envoy.extensions.bootstrap.dynamic_modules.v3.DynamicModuleBootstrapExtension
See Also:
  • Field Details

    • DYNAMIC_MODULE_CONFIG_FIELD_NUMBER

      public static final int DYNAMIC_MODULE_CONFIG_FIELD_NUMBER
      See Also:
    • EXTENSION_NAME_FIELD_NUMBER

      public static final int EXTENSION_NAME_FIELD_NUMBER
      See Also:
    • EXTENSION_CONFIG_FIELD_NUMBER

      public static final int EXTENSION_CONFIG_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
    • hasDynamicModuleConfig

      public boolean hasDynamicModuleConfig()
       Specifies the shared-object level configuration.
       
      .envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;
      Specified by:
      hasDynamicModuleConfig in interface DynamicModuleBootstrapExtensionOrBuilder
      Returns:
      Whether the dynamicModuleConfig field is set.
    • getDynamicModuleConfig

      public DynamicModuleConfig getDynamicModuleConfig()
       Specifies the shared-object level configuration.
       
      .envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;
      Specified by:
      getDynamicModuleConfig in interface DynamicModuleBootstrapExtensionOrBuilder
      Returns:
      The dynamicModuleConfig.
    • getDynamicModuleConfigOrBuilder

      public DynamicModuleConfigOrBuilder getDynamicModuleConfigOrBuilder()
       Specifies the shared-object level configuration.
       
      .envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;
      Specified by:
      getDynamicModuleConfigOrBuilder in interface DynamicModuleBootstrapExtensionOrBuilder
    • getExtensionName

      public String getExtensionName()
       The name for this extension configuration.
      
       This can be used to distinguish between different extension implementations inside a dynamic
       module. For example, a module can have completely different extension implementations. When Envoy
       receives this configuration, it passes the ``extension_name`` to the dynamic module's bootstrap
       extension config init function together with the ``extension_config``. That way a module can
       decide which in-module extension implementation to use based on the name at load time.
      
       If not specified, defaults to an empty string.
       
      string extension_name = 2;
      Specified by:
      getExtensionName in interface DynamicModuleBootstrapExtensionOrBuilder
      Returns:
      The extensionName.
    • getExtensionNameBytes

      public com.google.protobuf.ByteString getExtensionNameBytes()
       The name for this extension configuration.
      
       This can be used to distinguish between different extension implementations inside a dynamic
       module. For example, a module can have completely different extension implementations. When Envoy
       receives this configuration, it passes the ``extension_name`` to the dynamic module's bootstrap
       extension config init function together with the ``extension_config``. That way a module can
       decide which in-module extension implementation to use based on the name at load time.
      
       If not specified, defaults to an empty string.
       
      string extension_name = 2;
      Specified by:
      getExtensionNameBytes in interface DynamicModuleBootstrapExtensionOrBuilder
      Returns:
      The bytes for extensionName.
    • hasExtensionConfig

      public boolean hasExtensionConfig()
       The configuration for the extension chosen by ``extension_name``.
      
       This is passed to the module's bootstrap extension initialization function. Together with the
       ``extension_name``, the module can decide which in-module extension implementation to use and
       fine-tune the behavior of the extension.
      
       For example, if a module has two extension implementations, one for configuration loading and
       one for metric initialization, ``extension_name`` is used to choose the implementation. The
       ``extension_config`` can be used to configure the specific behavior of each implementation.
      
       ``google.protobuf.Struct`` is serialized as JSON before passing it to the module.
       ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly
       without the wrapper.
      
       .. code-block:: yaml
      
        # Passing a string value
        extension_config:
          "@type": "type.googleapis.com/google.protobuf.StringValue"
          value: hello
      
        # Passing raw bytes
        extension_config:
          "@type": "type.googleapis.com/google.protobuf.BytesValue"
          value: aGVsbG8=  # echo -n "hello" | base64
       
      .google.protobuf.Any extension_config = 3;
      Specified by:
      hasExtensionConfig in interface DynamicModuleBootstrapExtensionOrBuilder
      Returns:
      Whether the extensionConfig field is set.
    • getExtensionConfig

      public com.google.protobuf.Any getExtensionConfig()
       The configuration for the extension chosen by ``extension_name``.
      
       This is passed to the module's bootstrap extension initialization function. Together with the
       ``extension_name``, the module can decide which in-module extension implementation to use and
       fine-tune the behavior of the extension.
      
       For example, if a module has two extension implementations, one for configuration loading and
       one for metric initialization, ``extension_name`` is used to choose the implementation. The
       ``extension_config`` can be used to configure the specific behavior of each implementation.
      
       ``google.protobuf.Struct`` is serialized as JSON before passing it to the module.
       ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly
       without the wrapper.
      
       .. code-block:: yaml
      
        # Passing a string value
        extension_config:
          "@type": "type.googleapis.com/google.protobuf.StringValue"
          value: hello
      
        # Passing raw bytes
        extension_config:
          "@type": "type.googleapis.com/google.protobuf.BytesValue"
          value: aGVsbG8=  # echo -n "hello" | base64
       
      .google.protobuf.Any extension_config = 3;
      Specified by:
      getExtensionConfig in interface DynamicModuleBootstrapExtensionOrBuilder
      Returns:
      The extensionConfig.
    • getExtensionConfigOrBuilder

      public com.google.protobuf.AnyOrBuilder getExtensionConfigOrBuilder()
       The configuration for the extension chosen by ``extension_name``.
      
       This is passed to the module's bootstrap extension initialization function. Together with the
       ``extension_name``, the module can decide which in-module extension implementation to use and
       fine-tune the behavior of the extension.
      
       For example, if a module has two extension implementations, one for configuration loading and
       one for metric initialization, ``extension_name`` is used to choose the implementation. The
       ``extension_config`` can be used to configure the specific behavior of each implementation.
      
       ``google.protobuf.Struct`` is serialized as JSON before passing it to the module.
       ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly
       without the wrapper.
      
       .. code-block:: yaml
      
        # Passing a string value
        extension_config:
          "@type": "type.googleapis.com/google.protobuf.StringValue"
          value: hello
      
        # Passing raw bytes
        extension_config:
          "@type": "type.googleapis.com/google.protobuf.BytesValue"
          value: aGVsbG8=  # echo -n "hello" | base64
       
      .google.protobuf.Any extension_config = 3;
      Specified by:
      getExtensionConfigOrBuilder in interface DynamicModuleBootstrapExtensionOrBuilder
    • 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 DynamicModuleBootstrapExtension parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
      Throws:
      com.google.protobuf.InvalidProtocolBufferException
    • parseFrom

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

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

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

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

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

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

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

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

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

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

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

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

      public static DynamicModuleBootstrapExtension.Builder newBuilder()
    • newBuilder

    • toBuilder

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

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

      public static DynamicModuleBootstrapExtension getDefaultInstance()
    • parser

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

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