
// This file was autogenerated by go-to-protobuf. Do not edit it manually!

syntax = 'proto2';

package github.com.openshift.api.config.v1;

import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
import "k8s.io/apimachinery/pkg/runtime/generated.proto";
import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
import "k8s.io/apimachinery/pkg/util/intstr/generated.proto";

// Package-wide variables from generator "generated".
option go_package = "v1";

// CertInfo relates a certificate with a private key
message CertInfo {
  // CertFile is a file containing a PEM-encoded certificate
  optional string certFile = 1;

  // KeyFile is a file containing a PEM-encoded private key for the certificate specified by CertFile
  optional string keyFile = 2;
}

// HTTPServingInfo holds configuration for serving HTTP
message HTTPServingInfo {
  // ServingInfo is the HTTP serving information
  optional ServingInfo servingInfo = 1;

  // MaxRequestsInFlight is the number of concurrent requests allowed to the server. If zero, no limit.
  optional int64 maxRequestsInFlight = 2;

  // RequestTimeoutSeconds is the number of seconds before requests are timed out. The default is 60 minutes, if
  // -1 there is no limit on requests.
  optional int64 requestTimeoutSeconds = 3;
}

// LeaderElection provides information to elect a leader
message LeaderElection {
  // disable allows leader election to be suspended while allowing a fully defaulted "normal" startup case.
  optional bool disable = 1;

  // namespace indicates which namespace the resource is in
  optional string namespace = 2;

  // name indicates what name to use for the resource
  optional string name = 3;

  // leaseDuration is the duration that non-leader candidates will wait
  // after observing a leadership renewal until attempting to acquire
  // leadership of a led but unrenewed leader slot. This is effectively the
  // maximum duration that a leader can be stopped before it is replaced
  // by another candidate. This is only applicable if leader election is
  // enabled.
  optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration leaseDuration = 4;

  // renewDeadline is the interval between attempts by the acting master to
  // renew a leadership slot before it stops leading. This must be less
  // than or equal to the lease duration. This is only applicable if leader
  // election is enabled.
  optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration renewDeadline = 5;

  // retryPeriod is the duration the clients should wait between attempting
  // acquisition and renewal of a leadership. This is only applicable if
  // leader election is enabled.
  optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration retryPeriod = 6;
}

// NamedCertificate specifies a certificate/key, and the names it should be served for
message NamedCertificate {
  // Names is a list of DNS names this certificate should be used to secure
  // A name can be a normal DNS name, or can contain leading wildcard segments.
  repeated string names = 1;

  // CertInfo is the TLS cert info for serving secure traffic
  optional CertInfo certInfo = 2;
}

// ServingInfo holds information about serving web pages
message ServingInfo {
  // BindAddress is the ip:port to serve on
  optional string bindAddress = 1;

  // BindNetwork is the type of network to bind to - defaults to "tcp4", accepts "tcp",
  // "tcp4", and "tcp6"
  optional string bindNetwork = 2;

  // CertInfo is the TLS cert info for serving secure traffic.
  // this is anonymous so that we can inline it for serialization
  optional CertInfo certInfo = 3;

  // ClientCA is the certificate bundle for all the signers that you'll recognize for incoming client certificates
  optional string clientCA = 4;

  // NamedCertificates is a list of certificates to use to secure requests to specific hostnames
  repeated NamedCertificate namedCertificates = 5;

  // MinTLSVersion is the minimum TLS version supported.
  // Values must match version names from https://golang.org/pkg/crypto/tls/#pkg-constants
  optional string minTLSVersion = 6;

  // CipherSuites contains an overridden list of ciphers for the server to support.
  // Values must match cipher suite IDs from https://golang.org/pkg/crypto/tls/#pkg-constants
  repeated string cipherSuites = 7;
}

