import * as pulumi from "@pulumi/pulumi";
import * as outputs from "../types/output";
/**
 * Resource Type definition for AWS::ElasticLoadBalancing::LoadBalancer
 */
export declare function getLoadBalancer(args: GetLoadBalancerArgs, opts?: pulumi.InvokeOptions): Promise<GetLoadBalancerResult>;
export interface GetLoadBalancerArgs {
    id: string;
}
export interface GetLoadBalancerResult {
    /**
     * Information about where and how access logs are stored for the load balancer.
     */
    readonly accessLoggingPolicy?: outputs.elasticloadbalancing.LoadBalancerAccessLoggingPolicy;
    /**
     * Information about a policy for application-controlled session stickiness.
     */
    readonly appCookieStickinessPolicy?: outputs.elasticloadbalancing.LoadBalancerAppCookieStickinessPolicy[];
    /**
     * The Availability Zones for a load balancer in a default VPC. For a load balancer in a nondefault VPC, specify `Subnets` instead.
     *
     * Update requires replacement if you did not previously specify an Availability Zone or if you are removing all Availability Zones. Otherwise, update requires no interruption.
     */
    readonly availabilityZones?: string[];
    /**
     * The name of the Route 53 hosted zone that is associated with the load balancer. Internal-facing load balancers don't use this value, use `DNSName` instead.
     */
    readonly canonicalHostedZoneName?: string;
    /**
     * The ID of the Route 53 hosted zone name that is associated with the load balancer.
     */
    readonly canonicalHostedZoneNameId?: string;
    /**
     * If enabled, the load balancer allows existing requests to complete before the load balancer shifts traffic away from a deregistered or unhealthy instance.
     *
     * For more information, see [Configure connection draining](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html) in the *User Guide for Classic Load Balancers* .
     */
    readonly connectionDrainingPolicy?: outputs.elasticloadbalancing.LoadBalancerConnectionDrainingPolicy;
    /**
     * If enabled, the load balancer allows the connections to remain idle (no data is sent over the connection) for the specified duration.
     *
     * By default, Elastic Load Balancing maintains a 60-second idle connection timeout for both front-end and back-end connections of your load balancer. For more information, see [Configure idle connection timeout](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html) in the *User Guide for Classic Load Balancers* .
     */
    readonly connectionSettings?: outputs.elasticloadbalancing.LoadBalancerConnectionSettings;
    /**
     * If enabled, the load balancer routes the request traffic evenly across all instances regardless of the Availability Zones.
     *
     * For more information, see [Configure cross-zone load balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/enable-disable-crosszone-lb.html) in the *User Guide for Classic Load Balancers* .
     */
    readonly crossZone?: boolean;
    /**
     * The DNS name for the load balancer.
     */
    readonly dnsName?: string;
    /**
     * The health check settings to use when evaluating the health of your EC2 instances.
     *
     * Update requires replacement if you did not previously specify health check settings or if you are removing the health check settings. Otherwise, update requires no interruption.
     */
    readonly healthCheck?: outputs.elasticloadbalancing.LoadBalancerHealthCheck;
    readonly id?: string;
    /**
     * The IDs of the instances for the load balancer.
     */
    readonly instances?: string[];
    /**
     * Information about a policy for duration-based session stickiness.
     */
    readonly lbCookieStickinessPolicy?: outputs.elasticloadbalancing.LoadBalancerLbCookieStickinessPolicy[];
    /**
     * The listeners for the load balancer. You can specify at most one listener per port.
     *
     * If you update the properties for a listener, AWS CloudFormation deletes the existing listener and creates a new one with the specified properties. While the new listener is being created, clients cannot connect to the load balancer.
     */
    readonly listeners?: outputs.elasticloadbalancing.LoadBalancerListeners[];
    /**
     * The policies defined for your Classic Load Balancer. Specify only back-end server policies.
     */
    readonly policies?: outputs.elasticloadbalancing.LoadBalancerPolicies[];
    /**
     * The security groups for the load balancer. Valid only for load balancers in a VPC.
     */
    readonly securityGroups?: string[];
    readonly sourceSecurityGroupGroupName?: string;
    readonly sourceSecurityGroupOwnerAlias?: string;
    /**
     * The IDs of the subnets for the load balancer. You can specify at most one subnet per Availability Zone.
     *
     * Update requires replacement if you did not previously specify a subnet or if you are removing all subnets. Otherwise, update requires no interruption. To update to a different subnet in the current Availability Zone, you must first update to a subnet in a different Availability Zone, then update to the new subnet in the original Availability Zone.
     */
    readonly subnets?: string[];
    /**
     * The tags associated with a load balancer.
     */
    readonly tags?: outputs.Tag[];
}
/**
 * Resource Type definition for AWS::ElasticLoadBalancing::LoadBalancer
 */
export declare function getLoadBalancerOutput(args: GetLoadBalancerOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetLoadBalancerResult>;
export interface GetLoadBalancerOutputArgs {
    id: pulumi.Input<string>;
}
