# 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

__all__ = [
    'ClusterBootstrapActionArgs',
    'ClusterHostGroupArgs',
]

@pulumi.input_type
class ClusterBootstrapActionArgs:
    def __init__(__self__, *,
                 arg: Optional[pulumi.Input[str]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 path: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[str] arg: bootstrap action args, e.g. "--a=b".
        :param pulumi.Input[str] name: bootstrap action name.
        :param pulumi.Input[str] path: bootstrap action path, e.g. "oss://bucket/path".
        """
        if arg is not None:
            pulumi.set(__self__, "arg", arg)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if path is not None:
            pulumi.set(__self__, "path", path)

    @property
    @pulumi.getter
    def arg(self) -> Optional[pulumi.Input[str]]:
        """
        bootstrap action args, e.g. "--a=b".
        """
        return pulumi.get(self, "arg")

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

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        bootstrap action name.
        """
        return pulumi.get(self, "name")

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

    @property
    @pulumi.getter
    def path(self) -> Optional[pulumi.Input[str]]:
        """
        bootstrap action path, e.g. "oss://bucket/path".
        """
        return pulumi.get(self, "path")

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


@pulumi.input_type
class ClusterHostGroupArgs:
    def __init__(__self__, *,
                 auto_renew: Optional[pulumi.Input[bool]] = None,
                 charge_type: Optional[pulumi.Input[str]] = None,
                 disk_capacity: Optional[pulumi.Input[str]] = None,
                 disk_count: Optional[pulumi.Input[str]] = None,
                 disk_type: Optional[pulumi.Input[str]] = None,
                 gpu_driver: Optional[pulumi.Input[str]] = None,
                 host_group_name: Optional[pulumi.Input[str]] = None,
                 host_group_type: Optional[pulumi.Input[str]] = None,
                 instance_list: Optional[pulumi.Input[str]] = None,
                 instance_type: Optional[pulumi.Input[str]] = None,
                 node_count: Optional[pulumi.Input[str]] = None,
                 period: Optional[pulumi.Input[int]] = None,
                 sys_disk_capacity: Optional[pulumi.Input[str]] = None,
                 sys_disk_type: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[bool] auto_renew: Auto renew for prepaid, true of false. Default is false.
        :param pulumi.Input[str] charge_type: Charge Type for this group of hosts: PostPaid or PrePaid. If this is not specified, charge type will follow global charge_type value.
        :param pulumi.Input[str] disk_capacity: Data disk capacity.
        :param pulumi.Input[str] disk_count: Data disk count.
        :param pulumi.Input[str] disk_type: Data disk type. Supported value: cloud,cloud_efficiency,cloud_ssd,local_disk,cloud_essd.
        :param pulumi.Input[str] host_group_name: host group name.
        :param pulumi.Input[str] host_group_type: host group type, supported value: MASTER, CORE or TASK, supported 'GATEWAY' available in 1.61.0+.
        :param pulumi.Input[str] instance_list: Instance list for cluster scale down. This value follows the json format, e.g. ["instance_id1","instance_id2"]. escape character for " is \".
        :param pulumi.Input[str] instance_type: Host Ecs instance type.
        :param pulumi.Input[str] node_count: Host number in this group.
        :param pulumi.Input[int] period: If charge type is PrePaid, this should be specified, unit is month. Supported value: 1、2、3、4、5、6、7、8、9、12、24、36.
        :param pulumi.Input[str] sys_disk_capacity: System disk capacity.
        :param pulumi.Input[str] sys_disk_type: System disk type. Supported value: cloud,cloud_efficiency,cloud_ssd,cloud_essd.
        """
        if auto_renew is not None:
            pulumi.set(__self__, "auto_renew", auto_renew)
        if charge_type is not None:
            pulumi.set(__self__, "charge_type", charge_type)
        if disk_capacity is not None:
            pulumi.set(__self__, "disk_capacity", disk_capacity)
        if disk_count is not None:
            pulumi.set(__self__, "disk_count", disk_count)
        if disk_type is not None:
            pulumi.set(__self__, "disk_type", disk_type)
        if gpu_driver is not None:
            pulumi.set(__self__, "gpu_driver", gpu_driver)
        if host_group_name is not None:
            pulumi.set(__self__, "host_group_name", host_group_name)
        if host_group_type is not None:
            pulumi.set(__self__, "host_group_type", host_group_type)
        if instance_list is not None:
            pulumi.set(__self__, "instance_list", instance_list)
        if instance_type is not None:
            pulumi.set(__self__, "instance_type", instance_type)
        if node_count is not None:
            pulumi.set(__self__, "node_count", node_count)
        if period is not None:
            pulumi.set(__self__, "period", period)
        if sys_disk_capacity is not None:
            pulumi.set(__self__, "sys_disk_capacity", sys_disk_capacity)
        if sys_disk_type is not None:
            pulumi.set(__self__, "sys_disk_type", sys_disk_type)

    @property
    @pulumi.getter(name="autoRenew")
    def auto_renew(self) -> Optional[pulumi.Input[bool]]:
        """
        Auto renew for prepaid, true of false. Default is false.
        """
        return pulumi.get(self, "auto_renew")

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

    @property
    @pulumi.getter(name="chargeType")
    def charge_type(self) -> Optional[pulumi.Input[str]]:
        """
        Charge Type for this group of hosts: PostPaid or PrePaid. If this is not specified, charge type will follow global charge_type value.
        """
        return pulumi.get(self, "charge_type")

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

    @property
    @pulumi.getter(name="diskCapacity")
    def disk_capacity(self) -> Optional[pulumi.Input[str]]:
        """
        Data disk capacity.
        """
        return pulumi.get(self, "disk_capacity")

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

    @property
    @pulumi.getter(name="diskCount")
    def disk_count(self) -> Optional[pulumi.Input[str]]:
        """
        Data disk count.
        """
        return pulumi.get(self, "disk_count")

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

    @property
    @pulumi.getter(name="diskType")
    def disk_type(self) -> Optional[pulumi.Input[str]]:
        """
        Data disk type. Supported value: cloud,cloud_efficiency,cloud_ssd,local_disk,cloud_essd.
        """
        return pulumi.get(self, "disk_type")

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

    @property
    @pulumi.getter(name="gpuDriver")
    def gpu_driver(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "gpu_driver")

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

    @property
    @pulumi.getter(name="hostGroupName")
    def host_group_name(self) -> Optional[pulumi.Input[str]]:
        """
        host group name.
        """
        return pulumi.get(self, "host_group_name")

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

    @property
    @pulumi.getter(name="hostGroupType")
    def host_group_type(self) -> Optional[pulumi.Input[str]]:
        """
        host group type, supported value: MASTER, CORE or TASK, supported 'GATEWAY' available in 1.61.0+.
        """
        return pulumi.get(self, "host_group_type")

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

    @property
    @pulumi.getter(name="instanceList")
    def instance_list(self) -> Optional[pulumi.Input[str]]:
        """
        Instance list for cluster scale down. This value follows the json format, e.g. ["instance_id1","instance_id2"]. escape character for " is \".
        """
        return pulumi.get(self, "instance_list")

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

    @property
    @pulumi.getter(name="instanceType")
    def instance_type(self) -> Optional[pulumi.Input[str]]:
        """
        Host Ecs instance type.
        """
        return pulumi.get(self, "instance_type")

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

    @property
    @pulumi.getter(name="nodeCount")
    def node_count(self) -> Optional[pulumi.Input[str]]:
        """
        Host number in this group.
        """
        return pulumi.get(self, "node_count")

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

    @property
    @pulumi.getter
    def period(self) -> Optional[pulumi.Input[int]]:
        """
        If charge type is PrePaid, this should be specified, unit is month. Supported value: 1、2、3、4、5、6、7、8、9、12、24、36.
        """
        return pulumi.get(self, "period")

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

    @property
    @pulumi.getter(name="sysDiskCapacity")
    def sys_disk_capacity(self) -> Optional[pulumi.Input[str]]:
        """
        System disk capacity.
        """
        return pulumi.get(self, "sys_disk_capacity")

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

    @property
    @pulumi.getter(name="sysDiskType")
    def sys_disk_type(self) -> Optional[pulumi.Input[str]]:
        """
        System disk type. Supported value: cloud,cloud_efficiency,cloud_ssd,cloud_essd.
        """
        return pulumi.get(self, "sys_disk_type")

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


