# 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__ = [
    'InstanceEcsList',
    'GetInstancesInstanceResult',
    'GetInstancesInstanceEcsListResult',
]

@pulumi.output_type
class InstanceEcsList(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "ecsId":
            suggest = "ecs_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in InstanceEcsList. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        InstanceEcsList.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        InstanceEcsList.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 ecs_id: Optional[str] = None):
        """
        :param str ecs_id: The ID of the ECS instance.
        """
        if ecs_id is not None:
            pulumi.set(__self__, "ecs_id", ecs_id)

    @property
    @pulumi.getter(name="ecsId")
    def ecs_id(self) -> Optional[str]:
        """
        The ID of the ECS instance.
        """
        return pulumi.get(self, "ecs_id")


@pulumi.output_type
class GetInstancesInstanceResult(dict):
    def __init__(__self__, *,
                 attach_node_number: int,
                 category: str,
                 create_time: str,
                 dbfs_cluster_id: str,
                 ecs_lists: Sequence['outputs.GetInstancesInstanceEcsListResult'],
                 enable_raid: bool,
                 encryption: bool,
                 id: str,
                 instance_id: str,
                 instance_name: str,
                 kms_key_id: str,
                 payment_type: str,
                 performance_level: str,
                 raid_stripe_unit_number: str,
                 size: int,
                 status: str,
                 zone_id: str):
        """
        :param int attach_node_number: the number of nodes of the Database file system.
        :param str category: The type of the Database file system. Valid values: `standard`.
        :param str create_time: The create time of the Database file system.
        :param str dbfs_cluster_id: The cluster ID of the Database file system.
        :param Sequence['GetInstancesInstanceEcsListArgs'] ecs_lists: The collection of ECS instances mounted to the Database file system.
        :param bool enable_raid: Whether to create the Database file system in RAID way. Valid values : `true` anf `false`.
        :param bool encryption: Whether to encrypt the Database file system. Valid values: `true` and `false`.
        :param str id: The ID of the Instance.
        :param str instance_id: The ID of the Database File System
        :param str instance_name: The name of the Database file system.
        :param str kms_key_id: The KMS key ID of the Database file system used. This parameter is valid When `encryption` parameter is set to `true`.
        :param str payment_type: Thr payment type of the Database file system. Valid value: `PayAsYouGo`.
        :param str performance_level: The performance level of the Database file system. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.
        :param str raid_stripe_unit_number: The number of strip . When `enable_raid` parameter is set to `true` will transfer. This parameter is valid When `enable_raid` parameter is set to `true`.
        :param int size: The size Of the Database file system. Unit: GiB.
        :param str status: The status of the Database file system.
        :param str zone_id: The Zone ID of the Database file system.
        """
        pulumi.set(__self__, "attach_node_number", attach_node_number)
        pulumi.set(__self__, "category", category)
        pulumi.set(__self__, "create_time", create_time)
        pulumi.set(__self__, "dbfs_cluster_id", dbfs_cluster_id)
        pulumi.set(__self__, "ecs_lists", ecs_lists)
        pulumi.set(__self__, "enable_raid", enable_raid)
        pulumi.set(__self__, "encryption", encryption)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "instance_id", instance_id)
        pulumi.set(__self__, "instance_name", instance_name)
        pulumi.set(__self__, "kms_key_id", kms_key_id)
        pulumi.set(__self__, "payment_type", payment_type)
        pulumi.set(__self__, "performance_level", performance_level)
        pulumi.set(__self__, "raid_stripe_unit_number", raid_stripe_unit_number)
        pulumi.set(__self__, "size", size)
        pulumi.set(__self__, "status", status)
        pulumi.set(__self__, "zone_id", zone_id)

    @property
    @pulumi.getter(name="attachNodeNumber")
    def attach_node_number(self) -> int:
        """
        the number of nodes of the Database file system.
        """
        return pulumi.get(self, "attach_node_number")

    @property
    @pulumi.getter
    def category(self) -> str:
        """
        The type of the Database file system. Valid values: `standard`.
        """
        return pulumi.get(self, "category")

    @property
    @pulumi.getter(name="createTime")
    def create_time(self) -> str:
        """
        The create time of the Database file system.
        """
        return pulumi.get(self, "create_time")

    @property
    @pulumi.getter(name="dbfsClusterId")
    def dbfs_cluster_id(self) -> str:
        """
        The cluster ID of the Database file system.
        """
        return pulumi.get(self, "dbfs_cluster_id")

    @property
    @pulumi.getter(name="ecsLists")
    def ecs_lists(self) -> Sequence['outputs.GetInstancesInstanceEcsListResult']:
        """
        The collection of ECS instances mounted to the Database file system.
        """
        return pulumi.get(self, "ecs_lists")

    @property
    @pulumi.getter(name="enableRaid")
    def enable_raid(self) -> bool:
        """
        Whether to create the Database file system in RAID way. Valid values : `true` anf `false`.
        """
        return pulumi.get(self, "enable_raid")

    @property
    @pulumi.getter
    def encryption(self) -> bool:
        """
        Whether to encrypt the Database file system. Valid values: `true` and `false`.
        """
        return pulumi.get(self, "encryption")

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

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

    @property
    @pulumi.getter(name="instanceName")
    def instance_name(self) -> str:
        """
        The name of the Database file system.
        """
        return pulumi.get(self, "instance_name")

    @property
    @pulumi.getter(name="kmsKeyId")
    def kms_key_id(self) -> str:
        """
        The KMS key ID of the Database file system used. This parameter is valid When `encryption` parameter is set to `true`.
        """
        return pulumi.get(self, "kms_key_id")

    @property
    @pulumi.getter(name="paymentType")
    def payment_type(self) -> str:
        """
        Thr payment type of the Database file system. Valid value: `PayAsYouGo`.
        """
        return pulumi.get(self, "payment_type")

    @property
    @pulumi.getter(name="performanceLevel")
    def performance_level(self) -> str:
        """
        The performance level of the Database file system. Valid values: `PL0`, `PL1`, `PL2`, `PL3`.
        """
        return pulumi.get(self, "performance_level")

    @property
    @pulumi.getter(name="raidStripeUnitNumber")
    def raid_stripe_unit_number(self) -> str:
        """
        The number of strip . When `enable_raid` parameter is set to `true` will transfer. This parameter is valid When `enable_raid` parameter is set to `true`.
        """
        return pulumi.get(self, "raid_stripe_unit_number")

    @property
    @pulumi.getter
    def size(self) -> int:
        """
        The size Of the Database file system. Unit: GiB.
        """
        return pulumi.get(self, "size")

    @property
    @pulumi.getter
    def status(self) -> str:
        """
        The status of the Database file system.
        """
        return pulumi.get(self, "status")

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


@pulumi.output_type
class GetInstancesInstanceEcsListResult(dict):
    def __init__(__self__, *,
                 ecs_id: str):
        """
        :param str ecs_id: The ID of the ECS instance.
        """
        pulumi.set(__self__, "ecs_id", ecs_id)

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


