namespace ZB.MOM.WW.LmxProxy.Host.Configuration
{
    /// <summary>TLS/SSL settings for the gRPC server.</summary>
    public class TlsConfiguration
    {
        /// <summary>Enable TLS on the gRPC server. Default: false.</summary>
        public bool Enabled { get; set; } = false;

        /// <summary>PEM server certificate path. Default: certs/server.crt.</summary>
        public string ServerCertificatePath { get; set; } = "certs/server.crt";

        /// <summary>PEM server private key path. Default: certs/server.key.</summary>
        public string ServerKeyPath { get; set; } = "certs/server.key";

        /// <summary>CA certificate for mutual TLS client validation. Default: certs/ca.crt.</summary>
        public string ClientCaCertificatePath { get; set; } = "certs/ca.crt";

        /// <summary>Require client certificates (mutual TLS). Default: false.</summary>
        public bool RequireClientCertificate { get; set; } = false;

        /// <summary>Check certificate revocation lists. Default: false.</summary>
        public bool CheckCertificateRevocation { get; set; } = false;
    }
}
