envoy-types 0.7.3

Collection of protobuf types and other assets to work with the Envoy Proxy through Rust gRPC services.
Documentation
// This file is @generated by prost-build.
/// 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.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DynamicModuleBootstrapExtension {
    /// Specifies the shared-object level configuration.
    #[prost(message, optional, tag = "1")]
    pub dynamic_module_config: ::core::option::Option<
        super::super::super::dynamic_modules::v3::DynamicModuleConfig,
    >,
    /// 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.
    #[prost(string, tag = "2")]
    pub extension_name: ::prost::alloc::string::String,
    /// 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
    #[prost(message, optional, tag = "3")]
    pub extension_config: ::core::option::Option<
        super::super::super::super::super::google::protobuf::Any,
    >,
}
impl ::prost::Name for DynamicModuleBootstrapExtension {
    const NAME: &'static str = "DynamicModuleBootstrapExtension";
    const PACKAGE: &'static str = "envoy.extensions.bootstrap.dynamic_modules.v3";
    fn full_name() -> ::prost::alloc::string::String {
        "envoy.extensions.bootstrap.dynamic_modules.v3.DynamicModuleBootstrapExtension"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "type.googleapis.com/envoy.extensions.bootstrap.dynamic_modules.v3.DynamicModuleBootstrapExtension"
            .into()
    }
}