# 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 copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities

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

@pulumi.output_type
class GetInstancesInstanceResult(dict):
    def __init__(__self__, *,
                 auto_renew: str,
                 cpu_number: str,
                 disk_category: str,
                 engine_type: str,
                 expired_time: int,
                 id: str,
                 instance_alias: str,
                 instance_class: str,
                 instance_id: str,
                 instance_storage: str,
                 memory_size: str,
                 network_type: str,
                 payment_type: str,
                 status: str,
                 vpc_connection_address: str,
                 vpc_id: str,
                 vswitch_id: str,
                 zone_id: str):
        """
        :param str auto_renew: Auto renew.
        :param str cpu_number: The cpu core number of instance.
        :param str disk_category: The disk type of instance. `cloud_ssd` refers to SSD disk, `cloud_efficiency` refers to efficiency disk,cloud_essd refers to ESSD PL1 disk.
        :param str engine_type: The engine type of instance. Enumerative: `tsdb_tsdb` refers to TSDB, `tsdb_influxdb` refers to TSDB for InfluxDB️.
        :param int expired_time: Instance expiration time.
        :param str id: The ID of the Instance.
        :param str instance_alias: The alias of the instance.
        :param str instance_class: The specification of the instance.
        :param str instance_id: The ID of the instance.
        :param str instance_storage: The storage capacity of the instance. Unit: GB. For example, the value 50 indicates 50 GB.
        :param str memory_size: The memory size of instance.
        :param str network_type: Instance network type.
        :param str payment_type: The billing method. Valid values: `PayAsYouGo` and `Subscription`. The `PayAsYouGo` value indicates the pay-as-you-go method, and the `Subscription` value indicates the subscription method.
        :param str status: Instance status, enumerative: ACTIVATION,DELETED, CREATING,CLASS_CHANGING,LOCKED.
        :param str vpc_connection_address: The vpc connection address of instance.
        :param str vpc_id: The ID of the virtual private cloud (VPC) that is connected to the instance.
        :param str vswitch_id: The vswitch id.
        :param str zone_id: The zone ID of the instance.
        """
        pulumi.set(__self__, "auto_renew", auto_renew)
        pulumi.set(__self__, "cpu_number", cpu_number)
        pulumi.set(__self__, "disk_category", disk_category)
        pulumi.set(__self__, "engine_type", engine_type)
        pulumi.set(__self__, "expired_time", expired_time)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "instance_alias", instance_alias)
        pulumi.set(__self__, "instance_class", instance_class)
        pulumi.set(__self__, "instance_id", instance_id)
        pulumi.set(__self__, "instance_storage", instance_storage)
        pulumi.set(__self__, "memory_size", memory_size)
        pulumi.set(__self__, "network_type", network_type)
        pulumi.set(__self__, "payment_type", payment_type)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "vpc_connection_address", vpc_connection_address)
        pulumi.set(__self__, "vpc_id", vpc_id)
        pulumi.set(__self__, "vswitch_id", vswitch_id)
        pulumi.set(__self__, "zone_id", zone_id)

    @property
    @pulumi.getter(name="autoRenew")
    def auto_renew(self) -> str:
        """
        Auto renew.
        """
        return pulumi.get(self, "auto_renew")

    @property
    @pulumi.getter(name="cpuNumber")
    def cpu_number(self) -> str:
        """
        The cpu core number of instance.
        """
        return pulumi.get(self, "cpu_number")

    @property
    @pulumi.getter(name="diskCategory")
    def disk_category(self) -> str:
        """
        The disk type of instance. `cloud_ssd` refers to SSD disk, `cloud_efficiency` refers to efficiency disk,cloud_essd refers to ESSD PL1 disk.
        """
        return pulumi.get(self, "disk_category")

    @property
    @pulumi.getter(name="engineType")
    def engine_type(self) -> str:
        """
        The engine type of instance. Enumerative: `tsdb_tsdb` refers to TSDB, `tsdb_influxdb` refers to TSDB for InfluxDB️.
        """
        return pulumi.get(self, "engine_type")

    @property
    @pulumi.getter(name="expiredTime")
    def expired_time(self) -> int:
        """
        Instance expiration time.
        """
        return pulumi.get(self, "expired_time")

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

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

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

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

    @property
    @pulumi.getter(name="instanceStorage")
    def instance_storage(self) -> str:
        """
        The storage capacity of the instance. Unit: GB. For example, the value 50 indicates 50 GB.
        """
        return pulumi.get(self, "instance_storage")

    @property
    @pulumi.getter(name="memorySize")
    def memory_size(self) -> str:
        """
        The memory size of instance.
        """
        return pulumi.get(self, "memory_size")

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

    @property
    @pulumi.getter(name="paymentType")
    def payment_type(self) -> str:
        """
        The billing method. Valid values: `PayAsYouGo` and `Subscription`. The `PayAsYouGo` value indicates the pay-as-you-go method, and the `Subscription` value indicates the subscription method.
        """
        return pulumi.get(self, "payment_type")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        Instance status, enumerative: ACTIVATION,DELETED, CREATING,CLASS_CHANGING,LOCKED.
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="vpcConnectionAddress")
    def vpc_connection_address(self) -> str:
        """
        The vpc connection address of instance.
        """
        return pulumi.get(self, "vpc_connection_address")

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> str:
        """
        The ID of the virtual private cloud (VPC) that is connected to the instance.
        """
        return pulumi.get(self, "vpc_id")

    @property
    @pulumi.getter(name="vswitchId")
    def vswitch_id(self) -> str:
        """
        The vswitch id.
        """
        return pulumi.get(self, "vswitch_id")

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


@pulumi.output_type
class GetZonesZoneResult(dict):
    def __init__(__self__, *,
                 id: str,
                 local_name: str,
                 zone_id: str):
        """
        :param str id: The ID of zone.
        :param str local_name: The local name.
        :param str zone_id: The zone ID.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "local_name", local_name)
        pulumi.set(__self__, "zone_id", zone_id)

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

    @property
    @pulumi.getter(name="localName")
    def local_name(self) -> str:
        """
        The local name.
        """
        return pulumi.get(self, "local_name")

    @property
    @pulumi.getter(name="zoneId")
    def zone_id(self) -> str:
        """
        The zone ID.
        """
        return pulumi.get(self, "zone_id")


