consul/proto-public/pbmesh/v1alpha1/proxy_state.proto

57 lines
2.9 KiB
Protocol Buffer
Raw Normal View History

// Copyright (c) HashiCorp, Inc.
[COMPLIANCE] License changes (#18443) * 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>
2023-08-11 13:12:13 +00:00
// SPDX-License-Identifier: BUSL-1.1
syntax = "proto3";
package hashicorp.consul.mesh.v1alpha1;
import "pbmesh/v1alpha1/pbproxystate/access_logs.proto";
import "pbmesh/v1alpha1/pbproxystate/cluster.proto";
import "pbmesh/v1alpha1/pbproxystate/endpoints.proto";
import "pbmesh/v1alpha1/pbproxystate/escape_hatches.proto";
import "pbmesh/v1alpha1/pbproxystate/listener.proto";
import "pbmesh/v1alpha1/pbproxystate/references.proto";
import "pbmesh/v1alpha1/pbproxystate/route.proto";
import "pbmesh/v1alpha1/pbproxystate/transport_socket.proto";
import "pbresource/resource.proto";
message ProxyStateTemplate {
// proxy_state is the partially filled out ProxyState resource. The Endpoints, LeafCertificates and TrustBundles fields will need filling in after the resource is stored.
ProxyState proxy_state = 1;
// required_endpoints is a map of arbitrary string names to endpoint refs that need fetching by the proxy state controller.
map<string, pbproxystate.EndpointRef> required_endpoints = 2;
// required_leaf_certificates is a map of arbitrary string names to leaf certificates that need fetching/generation by the proxy state controller.
map<string, pbproxystate.LeafCertificateRef> required_leaf_certificates = 3;
// required_trust_bundles is a map of arbitrary string names to trust bundle refs that need fetching by the proxy state controller.
map<string, pbproxystate.TrustBundleRef> required_trust_bundles = 4;
}
message ProxyState {
// id is this proxy's identity. This should correspond to the workload identity that this proxy of
// the workload this proxy represents.
hashicorp.consul.resource.Reference identity = 1;
// listeners is a list of listeners for this proxy.
repeated pbproxystate.Listener listeners = 2;
// clusters is a map from cluster name to clusters. The keys are referenced from listeners or routes.
map<string, pbproxystate.Cluster> clusters = 3;
// routes is a map from route name to routes. The keys are referenced from listeners.
map<string, pbproxystate.Route> routes = 4;
// endpoints is a map from cluster name to endpoints.
map<string, pbproxystate.Endpoints> endpoints = 5;
// leaf certificates is a map from UUID to leaf certificates.
map<string, pbproxystate.LeafCertificate> leaf_certificates = 6;
// trust bundles is a map from peer name to trust bundles.
map<string, pbproxystate.TrustBundle> trust_bundles = 7;
// tls has TLS configuration for this proxy.
pbproxystate.TLS tls = 8;
// intention_default_allow is the default action for intentions. This determines how the Envoy RBAC filters are generated.
bool intention_default_allow = 9;
// escape defines top level escape hatches. These are user configured json strings that configure an entire piece of listener or cluster Envoy configuration.
pbproxystate.EscapeHatches escape = 10;
// access_logs configures access logging for this proxy.
pbproxystate.AccessLogs access_logs = 11;
}