# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Dict, List, Mapping, Optional, Tuple, Union
from .. import _utilities, _tables

__all__ = [
    'GetInstancesInstanceResult',
    'GetZonesZoneResult',
]

@pulumi.output_type
class GetInstancesInstanceResult(dict):
    def __init__(__self__, *,
                 backup_status: str,
                 core_disk_size: float,
                 core_disk_type: str,
                 core_instance_type: str,
                 core_node_count: float,
                 created_time: str,
                 deletion_protection: bool,
                 engine: str,
                 engine_version: str,
                 expire_time: str,
                 id: str,
                 master_instance_type: str,
                 master_node_count: float,
                 name: str,
                 network_type: str,
                 pay_type: str,
                 region_id: str,
                 status: str,
                 vpc_id: str,
                 vswitch_id: str,
                 zone_id: str,
                 tags: Optional[Mapping[str, Any]] = None):
        """
        :param str backup_status: the Backup Status of the instance.
        :param float core_disk_size: core node disk size, unit:GB.
        :param str core_disk_type: cloud_ssd or cloud_efficiency
        :param str core_instance_type: hbase.sn1.large, hbase.sn1.large, hbase.n1.2xlarge and so on.
        :param float core_node_count: same with "core_instance_quantity"
        :param bool deletion_protection: the switch of delete protection.
        :param str engine: the engine of the instance.
        :param str engine_version: the engine_version of the instance.
        :param str expire_time: the expire time of the instance.
        :param str id: The ID of the HBase instance.
        :param str master_instance_type: hbase.sn1.large, hbase.sn1.large, hbase.n1.2xlarge and so on.
        :param float master_node_count: the node count of master
        :param str name: The name of the HBase instance.
        :param str network_type: Classic network or VPC.
        :param str pay_type: Billing method. Value options are `PostPaid` for  Pay-As-You-Go and `PrePaid` for yearly or monthly subscription.
        :param str region_id: Region ID the instance belongs to.
        :param str status: Status of the instance.
        :param str vpc_id: VPC ID the instance belongs to.
        :param str vswitch_id: VSwitch ID the instance belongs to.
        :param str zone_id: Zone ID the instance belongs to.
        :param Mapping[str, Any] tags: A mapping of tags to assign to the resource.
        """
        pulumi.set(__self__, "backup_status", backup_status)
        pulumi.set(__self__, "core_disk_size", core_disk_size)
        pulumi.set(__self__, "core_disk_type", core_disk_type)
        pulumi.set(__self__, "core_instance_type", core_instance_type)
        pulumi.set(__self__, "core_node_count", core_node_count)
        pulumi.set(__self__, "created_time", created_time)
        pulumi.set(__self__, "deletion_protection", deletion_protection)
        pulumi.set(__self__, "engine", engine)
        pulumi.set(__self__, "engine_version", engine_version)
        pulumi.set(__self__, "expire_time", expire_time)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "master_instance_type", master_instance_type)
        pulumi.set(__self__, "master_node_count", master_node_count)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "network_type", network_type)
        pulumi.set(__self__, "pay_type", pay_type)
        pulumi.set(__self__, "region_id", region_id)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "vpc_id", vpc_id)
        pulumi.set(__self__, "vswitch_id", vswitch_id)
        pulumi.set(__self__, "zone_id", zone_id)
        if tags is not None:
            pulumi.set(__self__, "tags", tags)

    @property
    @pulumi.getter(name="backupStatus")
    def backup_status(self) -> str:
        """
        the Backup Status of the instance.
        """
        return pulumi.get(self, "backup_status")

    @property
    @pulumi.getter(name="coreDiskSize")
    def core_disk_size(self) -> float:
        """
        core node disk size, unit:GB.
        """
        return pulumi.get(self, "core_disk_size")

    @property
    @pulumi.getter(name="coreDiskType")
    def core_disk_type(self) -> str:
        """
        cloud_ssd or cloud_efficiency
        """
        return pulumi.get(self, "core_disk_type")

    @property
    @pulumi.getter(name="coreInstanceType")
    def core_instance_type(self) -> str:
        """
        hbase.sn1.large, hbase.sn1.large, hbase.n1.2xlarge and so on.
        """
        return pulumi.get(self, "core_instance_type")

    @property
    @pulumi.getter(name="coreNodeCount")
    def core_node_count(self) -> float:
        """
        same with "core_instance_quantity"
        """
        return pulumi.get(self, "core_node_count")

    @property
    @pulumi.getter(name="createdTime")
    def created_time(self) -> str:
        return pulumi.get(self, "created_time")

    @property
    @pulumi.getter(name="deletionProtection")
    def deletion_protection(self) -> bool:
        """
        the switch of delete protection.
        """
        return pulumi.get(self, "deletion_protection")

    @property
    @pulumi.getter
    def engine(self) -> str:
        """
        the engine of the instance.
        """
        return pulumi.get(self, "engine")

    @property
    @pulumi.getter(name="engineVersion")
    def engine_version(self) -> str:
        """
        the engine_version of the instance.
        """
        return pulumi.get(self, "engine_version")

    @property
    @pulumi.getter(name="expireTime")
    def expire_time(self) -> str:
        """
        the expire time of the instance.
        """
        return pulumi.get(self, "expire_time")

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the HBase instance.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="masterInstanceType")
    def master_instance_type(self) -> str:
        """
        hbase.sn1.large, hbase.sn1.large, hbase.n1.2xlarge and so on.
        """
        return pulumi.get(self, "master_instance_type")

    @property
    @pulumi.getter(name="masterNodeCount")
    def master_node_count(self) -> float:
        """
        the node count of master
        """
        return pulumi.get(self, "master_node_count")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The name of the HBase instance.
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="networkType")
    def network_type(self) -> str:
        """
        Classic network or VPC.
        """
        return pulumi.get(self, "network_type")

    @property
    @pulumi.getter(name="payType")
    def pay_type(self) -> str:
        """
        Billing method. Value options are `PostPaid` for  Pay-As-You-Go and `PrePaid` for yearly or monthly subscription.
        """
        return pulumi.get(self, "pay_type")

    @property
    @pulumi.getter(name="regionId")
    def region_id(self) -> str:
        """
        Region ID the instance belongs to.
        """
        return pulumi.get(self, "region_id")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        Status of the instance.
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> str:
        """
        VPC ID the instance belongs to.
        """
        return pulumi.get(self, "vpc_id")

    @property
    @pulumi.getter(name="vswitchId")
    def vswitch_id(self) -> str:
        """
        VSwitch ID the instance belongs to.
        """
        return pulumi.get(self, "vswitch_id")

    @property
    @pulumi.getter(name="zoneId")
    def zone_id(self) -> str:
        """
        Zone ID the instance belongs to.
        """
        return pulumi.get(self, "zone_id")

    @property
    @pulumi.getter
    def tags(self) -> Optional[Mapping[str, Any]]:
        """
        A mapping of tags to assign to the resource.
        """
        return pulumi.get(self, "tags")


@pulumi.output_type
class GetZonesZoneResult(dict):
    def __init__(__self__, *,
                 id: str):
        """
        :param str id: ID of the zone.
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        ID of the zone.
        """
        return pulumi.get(self, "id")


