// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

syntax = "proto3";

package hashicorp.consul.mesh.v2beta1;

import "google/protobuf/duration.proto";

// Referenced by ProxyConfiguration
message ConnectionConfig {
  // +kubebuilder:validation:Format=duration
  google.protobuf.Duration connect_timeout = 1;
  // +kubebuilder:validation:Format=duration
  google.protobuf.Duration request_timeout = 2;
}

// Referenced by ProxyConfiguration
message InboundConnectionsConfig {
  uint32 max_inbound_connections = 1;
  BalanceConnections balance_inbound_connections = 2;
}

// +kubebuilder:validation:Enum=BALANCE_CONNECTIONS_DEFAULT;BALANCE_CONNECTIONS_EXACT
// +kubebuilder:validation:Type=string
enum BalanceConnections {
  // buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX
  BALANCE_CONNECTIONS_DEFAULT = 0;
  BALANCE_CONNECTIONS_EXACT = 1;
}
