blob: 0f3d9974079b7b71ee566913278b839431df4ad2 [file] [log] [blame]
syntax = "proto3";
package xds.core.v3;
import "xds/annotations/v3/status.proto";
import "xds/core/v3/context_params.proto";
import "validate/validate.proto";
option java_outer_classname = "ResourceNameProto";
option java_multiple_files = true;
option java_package = "com.github.xds.core.v3";
option go_package = "github.com/cncf/xds/go/xds/core/v3";
option (xds.annotations.v3.file_status).work_in_progress = true;
// xDS resource name. This has a canonical xdstp:// URI representation:
//
// xdstp://{authority}/{type_url}/{id}?{context_params}
//
// where context_params take the form of URI query parameters.
//
// A xDS resource name fully identifies a network resource for transport
// purposes. xDS resource names in this form appear only in discovery
// request/response messages used with the xDS transport.
message ResourceName {
// Opaque identifier for the resource. Any '/' will not be escaped during URI
// encoding and will form part of the URI path.
string id = 1;
// Logical authority for resource (not necessarily transport network address).
// Authorities are opaque in the xDS API, data-plane load balancers will map
// them to concrete network transports such as an xDS management server.
string authority = 2;
// Fully qualified resource type (as in type URL without types.googleapis.com/
// prefix).
string resource_type = 3 [(validate.rules).string = {min_len: 1}];
// Additional parameters that can be used to select resource variants.
ContextParams context = 4;
}