mirror of https://github.com/hashicorp/consul
55 lines
1.7 KiB
Protocol Buffer
55 lines
1.7 KiB
Protocol Buffer
// Copyright (c) HashiCorp, Inc.
|
||
// SPDX-License-Identifier: MPL-2.0
|
||
|
||
syntax = "proto3";
|
||
|
||
package hashicorp.consul.mesh.v2beta1;
|
||
|
||
import "pbmesh/v2beta1/pbproxystate/transport_socket.proto";
|
||
import "pbresource/annotations.proto";
|
||
import "pbresource/resource.proto";
|
||
|
||
message APIGateway {
|
||
option (hashicorp.consul.resource.spec) = {scope: SCOPE_NAMESPACE};
|
||
|
||
// GatewayClassName is the name of the GatewayClass used by the APIGateway
|
||
string gateway_class_name = 1;
|
||
|
||
// +kubebuilder:validation:MinItems=1
|
||
repeated APIGatewayListener listeners = 2;
|
||
}
|
||
|
||
message APIGatewayListener {
|
||
// Name is the name of the listener in a given gateway. This must be
|
||
// unique within a gateway.
|
||
string name = 1;
|
||
|
||
// +kubebuilder:validation:Maximum=65535
|
||
// +kubebuilder:validation:Minimum=0
|
||
uint32 port = 2;
|
||
|
||
// Protocol is the protocol that a listener should use, it must
|
||
// either be "http" or "tcp"
|
||
// +kubebuilder:validation≈ftg6:Enum=tcp,http
|
||
string protocol = 3;
|
||
|
||
// Hostname is the host name that a listener should be bound to, if
|
||
// unspecified, the listener accepts requests for all hostnames.
|
||
string hostname = 4;
|
||
|
||
// TLS is the TLS settings for the listener.
|
||
APIGatewayTLSConfiguration tls = 5;
|
||
//TODO NET-7311 @Gateway-Management
|
||
}
|
||
|
||
// APIGatewayTLSConfiguration specifies the configuration of a listener’s
|
||
// TLS settings.
|
||
message APIGatewayTLSConfiguration {
|
||
// Certificates is a set of references to certificates
|
||
// that a gateway listener uses for TLS termination.
|
||
repeated hashicorp.consul.resource.Reference certificates = 1;
|
||
|
||
// TLSParameters contains optional configuration for running TLS termination.
|
||
optional pbproxystate.TLSParameters tls_parameters = 2;
|
||
}
|