# 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 builtins
import copy
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities
from . import outputs

__all__ = [
    'GetClbResult',
    'AwaitableGetClbResult',
    'get_clb',
    'get_clb_output',
]

@pulumi.output_type
class GetClbResult:
    """
    A collection of values returned by getClb.
    """
    def __init__(__self__, access_log=None, account_id=None, address_ip_version=None, allowed_ports=None, auto_renewal=None, business_status=None, bypass_security_group_enabled=None, create_time=None, deleted_time=None, description=None, eip=None, eip_address=None, eip_id=None, enabled=None, eni=None, eni_address_num=None, eni_ipv6_address=None, enis=None, exclusive_cluster_id=None, expired_time=None, id=None, listeners=None, load_balancer_billing_type=None, load_balancer_id=None, load_balancer_name=None, load_balancer_spec=None, lock_reason=None, master_zone_id=None, modification_protection_reason=None, modification_protection_status=None, new_arch=None, order_id=None, overdue_time=None, period=None, period_unit=None, project_name=None, server_groups=None, service_managed=None, slave_zone_id=None, status=None, subnet_id=None, tags=None, timestamp_remove_enabled=None, type=None, update_time=None, vpc_id=None, zone_type=None):
        if access_log and not isinstance(access_log, dict):
            raise TypeError("Expected argument 'access_log' to be a dict")
        pulumi.set(__self__, "access_log", access_log)
        if account_id and not isinstance(account_id, str):
            raise TypeError("Expected argument 'account_id' to be a str")
        pulumi.set(__self__, "account_id", account_id)
        if address_ip_version and not isinstance(address_ip_version, str):
            raise TypeError("Expected argument 'address_ip_version' to be a str")
        pulumi.set(__self__, "address_ip_version", address_ip_version)
        if allowed_ports and not isinstance(allowed_ports, list):
            raise TypeError("Expected argument 'allowed_ports' to be a list")
        pulumi.set(__self__, "allowed_ports", allowed_ports)
        if auto_renewal and not isinstance(auto_renewal, bool):
            raise TypeError("Expected argument 'auto_renewal' to be a bool")
        pulumi.set(__self__, "auto_renewal", auto_renewal)
        if business_status and not isinstance(business_status, str):
            raise TypeError("Expected argument 'business_status' to be a str")
        pulumi.set(__self__, "business_status", business_status)
        if bypass_security_group_enabled and not isinstance(bypass_security_group_enabled, str):
            raise TypeError("Expected argument 'bypass_security_group_enabled' to be a str")
        pulumi.set(__self__, "bypass_security_group_enabled", bypass_security_group_enabled)
        if create_time and not isinstance(create_time, str):
            raise TypeError("Expected argument 'create_time' to be a str")
        pulumi.set(__self__, "create_time", create_time)
        if deleted_time and not isinstance(deleted_time, str):
            raise TypeError("Expected argument 'deleted_time' to be a str")
        pulumi.set(__self__, "deleted_time", deleted_time)
        if description and not isinstance(description, str):
            raise TypeError("Expected argument 'description' to be a str")
        pulumi.set(__self__, "description", description)
        if eip and not isinstance(eip, dict):
            raise TypeError("Expected argument 'eip' to be a dict")
        pulumi.set(__self__, "eip", eip)
        if eip_address and not isinstance(eip_address, str):
            raise TypeError("Expected argument 'eip_address' to be a str")
        pulumi.set(__self__, "eip_address", eip_address)
        if eip_id and not isinstance(eip_id, str):
            raise TypeError("Expected argument 'eip_id' to be a str")
        pulumi.set(__self__, "eip_id", eip_id)
        if enabled and not isinstance(enabled, bool):
            raise TypeError("Expected argument 'enabled' to be a bool")
        pulumi.set(__self__, "enabled", enabled)
        if eni and not isinstance(eni, dict):
            raise TypeError("Expected argument 'eni' to be a dict")
        pulumi.set(__self__, "eni", eni)
        if eni_address_num and not isinstance(eni_address_num, float):
            raise TypeError("Expected argument 'eni_address_num' to be a float")
        pulumi.set(__self__, "eni_address_num", eni_address_num)
        if eni_ipv6_address and not isinstance(eni_ipv6_address, str):
            raise TypeError("Expected argument 'eni_ipv6_address' to be a str")
        pulumi.set(__self__, "eni_ipv6_address", eni_ipv6_address)
        if enis and not isinstance(enis, dict):
            raise TypeError("Expected argument 'enis' to be a dict")
        pulumi.set(__self__, "enis", enis)
        if exclusive_cluster_id and not isinstance(exclusive_cluster_id, str):
            raise TypeError("Expected argument 'exclusive_cluster_id' to be a str")
        pulumi.set(__self__, "exclusive_cluster_id", exclusive_cluster_id)
        if expired_time and not isinstance(expired_time, str):
            raise TypeError("Expected argument 'expired_time' to be a str")
        pulumi.set(__self__, "expired_time", expired_time)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if listeners and not isinstance(listeners, list):
            raise TypeError("Expected argument 'listeners' to be a list")
        pulumi.set(__self__, "listeners", listeners)
        if load_balancer_billing_type and not isinstance(load_balancer_billing_type, float):
            raise TypeError("Expected argument 'load_balancer_billing_type' to be a float")
        pulumi.set(__self__, "load_balancer_billing_type", load_balancer_billing_type)
        if load_balancer_id and not isinstance(load_balancer_id, str):
            raise TypeError("Expected argument 'load_balancer_id' to be a str")
        pulumi.set(__self__, "load_balancer_id", load_balancer_id)
        if load_balancer_name and not isinstance(load_balancer_name, str):
            raise TypeError("Expected argument 'load_balancer_name' to be a str")
        pulumi.set(__self__, "load_balancer_name", load_balancer_name)
        if load_balancer_spec and not isinstance(load_balancer_spec, str):
            raise TypeError("Expected argument 'load_balancer_spec' to be a str")
        pulumi.set(__self__, "load_balancer_spec", load_balancer_spec)
        if lock_reason and not isinstance(lock_reason, str):
            raise TypeError("Expected argument 'lock_reason' to be a str")
        pulumi.set(__self__, "lock_reason", lock_reason)
        if master_zone_id and not isinstance(master_zone_id, str):
            raise TypeError("Expected argument 'master_zone_id' to be a str")
        pulumi.set(__self__, "master_zone_id", master_zone_id)
        if modification_protection_reason and not isinstance(modification_protection_reason, str):
            raise TypeError("Expected argument 'modification_protection_reason' to be a str")
        pulumi.set(__self__, "modification_protection_reason", modification_protection_reason)
        if modification_protection_status and not isinstance(modification_protection_status, str):
            raise TypeError("Expected argument 'modification_protection_status' to be a str")
        pulumi.set(__self__, "modification_protection_status", modification_protection_status)
        if new_arch and not isinstance(new_arch, bool):
            raise TypeError("Expected argument 'new_arch' to be a bool")
        pulumi.set(__self__, "new_arch", new_arch)
        if order_id and not isinstance(order_id, str):
            raise TypeError("Expected argument 'order_id' to be a str")
        pulumi.set(__self__, "order_id", order_id)
        if overdue_time and not isinstance(overdue_time, str):
            raise TypeError("Expected argument 'overdue_time' to be a str")
        pulumi.set(__self__, "overdue_time", overdue_time)
        if period and not isinstance(period, float):
            raise TypeError("Expected argument 'period' to be a float")
        pulumi.set(__self__, "period", period)
        if period_unit and not isinstance(period_unit, str):
            raise TypeError("Expected argument 'period_unit' to be a str")
        pulumi.set(__self__, "period_unit", period_unit)
        if project_name and not isinstance(project_name, str):
            raise TypeError("Expected argument 'project_name' to be a str")
        pulumi.set(__self__, "project_name", project_name)
        if server_groups and not isinstance(server_groups, list):
            raise TypeError("Expected argument 'server_groups' to be a list")
        pulumi.set(__self__, "server_groups", server_groups)
        if service_managed and not isinstance(service_managed, bool):
            raise TypeError("Expected argument 'service_managed' to be a bool")
        pulumi.set(__self__, "service_managed", service_managed)
        if slave_zone_id and not isinstance(slave_zone_id, str):
            raise TypeError("Expected argument 'slave_zone_id' to be a str")
        pulumi.set(__self__, "slave_zone_id", slave_zone_id)
        if status and not isinstance(status, str):
            raise TypeError("Expected argument 'status' to be a str")
        pulumi.set(__self__, "status", status)
        if subnet_id and not isinstance(subnet_id, str):
            raise TypeError("Expected argument 'subnet_id' to be a str")
        pulumi.set(__self__, "subnet_id", subnet_id)
        if tags and not isinstance(tags, list):
            raise TypeError("Expected argument 'tags' to be a list")
        pulumi.set(__self__, "tags", tags)
        if timestamp_remove_enabled and not isinstance(timestamp_remove_enabled, str):
            raise TypeError("Expected argument 'timestamp_remove_enabled' to be a str")
        pulumi.set(__self__, "timestamp_remove_enabled", timestamp_remove_enabled)
        if type and not isinstance(type, str):
            raise TypeError("Expected argument 'type' to be a str")
        pulumi.set(__self__, "type", type)
        if update_time and not isinstance(update_time, str):
            raise TypeError("Expected argument 'update_time' to be a str")
        pulumi.set(__self__, "update_time", update_time)
        if vpc_id and not isinstance(vpc_id, str):
            raise TypeError("Expected argument 'vpc_id' to be a str")
        pulumi.set(__self__, "vpc_id", vpc_id)
        if zone_type and not isinstance(zone_type, str):
            raise TypeError("Expected argument 'zone_type' to be a str")
        pulumi.set(__self__, "zone_type", zone_type)

    @property
    @pulumi.getter(name="accessLog")
    def access_log(self) -> 'outputs.GetClbAccessLogResult':
        """
        负载均衡实例中访问日志的信息。
        """
        return pulumi.get(self, "access_log")

    @property
    @pulumi.getter(name="accountId")
    def account_id(self) -> builtins.str:
        """
        负载均衡实例所属的账号ID。
        """
        return pulumi.get(self, "account_id")

    @property
    @pulumi.getter(name="addressIpVersion")
    def address_ip_version(self) -> builtins.str:
        """
        CLB实例的IP地址类型。取值如下：ipv4（默认值）：表示该CLB为IPv4类型，仅支持转发IPv4请求。DualStack：表示该CLB为双栈类型，支持转发IPv4和IPv6请求。仅参数Type取private时，才可传入DualStack。
        """
        return pulumi.get(self, "address_ip_version")

    @property
    @pulumi.getter(name="allowedPorts")
    def allowed_ports(self) -> Sequence[builtins.str]:
        """
        允许的多个端口范围。
        """
        return pulumi.get(self, "allowed_ports")

    @property
    @pulumi.getter(name="autoRenewal")
    def auto_renewal(self) -> builtins.bool:
        """
        是否开通自动续费。true：是，默认自动续费为1个月。false（默认值）：否
        """
        return pulumi.get(self, "auto_renewal")

    @property
    @pulumi.getter(name="businessStatus")
    def business_status(self) -> builtins.str:
        """
        负载均衡实例是否被锁定。
        """
        return pulumi.get(self, "business_status")

    @property
    @pulumi.getter(name="bypassSecurityGroupEnabled")
    def bypass_security_group_enabled(self) -> builtins.str:
        """
        是否开启bypass安全组功能。
        """
        return pulumi.get(self, "bypass_security_group_enabled")

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> builtins.str:
        """
        负载均衡实例的创建时间。
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="deletedTime")
    def deleted_time(self) -> builtins.str:
        """
        负载均衡实例的预期回收时间。
        """
        return pulumi.get(self, "deleted_time")

    @property
    @pulumi.getter
    def description(self) -> builtins.str:
        """
        负载均衡实例的描述。
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def eip(self) -> 'outputs.GetClbEipResult':
        """
        负载均衡实例的公网IP的信息。
        """
        return pulumi.get(self, "eip")

    @property
    @pulumi.getter(name="eipAddress")
    def eip_address(self) -> builtins.str:
        """
        公网IP地址。
        """
        return pulumi.get(self, "eip_address")

    @property
    @pulumi.getter(name="eipId")
    def eip_id(self) -> builtins.str:
        """
        公网IP ID。
        """
        return pulumi.get(self, "eip_id")

    @property
    @pulumi.getter
    def enabled(self) -> builtins.bool:
        """
        负载均衡实例的启用状态。
        """
        return pulumi.get(self, "enabled")

    @property
    @pulumi.getter
    def eni(self) -> 'outputs.GetClbEniResult':
        """
        负载均衡实例的私网IPv4地址信息。
        """
        return pulumi.get(self, "eni")

    @property
    @pulumi.getter(name="eniAddressNum")
    def eni_address_num(self) -> builtins.float:
        """
        负载均衡实例的私网IPv4地址数量。该参数和参数EniAddress不能同时传入，如果传入该参数，则无需传入EniAddress。
        """
        return pulumi.get(self, "eni_address_num")

    @property
    @pulumi.getter(name="eniIpv6Address")
    def eni_ipv6_address(self) -> builtins.str:
        """
        负载均衡实例的私网IPv6地址。
        """
        return pulumi.get(self, "eni_ipv6_address")

    @property
    @pulumi.getter
    def enis(self) -> 'outputs.GetClbEnisResult':
        """
        负载均衡实例的私网IPv4地址信息列表，创建时通过EniAddressNum指定数量。
        """
        return pulumi.get(self, "enis")

    @property
    @pulumi.getter(name="exclusiveClusterId")
    def exclusive_cluster_id(self) -> builtins.str:
        """
        独占集群Id。
        """
        return pulumi.get(self, "exclusive_cluster_id")

    @property
    @pulumi.getter(name="expiredTime")
    def expired_time(self) -> builtins.str:
        """
        负载均衡实例到期时间。
        """
        return pulumi.get(self, "expired_time")

    @property
    @pulumi.getter
    def id(self) -> builtins.str:
        """
        Uniquely identifies the resource.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def listeners(self) -> Sequence['outputs.GetClbListenerResult']:
        """
        负载均衡实例中监听器的信息。
        """
        return pulumi.get(self, "listeners")

    @property
    @pulumi.getter(name="loadBalancerBillingType")
    def load_balancer_billing_type(self) -> builtins.float:
        """
        CLB实例计费方式。取值如下：1：包年包月。2（默认值）：按量计费-按规格计费。3：按量计费-按使用量计费。
        """
        return pulumi.get(self, "load_balancer_billing_type")

    @property
    @pulumi.getter(name="loadBalancerId")
    def load_balancer_id(self) -> builtins.str:
        """
        负载均衡实例ID。
        """
        return pulumi.get(self, "load_balancer_id")

    @property
    @pulumi.getter(name="loadBalancerName")
    def load_balancer_name(self) -> builtins.str:
        """
        负载均衡实例的名称。
        """
        return pulumi.get(self, "load_balancer_name")

    @property
    @pulumi.getter(name="loadBalancerSpec")
    def load_balancer_spec(self) -> builtins.str:
        """
        CLB实例的规格，不同规格提供的转发能力不同。small*1：小型I。small*2：小型II。medium*1：中型I。medium*2：中型II。large*1：大型I。large*2：大型II。
        """
        return pulumi.get(self, "load_balancer_spec")

    @property
    @pulumi.getter(name="lockReason")
    def lock_reason(self) -> builtins.str:
        """
        负载均衡实例被冻结的原因。
        """
        return pulumi.get(self, "lock_reason")

    @property
    @pulumi.getter(name="masterZoneId")
    def master_zone_id(self) -> builtins.str:
        """
        负载均衡实例的主可用区ID。
        """
        return pulumi.get(self, "master_zone_id")

    @property
    @pulumi.getter(name="modificationProtectionReason")
    def modification_protection_reason(self) -> builtins.str:
        """
        设置修改保护状态的原因。仅参数ModificationProtectionStatus取ConsoleProtection时，本参数有效。必须以字母、数字或中文开头，可包含字母、数字、中文及以下特殊字符：半角句号（.）、下划线（_）和中划线（-）。长度限制为1 ～ 80个字符。
        """
        return pulumi.get(self, "modification_protection_reason")

    @property
    @pulumi.getter(name="modificationProtectionStatus")
    def modification_protection_status(self) -> builtins.str:
        """
        CLB实例是否开启控制台上修改保护。开启后，禁止通过控制台修改实例或删除实例。取值如下：NonProtection：不开启。ConsoleProtection：开启。
        """
        return pulumi.get(self, "modification_protection_status")

    @property
    @pulumi.getter(name="newArch")
    def new_arch(self) -> builtins.bool:
        """
        是否为新架构。
        """
        return pulumi.get(self, "new_arch")

    @property
    @pulumi.getter(name="orderId")
    def order_id(self) -> builtins.str:
        """
        订单ID。仅在创建动作的参数LoadBalancerBillingType配置为1时，该参数有值。
        """
        return pulumi.get(self, "order_id")

    @property
    @pulumi.getter(name="overdueTime")
    def overdue_time(self) -> builtins.str:
        """
        负载均衡实例的冻结时间。
        """
        return pulumi.get(self, "overdue_time")

    @property
    @pulumi.getter
    def period(self) -> builtins.float:
        """
        购买包年包月CLB实例的时长。默认为“1”。当PeriodUnit配置为Month时，取值范围为1～9，12，24和36。当PeriodUnit配置为Year时，取值范围为1～3。
        """
        return pulumi.get(self, "period")

    @property
    @pulumi.getter(name="periodUnit")
    def period_unit(self) -> builtins.str:
        """
        购买包年包月CLB实例的时长单位。仅LoadBalancerBillingType取1时，本参数有效。取值如下：Month (默认值)：月。Year：年
        """
        return pulumi.get(self, "period_unit")

    @property
    @pulumi.getter(name="projectName")
    def project_name(self) -> builtins.str:
        """
        CLB实例所属项目的名称。
        """
        return pulumi.get(self, "project_name")

    @property
    @pulumi.getter(name="serverGroups")
    def server_groups(self) -> Sequence['outputs.GetClbServerGroupResult']:
        """
        负载均衡实例中后端服务器组的信息。
        """
        return pulumi.get(self, "server_groups")

    @property
    @pulumi.getter(name="serviceManaged")
    def service_managed(self) -> builtins.bool:
        """
        CLB实例是否为托管资源。
        """
        return pulumi.get(self, "service_managed")

    @property
    @pulumi.getter(name="slaveZoneId")
    def slave_zone_id(self) -> builtins.str:
        """
        负载均衡实例的备可用区ID。
        """
        return pulumi.get(self, "slave_zone_id")

    @property
    @pulumi.getter
    def status(self) -> builtins.str:
        """
        负载均衡实例状态，Inactive：已停止。Active：运行中。Creating：创建中。Provisioning：创建中。Configuring：配置中。Deleting：删除中。CreateFailed：创建失败。
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> builtins.str:
        """
        负载均衡实例所属VPC内的子网ID。
        """
        return pulumi.get(self, "subnet_id")

    @property
    @pulumi.getter
    def tags(self) -> Sequence['outputs.GetClbTagResult']:
        """
        CLB实例标签。
        """
        return pulumi.get(self, "tags")

    @property
    @pulumi.getter(name="timestampRemoveEnabled")
    def timestamp_remove_enabled(self) -> builtins.str:
        """
        是否开启 TCP Timestamp 清除功能。
        """
        return pulumi.get(self, "timestamp_remove_enabled")

    @property
    @pulumi.getter
    def type(self) -> builtins.str:
        """
        CLB实例的类型。取值如下：public：公网类型。创建一个公网类型CLB实例，系统会分配一个公网IP地址，用于转发公网请求。private：私网类型。创建一个私网类型CLB实例，您需要为其绑定公网IP后，才能转发公网请求。
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="updateTime")
    def update_time(self) -> builtins.str:
        """
        负载均衡实例的最近操作时间。
        """
        return pulumi.get(self, "update_time")

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> builtins.str:
        """
        负载均衡实例所属的VPC ID。
        """
        return pulumi.get(self, "vpc_id")

    @property
    @pulumi.getter(name="zoneType")
    def zone_type(self) -> builtins.str:
        """
        负载均衡实例的可用区类型。
        """
        return pulumi.get(self, "zone_type")


class AwaitableGetClbResult(GetClbResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetClbResult(
            access_log=self.access_log,
            account_id=self.account_id,
            address_ip_version=self.address_ip_version,
            allowed_ports=self.allowed_ports,
            auto_renewal=self.auto_renewal,
            business_status=self.business_status,
            bypass_security_group_enabled=self.bypass_security_group_enabled,
            create_time=self.create_time,
            deleted_time=self.deleted_time,
            description=self.description,
            eip=self.eip,
            eip_address=self.eip_address,
            eip_id=self.eip_id,
            enabled=self.enabled,
            eni=self.eni,
            eni_address_num=self.eni_address_num,
            eni_ipv6_address=self.eni_ipv6_address,
            enis=self.enis,
            exclusive_cluster_id=self.exclusive_cluster_id,
            expired_time=self.expired_time,
            id=self.id,
            listeners=self.listeners,
            load_balancer_billing_type=self.load_balancer_billing_type,
            load_balancer_id=self.load_balancer_id,
            load_balancer_name=self.load_balancer_name,
            load_balancer_spec=self.load_balancer_spec,
            lock_reason=self.lock_reason,
            master_zone_id=self.master_zone_id,
            modification_protection_reason=self.modification_protection_reason,
            modification_protection_status=self.modification_protection_status,
            new_arch=self.new_arch,
            order_id=self.order_id,
            overdue_time=self.overdue_time,
            period=self.period,
            period_unit=self.period_unit,
            project_name=self.project_name,
            server_groups=self.server_groups,
            service_managed=self.service_managed,
            slave_zone_id=self.slave_zone_id,
            status=self.status,
            subnet_id=self.subnet_id,
            tags=self.tags,
            timestamp_remove_enabled=self.timestamp_remove_enabled,
            type=self.type,
            update_time=self.update_time,
            vpc_id=self.vpc_id,
            zone_type=self.zone_type)


def get_clb(id: Optional[builtins.str] = None,
            opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetClbResult:
    """
    Data Source schema for Byteplus::CLB::CLB


    :param builtins.str id: Uniquely identifies the resource.
    """
    __args__ = dict()
    __args__['id'] = id
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('bytepluscc:clb/getClb:getClb', __args__, opts=opts, typ=GetClbResult).value

    return AwaitableGetClbResult(
        access_log=pulumi.get(__ret__, 'access_log'),
        account_id=pulumi.get(__ret__, 'account_id'),
        address_ip_version=pulumi.get(__ret__, 'address_ip_version'),
        allowed_ports=pulumi.get(__ret__, 'allowed_ports'),
        auto_renewal=pulumi.get(__ret__, 'auto_renewal'),
        business_status=pulumi.get(__ret__, 'business_status'),
        bypass_security_group_enabled=pulumi.get(__ret__, 'bypass_security_group_enabled'),
        create_time=pulumi.get(__ret__, 'create_time'),
        deleted_time=pulumi.get(__ret__, 'deleted_time'),
        description=pulumi.get(__ret__, 'description'),
        eip=pulumi.get(__ret__, 'eip'),
        eip_address=pulumi.get(__ret__, 'eip_address'),
        eip_id=pulumi.get(__ret__, 'eip_id'),
        enabled=pulumi.get(__ret__, 'enabled'),
        eni=pulumi.get(__ret__, 'eni'),
        eni_address_num=pulumi.get(__ret__, 'eni_address_num'),
        eni_ipv6_address=pulumi.get(__ret__, 'eni_ipv6_address'),
        enis=pulumi.get(__ret__, 'enis'),
        exclusive_cluster_id=pulumi.get(__ret__, 'exclusive_cluster_id'),
        expired_time=pulumi.get(__ret__, 'expired_time'),
        id=pulumi.get(__ret__, 'id'),
        listeners=pulumi.get(__ret__, 'listeners'),
        load_balancer_billing_type=pulumi.get(__ret__, 'load_balancer_billing_type'),
        load_balancer_id=pulumi.get(__ret__, 'load_balancer_id'),
        load_balancer_name=pulumi.get(__ret__, 'load_balancer_name'),
        load_balancer_spec=pulumi.get(__ret__, 'load_balancer_spec'),
        lock_reason=pulumi.get(__ret__, 'lock_reason'),
        master_zone_id=pulumi.get(__ret__, 'master_zone_id'),
        modification_protection_reason=pulumi.get(__ret__, 'modification_protection_reason'),
        modification_protection_status=pulumi.get(__ret__, 'modification_protection_status'),
        new_arch=pulumi.get(__ret__, 'new_arch'),
        order_id=pulumi.get(__ret__, 'order_id'),
        overdue_time=pulumi.get(__ret__, 'overdue_time'),
        period=pulumi.get(__ret__, 'period'),
        period_unit=pulumi.get(__ret__, 'period_unit'),
        project_name=pulumi.get(__ret__, 'project_name'),
        server_groups=pulumi.get(__ret__, 'server_groups'),
        service_managed=pulumi.get(__ret__, 'service_managed'),
        slave_zone_id=pulumi.get(__ret__, 'slave_zone_id'),
        status=pulumi.get(__ret__, 'status'),
        subnet_id=pulumi.get(__ret__, 'subnet_id'),
        tags=pulumi.get(__ret__, 'tags'),
        timestamp_remove_enabled=pulumi.get(__ret__, 'timestamp_remove_enabled'),
        type=pulumi.get(__ret__, 'type'),
        update_time=pulumi.get(__ret__, 'update_time'),
        vpc_id=pulumi.get(__ret__, 'vpc_id'),
        zone_type=pulumi.get(__ret__, 'zone_type'))
def get_clb_output(id: Optional[pulumi.Input[builtins.str]] = None,
                   opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetClbResult]:
    """
    Data Source schema for Byteplus::CLB::CLB


    :param builtins.str id: Uniquely identifies the resource.
    """
    __args__ = dict()
    __args__['id'] = id
    opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke_output('bytepluscc:clb/getClb:getClb', __args__, opts=opts, typ=GetClbResult)
    return __ret__.apply(lambda __response__: GetClbResult(
        access_log=pulumi.get(__response__, 'access_log'),
        account_id=pulumi.get(__response__, 'account_id'),
        address_ip_version=pulumi.get(__response__, 'address_ip_version'),
        allowed_ports=pulumi.get(__response__, 'allowed_ports'),
        auto_renewal=pulumi.get(__response__, 'auto_renewal'),
        business_status=pulumi.get(__response__, 'business_status'),
        bypass_security_group_enabled=pulumi.get(__response__, 'bypass_security_group_enabled'),
        create_time=pulumi.get(__response__, 'create_time'),
        deleted_time=pulumi.get(__response__, 'deleted_time'),
        description=pulumi.get(__response__, 'description'),
        eip=pulumi.get(__response__, 'eip'),
        eip_address=pulumi.get(__response__, 'eip_address'),
        eip_id=pulumi.get(__response__, 'eip_id'),
        enabled=pulumi.get(__response__, 'enabled'),
        eni=pulumi.get(__response__, 'eni'),
        eni_address_num=pulumi.get(__response__, 'eni_address_num'),
        eni_ipv6_address=pulumi.get(__response__, 'eni_ipv6_address'),
        enis=pulumi.get(__response__, 'enis'),
        exclusive_cluster_id=pulumi.get(__response__, 'exclusive_cluster_id'),
        expired_time=pulumi.get(__response__, 'expired_time'),
        id=pulumi.get(__response__, 'id'),
        listeners=pulumi.get(__response__, 'listeners'),
        load_balancer_billing_type=pulumi.get(__response__, 'load_balancer_billing_type'),
        load_balancer_id=pulumi.get(__response__, 'load_balancer_id'),
        load_balancer_name=pulumi.get(__response__, 'load_balancer_name'),
        load_balancer_spec=pulumi.get(__response__, 'load_balancer_spec'),
        lock_reason=pulumi.get(__response__, 'lock_reason'),
        master_zone_id=pulumi.get(__response__, 'master_zone_id'),
        modification_protection_reason=pulumi.get(__response__, 'modification_protection_reason'),
        modification_protection_status=pulumi.get(__response__, 'modification_protection_status'),
        new_arch=pulumi.get(__response__, 'new_arch'),
        order_id=pulumi.get(__response__, 'order_id'),
        overdue_time=pulumi.get(__response__, 'overdue_time'),
        period=pulumi.get(__response__, 'period'),
        period_unit=pulumi.get(__response__, 'period_unit'),
        project_name=pulumi.get(__response__, 'project_name'),
        server_groups=pulumi.get(__response__, 'server_groups'),
        service_managed=pulumi.get(__response__, 'service_managed'),
        slave_zone_id=pulumi.get(__response__, 'slave_zone_id'),
        status=pulumi.get(__response__, 'status'),
        subnet_id=pulumi.get(__response__, 'subnet_id'),
        tags=pulumi.get(__response__, 'tags'),
        timestamp_remove_enabled=pulumi.get(__response__, 'timestamp_remove_enabled'),
        type=pulumi.get(__response__, 'type'),
        update_time=pulumi.get(__response__, 'update_time'),
        vpc_id=pulumi.get(__response__, 'vpc_id'),
        zone_type=pulumi.get(__response__, 'zone_type')))
