syntax = "proto3"; package envoy.extensions.common.tap.v4alpha; import "envoy/config/core/v4alpha/config_source.proto"; import "envoy/config/tap/v4alpha/common.proto"; import "udpa/core/v1/resource_locator.proto"; import "udpa/annotations/status.proto"; import "udpa/annotations/versioning.proto"; import "validate/validate.proto"; option java_package = "io.envoyproxy.envoy.extensions.common.tap.v4alpha"; option java_outer_classname = "CommonProto"; option java_multiple_files = true; option (udpa.annotations.file_status).package_version_status = NEXT_MAJOR_VERSION_CANDIDATE; // [#protodoc-title: Common tap extension configuration] // Common configuration for all tap extensions. message CommonExtensionConfig { option (udpa.annotations.versioning).previous_message_type = "envoy.extensions.common.tap.v3.CommonExtensionConfig"; // [#not-implemented-hide:] message TapDSConfig { option (udpa.annotations.versioning).previous_message_type = "envoy.extensions.common.tap.v3.CommonExtensionConfig.TapDSConfig"; // Configuration for the source of TapDS updates for this Cluster. config.core.v4alpha.ConfigSource config_source = 1 [(validate.rules).message = {required: true}]; oneof name_specifier { // Tap config to request from XDS server. string name = 2; // Resource locator for TAP. This is mutually exclusive to *name*. // [#not-implemented-hide:] udpa.core.v1.ResourceLocator tap_resource_locator = 3; } } oneof config_type { option (validate.required) = true; // If specified, the tap filter will be configured via an admin handler. AdminConfig admin_config = 1; // If specified, the tap filter will be configured via a static configuration that cannot be // changed. config.tap.v4alpha.TapConfig static_config = 2; // [#not-implemented-hide:] Configuration to use for TapDS updates for the filter. TapDSConfig tapds_config = 3; } } // Configuration for the admin handler. See :ref:`here ` for // more information. message AdminConfig { option (udpa.annotations.versioning).previous_message_type = "envoy.extensions.common.tap.v3.AdminConfig"; // Opaque configuration ID. When requests are made to the admin handler, the passed opaque ID is // matched to the configured filter opaque ID to determine which filter to configure. string config_id = 1 [(validate.rules).string = {min_len: 1}]; }