// Package dataplane provides a service on Consul servers for the Consul Dataplane
syntax = "proto3" ;
package dataplane ;
import "google/protobuf/struct.proto" ;
message GetSupportedDataplaneFeaturesRequest { }
enum DataplaneFeatures {
DATAPLANE_FEATURES_UNSPECIFIED = 0 ;
DATAPLANE_FEATURES_WATCH_SERVERS = 1 ;
DATAPLANE_FEATURES_EDGE_CERTIFICATE_MANAGEMENT = 2 ;
DATAPLANE_FEATURES_ENVOY_BOOTSTRAP_CONFIGURATION = 3 ;
}
message DataplaneFeatureSupport {
DataplaneFeatures feature_name = 1 ;
bool supported = 2 ;
}
message GetSupportedDataplaneFeaturesResponse {
repeated DataplaneFeatureSupport supported_dataplane_features = 1 ;
}
message GetEnvoyBootstrapParamsRequest {
oneof node_spec {
string node_id = 1 ;
string node_name = 2 ;
}
// The proxy service ID
string service_id = 3 ;
string partition = 4 ;
string namespace = 5 ;
}
enum ServiceKind {
// ServiceKind UNSPECIFIED is a sentinel value for when a request
// did not specify a service kind. This will be treated the same
// as if TYPICAL was explicitly used.
SERVICE_KIND_UNSPECIFIED = 0 ;
// ServiceKind Typical is a typical, classic Consul service. This is
// represented by the absence of a value. This was chosen for ease of
// backwards compatibility: existing services in the catalog would
// default to the typical service.
SERVICE_KIND_TYPICAL = 1 ;
// ServiceKind Connect Proxy is a proxy for the Connect feature. This
// service proxies another service within Consul and speaks the connect
// protocol.
SERVICE_KIND_CONNECT_PROXY = 2 ;
// ServiceKind Mesh Gateway is a Mesh Gateway for the Connect feature. This
// service will proxy connections based off the SNI header set by other
// connect proxies.
SERVICE_KIND_MESH_GATEWAY = 3 ;
// ServiceKind Terminating Gateway is a Terminating Gateway for the Connect
// feature. This service will proxy connections to services outside the mesh.
SERVICE_KIND_TERMINATING_GATEWAY = 4 ;
// ServiceKind Ingress Gateway is an Ingress Gateway for the Connect feature.
// This service will ingress connections into the service mesh.
SERVICE_KIND_INGRESS_GATEWAY = 5 ;
}
message GetEnvoyBootstrapParamsResponse {
ServiceKind service_kind = 1 ;
// The destination service name
string service = 2 ;
string namespace = 3 ;
string partition = 4 ;
string datacenter = 5 ;
google.protobuf.Struct config = 6 ;
}
service DataplaneService {
rpc GetSupportedDataplaneFeatures ( GetSupportedDataplaneFeaturesRequest ) returns ( GetSupportedDataplaneFeaturesResponse ) { }
rpc GetEnvoyBootstrapParams ( GetEnvoyBootstrapParamsRequest ) returns ( GetEnvoyBootstrapParamsResponse ) { }
}