Repository: envoyproxy/envoy
File: api/envoy/extensions/filters/http/dynamic_modules/v3/dynamic_modules.proto (Protocol Buffers)

Code before:
  // fine-tune the behavior of the filter.
  //
  // For example, if a module has two filter implementations, one for logging and one for header
  // manipulation, ``filter_name`` is used to choose either logging or header manipulation. The
  // ``filter_config`` can be used to configure the logging level or the header manipulation
  // behavior.
  //
  // ``google.protobuf.Struct`` is serialized as JSON before passing it to the plugin.
  // ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly without
  // the wrapper.
  //
  // .. code-block:: yaml
  //
  //  # Passing in a string
  //  filter_config:
  //    "@type": "type.googleapis.com/google.protobuf.StringValue"
  //    value: hello
  //
  //  # Passing in raw bytes
  //  filter_config:
  //    "@type": "type.googleapis.com/google.protobuf.BytesValue"
  //    value: aGVsbG8= # echo -n "hello" | base64
  //
  google.protobuf.Any filter_config = 3;

  // If true, the dynamic module is a terminal filter to use without an upstream.
  //
  // The dynamic module is responsible for creating and sending the response to downstream.
  //
  // Defaults to ``false``.
  bool terminal_filter = 4;
}

// Configuration of the HTTP per-route filter for dynamic modules.
message DynamicModuleFilterPerRoute {
  // Specifies the shared-object level configuration.
  envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;

  // The name for this filter configuration.
  //
  // This can be used to distinguish between different filter implementations inside a dynamic
  // module. For example, a module can have completely different filter implementations. When Envoy
  // receives this configuration, it passes the ``per_route_config_name`` to the dynamic module's
  // HTTP per-route filter config init function together with the ``filter_config``. That way a
  // module can decide which in-module filter implementation to use based on the name at load time.
  string per_route_config_name = 2;

  // The configuration for the filter chosen by ``per_route_config_name``.
  //
  // This is passed to the module's HTTP per-route filter initialization function. Together with
  // the ``per_route_config_name``, the module can decide which in-module filter implementation to

Review comment (suggestion):
```suggestion
  // If ``true``, the dynamic module is a terminal filter to use without an upstream.
```

Code after:
  // fine-tune the behavior of the filter.
  //
  // For example, if a module has two filter implementations, one for logging and one for header
  // manipulation, ``filter_name`` is used to choose either logging or header manipulation. The
  // ``filter_config`` can be used to configure the logging level or the header manipulation
  // behavior.
  //
  // ``google.protobuf.Struct`` is serialized as JSON before passing it to the plugin.
  // ``google.protobuf.BytesValue`` and ``google.protobuf.StringValue`` are passed directly without
  // the wrapper.
  //
  // .. code-block:: yaml
  //
  //  # Passing in a string
  //  filter_config:
  //    "@type": "type.googleapis.com/google.protobuf.StringValue"
  //    value: hello
  //
  //  # Passing in raw bytes
  //  filter_config:
  //    "@type": "type.googleapis.com/google.protobuf.BytesValue"
  //    value: aGVsbG8= # echo -n "hello" | base64
  //
  google.protobuf.Any filter_config = 3;

  // If ``true``, the dynamic module is a terminal filter to use without an upstream.
  //
  // The dynamic module is responsible for creating and sending the response to downstream.
  //
  // Defaults to ``false``.
  bool terminal_filter = 4;
}

// Configuration of the HTTP per-route filter for dynamic modules.
message DynamicModuleFilterPerRoute {
  // Specifies the shared-object level configuration.
  envoy.extensions.dynamic_modules.v3.DynamicModuleConfig dynamic_module_config = 1;

  // The name for this filter configuration.
  //
  // This can be used to distinguish between different filter implementations inside a dynamic
  // module. For example, a module can have completely different filter implementations. When Envoy
  // receives this configuration, it passes the ``per_route_config_name`` to the dynamic module's
  // HTTP per-route filter config init function together with the ``filter_config``. That way a
  // module can decide which in-module filter implementation to use based on the name at load time.
  string per_route_config_name = 2;

  // The configuration for the filter chosen by ``per_route_config_name``.
  //
  // This is passed to the module's HTTP per-route filter initialization function. Together with
  // the ``per_route_config_name``, the module can decide which in-module filter implementation to