# coding=utf-8
# *** 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! ***

import json
import warnings
import pulumi
import pulumi.runtime
from typing import Union
from .. import utilities, tables

warnings.warn("aws.elasticloadbalancing.getLoadBalancer has been deprecated in favour of aws.elb.getLoadBalancer", DeprecationWarning)
class GetLoadBalancerResult:
    """
    A collection of values returned by getLoadBalancer.
    """
    def __init__(__self__, access_logs=None, arn=None, availability_zones=None, connection_draining=None, connection_draining_timeout=None, cross_zone_load_balancing=None, dns_name=None, health_check=None, id=None, idle_timeout=None, instances=None, internal=None, listeners=None, name=None, security_groups=None, source_security_group=None, source_security_group_id=None, subnets=None, tags=None, zone_id=None):
        if access_logs and not isinstance(access_logs, dict):
            raise TypeError("Expected argument 'access_logs' to be a dict")
        __self__.access_logs = access_logs
        if arn and not isinstance(arn, str):
            raise TypeError("Expected argument 'arn' to be a str")
        __self__.arn = arn
        if availability_zones and not isinstance(availability_zones, list):
            raise TypeError("Expected argument 'availability_zones' to be a list")
        __self__.availability_zones = availability_zones
        if connection_draining and not isinstance(connection_draining, bool):
            raise TypeError("Expected argument 'connection_draining' to be a bool")
        __self__.connection_draining = connection_draining
        if connection_draining_timeout and not isinstance(connection_draining_timeout, float):
            raise TypeError("Expected argument 'connection_draining_timeout' to be a float")
        __self__.connection_draining_timeout = connection_draining_timeout
        if cross_zone_load_balancing and not isinstance(cross_zone_load_balancing, bool):
            raise TypeError("Expected argument 'cross_zone_load_balancing' to be a bool")
        __self__.cross_zone_load_balancing = cross_zone_load_balancing
        if dns_name and not isinstance(dns_name, str):
            raise TypeError("Expected argument 'dns_name' to be a str")
        __self__.dns_name = dns_name
        if health_check and not isinstance(health_check, dict):
            raise TypeError("Expected argument 'health_check' to be a dict")
        __self__.health_check = health_check
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        __self__.id = id
        """
        The provider-assigned unique ID for this managed resource.
        """
        if idle_timeout and not isinstance(idle_timeout, float):
            raise TypeError("Expected argument 'idle_timeout' to be a float")
        __self__.idle_timeout = idle_timeout
        if instances and not isinstance(instances, list):
            raise TypeError("Expected argument 'instances' to be a list")
        __self__.instances = instances
        if internal and not isinstance(internal, bool):
            raise TypeError("Expected argument 'internal' to be a bool")
        __self__.internal = internal
        if listeners and not isinstance(listeners, list):
            raise TypeError("Expected argument 'listeners' to be a list")
        __self__.listeners = listeners
        if name and not isinstance(name, str):
            raise TypeError("Expected argument 'name' to be a str")
        __self__.name = name
        if security_groups and not isinstance(security_groups, list):
            raise TypeError("Expected argument 'security_groups' to be a list")
        __self__.security_groups = security_groups
        if source_security_group and not isinstance(source_security_group, str):
            raise TypeError("Expected argument 'source_security_group' to be a str")
        __self__.source_security_group = source_security_group
        if source_security_group_id and not isinstance(source_security_group_id, str):
            raise TypeError("Expected argument 'source_security_group_id' to be a str")
        __self__.source_security_group_id = source_security_group_id
        if subnets and not isinstance(subnets, list):
            raise TypeError("Expected argument 'subnets' to be a list")
        __self__.subnets = subnets
        if tags and not isinstance(tags, dict):
            raise TypeError("Expected argument 'tags' to be a dict")
        __self__.tags = tags
        if zone_id and not isinstance(zone_id, str):
            raise TypeError("Expected argument 'zone_id' to be a str")
        __self__.zone_id = zone_id
class AwaitableGetLoadBalancerResult(GetLoadBalancerResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetLoadBalancerResult(
            access_logs=self.access_logs,
            arn=self.arn,
            availability_zones=self.availability_zones,
            connection_draining=self.connection_draining,
            connection_draining_timeout=self.connection_draining_timeout,
            cross_zone_load_balancing=self.cross_zone_load_balancing,
            dns_name=self.dns_name,
            health_check=self.health_check,
            id=self.id,
            idle_timeout=self.idle_timeout,
            instances=self.instances,
            internal=self.internal,
            listeners=self.listeners,
            name=self.name,
            security_groups=self.security_groups,
            source_security_group=self.source_security_group,
            source_security_group_id=self.source_security_group_id,
            subnets=self.subnets,
            tags=self.tags,
            zone_id=self.zone_id)

def get_load_balancer(name=None,tags=None,opts=None):
    """
    Provides information about a "classic" Elastic Load Balancer (ELB).
    See [LB Data Source](https://www.terraform.io/docs/providers/aws/d/lb.html) if you are looking for "v2"
    Application Load Balancer (ALB) or Network Load Balancer (NLB).

    This data source can prove useful when a module accepts an LB as an input
    variable and needs to, for example, determine the security groups associated
    with it, etc.



    Deprecated: aws.elasticloadbalancing.getLoadBalancer has been deprecated in favour of aws.elb.getLoadBalancer


    :param str name: The unique name of the load balancer.
    """
    pulumi.log.warn("get_load_balancer is deprecated: aws.elasticloadbalancing.getLoadBalancer has been deprecated in favour of aws.elb.getLoadBalancer")
    __args__ = dict()


    __args__['name'] = name
    __args__['tags'] = tags
    if opts is None:
        opts = pulumi.InvokeOptions()
    if opts.version is None:
        opts.version = utilities.get_version()
    __ret__ = pulumi.runtime.invoke('aws:elasticloadbalancing/getLoadBalancer:getLoadBalancer', __args__, opts=opts).value

    return AwaitableGetLoadBalancerResult(
        access_logs=__ret__.get('accessLogs'),
        arn=__ret__.get('arn'),
        availability_zones=__ret__.get('availabilityZones'),
        connection_draining=__ret__.get('connectionDraining'),
        connection_draining_timeout=__ret__.get('connectionDrainingTimeout'),
        cross_zone_load_balancing=__ret__.get('crossZoneLoadBalancing'),
        dns_name=__ret__.get('dnsName'),
        health_check=__ret__.get('healthCheck'),
        id=__ret__.get('id'),
        idle_timeout=__ret__.get('idleTimeout'),
        instances=__ret__.get('instances'),
        internal=__ret__.get('internal'),
        listeners=__ret__.get('listeners'),
        name=__ret__.get('name'),
        security_groups=__ret__.get('securityGroups'),
        source_security_group=__ret__.get('sourceSecurityGroup'),
        source_security_group_id=__ret__.get('sourceSecurityGroupId'),
        subnets=__ret__.get('subnets'),
        tags=__ret__.get('tags'),
        zone_id=__ret__.get('zoneId'))
