syntax = "proto3";

package envoy.api.v2.listener;

option java_outer_classname = "UdpListenerConfigProto";
option java_multiple_files = true;
option java_package = "io.envoyproxy.envoy.api.v2.listener";
option csharp_namespace = "Envoy.Api.V2.ListenerNS";
option ruby_package = "Envoy.Api.V2.ListenerNS";

import "google/protobuf/any.proto";
import "google/protobuf/struct.proto";

// [#protodoc-title: Udp Listener Config]
// Listener :ref:`configuration overview <config_listeners>`

message UdpListenerConfig {
  // Used to look up UDP listener factory, matches "raw_udp_listener" or
  // "quic_listener" to create a specific udp listener.
  // If not specified, treat as "raw_udp_listener".
  string udp_listener_name = 1;

  // Used to create a specific listener factory. To some factory, e.g.
  // "raw_udp_listener", config is not needed.
  oneof config_type {
    google.protobuf.Struct config = 2;

    google.protobuf.Any typed_config = 3;
  }
}
