# 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__ = [
    'GetInstanceTypesInstanceTypeResult',
    'GetInstancesInstanceResult',
    'GetKeyPairsPairResult',
    'GetZonesZoneResult',
]

@pulumi.output_type
class GetInstanceTypesInstanceTypeResult(dict):
    def __init__(__self__, *,
                 cpu_core_count: int,
                 default_resolution: str,
                 instance_type: str,
                 instance_type_family: str,
                 name: str,
                 name_en: str):
        """
        :param int cpu_core_count: The cpu core count of the current instance type.
        :param str default_resolution: The default resolution of the current instance type.
        :param str instance_type: The list of available instance type.
        :param str name: The name of the current instance type.
        :param str name_en: The English name of the current instance type.
        """
        pulumi.set(__self__, "cpu_core_count", cpu_core_count)
        pulumi.set(__self__, "default_resolution", default_resolution)
        pulumi.set(__self__, "instance_type", instance_type)
        pulumi.set(__self__, "instance_type_family", instance_type_family)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "name_en", name_en)

    @property
    @pulumi.getter(name="cpuCoreCount")
    def cpu_core_count(self) -> int:
        """
        The cpu core count of the current instance type.
        """
        return pulumi.get(self, "cpu_core_count")

    @property
    @pulumi.getter(name="defaultResolution")
    def default_resolution(self) -> str:
        """
        The default resolution of the current instance type.
        """
        return pulumi.get(self, "default_resolution")

    @property
    @pulumi.getter(name="instanceType")
    def instance_type(self) -> str:
        """
        The list of available instance type.
        """
        return pulumi.get(self, "instance_type")

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

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

    @property
    @pulumi.getter(name="nameEn")
    def name_en(self) -> str:
        """
        The English name of the current instance type.
        """
        return pulumi.get(self, "name_en")


@pulumi.output_type
class GetInstancesInstanceResult(dict):
    def __init__(__self__, *,
                 description: str,
                 id: str,
                 image_id: str,
                 instance_id: str,
                 instance_name: str,
                 instance_type: str,
                 key_pair_name: str,
                 payment_type: str,
                 resolution: str,
                 security_group_id: str,
                 status: str,
                 vnc_url: str,
                 vswitch_id: str,
                 zone_id: str):
        """
        :param str description: Instance Description.
        :param str id: The ID of the Instance.
        :param str image_id: The ID Of The Image.
        :param str instance_id: InstanceId.
        :param str instance_name: Instance Name.
        :param str instance_type: Instance Type.
        :param str key_pair_name: The Key Name.
        :param str payment_type: The payment type.Valid values: `PayAsYouGo`,`Subscription`
        :param str resolution: Resolution.
        :param str security_group_id: Security Group ID.
        :param str status: Instance Status.
        :param str vnc_url: VNC login address.
        :param str vswitch_id: The vswitch id.
        """
        pulumi.set(__self__, "description", description)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "image_id", image_id)
        pulumi.set(__self__, "instance_id", instance_id)
        pulumi.set(__self__, "instance_name", instance_name)
        pulumi.set(__self__, "instance_type", instance_type)
        pulumi.set(__self__, "key_pair_name", key_pair_name)
        pulumi.set(__self__, "payment_type", payment_type)
        pulumi.set(__self__, "resolution", resolution)
        pulumi.set(__self__, "security_group_id", security_group_id)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "vnc_url", vnc_url)
        pulumi.set(__self__, "vswitch_id", vswitch_id)
        pulumi.set(__self__, "zone_id", zone_id)

    @property
    @pulumi.getter
    def description(self) -> str:
        """
        Instance Description.
        """
        return pulumi.get(self, "description")

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

    @property
    @pulumi.getter(name="imageId")
    def image_id(self) -> str:
        """
        The ID Of The Image.
        """
        return pulumi.get(self, "image_id")

    @property
    @pulumi.getter(name="instanceId")
    def instance_id(self) -> str:
        """
        InstanceId.
        """
        return pulumi.get(self, "instance_id")

    @property
    @pulumi.getter(name="instanceName")
    def instance_name(self) -> str:
        """
        Instance Name.
        """
        return pulumi.get(self, "instance_name")

    @property
    @pulumi.getter(name="instanceType")
    def instance_type(self) -> str:
        """
        Instance Type.
        """
        return pulumi.get(self, "instance_type")

    @property
    @pulumi.getter(name="keyPairName")
    def key_pair_name(self) -> str:
        """
        The Key Name.
        """
        return pulumi.get(self, "key_pair_name")

    @property
    @pulumi.getter(name="paymentType")
    def payment_type(self) -> str:
        """
        The payment type.Valid values: `PayAsYouGo`,`Subscription`
        """
        return pulumi.get(self, "payment_type")

    @property
    @pulumi.getter
    def resolution(self) -> str:
        """
        Resolution.
        """
        return pulumi.get(self, "resolution")

    @property
    @pulumi.getter(name="securityGroupId")
    def security_group_id(self) -> str:
        """
        Security Group ID.
        """
        return pulumi.get(self, "security_group_id")

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

    @property
    @pulumi.getter(name="vncUrl")
    def vnc_url(self) -> str:
        """
        VNC login address.
        """
        return pulumi.get(self, "vnc_url")

    @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:
        return pulumi.get(self, "zone_id")


@pulumi.output_type
class GetKeyPairsPairResult(dict):
    def __init__(__self__, *,
                 id: str,
                 key_pair_finger_print: str,
                 key_pair_name: str):
        """
        :param str id: The ID of the Key Pair. Its value is same as Queue Name.
        :param str key_pair_finger_print: The Private Key of the Fingerprint.
        :param str key_pair_name: The Key Name.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "key_pair_finger_print", key_pair_finger_print)
        pulumi.set(__self__, "key_pair_name", key_pair_name)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ID of the Key Pair. Its value is same as Queue Name.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="keyPairFingerPrint")
    def key_pair_finger_print(self) -> str:
        """
        The Private Key of the Fingerprint.
        """
        return pulumi.get(self, "key_pair_finger_print")

    @property
    @pulumi.getter(name="keyPairName")
    def key_pair_name(self) -> str:
        """
        The Key Name.
        """
        return pulumi.get(self, "key_pair_name")


@pulumi.output_type
class GetZonesZoneResult(dict):
    def __init__(__self__, *,
                 zone_id: str):
        """
        :param str zone_id: String to filter results by zone id.
        """
        pulumi.set(__self__, "zone_id", zone_id)

    @property
    @pulumi.getter(name="zoneId")
    def zone_id(self) -> str:
        """
        String to filter results by zone id.
        """
        return pulumi.get(self, "zone_id")


