// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;

namespace Pulumi.Kops.Inputs
{

    public sealed class ClusterKubeControllerManagerArgs : global::Pulumi.ResourceArgs
    {
        [Input("allocateNodeCidrs")]
        public Input<bool>? AllocateNodeCidrs { get; set; }

        [Input("attachDetachReconcileSyncPeriod")]
        public Input<string>? AttachDetachReconcileSyncPeriod { get; set; }

        [Input("authenticationKubeconfig")]
        public Input<string>? AuthenticationKubeconfig { get; set; }

        [Input("authorizationAlwaysAllowPaths")]
        private InputList<string>? _authorizationAlwaysAllowPaths;
        public InputList<string> AuthorizationAlwaysAllowPaths
        {
            get => _authorizationAlwaysAllowPaths ?? (_authorizationAlwaysAllowPaths = new InputList<string>());
            set => _authorizationAlwaysAllowPaths = value;
        }

        [Input("authorizationKubeconfig")]
        public Input<string>? AuthorizationKubeconfig { get; set; }

        [Input("cidrAllocatorType")]
        public Input<string>? CidrAllocatorType { get; set; }

        /// <summary>
        /// - cloud_provider_spec - CloudProvider configures the cloud provider to use.
        /// </summary>
        [Input("cloudProvider")]
        public Input<string>? CloudProvider { get; set; }

        [Input("clusterCidr")]
        public Input<string>? ClusterCidr { get; set; }

        [Input("clusterName")]
        public Input<string>? ClusterName { get; set; }

        [Input("concurrentDeploymentSyncs")]
        public Input<int>? ConcurrentDeploymentSyncs { get; set; }

        [Input("concurrentEndpointSyncs")]
        public Input<int>? ConcurrentEndpointSyncs { get; set; }

        [Input("concurrentNamespaceSyncs")]
        public Input<int>? ConcurrentNamespaceSyncs { get; set; }

        [Input("concurrentRcSyncs")]
        public Input<int>? ConcurrentRcSyncs { get; set; }

        [Input("concurrentReplicasetSyncs")]
        public Input<int>? ConcurrentReplicasetSyncs { get; set; }

        [Input("concurrentResourceQuotaSyncs")]
        public Input<int>? ConcurrentResourceQuotaSyncs { get; set; }

        [Input("concurrentServiceSyncs")]
        public Input<int>? ConcurrentServiceSyncs { get; set; }

        [Input("concurrentServiceaccountTokenSyncs")]
        public Input<int>? ConcurrentServiceaccountTokenSyncs { get; set; }

        [Input("configureCloudRoutes")]
        public Input<bool>? ConfigureCloudRoutes { get; set; }

        [Input("controllers")]
        private InputList<string>? _controllers;
        public InputList<string> Controllers
        {
            get => _controllers ?? (_controllers = new InputList<string>());
            set => _controllers = value;
        }

        [Input("disableAttachDetachReconcileSync")]
        public Input<bool>? DisableAttachDetachReconcileSync { get; set; }

        [Input("enableLeaderMigration")]
        public Input<bool>? EnableLeaderMigration { get; set; }

        [Input("enableProfiling")]
        public Input<bool>? EnableProfiling { get; set; }

        [Input("experimentalClusterSigningDuration")]
        public Input<string>? ExperimentalClusterSigningDuration { get; set; }

        [Input("externalCloudVolumePlugin")]
        public Input<string>? ExternalCloudVolumePlugin { get; set; }

        [Input("featureGates")]
        private InputMap<string>? _featureGates;
        public InputMap<string> FeatureGates
        {
            get => _featureGates ?? (_featureGates = new InputMap<string>());
            set => _featureGates = value;
        }

        [Input("horizontalPodAutoscalerCpuInitializationPeriod")]
        public Input<string>? HorizontalPodAutoscalerCpuInitializationPeriod { get; set; }

        [Input("horizontalPodAutoscalerDownscaleDelay")]
        public Input<string>? HorizontalPodAutoscalerDownscaleDelay { get; set; }

        [Input("horizontalPodAutoscalerDownscaleStabilization")]
        public Input<string>? HorizontalPodAutoscalerDownscaleStabilization { get; set; }

        [Input("horizontalPodAutoscalerInitialReadinessDelay")]
        public Input<string>? HorizontalPodAutoscalerInitialReadinessDelay { get; set; }

        [Input("horizontalPodAutoscalerSyncPeriod")]
        public Input<string>? HorizontalPodAutoscalerSyncPeriod { get; set; }

        [Input("horizontalPodAutoscalerTolerance")]
        public Input<string>? HorizontalPodAutoscalerTolerance { get; set; }

        [Input("horizontalPodAutoscalerUpscaleDelay")]
        public Input<string>? HorizontalPodAutoscalerUpscaleDelay { get; set; }

        [Input("horizontalPodAutoscalerUseRestClients")]
        public Input<bool>? HorizontalPodAutoscalerUseRestClients { get; set; }

        [Input("image")]
        public Input<string>? Image { get; set; }

        [Input("kubeApiBurst")]
        public Input<int>? KubeApiBurst { get; set; }

        [Input("kubeApiQps")]
        public Input<string>? KubeApiQps { get; set; }

        [Input("leaderElection")]
        public Input<Inputs.ClusterKubeControllerManagerLeaderElectionArgs>? LeaderElection { get; set; }

        [Input("logFormat")]
        public Input<string>? LogFormat { get; set; }

        [Input("logLevel")]
        public Input<int>? LogLevel { get; set; }

        [Input("master")]
        public Input<string>? Master { get; set; }

        [Input("minResyncPeriod")]
        public Input<string>? MinResyncPeriod { get; set; }

        [Input("nodeCidrMaskSize")]
        public Input<int>? NodeCidrMaskSize { get; set; }

        [Input("nodeMonitorGracePeriod")]
        public Input<string>? NodeMonitorGracePeriod { get; set; }

        [Input("nodeMonitorPeriod")]
        public Input<string>? NodeMonitorPeriod { get; set; }

        [Input("podEvictionTimeout")]
        public Input<string>? PodEvictionTimeout { get; set; }

        [Input("rootCaFile")]
        public Input<string>? RootCaFile { get; set; }

        [Input("serviceAccountPrivateKeyFile")]
        public Input<string>? ServiceAccountPrivateKeyFile { get; set; }

        [Input("terminatedPodGcThreshold")]
        public Input<int>? TerminatedPodGcThreshold { get; set; }

        [Input("tlsCertFile")]
        public Input<string>? TlsCertFile { get; set; }

        [Input("tlsCipherSuites")]
        private InputList<string>? _tlsCipherSuites;
        public InputList<string> TlsCipherSuites
        {
            get => _tlsCipherSuites ?? (_tlsCipherSuites = new InputList<string>());
            set => _tlsCipherSuites = value;
        }

        [Input("tlsMinVersion")]
        public Input<string>? TlsMinVersion { get; set; }

        [Input("tlsPrivateKeyFile")]
        public Input<string>? TlsPrivateKeyFile { get; set; }

        [Input("useServiceAccountCredentials")]
        public Input<bool>? UseServiceAccountCredentials { get; set; }

        public ClusterKubeControllerManagerArgs()
        {
        }
        public static new ClusterKubeControllerManagerArgs Empty => new ClusterKubeControllerManagerArgs();
    }
}
