// *** 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.Outputs
{

    [OutputType]
    public sealed class GetClusterKubeApiServerResult
    {
        public readonly string Address;
        public readonly string AdmissionControlConfigFile;
        public readonly ImmutableArray<string> AdmissionControls;
        public readonly string AdvertiseAddress;
        public readonly bool AllowPrivileged;
        public readonly Outputs.GetClusterKubeApiServerAnonymousAuthResult? AnonymousAuth;
        public readonly ImmutableArray<string> ApiAudiences;
        public readonly int ApiServerCount;
        public readonly ImmutableArray<string> AppendAdmissionPlugins;
        public readonly bool AuditDynamicConfiguration;
        public readonly string AuditLogFormat;
        public readonly int AuditLogMaxAge;
        public readonly int AuditLogMaxBackups;
        public readonly int AuditLogMaxSize;
        public readonly string AuditLogPath;
        public readonly string AuditPolicyFile;
        public readonly int AuditWebhookBatchBufferSize;
        public readonly int AuditWebhookBatchMaxSize;
        public readonly string AuditWebhookBatchMaxWait;
        public readonly int AuditWebhookBatchThrottleBurst;
        public readonly bool AuditWebhookBatchThrottleEnable;
        public readonly string AuditWebhookBatchThrottleQps;
        public readonly string AuditWebhookConfigFile;
        public readonly string AuditWebhookInitialBackoff;
        public readonly string AuditWebhookMode;
        public readonly string AuthenticationTokenWebhookCacheTtl;
        public readonly string AuthenticationTokenWebhookConfigFile;
        public readonly string AuthorizationMode;
        public readonly string AuthorizationRbacSuperUser;
        public readonly string AuthorizationWebhookCacheAuthorizedTtl;
        public readonly string AuthorizationWebhookCacheUnauthorizedTtl;
        public readonly string AuthorizationWebhookConfigFile;
        public readonly string BasicAuthFile;
        public readonly string BindAddress;
        public readonly string ClientCaFile;
        /// <summary>
        /// - cloud_provider_spec - CloudProvider configures the cloud provider to use.
        /// </summary>
        public readonly string CloudProvider;
        public readonly ImmutableArray<string> CorsAllowedOrigins;
        public readonly string CpuLimit;
        public readonly string CpuRequest;
        public readonly int DefaultNotReadyTolerationSeconds;
        public readonly int DefaultUnreachableTolerationSeconds;
        public readonly ImmutableArray<string> DisableAdmissionPlugins;
        public readonly bool DisableBasicAuth;
        public readonly ImmutableArray<string> EnableAdmissionPlugins;
        public readonly bool EnableAggregatorRouting;
        public readonly bool EnableBootstrapAuthToken;
        public readonly bool EnableProfiling;
        public readonly string EncryptionProviderConfig;
        public readonly string EtcdCaFile;
        public readonly string EtcdCertFile;
        public readonly string EtcdKeyFile;
        public readonly bool EtcdQuorumRead;
        public readonly ImmutableArray<string> EtcdServers;
        public readonly ImmutableArray<string> EtcdServersOverrides;
        public readonly string EventTtl;
        public readonly string ExperimentalEncryptionProviderConfig;
        public readonly ImmutableDictionary<string, string> FeatureGates;
        public readonly int Http2MaxStreamsPerConnection;
        public readonly string Image;
        public readonly string InsecureBindAddress;
        public readonly int InsecurePort;
        public readonly string KubeletCertificateAuthority;
        public readonly string KubeletClientCertificate;
        public readonly string KubeletClientKey;
        public readonly ImmutableArray<string> KubeletPreferredAddressTypes;
        public readonly string LogFormat;
        public readonly int LogLevel;
        public readonly int MaxMutatingRequestsInflight;
        public readonly int MaxRequestsInflight;
        public readonly string MemoryLimit;
        public readonly string MemoryRequest;
        public readonly int MinRequestTimeout;
        public readonly string OidcCaFile;
        public readonly string OidcClientId;
        public readonly string OidcGroupsClaim;
        public readonly string OidcGroupsPrefix;
        public readonly string OidcIssuerUrl;
        public readonly ImmutableArray<string> OidcRequiredClaims;
        public readonly string OidcUsernameClaim;
        public readonly string OidcUsernamePrefix;
        public readonly string ProxyClientCertFile;
        public readonly string ProxyClientKeyFile;
        public readonly string RequestTimeout;
        public readonly ImmutableArray<string> RequestheaderAllowedNames;
        public readonly string RequestheaderClientCaFile;
        public readonly ImmutableArray<string> RequestheaderExtraHeaderPrefixes;
        public readonly ImmutableArray<string> RequestheaderGroupHeaders;
        public readonly ImmutableArray<string> RequestheaderUsernameHeaders;
        public readonly ImmutableDictionary<string, string> RuntimeConfig;
        public readonly int SecurePort;
        public readonly string ServiceAccountIssuer;
        public readonly string ServiceAccountJwksuri;
        public readonly ImmutableArray<string> ServiceAccountKeyFiles;
        public readonly string ServiceAccountSigningKeyFile;
        /// <summary>
        /// - String - ServiceClusterIPRange is the CIDR, from the internal network, where we allocate IPs for services.
        /// </summary>
        public readonly string ServiceClusterIpRange;
        public readonly string ServiceNodePortRange;
        public readonly string StorageBackend;
        public readonly int TargetRamMb;
        public readonly string TlsCertFile;
        public readonly ImmutableArray<string> TlsCipherSuites;
        public readonly string TlsMinVersion;
        public readonly string TlsPrivateKeyFile;
        public readonly string TokenAuthFile;

        [OutputConstructor]
        private GetClusterKubeApiServerResult(
            string address,

            string admissionControlConfigFile,

            ImmutableArray<string> admissionControls,

            string advertiseAddress,

            bool allowPrivileged,

            Outputs.GetClusterKubeApiServerAnonymousAuthResult? anonymousAuth,

            ImmutableArray<string> apiAudiences,

            int apiServerCount,

            ImmutableArray<string> appendAdmissionPlugins,

            bool auditDynamicConfiguration,

            string auditLogFormat,

            int auditLogMaxAge,

            int auditLogMaxBackups,

            int auditLogMaxSize,

            string auditLogPath,

            string auditPolicyFile,

            int auditWebhookBatchBufferSize,

            int auditWebhookBatchMaxSize,

            string auditWebhookBatchMaxWait,

            int auditWebhookBatchThrottleBurst,

            bool auditWebhookBatchThrottleEnable,

            string auditWebhookBatchThrottleQps,

            string auditWebhookConfigFile,

            string auditWebhookInitialBackoff,

            string auditWebhookMode,

            string authenticationTokenWebhookCacheTtl,

            string authenticationTokenWebhookConfigFile,

            string authorizationMode,

            string authorizationRbacSuperUser,

            string authorizationWebhookCacheAuthorizedTtl,

            string authorizationWebhookCacheUnauthorizedTtl,

            string authorizationWebhookConfigFile,

            string basicAuthFile,

            string bindAddress,

            string clientCaFile,

            string cloudProvider,

            ImmutableArray<string> corsAllowedOrigins,

            string cpuLimit,

            string cpuRequest,

            int defaultNotReadyTolerationSeconds,

            int defaultUnreachableTolerationSeconds,

            ImmutableArray<string> disableAdmissionPlugins,

            bool disableBasicAuth,

            ImmutableArray<string> enableAdmissionPlugins,

            bool enableAggregatorRouting,

            bool enableBootstrapAuthToken,

            bool enableProfiling,

            string encryptionProviderConfig,

            string etcdCaFile,

            string etcdCertFile,

            string etcdKeyFile,

            bool etcdQuorumRead,

            ImmutableArray<string> etcdServers,

            ImmutableArray<string> etcdServersOverrides,

            string eventTtl,

            string experimentalEncryptionProviderConfig,

            ImmutableDictionary<string, string> featureGates,

            int http2MaxStreamsPerConnection,

            string image,

            string insecureBindAddress,

            int insecurePort,

            string kubeletCertificateAuthority,

            string kubeletClientCertificate,

            string kubeletClientKey,

            ImmutableArray<string> kubeletPreferredAddressTypes,

            string logFormat,

            int logLevel,

            int maxMutatingRequestsInflight,

            int maxRequestsInflight,

            string memoryLimit,

            string memoryRequest,

            int minRequestTimeout,

            string oidcCaFile,

            string oidcClientId,

            string oidcGroupsClaim,

            string oidcGroupsPrefix,

            string oidcIssuerUrl,

            ImmutableArray<string> oidcRequiredClaims,

            string oidcUsernameClaim,

            string oidcUsernamePrefix,

            string proxyClientCertFile,

            string proxyClientKeyFile,

            string requestTimeout,

            ImmutableArray<string> requestheaderAllowedNames,

            string requestheaderClientCaFile,

            ImmutableArray<string> requestheaderExtraHeaderPrefixes,

            ImmutableArray<string> requestheaderGroupHeaders,

            ImmutableArray<string> requestheaderUsernameHeaders,

            ImmutableDictionary<string, string> runtimeConfig,

            int securePort,

            string serviceAccountIssuer,

            string serviceAccountJwksuri,

            ImmutableArray<string> serviceAccountKeyFiles,

            string serviceAccountSigningKeyFile,

            string serviceClusterIpRange,

            string serviceNodePortRange,

            string storageBackend,

            int targetRamMb,

            string tlsCertFile,

            ImmutableArray<string> tlsCipherSuites,

            string tlsMinVersion,

            string tlsPrivateKeyFile,

            string tokenAuthFile)
        {
            Address = address;
            AdmissionControlConfigFile = admissionControlConfigFile;
            AdmissionControls = admissionControls;
            AdvertiseAddress = advertiseAddress;
            AllowPrivileged = allowPrivileged;
            AnonymousAuth = anonymousAuth;
            ApiAudiences = apiAudiences;
            ApiServerCount = apiServerCount;
            AppendAdmissionPlugins = appendAdmissionPlugins;
            AuditDynamicConfiguration = auditDynamicConfiguration;
            AuditLogFormat = auditLogFormat;
            AuditLogMaxAge = auditLogMaxAge;
            AuditLogMaxBackups = auditLogMaxBackups;
            AuditLogMaxSize = auditLogMaxSize;
            AuditLogPath = auditLogPath;
            AuditPolicyFile = auditPolicyFile;
            AuditWebhookBatchBufferSize = auditWebhookBatchBufferSize;
            AuditWebhookBatchMaxSize = auditWebhookBatchMaxSize;
            AuditWebhookBatchMaxWait = auditWebhookBatchMaxWait;
            AuditWebhookBatchThrottleBurst = auditWebhookBatchThrottleBurst;
            AuditWebhookBatchThrottleEnable = auditWebhookBatchThrottleEnable;
            AuditWebhookBatchThrottleQps = auditWebhookBatchThrottleQps;
            AuditWebhookConfigFile = auditWebhookConfigFile;
            AuditWebhookInitialBackoff = auditWebhookInitialBackoff;
            AuditWebhookMode = auditWebhookMode;
            AuthenticationTokenWebhookCacheTtl = authenticationTokenWebhookCacheTtl;
            AuthenticationTokenWebhookConfigFile = authenticationTokenWebhookConfigFile;
            AuthorizationMode = authorizationMode;
            AuthorizationRbacSuperUser = authorizationRbacSuperUser;
            AuthorizationWebhookCacheAuthorizedTtl = authorizationWebhookCacheAuthorizedTtl;
            AuthorizationWebhookCacheUnauthorizedTtl = authorizationWebhookCacheUnauthorizedTtl;
            AuthorizationWebhookConfigFile = authorizationWebhookConfigFile;
            BasicAuthFile = basicAuthFile;
            BindAddress = bindAddress;
            ClientCaFile = clientCaFile;
            CloudProvider = cloudProvider;
            CorsAllowedOrigins = corsAllowedOrigins;
            CpuLimit = cpuLimit;
            CpuRequest = cpuRequest;
            DefaultNotReadyTolerationSeconds = defaultNotReadyTolerationSeconds;
            DefaultUnreachableTolerationSeconds = defaultUnreachableTolerationSeconds;
            DisableAdmissionPlugins = disableAdmissionPlugins;
            DisableBasicAuth = disableBasicAuth;
            EnableAdmissionPlugins = enableAdmissionPlugins;
            EnableAggregatorRouting = enableAggregatorRouting;
            EnableBootstrapAuthToken = enableBootstrapAuthToken;
            EnableProfiling = enableProfiling;
            EncryptionProviderConfig = encryptionProviderConfig;
            EtcdCaFile = etcdCaFile;
            EtcdCertFile = etcdCertFile;
            EtcdKeyFile = etcdKeyFile;
            EtcdQuorumRead = etcdQuorumRead;
            EtcdServers = etcdServers;
            EtcdServersOverrides = etcdServersOverrides;
            EventTtl = eventTtl;
            ExperimentalEncryptionProviderConfig = experimentalEncryptionProviderConfig;
            FeatureGates = featureGates;
            Http2MaxStreamsPerConnection = http2MaxStreamsPerConnection;
            Image = image;
            InsecureBindAddress = insecureBindAddress;
            InsecurePort = insecurePort;
            KubeletCertificateAuthority = kubeletCertificateAuthority;
            KubeletClientCertificate = kubeletClientCertificate;
            KubeletClientKey = kubeletClientKey;
            KubeletPreferredAddressTypes = kubeletPreferredAddressTypes;
            LogFormat = logFormat;
            LogLevel = logLevel;
            MaxMutatingRequestsInflight = maxMutatingRequestsInflight;
            MaxRequestsInflight = maxRequestsInflight;
            MemoryLimit = memoryLimit;
            MemoryRequest = memoryRequest;
            MinRequestTimeout = minRequestTimeout;
            OidcCaFile = oidcCaFile;
            OidcClientId = oidcClientId;
            OidcGroupsClaim = oidcGroupsClaim;
            OidcGroupsPrefix = oidcGroupsPrefix;
            OidcIssuerUrl = oidcIssuerUrl;
            OidcRequiredClaims = oidcRequiredClaims;
            OidcUsernameClaim = oidcUsernameClaim;
            OidcUsernamePrefix = oidcUsernamePrefix;
            ProxyClientCertFile = proxyClientCertFile;
            ProxyClientKeyFile = proxyClientKeyFile;
            RequestTimeout = requestTimeout;
            RequestheaderAllowedNames = requestheaderAllowedNames;
            RequestheaderClientCaFile = requestheaderClientCaFile;
            RequestheaderExtraHeaderPrefixes = requestheaderExtraHeaderPrefixes;
            RequestheaderGroupHeaders = requestheaderGroupHeaders;
            RequestheaderUsernameHeaders = requestheaderUsernameHeaders;
            RuntimeConfig = runtimeConfig;
            SecurePort = securePort;
            ServiceAccountIssuer = serviceAccountIssuer;
            ServiceAccountJwksuri = serviceAccountJwksuri;
            ServiceAccountKeyFiles = serviceAccountKeyFiles;
            ServiceAccountSigningKeyFile = serviceAccountSigningKeyFile;
            ServiceClusterIpRange = serviceClusterIpRange;
            ServiceNodePortRange = serviceNodePortRange;
            StorageBackend = storageBackend;
            TargetRamMb = targetRamMb;
            TlsCertFile = tlsCertFile;
            TlsCipherSuites = tlsCipherSuites;
            TlsMinVersion = tlsMinVersion;
            TlsPrivateKeyFile = tlsPrivateKeyFile;
            TokenAuthFile = tokenAuthFile;
        }
    }
}
