1syntax = "proto3"; 2 3package envoy.config.core.v3; 4 5import "google/protobuf/duration.proto"; 6 7import "udpa/annotations/status.proto"; 8import "udpa/annotations/versioning.proto"; 9import "validate/validate.proto"; 10 11option java_package = "io.envoyproxy.envoy.config.core.v3"; 12option java_outer_classname = "HttpUriProto"; 13option java_multiple_files = true; 14option go_package = "github.com/envoyproxy/go-control-plane/envoy/config/core/v3;corev3"; 15option (udpa.annotations.file_status).package_version_status = ACTIVE; 16 17// [#protodoc-title: HTTP service URI ] 18 19// Envoy external URI descriptor 20message HttpUri { 21 option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.HttpUri"; 22 23 // The HTTP server URI. It should be a full FQDN with protocol, host and path. 24 // 25 // Example: 26 // 27 // .. code-block:: yaml 28 // 29 // uri: https://www.googleapis.com/oauth2/v1/certs 30 // 31 string uri = 1 [(validate.rules).string = {min_len: 1}]; 32 33 // Specify how ``uri`` is to be fetched. Today, this requires an explicit 34 // cluster, but in the future we may support dynamic cluster creation or 35 // inline DNS resolution. See `issue 36 // <https://github.com/envoyproxy/envoy/issues/1606>`_. 37 oneof http_upstream_type { 38 option (validate.required) = true; 39 40 // A cluster is created in the Envoy "cluster_manager" config 41 // section. This field specifies the cluster name. 42 // 43 // Example: 44 // 45 // .. code-block:: yaml 46 // 47 // cluster: jwks_cluster 48 // 49 string cluster = 2 [(validate.rules).string = {min_len: 1}]; 50 } 51 52 // Sets the maximum duration in milliseconds that a response can take to arrive upon request. 53 google.protobuf.Duration timeout = 3 [(validate.rules).duration = { 54 required: true 55 gte {} 56 }]; 57} 58