mirror of
https://github.com/status-im/consul.git
synced 2025-01-12 14:55:02 +00:00
5fb9df1640
* Adding explicit MPL license for sub-package This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository. * Adding explicit MPL license for sub-package This directory and its subdirectories (packages) contain files licensed with the MPLv2 `LICENSE` file in this directory and are intentionally licensed separately from the BSL `LICENSE` file at the root of this repository. * Updating the license from MPL to Business Source License Going forward, this project will be licensed under the Business Source License v1.1. Please see our blog post for more details at <Blog URL>, FAQ at www.hashicorp.com/licensing-faq, and details of the license at www.hashicorp.com/bsl. * add missing license headers * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 * Update copyright file headers to BUSL-1.1 --------- Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
109 lines
3.5 KiB
Protocol Buffer
109 lines
3.5 KiB
Protocol Buffer
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
// Package dataplane provides a service on Consul servers for the Consul Dataplane
|
|
|
|
syntax = "proto3";
|
|
|
|
package hashicorp.consul.dataplane;
|
|
|
|
import "annotations/ratelimit/ratelimit.proto";
|
|
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;
|
|
DATAPLANE_FEATURES_FIPS = 4;
|
|
}
|
|
|
|
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;
|
|
|
|
// ServiceKind API Gateway is an API Gateway for the Connect feature.
|
|
// This service will ingress connections in to the service mesh.
|
|
SERVICE_KIND_API_GATEWAY = 6;
|
|
}
|
|
|
|
message GetEnvoyBootstrapParamsResponse {
|
|
ServiceKind service_kind = 1;
|
|
// service is be used to identify the service (as the local cluster name and
|
|
// in metric tags). If the service is a connect proxy it will be the name of
|
|
// the proxy's destination service, for gateways it will be the gateway
|
|
// service's name.
|
|
string service = 2;
|
|
string namespace = 3;
|
|
string partition = 4;
|
|
string datacenter = 5;
|
|
google.protobuf.Struct config = 6;
|
|
string node_id = 7;
|
|
string node_name = 8;
|
|
repeated string access_logs = 9;
|
|
}
|
|
|
|
service DataplaneService {
|
|
rpc GetSupportedDataplaneFeatures(GetSupportedDataplaneFeaturesRequest) returns (GetSupportedDataplaneFeaturesResponse) {
|
|
option (hashicorp.consul.internal.ratelimit.spec) = {
|
|
operation_type: OPERATION_TYPE_READ,
|
|
operation_category: OPERATION_CATEGORY_DATAPLANE
|
|
};
|
|
}
|
|
|
|
rpc GetEnvoyBootstrapParams(GetEnvoyBootstrapParamsRequest) returns (GetEnvoyBootstrapParamsResponse) {
|
|
option (hashicorp.consul.internal.ratelimit.spec) = {
|
|
operation_type: OPERATION_TYPE_READ,
|
|
operation_category: OPERATION_CATEGORY_DATAPLANE
|
|
};
|
|
}
|
|
}
|