# 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, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs

__all__ = [
    'GetDedicatedHostGroupsGroupResult',
    'GetDedicatedHostGroupsGroupDedicatedHostCountGroupByHostTypeResult',
    'GetDedicatedHostGroupsGroupZoneIdListResult',
]

@pulumi.output_type
class GetDedicatedHostGroupsGroupResult(dict):
    def __init__(__self__, *,
                 allocation_policy: str,
                 bastion_instance_id: str,
                 cpu_allocate_ration: float,
                 cpu_allocated_amount: float,
                 cpu_allocation_ratio: int,
                 create_time: str,
                 dedicated_host_count_group_by_host_types: Sequence['outputs.GetDedicatedHostGroupsGroupDedicatedHostCountGroupByHostTypeResult'],
                 dedicated_host_group_desc: str,
                 dedicated_host_group_id: str,
                 deploy_type: str,
                 disk_allocate_ration: float,
                 disk_allocated_amount: float,
                 disk_allocation_ratio: int,
                 disk_used_amount: float,
                 disk_utility: float,
                 engine: str,
                 host_number: int,
                 host_replace_policy: str,
                 id: str,
                 instance_number: int,
                 mem_allocate_ration: float,
                 mem_allocated_amount: float,
                 mem_allocation_ratio: int,
                 mem_used_amount: float,
                 mem_utility: float,
                 text: str,
                 vpc_id: str,
                 zone_id_lists: Sequence['outputs.GetDedicatedHostGroupsGroupZoneIdListResult']):
        """
        :param str allocation_policy: The policy that is used to allocate resources in the dedicated cluster. Valid values:`Evenly`,`Intensively`
        :param str bastion_instance_id: The Bastion Instance id of the Dedicated Host Group.
        :param float cpu_allocate_ration: The CPU overcommitment ratio of the dedicated cluster. If you set this parameter to 200, the CPU resources that can be allocated are twice as many as the CPU resources that are provided. This maximizes the CPU utilization. Valid values: 100 to 300. Default value: 200.
        :param float cpu_allocated_amount: The CPU Allocated Amount of the Dedicated Host Group.
        :param int cpu_allocation_ratio: The CPU overcommitment ratio of the dedicated cluster.Valid values: 100 to 300. Default value: 200.
        :param str create_time: The Created Time of the Dedicated Host Group.
        :param Sequence['GetDedicatedHostGroupsGroupDedicatedHostCountGroupByHostTypeArgs'] dedicated_host_count_group_by_host_types: The Dedicated Host Count Group by Host Type of the Dedicated Host Group.
        :param str dedicated_host_group_desc: -The name of the dedicated cluster. The name must be 1 to 64 characters in length and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter.
        :param str dedicated_host_group_id: Dedicated Host Group ID.
        :param str deploy_type: The Deployment Type of the Dedicated Host Group.
        :param float disk_allocate_ration: The storage overcommitment ratio of the dedicated cluster.Valid values: 100 to 300. Default value: 200.
        :param float disk_allocated_amount: The Disk Allocated Amount of the Dedicated Host Group.
        :param int disk_allocation_ratio: The Disk Allocation Ratio of the Dedicated Host Group.
        :param float disk_used_amount: The DiskUsedAmount of the Dedicated Host Group.
        :param float disk_utility: The DiskUtility of the Dedicated Host Group.
        :param str engine: Database Engine Type.The database engine of the dedicated cluster. Valid values:`Redis`, `SQLServer`, `MySQL`, `PostgreSQL`, `MongoDB`
        :param int host_number: The Total Host Number  of the Dedicated Host Group.
        :param str host_replace_policy: The policy based on which the system handles host failures. Valid values:`Auto`,`Manual`
        :param str id: The ID of the Dedicated Host Group.
        :param int instance_number: The Total Instance Number of the Dedicated Host Group.
        :param float mem_allocate_ration: The maximum memory usage of each host in the dedicated cluster.Valid values: 0 to 90. Default value: 90.
        :param float mem_allocated_amount: The MemAllocatedAmount of the Dedicated Host Group.
        :param int mem_allocation_ratio: The Memory Allocation Ratio of the Dedicated Host Group.
        :param float mem_used_amount: The MemUsedAmount of the Dedicated Host Group.
        :param float mem_utility: The Mem Utility of the Dedicated Host Group.
        :param str text: The Text of the Dedicated Host Group.
        :param str vpc_id: The virtual private cloud (VPC) ID of the dedicated cluster.
        :param Sequence['GetDedicatedHostGroupsGroupZoneIdListArgs'] zone_id_lists: The ZoneIDList of the Dedicated Host Group.
        """
        pulumi.set(__self__, "allocation_policy", allocation_policy)
        pulumi.set(__self__, "bastion_instance_id", bastion_instance_id)
        pulumi.set(__self__, "cpu_allocate_ration", cpu_allocate_ration)
        pulumi.set(__self__, "cpu_allocated_amount", cpu_allocated_amount)
        pulumi.set(__self__, "cpu_allocation_ratio", cpu_allocation_ratio)
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "dedicated_host_count_group_by_host_types", dedicated_host_count_group_by_host_types)
        pulumi.set(__self__, "dedicated_host_group_desc", dedicated_host_group_desc)
        pulumi.set(__self__, "dedicated_host_group_id", dedicated_host_group_id)
        pulumi.set(__self__, "deploy_type", deploy_type)
        pulumi.set(__self__, "disk_allocate_ration", disk_allocate_ration)
        pulumi.set(__self__, "disk_allocated_amount", disk_allocated_amount)
        pulumi.set(__self__, "disk_allocation_ratio", disk_allocation_ratio)
        pulumi.set(__self__, "disk_used_amount", disk_used_amount)
        pulumi.set(__self__, "disk_utility", disk_utility)
        pulumi.set(__self__, "engine", engine)
        pulumi.set(__self__, "host_number", host_number)
        pulumi.set(__self__, "host_replace_policy", host_replace_policy)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "instance_number", instance_number)
        pulumi.set(__self__, "mem_allocate_ration", mem_allocate_ration)
        pulumi.set(__self__, "mem_allocated_amount", mem_allocated_amount)
        pulumi.set(__self__, "mem_allocation_ratio", mem_allocation_ratio)
        pulumi.set(__self__, "mem_used_amount", mem_used_amount)
        pulumi.set(__self__, "mem_utility", mem_utility)
        pulumi.set(__self__, "text", text)
        pulumi.set(__self__, "vpc_id", vpc_id)
        pulumi.set(__self__, "zone_id_lists", zone_id_lists)

    @property
    @pulumi.getter(name="allocationPolicy")
    def allocation_policy(self) -> str:
        """
        The policy that is used to allocate resources in the dedicated cluster. Valid values:`Evenly`,`Intensively`
        """
        return pulumi.get(self, "allocation_policy")

    @property
    @pulumi.getter(name="bastionInstanceId")
    def bastion_instance_id(self) -> str:
        """
        The Bastion Instance id of the Dedicated Host Group.
        """
        return pulumi.get(self, "bastion_instance_id")

    @property
    @pulumi.getter(name="cpuAllocateRation")
    def cpu_allocate_ration(self) -> float:
        """
        The CPU overcommitment ratio of the dedicated cluster. If you set this parameter to 200, the CPU resources that can be allocated are twice as many as the CPU resources that are provided. This maximizes the CPU utilization. Valid values: 100 to 300. Default value: 200.
        """
        return pulumi.get(self, "cpu_allocate_ration")

    @property
    @pulumi.getter(name="cpuAllocatedAmount")
    def cpu_allocated_amount(self) -> float:
        """
        The CPU Allocated Amount of the Dedicated Host Group.
        """
        return pulumi.get(self, "cpu_allocated_amount")

    @property
    @pulumi.getter(name="cpuAllocationRatio")
    def cpu_allocation_ratio(self) -> int:
        """
        The CPU overcommitment ratio of the dedicated cluster.Valid values: 100 to 300. Default value: 200.
        """
        return pulumi.get(self, "cpu_allocation_ratio")

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> str:
        """
        The Created Time of the Dedicated Host Group.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="dedicatedHostCountGroupByHostTypes")
    def dedicated_host_count_group_by_host_types(self) -> Sequence['outputs.GetDedicatedHostGroupsGroupDedicatedHostCountGroupByHostTypeResult']:
        """
        The Dedicated Host Count Group by Host Type of the Dedicated Host Group.
        """
        return pulumi.get(self, "dedicated_host_count_group_by_host_types")

    @property
    @pulumi.getter(name="dedicatedHostGroupDesc")
    def dedicated_host_group_desc(self) -> str:
        """
        -The name of the dedicated cluster. The name must be 1 to 64 characters in length and can contain letters, digits, underscores (_), and hyphens (-). It must start with a letter.
        """
        return pulumi.get(self, "dedicated_host_group_desc")

    @property
    @pulumi.getter(name="dedicatedHostGroupId")
    def dedicated_host_group_id(self) -> str:
        """
        Dedicated Host Group ID.
        """
        return pulumi.get(self, "dedicated_host_group_id")

    @property
    @pulumi.getter(name="deployType")
    def deploy_type(self) -> str:
        """
        The Deployment Type of the Dedicated Host Group.
        """
        return pulumi.get(self, "deploy_type")

    @property
    @pulumi.getter(name="diskAllocateRation")
    def disk_allocate_ration(self) -> float:
        """
        The storage overcommitment ratio of the dedicated cluster.Valid values: 100 to 300. Default value: 200.
        """
        return pulumi.get(self, "disk_allocate_ration")

    @property
    @pulumi.getter(name="diskAllocatedAmount")
    def disk_allocated_amount(self) -> float:
        """
        The Disk Allocated Amount of the Dedicated Host Group.
        """
        return pulumi.get(self, "disk_allocated_amount")

    @property
    @pulumi.getter(name="diskAllocationRatio")
    def disk_allocation_ratio(self) -> int:
        """
        The Disk Allocation Ratio of the Dedicated Host Group.
        """
        return pulumi.get(self, "disk_allocation_ratio")

    @property
    @pulumi.getter(name="diskUsedAmount")
    def disk_used_amount(self) -> float:
        """
        The DiskUsedAmount of the Dedicated Host Group.
        """
        return pulumi.get(self, "disk_used_amount")

    @property
    @pulumi.getter(name="diskUtility")
    def disk_utility(self) -> float:
        """
        The DiskUtility of the Dedicated Host Group.
        """
        return pulumi.get(self, "disk_utility")

    @property
    @pulumi.getter
    def engine(self) -> str:
        """
        Database Engine Type.The database engine of the dedicated cluster. Valid values:`Redis`, `SQLServer`, `MySQL`, `PostgreSQL`, `MongoDB`
        """
        return pulumi.get(self, "engine")

    @property
    @pulumi.getter(name="hostNumber")
    def host_number(self) -> int:
        """
        The Total Host Number  of the Dedicated Host Group.
        """
        return pulumi.get(self, "host_number")

    @property
    @pulumi.getter(name="hostReplacePolicy")
    def host_replace_policy(self) -> str:
        """
        The policy based on which the system handles host failures. Valid values:`Auto`,`Manual`
        """
        return pulumi.get(self, "host_replace_policy")

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

    @property
    @pulumi.getter(name="instanceNumber")
    def instance_number(self) -> int:
        """
        The Total Instance Number of the Dedicated Host Group.
        """
        return pulumi.get(self, "instance_number")

    @property
    @pulumi.getter(name="memAllocateRation")
    def mem_allocate_ration(self) -> float:
        """
        The maximum memory usage of each host in the dedicated cluster.Valid values: 0 to 90. Default value: 90.
        """
        return pulumi.get(self, "mem_allocate_ration")

    @property
    @pulumi.getter(name="memAllocatedAmount")
    def mem_allocated_amount(self) -> float:
        """
        The MemAllocatedAmount of the Dedicated Host Group.
        """
        return pulumi.get(self, "mem_allocated_amount")

    @property
    @pulumi.getter(name="memAllocationRatio")
    def mem_allocation_ratio(self) -> int:
        """
        The Memory Allocation Ratio of the Dedicated Host Group.
        """
        return pulumi.get(self, "mem_allocation_ratio")

    @property
    @pulumi.getter(name="memUsedAmount")
    def mem_used_amount(self) -> float:
        """
        The MemUsedAmount of the Dedicated Host Group.
        """
        return pulumi.get(self, "mem_used_amount")

    @property
    @pulumi.getter(name="memUtility")
    def mem_utility(self) -> float:
        """
        The Mem Utility of the Dedicated Host Group.
        """
        return pulumi.get(self, "mem_utility")

    @property
    @pulumi.getter
    def text(self) -> str:
        """
        The Text of the Dedicated Host Group.
        """
        return pulumi.get(self, "text")

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

    @property
    @pulumi.getter(name="zoneIdLists")
    def zone_id_lists(self) -> Sequence['outputs.GetDedicatedHostGroupsGroupZoneIdListResult']:
        """
        The ZoneIDList of the Dedicated Host Group.
        """
        return pulumi.get(self, "zone_id_lists")


@pulumi.output_type
class GetDedicatedHostGroupsGroupDedicatedHostCountGroupByHostTypeResult(dict):
    def __init__(__self__, *,
                 place_holder: str):
        pulumi.set(__self__, "place_holder", place_holder)

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


@pulumi.output_type
class GetDedicatedHostGroupsGroupZoneIdListResult(dict):
    def __init__(__self__, *,
                 zone_id_lists: Sequence[str]):
        """
        :param Sequence[str] zone_id_lists: The ZoneIDList of the Dedicated Host Group.
        """
        pulumi.set(__self__, "zone_id_lists", zone_id_lists)

    @property
    @pulumi.getter(name="zoneIdLists")
    def zone_id_lists(self) -> Sequence[str]:
        """
        The ZoneIDList of the Dedicated Host Group.
        """
        return pulumi.get(self, "zone_id_lists")


