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