# 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
from ._inputs import *

__all__ = ['ClbArgs', 'Clb']

@pulumi.input_type
class ClbArgs:
    def __init__(__self__, *,
                 access_log: Optional[pulumi.Input['ClbAccessLogArgs']] = None,
                 address_ip_version: Optional[pulumi.Input[builtins.str]] = None,
                 allowed_ports: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 auto_renewal: Optional[pulumi.Input[builtins.bool]] = None,
                 bypass_security_group_enabled: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 eip: Optional[pulumi.Input['ClbEipArgs']] = None,
                 eip_address: Optional[pulumi.Input[builtins.str]] = None,
                 eip_id: Optional[pulumi.Input[builtins.str]] = None,
                 eni_address_num: Optional[pulumi.Input[builtins.float]] = None,
                 enis: Optional[pulumi.Input['ClbEnisArgs']] = None,
                 exclusive_cluster_id: Optional[pulumi.Input[builtins.str]] = None,
                 listeners: Optional[pulumi.Input[Sequence[pulumi.Input['ClbListenerArgs']]]] = None,
                 load_balancer_billing_type: Optional[pulumi.Input[builtins.float]] = None,
                 load_balancer_name: Optional[pulumi.Input[builtins.str]] = None,
                 load_balancer_spec: Optional[pulumi.Input[builtins.str]] = None,
                 master_zone_id: Optional[pulumi.Input[builtins.str]] = None,
                 modification_protection_reason: Optional[pulumi.Input[builtins.str]] = None,
                 modification_protection_status: Optional[pulumi.Input[builtins.str]] = None,
                 new_arch: Optional[pulumi.Input[builtins.bool]] = None,
                 order_id: Optional[pulumi.Input[builtins.str]] = None,
                 period: Optional[pulumi.Input[builtins.float]] = None,
                 period_unit: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 server_groups: Optional[pulumi.Input[Sequence[pulumi.Input['ClbServerGroupArgs']]]] = None,
                 slave_zone_id: Optional[pulumi.Input[builtins.str]] = None,
                 subnet_id: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input['ClbTagArgs']]]] = None,
                 type: Optional[pulumi.Input[builtins.str]] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None,
                 zone_type: Optional[pulumi.Input[builtins.str]] = None):
        """
        The set of arguments for constructing a Clb resource.
        :param pulumi.Input['ClbAccessLogArgs'] access_log: 负载均衡实例中访问日志的信息。
        :param pulumi.Input[builtins.str] address_ip_version: CLB实例的IP地址类型。取值如下：ipv4（默认值）：表示该CLB为IPv4类型，仅支持转发IPv4请求。DualStack：表示该CLB为双栈类型，支持转发IPv4和IPv6请求。仅参数Type取private时，才可传入DualStack。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] allowed_ports: 允许的多个端口范围。
        :param pulumi.Input[builtins.bool] auto_renewal: 是否开通自动续费。true：是，默认自动续费为1个月。false（默认值）：否
        :param pulumi.Input[builtins.str] bypass_security_group_enabled: 是否开启bypass安全组功能。
        :param pulumi.Input[builtins.str] description: 负载均衡实例的描述。
        :param pulumi.Input['ClbEipArgs'] eip: 负载均衡实例的公网IP的信息。
        :param pulumi.Input[builtins.str] eip_address: 公网IP地址。
        :param pulumi.Input[builtins.str] eip_id: 公网IP ID。
        :param pulumi.Input[builtins.float] eni_address_num: 负载均衡实例的私网IPv4地址数量。该参数和参数EniAddress不能同时传入，如果传入该参数，则无需传入EniAddress。
        :param pulumi.Input['ClbEnisArgs'] enis: 负载均衡实例的私网IPv4地址信息列表，创建时通过EniAddressNum指定数量。
        :param pulumi.Input[builtins.str] exclusive_cluster_id: 独占集群Id。
        :param pulumi.Input[builtins.float] load_balancer_billing_type: CLB实例计费方式。取值如下：1：包年包月。2（默认值）：按量计费-按规格计费。3：按量计费-按使用量计费。
        :param pulumi.Input[builtins.str] load_balancer_name: 负载均衡实例的名称。
        :param pulumi.Input[builtins.str] load_balancer_spec: CLB实例的规格，不同规格提供的转发能力不同。small*1：小型I。small*2：小型II。medium*1：中型I。medium*2：中型II。large*1：大型I。large*2：大型II。
        :param pulumi.Input[builtins.str] master_zone_id: 负载均衡实例的主可用区ID。
        :param pulumi.Input[builtins.str] modification_protection_reason: 设置修改保护状态的原因。仅参数ModificationProtectionStatus取ConsoleProtection时，本参数有效。必须以字母、数字或中文开头，可包含字母、数字、中文及以下特殊字符：半角句号（.）、下划线（_）和中划线（-）。长度限制为1 ～ 80个字符。
        :param pulumi.Input[builtins.str] modification_protection_status: CLB实例是否开启控制台上修改保护。开启后，禁止通过控制台修改实例或删除实例。取值如下：NonProtection：不开启。ConsoleProtection：开启。
        :param pulumi.Input[builtins.bool] new_arch: 是否为新架构。
        :param pulumi.Input[builtins.str] order_id: 订单ID。仅在创建动作的参数LoadBalancerBillingType配置为1时，该参数有值。
        :param pulumi.Input[builtins.float] period: 购买包年包月CLB实例的时长。默认为“1”。当PeriodUnit配置为Month时，取值范围为1～9，12，24和36。当PeriodUnit配置为Year时，取值范围为1～3。
        :param pulumi.Input[builtins.str] period_unit: 购买包年包月CLB实例的时长单位。仅LoadBalancerBillingType取1时，本参数有效。取值如下：Month (默认值)：月。Year：年
        :param pulumi.Input[builtins.str] project_name: CLB实例所属项目的名称。
        :param pulumi.Input[builtins.str] slave_zone_id: 负载均衡实例的备可用区ID。
        :param pulumi.Input[builtins.str] subnet_id: 负载均衡实例所属VPC内的子网ID。
        :param pulumi.Input[builtins.str] type: CLB实例的类型。取值如下：public：公网类型。创建一个公网类型CLB实例，系统会分配一个公网IP地址，用于转发公网请求。private：私网类型。创建一个私网类型CLB实例，您需要为其绑定公网IP后，才能转发公网请求。
        :param pulumi.Input[builtins.str] vpc_id: 负载均衡实例所属的VPC ID。
        :param pulumi.Input[builtins.str] zone_type: 负载均衡实例的可用区类型。
        """
        if access_log is not None:
            pulumi.set(__self__, "access_log", access_log)
        if address_ip_version is not None:
            pulumi.set(__self__, "address_ip_version", address_ip_version)
        if allowed_ports is not None:
            pulumi.set(__self__, "allowed_ports", allowed_ports)
        if auto_renewal is not None:
            pulumi.set(__self__, "auto_renewal", auto_renewal)
        if bypass_security_group_enabled is not None:
            pulumi.set(__self__, "bypass_security_group_enabled", bypass_security_group_enabled)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if eip is not None:
            pulumi.set(__self__, "eip", eip)
        if eip_address is not None:
            pulumi.set(__self__, "eip_address", eip_address)
        if eip_id is not None:
            pulumi.set(__self__, "eip_id", eip_id)
        if eni_address_num is not None:
            pulumi.set(__self__, "eni_address_num", eni_address_num)
        if enis is not None:
            pulumi.set(__self__, "enis", enis)
        if exclusive_cluster_id is not None:
            pulumi.set(__self__, "exclusive_cluster_id", exclusive_cluster_id)
        if listeners is not None:
            pulumi.set(__self__, "listeners", listeners)
        if load_balancer_billing_type is not None:
            pulumi.set(__self__, "load_balancer_billing_type", load_balancer_billing_type)
        if load_balancer_name is not None:
            pulumi.set(__self__, "load_balancer_name", load_balancer_name)
        if load_balancer_spec is not None:
            pulumi.set(__self__, "load_balancer_spec", load_balancer_spec)
        if master_zone_id is not None:
            pulumi.set(__self__, "master_zone_id", master_zone_id)
        if modification_protection_reason is not None:
            pulumi.set(__self__, "modification_protection_reason", modification_protection_reason)
        if modification_protection_status is not None:
            pulumi.set(__self__, "modification_protection_status", modification_protection_status)
        if new_arch is not None:
            pulumi.set(__self__, "new_arch", new_arch)
        if order_id is not None:
            pulumi.set(__self__, "order_id", order_id)
        if period is not None:
            pulumi.set(__self__, "period", period)
        if period_unit is not None:
            pulumi.set(__self__, "period_unit", period_unit)
        if project_name is not None:
            pulumi.set(__self__, "project_name", project_name)
        if server_groups is not None:
            pulumi.set(__self__, "server_groups", server_groups)
        if slave_zone_id is not None:
            pulumi.set(__self__, "slave_zone_id", slave_zone_id)
        if subnet_id is not None:
            pulumi.set(__self__, "subnet_id", subnet_id)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if type is not None:
            pulumi.set(__self__, "type", type)
        if vpc_id is not None:
            pulumi.set(__self__, "vpc_id", vpc_id)
        if zone_type is not None:
            pulumi.set(__self__, "zone_type", zone_type)

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

    @access_log.setter
    def access_log(self, value: Optional[pulumi.Input['ClbAccessLogArgs']]):
        pulumi.set(self, "access_log", value)

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

    @address_ip_version.setter
    def address_ip_version(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "address_ip_version", value)

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

    @allowed_ports.setter
    def allowed_ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
        pulumi.set(self, "allowed_ports", value)

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

    @auto_renewal.setter
    def auto_renewal(self, value: Optional[pulumi.Input[builtins.bool]]):
        pulumi.set(self, "auto_renewal", value)

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

    @bypass_security_group_enabled.setter
    def bypass_security_group_enabled(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "bypass_security_group_enabled", value)

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

    @description.setter
    def description(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "description", value)

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

    @eip.setter
    def eip(self, value: Optional[pulumi.Input['ClbEipArgs']]):
        pulumi.set(self, "eip", value)

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

    @eip_address.setter
    def eip_address(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "eip_address", value)

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

    @eip_id.setter
    def eip_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "eip_id", value)

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

    @eni_address_num.setter
    def eni_address_num(self, value: Optional[pulumi.Input[builtins.float]]):
        pulumi.set(self, "eni_address_num", value)

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

    @enis.setter
    def enis(self, value: Optional[pulumi.Input['ClbEnisArgs']]):
        pulumi.set(self, "enis", value)

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

    @exclusive_cluster_id.setter
    def exclusive_cluster_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "exclusive_cluster_id", value)

    @property
    @pulumi.getter
    def listeners(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClbListenerArgs']]]]:
        return pulumi.get(self, "listeners")

    @listeners.setter
    def listeners(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClbListenerArgs']]]]):
        pulumi.set(self, "listeners", value)

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

    @load_balancer_billing_type.setter
    def load_balancer_billing_type(self, value: Optional[pulumi.Input[builtins.float]]):
        pulumi.set(self, "load_balancer_billing_type", value)

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

    @load_balancer_name.setter
    def load_balancer_name(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "load_balancer_name", value)

    @property
    @pulumi.getter(name="loadBalancerSpec")
    def load_balancer_spec(self) -> Optional[pulumi.Input[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")

    @load_balancer_spec.setter
    def load_balancer_spec(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "load_balancer_spec", value)

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

    @master_zone_id.setter
    def master_zone_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "master_zone_id", value)

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

    @modification_protection_reason.setter
    def modification_protection_reason(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "modification_protection_reason", value)

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

    @modification_protection_status.setter
    def modification_protection_status(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "modification_protection_status", value)

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

    @new_arch.setter
    def new_arch(self, value: Optional[pulumi.Input[builtins.bool]]):
        pulumi.set(self, "new_arch", value)

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

    @order_id.setter
    def order_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "order_id", value)

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

    @period.setter
    def period(self, value: Optional[pulumi.Input[builtins.float]]):
        pulumi.set(self, "period", value)

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

    @period_unit.setter
    def period_unit(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "period_unit", value)

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

    @project_name.setter
    def project_name(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "project_name", value)

    @property
    @pulumi.getter(name="serverGroups")
    def server_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClbServerGroupArgs']]]]:
        return pulumi.get(self, "server_groups")

    @server_groups.setter
    def server_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClbServerGroupArgs']]]]):
        pulumi.set(self, "server_groups", value)

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

    @slave_zone_id.setter
    def slave_zone_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "slave_zone_id", value)

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

    @subnet_id.setter
    def subnet_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "subnet_id", value)

    @property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClbTagArgs']]]]:
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClbTagArgs']]]]):
        pulumi.set(self, "tags", value)

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

    @type.setter
    def type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "type", value)

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

    @vpc_id.setter
    def vpc_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "vpc_id", value)

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

    @zone_type.setter
    def zone_type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "zone_type", value)


@pulumi.input_type
class _ClbState:
    def __init__(__self__, *,
                 access_log: Optional[pulumi.Input['ClbAccessLogArgs']] = None,
                 account_id: Optional[pulumi.Input[builtins.str]] = None,
                 address_ip_version: Optional[pulumi.Input[builtins.str]] = None,
                 allowed_ports: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 auto_renewal: Optional[pulumi.Input[builtins.bool]] = None,
                 business_status: Optional[pulumi.Input[builtins.str]] = None,
                 bypass_security_group_enabled: Optional[pulumi.Input[builtins.str]] = None,
                 create_time: Optional[pulumi.Input[builtins.str]] = None,
                 deleted_time: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 eip: Optional[pulumi.Input['ClbEipArgs']] = None,
                 eip_address: Optional[pulumi.Input[builtins.str]] = None,
                 eip_id: Optional[pulumi.Input[builtins.str]] = None,
                 enabled: Optional[pulumi.Input[builtins.bool]] = None,
                 eni: Optional[pulumi.Input['ClbEniArgs']] = None,
                 eni_address_num: Optional[pulumi.Input[builtins.float]] = None,
                 eni_ipv6_address: Optional[pulumi.Input[builtins.str]] = None,
                 enis: Optional[pulumi.Input['ClbEnisArgs']] = None,
                 exclusive_cluster_id: Optional[pulumi.Input[builtins.str]] = None,
                 expired_time: Optional[pulumi.Input[builtins.str]] = None,
                 listeners: Optional[pulumi.Input[Sequence[pulumi.Input['ClbListenerArgs']]]] = None,
                 load_balancer_billing_type: Optional[pulumi.Input[builtins.float]] = None,
                 load_balancer_id: Optional[pulumi.Input[builtins.str]] = None,
                 load_balancer_name: Optional[pulumi.Input[builtins.str]] = None,
                 load_balancer_spec: Optional[pulumi.Input[builtins.str]] = None,
                 lock_reason: Optional[pulumi.Input[builtins.str]] = None,
                 master_zone_id: Optional[pulumi.Input[builtins.str]] = None,
                 modification_protection_reason: Optional[pulumi.Input[builtins.str]] = None,
                 modification_protection_status: Optional[pulumi.Input[builtins.str]] = None,
                 new_arch: Optional[pulumi.Input[builtins.bool]] = None,
                 order_id: Optional[pulumi.Input[builtins.str]] = None,
                 overdue_time: Optional[pulumi.Input[builtins.str]] = None,
                 period: Optional[pulumi.Input[builtins.float]] = None,
                 period_unit: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 server_groups: Optional[pulumi.Input[Sequence[pulumi.Input['ClbServerGroupArgs']]]] = None,
                 service_managed: Optional[pulumi.Input[builtins.bool]] = None,
                 slave_zone_id: Optional[pulumi.Input[builtins.str]] = None,
                 status: Optional[pulumi.Input[builtins.str]] = None,
                 subnet_id: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input['ClbTagArgs']]]] = None,
                 timestamp_remove_enabled: Optional[pulumi.Input[builtins.str]] = None,
                 type: Optional[pulumi.Input[builtins.str]] = None,
                 update_time: Optional[pulumi.Input[builtins.str]] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None,
                 zone_type: Optional[pulumi.Input[builtins.str]] = None):
        """
        Input properties used for looking up and filtering Clb resources.
        :param pulumi.Input['ClbAccessLogArgs'] access_log: 负载均衡实例中访问日志的信息。
        :param pulumi.Input[builtins.str] account_id: 负载均衡实例所属的账号ID。
        :param pulumi.Input[builtins.str] address_ip_version: CLB实例的IP地址类型。取值如下：ipv4（默认值）：表示该CLB为IPv4类型，仅支持转发IPv4请求。DualStack：表示该CLB为双栈类型，支持转发IPv4和IPv6请求。仅参数Type取private时，才可传入DualStack。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] allowed_ports: 允许的多个端口范围。
        :param pulumi.Input[builtins.bool] auto_renewal: 是否开通自动续费。true：是，默认自动续费为1个月。false（默认值）：否
        :param pulumi.Input[builtins.str] business_status: 负载均衡实例是否被锁定。
        :param pulumi.Input[builtins.str] bypass_security_group_enabled: 是否开启bypass安全组功能。
        :param pulumi.Input[builtins.str] create_time: 负载均衡实例的创建时间。
        :param pulumi.Input[builtins.str] deleted_time: 负载均衡实例的预期回收时间。
        :param pulumi.Input[builtins.str] description: 负载均衡实例的描述。
        :param pulumi.Input['ClbEipArgs'] eip: 负载均衡实例的公网IP的信息。
        :param pulumi.Input[builtins.str] eip_address: 公网IP地址。
        :param pulumi.Input[builtins.str] eip_id: 公网IP ID。
        :param pulumi.Input[builtins.bool] enabled: 负载均衡实例的启用状态。
        :param pulumi.Input['ClbEniArgs'] eni: 负载均衡实例的私网IPv4地址信息。
        :param pulumi.Input[builtins.float] eni_address_num: 负载均衡实例的私网IPv4地址数量。该参数和参数EniAddress不能同时传入，如果传入该参数，则无需传入EniAddress。
        :param pulumi.Input[builtins.str] eni_ipv6_address: 负载均衡实例的私网IPv6地址。
        :param pulumi.Input['ClbEnisArgs'] enis: 负载均衡实例的私网IPv4地址信息列表，创建时通过EniAddressNum指定数量。
        :param pulumi.Input[builtins.str] exclusive_cluster_id: 独占集群Id。
        :param pulumi.Input[builtins.str] expired_time: 负载均衡实例到期时间。
        :param pulumi.Input[builtins.float] load_balancer_billing_type: CLB实例计费方式。取值如下：1：包年包月。2（默认值）：按量计费-按规格计费。3：按量计费-按使用量计费。
        :param pulumi.Input[builtins.str] load_balancer_id: 负载均衡实例ID。
        :param pulumi.Input[builtins.str] load_balancer_name: 负载均衡实例的名称。
        :param pulumi.Input[builtins.str] load_balancer_spec: CLB实例的规格，不同规格提供的转发能力不同。small*1：小型I。small*2：小型II。medium*1：中型I。medium*2：中型II。large*1：大型I。large*2：大型II。
        :param pulumi.Input[builtins.str] lock_reason: 负载均衡实例被冻结的原因。
        :param pulumi.Input[builtins.str] master_zone_id: 负载均衡实例的主可用区ID。
        :param pulumi.Input[builtins.str] modification_protection_reason: 设置修改保护状态的原因。仅参数ModificationProtectionStatus取ConsoleProtection时，本参数有效。必须以字母、数字或中文开头，可包含字母、数字、中文及以下特殊字符：半角句号（.）、下划线（_）和中划线（-）。长度限制为1 ～ 80个字符。
        :param pulumi.Input[builtins.str] modification_protection_status: CLB实例是否开启控制台上修改保护。开启后，禁止通过控制台修改实例或删除实例。取值如下：NonProtection：不开启。ConsoleProtection：开启。
        :param pulumi.Input[builtins.bool] new_arch: 是否为新架构。
        :param pulumi.Input[builtins.str] order_id: 订单ID。仅在创建动作的参数LoadBalancerBillingType配置为1时，该参数有值。
        :param pulumi.Input[builtins.str] overdue_time: 负载均衡实例的冻结时间。
        :param pulumi.Input[builtins.float] period: 购买包年包月CLB实例的时长。默认为“1”。当PeriodUnit配置为Month时，取值范围为1～9，12，24和36。当PeriodUnit配置为Year时，取值范围为1～3。
        :param pulumi.Input[builtins.str] period_unit: 购买包年包月CLB实例的时长单位。仅LoadBalancerBillingType取1时，本参数有效。取值如下：Month (默认值)：月。Year：年
        :param pulumi.Input[builtins.str] project_name: CLB实例所属项目的名称。
        :param pulumi.Input[builtins.bool] service_managed: CLB实例是否为托管资源。
        :param pulumi.Input[builtins.str] slave_zone_id: 负载均衡实例的备可用区ID。
        :param pulumi.Input[builtins.str] status: 负载均衡实例状态，Inactive：已停止。Active：运行中。Creating：创建中。Provisioning：创建中。Configuring：配置中。Deleting：删除中。CreateFailed：创建失败。
        :param pulumi.Input[builtins.str] subnet_id: 负载均衡实例所属VPC内的子网ID。
        :param pulumi.Input[builtins.str] timestamp_remove_enabled: 是否开启 TCP Timestamp 清除功能。
        :param pulumi.Input[builtins.str] type: CLB实例的类型。取值如下：public：公网类型。创建一个公网类型CLB实例，系统会分配一个公网IP地址，用于转发公网请求。private：私网类型。创建一个私网类型CLB实例，您需要为其绑定公网IP后，才能转发公网请求。
        :param pulumi.Input[builtins.str] update_time: 负载均衡实例的最近操作时间。
        :param pulumi.Input[builtins.str] vpc_id: 负载均衡实例所属的VPC ID。
        :param pulumi.Input[builtins.str] zone_type: 负载均衡实例的可用区类型。
        """
        if access_log is not None:
            pulumi.set(__self__, "access_log", access_log)
        if account_id is not None:
            pulumi.set(__self__, "account_id", account_id)
        if address_ip_version is not None:
            pulumi.set(__self__, "address_ip_version", address_ip_version)
        if allowed_ports is not None:
            pulumi.set(__self__, "allowed_ports", allowed_ports)
        if auto_renewal is not None:
            pulumi.set(__self__, "auto_renewal", auto_renewal)
        if business_status is not None:
            pulumi.set(__self__, "business_status", business_status)
        if bypass_security_group_enabled is not None:
            pulumi.set(__self__, "bypass_security_group_enabled", bypass_security_group_enabled)
        if create_time is not None:
            pulumi.set(__self__, "create_time", create_time)
        if deleted_time is not None:
            pulumi.set(__self__, "deleted_time", deleted_time)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if eip is not None:
            pulumi.set(__self__, "eip", eip)
        if eip_address is not None:
            pulumi.set(__self__, "eip_address", eip_address)
        if eip_id is not None:
            pulumi.set(__self__, "eip_id", eip_id)
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if eni is not None:
            pulumi.set(__self__, "eni", eni)
        if eni_address_num is not None:
            pulumi.set(__self__, "eni_address_num", eni_address_num)
        if eni_ipv6_address is not None:
            pulumi.set(__self__, "eni_ipv6_address", eni_ipv6_address)
        if enis is not None:
            pulumi.set(__self__, "enis", enis)
        if exclusive_cluster_id is not None:
            pulumi.set(__self__, "exclusive_cluster_id", exclusive_cluster_id)
        if expired_time is not None:
            pulumi.set(__self__, "expired_time", expired_time)
        if listeners is not None:
            pulumi.set(__self__, "listeners", listeners)
        if load_balancer_billing_type is not None:
            pulumi.set(__self__, "load_balancer_billing_type", load_balancer_billing_type)
        if load_balancer_id is not None:
            pulumi.set(__self__, "load_balancer_id", load_balancer_id)
        if load_balancer_name is not None:
            pulumi.set(__self__, "load_balancer_name", load_balancer_name)
        if load_balancer_spec is not None:
            pulumi.set(__self__, "load_balancer_spec", load_balancer_spec)
        if lock_reason is not None:
            pulumi.set(__self__, "lock_reason", lock_reason)
        if master_zone_id is not None:
            pulumi.set(__self__, "master_zone_id", master_zone_id)
        if modification_protection_reason is not None:
            pulumi.set(__self__, "modification_protection_reason", modification_protection_reason)
        if modification_protection_status is not None:
            pulumi.set(__self__, "modification_protection_status", modification_protection_status)
        if new_arch is not None:
            pulumi.set(__self__, "new_arch", new_arch)
        if order_id is not None:
            pulumi.set(__self__, "order_id", order_id)
        if overdue_time is not None:
            pulumi.set(__self__, "overdue_time", overdue_time)
        if period is not None:
            pulumi.set(__self__, "period", period)
        if period_unit is not None:
            pulumi.set(__self__, "period_unit", period_unit)
        if project_name is not None:
            pulumi.set(__self__, "project_name", project_name)
        if server_groups is not None:
            pulumi.set(__self__, "server_groups", server_groups)
        if service_managed is not None:
            pulumi.set(__self__, "service_managed", service_managed)
        if slave_zone_id is not None:
            pulumi.set(__self__, "slave_zone_id", slave_zone_id)
        if status is not None:
            pulumi.set(__self__, "status", status)
        if subnet_id is not None:
            pulumi.set(__self__, "subnet_id", subnet_id)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)
        if timestamp_remove_enabled is not None:
            pulumi.set(__self__, "timestamp_remove_enabled", timestamp_remove_enabled)
        if type is not None:
            pulumi.set(__self__, "type", type)
        if update_time is not None:
            pulumi.set(__self__, "update_time", update_time)
        if vpc_id is not None:
            pulumi.set(__self__, "vpc_id", vpc_id)
        if zone_type is not None:
            pulumi.set(__self__, "zone_type", zone_type)

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

    @access_log.setter
    def access_log(self, value: Optional[pulumi.Input['ClbAccessLogArgs']]):
        pulumi.set(self, "access_log", value)

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

    @account_id.setter
    def account_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "account_id", value)

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

    @address_ip_version.setter
    def address_ip_version(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "address_ip_version", value)

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

    @allowed_ports.setter
    def allowed_ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
        pulumi.set(self, "allowed_ports", value)

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

    @auto_renewal.setter
    def auto_renewal(self, value: Optional[pulumi.Input[builtins.bool]]):
        pulumi.set(self, "auto_renewal", value)

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

    @business_status.setter
    def business_status(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "business_status", value)

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

    @bypass_security_group_enabled.setter
    def bypass_security_group_enabled(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "bypass_security_group_enabled", value)

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

    @create_time.setter
    def create_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "create_time", value)

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

    @deleted_time.setter
    def deleted_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "deleted_time", value)

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

    @description.setter
    def description(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "description", value)

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

    @eip.setter
    def eip(self, value: Optional[pulumi.Input['ClbEipArgs']]):
        pulumi.set(self, "eip", value)

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

    @eip_address.setter
    def eip_address(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "eip_address", value)

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

    @eip_id.setter
    def eip_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "eip_id", value)

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

    @enabled.setter
    def enabled(self, value: Optional[pulumi.Input[builtins.bool]]):
        pulumi.set(self, "enabled", value)

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

    @eni.setter
    def eni(self, value: Optional[pulumi.Input['ClbEniArgs']]):
        pulumi.set(self, "eni", value)

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

    @eni_address_num.setter
    def eni_address_num(self, value: Optional[pulumi.Input[builtins.float]]):
        pulumi.set(self, "eni_address_num", value)

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

    @eni_ipv6_address.setter
    def eni_ipv6_address(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "eni_ipv6_address", value)

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

    @enis.setter
    def enis(self, value: Optional[pulumi.Input['ClbEnisArgs']]):
        pulumi.set(self, "enis", value)

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

    @exclusive_cluster_id.setter
    def exclusive_cluster_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "exclusive_cluster_id", value)

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

    @expired_time.setter
    def expired_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "expired_time", value)

    @property
    @pulumi.getter
    def listeners(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClbListenerArgs']]]]:
        return pulumi.get(self, "listeners")

    @listeners.setter
    def listeners(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClbListenerArgs']]]]):
        pulumi.set(self, "listeners", value)

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

    @load_balancer_billing_type.setter
    def load_balancer_billing_type(self, value: Optional[pulumi.Input[builtins.float]]):
        pulumi.set(self, "load_balancer_billing_type", value)

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

    @load_balancer_id.setter
    def load_balancer_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "load_balancer_id", value)

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

    @load_balancer_name.setter
    def load_balancer_name(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "load_balancer_name", value)

    @property
    @pulumi.getter(name="loadBalancerSpec")
    def load_balancer_spec(self) -> Optional[pulumi.Input[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")

    @load_balancer_spec.setter
    def load_balancer_spec(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "load_balancer_spec", value)

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

    @lock_reason.setter
    def lock_reason(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "lock_reason", value)

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

    @master_zone_id.setter
    def master_zone_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "master_zone_id", value)

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

    @modification_protection_reason.setter
    def modification_protection_reason(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "modification_protection_reason", value)

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

    @modification_protection_status.setter
    def modification_protection_status(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "modification_protection_status", value)

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

    @new_arch.setter
    def new_arch(self, value: Optional[pulumi.Input[builtins.bool]]):
        pulumi.set(self, "new_arch", value)

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

    @order_id.setter
    def order_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "order_id", value)

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

    @overdue_time.setter
    def overdue_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "overdue_time", value)

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

    @period.setter
    def period(self, value: Optional[pulumi.Input[builtins.float]]):
        pulumi.set(self, "period", value)

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

    @period_unit.setter
    def period_unit(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "period_unit", value)

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

    @project_name.setter
    def project_name(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "project_name", value)

    @property
    @pulumi.getter(name="serverGroups")
    def server_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClbServerGroupArgs']]]]:
        return pulumi.get(self, "server_groups")

    @server_groups.setter
    def server_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClbServerGroupArgs']]]]):
        pulumi.set(self, "server_groups", value)

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

    @service_managed.setter
    def service_managed(self, value: Optional[pulumi.Input[builtins.bool]]):
        pulumi.set(self, "service_managed", value)

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

    @slave_zone_id.setter
    def slave_zone_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "slave_zone_id", value)

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

    @status.setter
    def status(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "status", value)

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

    @subnet_id.setter
    def subnet_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "subnet_id", value)

    @property
    @pulumi.getter
    def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ClbTagArgs']]]]:
        return pulumi.get(self, "tags")

    @tags.setter
    def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ClbTagArgs']]]]):
        pulumi.set(self, "tags", value)

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

    @timestamp_remove_enabled.setter
    def timestamp_remove_enabled(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "timestamp_remove_enabled", value)

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

    @type.setter
    def type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "type", value)

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

    @update_time.setter
    def update_time(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "update_time", value)

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

    @vpc_id.setter
    def vpc_id(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "vpc_id", value)

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

    @zone_type.setter
    def zone_type(self, value: Optional[pulumi.Input[builtins.str]]):
        pulumi.set(self, "zone_type", value)


@pulumi.type_token("bytepluscc:clb/clb:Clb")
class Clb(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 access_log: Optional[pulumi.Input[Union['ClbAccessLogArgs', 'ClbAccessLogArgsDict']]] = None,
                 address_ip_version: Optional[pulumi.Input[builtins.str]] = None,
                 allowed_ports: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 auto_renewal: Optional[pulumi.Input[builtins.bool]] = None,
                 bypass_security_group_enabled: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 eip: Optional[pulumi.Input[Union['ClbEipArgs', 'ClbEipArgsDict']]] = None,
                 eip_address: Optional[pulumi.Input[builtins.str]] = None,
                 eip_id: Optional[pulumi.Input[builtins.str]] = None,
                 eni_address_num: Optional[pulumi.Input[builtins.float]] = None,
                 enis: Optional[pulumi.Input[Union['ClbEnisArgs', 'ClbEnisArgsDict']]] = None,
                 exclusive_cluster_id: Optional[pulumi.Input[builtins.str]] = None,
                 listeners: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClbListenerArgs', 'ClbListenerArgsDict']]]]] = None,
                 load_balancer_billing_type: Optional[pulumi.Input[builtins.float]] = None,
                 load_balancer_name: Optional[pulumi.Input[builtins.str]] = None,
                 load_balancer_spec: Optional[pulumi.Input[builtins.str]] = None,
                 master_zone_id: Optional[pulumi.Input[builtins.str]] = None,
                 modification_protection_reason: Optional[pulumi.Input[builtins.str]] = None,
                 modification_protection_status: Optional[pulumi.Input[builtins.str]] = None,
                 new_arch: Optional[pulumi.Input[builtins.bool]] = None,
                 order_id: Optional[pulumi.Input[builtins.str]] = None,
                 period: Optional[pulumi.Input[builtins.float]] = None,
                 period_unit: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 server_groups: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClbServerGroupArgs', 'ClbServerGroupArgsDict']]]]] = None,
                 slave_zone_id: Optional[pulumi.Input[builtins.str]] = None,
                 subnet_id: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClbTagArgs', 'ClbTagArgsDict']]]]] = None,
                 type: Optional[pulumi.Input[builtins.str]] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None,
                 zone_type: Optional[pulumi.Input[builtins.str]] = None,
                 __props__=None):
        """
        负载均衡实例

        ## Import

        ```sh
        $ pulumi import bytepluscc:clb/clb:Clb example "load_balancer_id"
        ```

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[Union['ClbAccessLogArgs', 'ClbAccessLogArgsDict']] access_log: 负载均衡实例中访问日志的信息。
        :param pulumi.Input[builtins.str] address_ip_version: CLB实例的IP地址类型。取值如下：ipv4（默认值）：表示该CLB为IPv4类型，仅支持转发IPv4请求。DualStack：表示该CLB为双栈类型，支持转发IPv4和IPv6请求。仅参数Type取private时，才可传入DualStack。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] allowed_ports: 允许的多个端口范围。
        :param pulumi.Input[builtins.bool] auto_renewal: 是否开通自动续费。true：是，默认自动续费为1个月。false（默认值）：否
        :param pulumi.Input[builtins.str] bypass_security_group_enabled: 是否开启bypass安全组功能。
        :param pulumi.Input[builtins.str] description: 负载均衡实例的描述。
        :param pulumi.Input[Union['ClbEipArgs', 'ClbEipArgsDict']] eip: 负载均衡实例的公网IP的信息。
        :param pulumi.Input[builtins.str] eip_address: 公网IP地址。
        :param pulumi.Input[builtins.str] eip_id: 公网IP ID。
        :param pulumi.Input[builtins.float] eni_address_num: 负载均衡实例的私网IPv4地址数量。该参数和参数EniAddress不能同时传入，如果传入该参数，则无需传入EniAddress。
        :param pulumi.Input[Union['ClbEnisArgs', 'ClbEnisArgsDict']] enis: 负载均衡实例的私网IPv4地址信息列表，创建时通过EniAddressNum指定数量。
        :param pulumi.Input[builtins.str] exclusive_cluster_id: 独占集群Id。
        :param pulumi.Input[builtins.float] load_balancer_billing_type: CLB实例计费方式。取值如下：1：包年包月。2（默认值）：按量计费-按规格计费。3：按量计费-按使用量计费。
        :param pulumi.Input[builtins.str] load_balancer_name: 负载均衡实例的名称。
        :param pulumi.Input[builtins.str] load_balancer_spec: CLB实例的规格，不同规格提供的转发能力不同。small*1：小型I。small*2：小型II。medium*1：中型I。medium*2：中型II。large*1：大型I。large*2：大型II。
        :param pulumi.Input[builtins.str] master_zone_id: 负载均衡实例的主可用区ID。
        :param pulumi.Input[builtins.str] modification_protection_reason: 设置修改保护状态的原因。仅参数ModificationProtectionStatus取ConsoleProtection时，本参数有效。必须以字母、数字或中文开头，可包含字母、数字、中文及以下特殊字符：半角句号（.）、下划线（_）和中划线（-）。长度限制为1 ～ 80个字符。
        :param pulumi.Input[builtins.str] modification_protection_status: CLB实例是否开启控制台上修改保护。开启后，禁止通过控制台修改实例或删除实例。取值如下：NonProtection：不开启。ConsoleProtection：开启。
        :param pulumi.Input[builtins.bool] new_arch: 是否为新架构。
        :param pulumi.Input[builtins.str] order_id: 订单ID。仅在创建动作的参数LoadBalancerBillingType配置为1时，该参数有值。
        :param pulumi.Input[builtins.float] period: 购买包年包月CLB实例的时长。默认为“1”。当PeriodUnit配置为Month时，取值范围为1～9，12，24和36。当PeriodUnit配置为Year时，取值范围为1～3。
        :param pulumi.Input[builtins.str] period_unit: 购买包年包月CLB实例的时长单位。仅LoadBalancerBillingType取1时，本参数有效。取值如下：Month (默认值)：月。Year：年
        :param pulumi.Input[builtins.str] project_name: CLB实例所属项目的名称。
        :param pulumi.Input[builtins.str] slave_zone_id: 负载均衡实例的备可用区ID。
        :param pulumi.Input[builtins.str] subnet_id: 负载均衡实例所属VPC内的子网ID。
        :param pulumi.Input[builtins.str] type: CLB实例的类型。取值如下：public：公网类型。创建一个公网类型CLB实例，系统会分配一个公网IP地址，用于转发公网请求。private：私网类型。创建一个私网类型CLB实例，您需要为其绑定公网IP后，才能转发公网请求。
        :param pulumi.Input[builtins.str] vpc_id: 负载均衡实例所属的VPC ID。
        :param pulumi.Input[builtins.str] zone_type: 负载均衡实例的可用区类型。
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: Optional[ClbArgs] = None,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        负载均衡实例

        ## Import

        ```sh
        $ pulumi import bytepluscc:clb/clb:Clb example "load_balancer_id"
        ```

        :param str resource_name: The name of the resource.
        :param ClbArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(ClbArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 access_log: Optional[pulumi.Input[Union['ClbAccessLogArgs', 'ClbAccessLogArgsDict']]] = None,
                 address_ip_version: Optional[pulumi.Input[builtins.str]] = None,
                 allowed_ports: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
                 auto_renewal: Optional[pulumi.Input[builtins.bool]] = None,
                 bypass_security_group_enabled: Optional[pulumi.Input[builtins.str]] = None,
                 description: Optional[pulumi.Input[builtins.str]] = None,
                 eip: Optional[pulumi.Input[Union['ClbEipArgs', 'ClbEipArgsDict']]] = None,
                 eip_address: Optional[pulumi.Input[builtins.str]] = None,
                 eip_id: Optional[pulumi.Input[builtins.str]] = None,
                 eni_address_num: Optional[pulumi.Input[builtins.float]] = None,
                 enis: Optional[pulumi.Input[Union['ClbEnisArgs', 'ClbEnisArgsDict']]] = None,
                 exclusive_cluster_id: Optional[pulumi.Input[builtins.str]] = None,
                 listeners: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClbListenerArgs', 'ClbListenerArgsDict']]]]] = None,
                 load_balancer_billing_type: Optional[pulumi.Input[builtins.float]] = None,
                 load_balancer_name: Optional[pulumi.Input[builtins.str]] = None,
                 load_balancer_spec: Optional[pulumi.Input[builtins.str]] = None,
                 master_zone_id: Optional[pulumi.Input[builtins.str]] = None,
                 modification_protection_reason: Optional[pulumi.Input[builtins.str]] = None,
                 modification_protection_status: Optional[pulumi.Input[builtins.str]] = None,
                 new_arch: Optional[pulumi.Input[builtins.bool]] = None,
                 order_id: Optional[pulumi.Input[builtins.str]] = None,
                 period: Optional[pulumi.Input[builtins.float]] = None,
                 period_unit: Optional[pulumi.Input[builtins.str]] = None,
                 project_name: Optional[pulumi.Input[builtins.str]] = None,
                 server_groups: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClbServerGroupArgs', 'ClbServerGroupArgsDict']]]]] = None,
                 slave_zone_id: Optional[pulumi.Input[builtins.str]] = None,
                 subnet_id: Optional[pulumi.Input[builtins.str]] = None,
                 tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClbTagArgs', 'ClbTagArgsDict']]]]] = None,
                 type: Optional[pulumi.Input[builtins.str]] = None,
                 vpc_id: Optional[pulumi.Input[builtins.str]] = None,
                 zone_type: Optional[pulumi.Input[builtins.str]] = None,
                 __props__=None):
        opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = ClbArgs.__new__(ClbArgs)

            __props__.__dict__["access_log"] = access_log
            __props__.__dict__["address_ip_version"] = address_ip_version
            __props__.__dict__["allowed_ports"] = allowed_ports
            __props__.__dict__["auto_renewal"] = auto_renewal
            __props__.__dict__["bypass_security_group_enabled"] = bypass_security_group_enabled
            __props__.__dict__["description"] = description
            __props__.__dict__["eip"] = eip
            __props__.__dict__["eip_address"] = eip_address
            __props__.__dict__["eip_id"] = eip_id
            __props__.__dict__["eni_address_num"] = eni_address_num
            __props__.__dict__["enis"] = enis
            __props__.__dict__["exclusive_cluster_id"] = exclusive_cluster_id
            __props__.__dict__["listeners"] = listeners
            __props__.__dict__["load_balancer_billing_type"] = load_balancer_billing_type
            __props__.__dict__["load_balancer_name"] = load_balancer_name
            __props__.__dict__["load_balancer_spec"] = load_balancer_spec
            __props__.__dict__["master_zone_id"] = master_zone_id
            __props__.__dict__["modification_protection_reason"] = modification_protection_reason
            __props__.__dict__["modification_protection_status"] = modification_protection_status
            __props__.__dict__["new_arch"] = new_arch
            __props__.__dict__["order_id"] = order_id
            __props__.__dict__["period"] = period
            __props__.__dict__["period_unit"] = period_unit
            __props__.__dict__["project_name"] = project_name
            __props__.__dict__["server_groups"] = server_groups
            __props__.__dict__["slave_zone_id"] = slave_zone_id
            __props__.__dict__["subnet_id"] = subnet_id
            __props__.__dict__["tags"] = tags
            __props__.__dict__["type"] = type
            __props__.__dict__["vpc_id"] = vpc_id
            __props__.__dict__["zone_type"] = zone_type
            __props__.__dict__["account_id"] = None
            __props__.__dict__["business_status"] = None
            __props__.__dict__["create_time"] = None
            __props__.__dict__["deleted_time"] = None
            __props__.__dict__["enabled"] = None
            __props__.__dict__["eni"] = None
            __props__.__dict__["eni_ipv6_address"] = None
            __props__.__dict__["expired_time"] = None
            __props__.__dict__["load_balancer_id"] = None
            __props__.__dict__["lock_reason"] = None
            __props__.__dict__["overdue_time"] = None
            __props__.__dict__["service_managed"] = None
            __props__.__dict__["status"] = None
            __props__.__dict__["timestamp_remove_enabled"] = None
            __props__.__dict__["update_time"] = None
        super(Clb, __self__).__init__(
            'bytepluscc:clb/clb:Clb',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None,
            access_log: Optional[pulumi.Input[Union['ClbAccessLogArgs', 'ClbAccessLogArgsDict']]] = None,
            account_id: Optional[pulumi.Input[builtins.str]] = None,
            address_ip_version: Optional[pulumi.Input[builtins.str]] = None,
            allowed_ports: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
            auto_renewal: Optional[pulumi.Input[builtins.bool]] = None,
            business_status: Optional[pulumi.Input[builtins.str]] = None,
            bypass_security_group_enabled: Optional[pulumi.Input[builtins.str]] = None,
            create_time: Optional[pulumi.Input[builtins.str]] = None,
            deleted_time: Optional[pulumi.Input[builtins.str]] = None,
            description: Optional[pulumi.Input[builtins.str]] = None,
            eip: Optional[pulumi.Input[Union['ClbEipArgs', 'ClbEipArgsDict']]] = None,
            eip_address: Optional[pulumi.Input[builtins.str]] = None,
            eip_id: Optional[pulumi.Input[builtins.str]] = None,
            enabled: Optional[pulumi.Input[builtins.bool]] = None,
            eni: Optional[pulumi.Input[Union['ClbEniArgs', 'ClbEniArgsDict']]] = None,
            eni_address_num: Optional[pulumi.Input[builtins.float]] = None,
            eni_ipv6_address: Optional[pulumi.Input[builtins.str]] = None,
            enis: Optional[pulumi.Input[Union['ClbEnisArgs', 'ClbEnisArgsDict']]] = None,
            exclusive_cluster_id: Optional[pulumi.Input[builtins.str]] = None,
            expired_time: Optional[pulumi.Input[builtins.str]] = None,
            listeners: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClbListenerArgs', 'ClbListenerArgsDict']]]]] = None,
            load_balancer_billing_type: Optional[pulumi.Input[builtins.float]] = None,
            load_balancer_id: Optional[pulumi.Input[builtins.str]] = None,
            load_balancer_name: Optional[pulumi.Input[builtins.str]] = None,
            load_balancer_spec: Optional[pulumi.Input[builtins.str]] = None,
            lock_reason: Optional[pulumi.Input[builtins.str]] = None,
            master_zone_id: Optional[pulumi.Input[builtins.str]] = None,
            modification_protection_reason: Optional[pulumi.Input[builtins.str]] = None,
            modification_protection_status: Optional[pulumi.Input[builtins.str]] = None,
            new_arch: Optional[pulumi.Input[builtins.bool]] = None,
            order_id: Optional[pulumi.Input[builtins.str]] = None,
            overdue_time: Optional[pulumi.Input[builtins.str]] = None,
            period: Optional[pulumi.Input[builtins.float]] = None,
            period_unit: Optional[pulumi.Input[builtins.str]] = None,
            project_name: Optional[pulumi.Input[builtins.str]] = None,
            server_groups: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClbServerGroupArgs', 'ClbServerGroupArgsDict']]]]] = None,
            service_managed: Optional[pulumi.Input[builtins.bool]] = None,
            slave_zone_id: Optional[pulumi.Input[builtins.str]] = None,
            status: Optional[pulumi.Input[builtins.str]] = None,
            subnet_id: Optional[pulumi.Input[builtins.str]] = None,
            tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ClbTagArgs', 'ClbTagArgsDict']]]]] = None,
            timestamp_remove_enabled: Optional[pulumi.Input[builtins.str]] = None,
            type: Optional[pulumi.Input[builtins.str]] = None,
            update_time: Optional[pulumi.Input[builtins.str]] = None,
            vpc_id: Optional[pulumi.Input[builtins.str]] = None,
            zone_type: Optional[pulumi.Input[builtins.str]] = None) -> 'Clb':
        """
        Get an existing Clb resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[Union['ClbAccessLogArgs', 'ClbAccessLogArgsDict']] access_log: 负载均衡实例中访问日志的信息。
        :param pulumi.Input[builtins.str] account_id: 负载均衡实例所属的账号ID。
        :param pulumi.Input[builtins.str] address_ip_version: CLB实例的IP地址类型。取值如下：ipv4（默认值）：表示该CLB为IPv4类型，仅支持转发IPv4请求。DualStack：表示该CLB为双栈类型，支持转发IPv4和IPv6请求。仅参数Type取private时，才可传入DualStack。
        :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] allowed_ports: 允许的多个端口范围。
        :param pulumi.Input[builtins.bool] auto_renewal: 是否开通自动续费。true：是，默认自动续费为1个月。false（默认值）：否
        :param pulumi.Input[builtins.str] business_status: 负载均衡实例是否被锁定。
        :param pulumi.Input[builtins.str] bypass_security_group_enabled: 是否开启bypass安全组功能。
        :param pulumi.Input[builtins.str] create_time: 负载均衡实例的创建时间。
        :param pulumi.Input[builtins.str] deleted_time: 负载均衡实例的预期回收时间。
        :param pulumi.Input[builtins.str] description: 负载均衡实例的描述。
        :param pulumi.Input[Union['ClbEipArgs', 'ClbEipArgsDict']] eip: 负载均衡实例的公网IP的信息。
        :param pulumi.Input[builtins.str] eip_address: 公网IP地址。
        :param pulumi.Input[builtins.str] eip_id: 公网IP ID。
        :param pulumi.Input[builtins.bool] enabled: 负载均衡实例的启用状态。
        :param pulumi.Input[Union['ClbEniArgs', 'ClbEniArgsDict']] eni: 负载均衡实例的私网IPv4地址信息。
        :param pulumi.Input[builtins.float] eni_address_num: 负载均衡实例的私网IPv4地址数量。该参数和参数EniAddress不能同时传入，如果传入该参数，则无需传入EniAddress。
        :param pulumi.Input[builtins.str] eni_ipv6_address: 负载均衡实例的私网IPv6地址。
        :param pulumi.Input[Union['ClbEnisArgs', 'ClbEnisArgsDict']] enis: 负载均衡实例的私网IPv4地址信息列表，创建时通过EniAddressNum指定数量。
        :param pulumi.Input[builtins.str] exclusive_cluster_id: 独占集群Id。
        :param pulumi.Input[builtins.str] expired_time: 负载均衡实例到期时间。
        :param pulumi.Input[builtins.float] load_balancer_billing_type: CLB实例计费方式。取值如下：1：包年包月。2（默认值）：按量计费-按规格计费。3：按量计费-按使用量计费。
        :param pulumi.Input[builtins.str] load_balancer_id: 负载均衡实例ID。
        :param pulumi.Input[builtins.str] load_balancer_name: 负载均衡实例的名称。
        :param pulumi.Input[builtins.str] load_balancer_spec: CLB实例的规格，不同规格提供的转发能力不同。small*1：小型I。small*2：小型II。medium*1：中型I。medium*2：中型II。large*1：大型I。large*2：大型II。
        :param pulumi.Input[builtins.str] lock_reason: 负载均衡实例被冻结的原因。
        :param pulumi.Input[builtins.str] master_zone_id: 负载均衡实例的主可用区ID。
        :param pulumi.Input[builtins.str] modification_protection_reason: 设置修改保护状态的原因。仅参数ModificationProtectionStatus取ConsoleProtection时，本参数有效。必须以字母、数字或中文开头，可包含字母、数字、中文及以下特殊字符：半角句号（.）、下划线（_）和中划线（-）。长度限制为1 ～ 80个字符。
        :param pulumi.Input[builtins.str] modification_protection_status: CLB实例是否开启控制台上修改保护。开启后，禁止通过控制台修改实例或删除实例。取值如下：NonProtection：不开启。ConsoleProtection：开启。
        :param pulumi.Input[builtins.bool] new_arch: 是否为新架构。
        :param pulumi.Input[builtins.str] order_id: 订单ID。仅在创建动作的参数LoadBalancerBillingType配置为1时，该参数有值。
        :param pulumi.Input[builtins.str] overdue_time: 负载均衡实例的冻结时间。
        :param pulumi.Input[builtins.float] period: 购买包年包月CLB实例的时长。默认为“1”。当PeriodUnit配置为Month时，取值范围为1～9，12，24和36。当PeriodUnit配置为Year时，取值范围为1～3。
        :param pulumi.Input[builtins.str] period_unit: 购买包年包月CLB实例的时长单位。仅LoadBalancerBillingType取1时，本参数有效。取值如下：Month (默认值)：月。Year：年
        :param pulumi.Input[builtins.str] project_name: CLB实例所属项目的名称。
        :param pulumi.Input[builtins.bool] service_managed: CLB实例是否为托管资源。
        :param pulumi.Input[builtins.str] slave_zone_id: 负载均衡实例的备可用区ID。
        :param pulumi.Input[builtins.str] status: 负载均衡实例状态，Inactive：已停止。Active：运行中。Creating：创建中。Provisioning：创建中。Configuring：配置中。Deleting：删除中。CreateFailed：创建失败。
        :param pulumi.Input[builtins.str] subnet_id: 负载均衡实例所属VPC内的子网ID。
        :param pulumi.Input[builtins.str] timestamp_remove_enabled: 是否开启 TCP Timestamp 清除功能。
        :param pulumi.Input[builtins.str] type: CLB实例的类型。取值如下：public：公网类型。创建一个公网类型CLB实例，系统会分配一个公网IP地址，用于转发公网请求。private：私网类型。创建一个私网类型CLB实例，您需要为其绑定公网IP后，才能转发公网请求。
        :param pulumi.Input[builtins.str] update_time: 负载均衡实例的最近操作时间。
        :param pulumi.Input[builtins.str] vpc_id: 负载均衡实例所属的VPC ID。
        :param pulumi.Input[builtins.str] zone_type: 负载均衡实例的可用区类型。
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = _ClbState.__new__(_ClbState)

        __props__.__dict__["access_log"] = access_log
        __props__.__dict__["account_id"] = account_id
        __props__.__dict__["address_ip_version"] = address_ip_version
        __props__.__dict__["allowed_ports"] = allowed_ports
        __props__.__dict__["auto_renewal"] = auto_renewal
        __props__.__dict__["business_status"] = business_status
        __props__.__dict__["bypass_security_group_enabled"] = bypass_security_group_enabled
        __props__.__dict__["create_time"] = create_time
        __props__.__dict__["deleted_time"] = deleted_time
        __props__.__dict__["description"] = description
        __props__.__dict__["eip"] = eip
        __props__.__dict__["eip_address"] = eip_address
        __props__.__dict__["eip_id"] = eip_id
        __props__.__dict__["enabled"] = enabled
        __props__.__dict__["eni"] = eni
        __props__.__dict__["eni_address_num"] = eni_address_num
        __props__.__dict__["eni_ipv6_address"] = eni_ipv6_address
        __props__.__dict__["enis"] = enis
        __props__.__dict__["exclusive_cluster_id"] = exclusive_cluster_id
        __props__.__dict__["expired_time"] = expired_time
        __props__.__dict__["listeners"] = listeners
        __props__.__dict__["load_balancer_billing_type"] = load_balancer_billing_type
        __props__.__dict__["load_balancer_id"] = load_balancer_id
        __props__.__dict__["load_balancer_name"] = load_balancer_name
        __props__.__dict__["load_balancer_spec"] = load_balancer_spec
        __props__.__dict__["lock_reason"] = lock_reason
        __props__.__dict__["master_zone_id"] = master_zone_id
        __props__.__dict__["modification_protection_reason"] = modification_protection_reason
        __props__.__dict__["modification_protection_status"] = modification_protection_status
        __props__.__dict__["new_arch"] = new_arch
        __props__.__dict__["order_id"] = order_id
        __props__.__dict__["overdue_time"] = overdue_time
        __props__.__dict__["period"] = period
        __props__.__dict__["period_unit"] = period_unit
        __props__.__dict__["project_name"] = project_name
        __props__.__dict__["server_groups"] = server_groups
        __props__.__dict__["service_managed"] = service_managed
        __props__.__dict__["slave_zone_id"] = slave_zone_id
        __props__.__dict__["status"] = status
        __props__.__dict__["subnet_id"] = subnet_id
        __props__.__dict__["tags"] = tags
        __props__.__dict__["timestamp_remove_enabled"] = timestamp_remove_enabled
        __props__.__dict__["type"] = type
        __props__.__dict__["update_time"] = update_time
        __props__.__dict__["vpc_id"] = vpc_id
        __props__.__dict__["zone_type"] = zone_type
        return Clb(resource_name, opts=opts, __props__=__props__)

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

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

    @property
    @pulumi.getter(name="addressIpVersion")
    def address_ip_version(self) -> pulumi.Output[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) -> pulumi.Output[Sequence[builtins.str]]:
        """
        允许的多个端口范围。
        """
        return pulumi.get(self, "allowed_ports")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @property
    @pulumi.getter
    def listeners(self) -> pulumi.Output[Sequence['outputs.ClbListener']]:
        return pulumi.get(self, "listeners")

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

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

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

    @property
    @pulumi.getter(name="loadBalancerSpec")
    def load_balancer_spec(self) -> pulumi.Output[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) -> pulumi.Output[builtins.str]:
        """
        负载均衡实例被冻结的原因。
        """
        return pulumi.get(self, "lock_reason")

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

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

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

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

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

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

    @property
    @pulumi.getter
    def period(self) -> pulumi.Output[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) -> pulumi.Output[builtins.str]:
        """
        购买包年包月CLB实例的时长单位。仅LoadBalancerBillingType取1时，本参数有效。取值如下：Month (默认值)：月。Year：年
        """
        return pulumi.get(self, "period_unit")

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

    @property
    @pulumi.getter(name="serverGroups")
    def server_groups(self) -> pulumi.Output[Sequence['outputs.ClbServerGroup']]:
        return pulumi.get(self, "server_groups")

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

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

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

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

    @property
    @pulumi.getter
    def tags(self) -> pulumi.Output[Sequence['outputs.ClbTag']]:
        return pulumi.get(self, "tags")

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

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

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

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

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

