// *** 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 ClusterApiLoadBalancerArgs : global::Pulumi.ResourceArgs
    {
        [Input("accessLog")]
        public Input<Inputs.ClusterApiLoadBalancerAccessLogArgs>? AccessLog { get; set; }

        [Input("additionalSecurityGroups")]
        private InputList<string>? _additionalSecurityGroups;
        public InputList<string> AdditionalSecurityGroups
        {
            get => _additionalSecurityGroups ?? (_additionalSecurityGroups = new InputList<string>());
            set => _additionalSecurityGroups = value;
        }

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

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

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

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

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

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

        [Input("subnets")]
        private InputList<Inputs.ClusterApiLoadBalancerSubnetArgs>? _subnets;
        public InputList<Inputs.ClusterApiLoadBalancerSubnetArgs> Subnets
        {
            get => _subnets ?? (_subnets = new InputList<Inputs.ClusterApiLoadBalancerSubnetArgs>());
            set => _subnets = value;
        }

        [Input("type", required: true)]
        public Input<string> Type { get; set; } = null!;

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

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