# 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 builtins
import copy
import warnings
import sys
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
if sys.version_info >= (3, 11):
    from typing import NotRequired, TypedDict, TypeAlias
else:
    from typing_extensions import NotRequired, TypedDict, TypeAlias
from .. import _utilities
from . import outputs

__all__ = [
    'GetMountPointResult',
    'AwaitableGetMountPointResult',
    'get_mount_point',
    'get_mount_point_output',
]

@pulumi.output_type
class GetMountPointResult:
    """
    A collection of values returned by getMountPoint.
    """
    def __init__(__self__, clients=None, created_time=None, domain=None, file_system_id=None, id=None, ip=None, mount_point_id=None, mount_point_name=None, permission_group=None, permission_group_id=None, status=None, subnet_id=None, subnet_name=None, updated_time=None, vpc_id=None, vpc_name=None):
        if clients and not isinstance(clients, list):
            raise TypeError("Expected argument 'clients' to be a list")
        pulumi.set(__self__, "clients", clients)
        if created_time and not isinstance(created_time, str):
            raise TypeError("Expected argument 'created_time' to be a str")
        pulumi.set(__self__, "created_time", created_time)
        if domain and not isinstance(domain, str):
            raise TypeError("Expected argument 'domain' to be a str")
        pulumi.set(__self__, "domain", domain)
        if file_system_id and not isinstance(file_system_id, str):
            raise TypeError("Expected argument 'file_system_id' to be a str")
        pulumi.set(__self__, "file_system_id", file_system_id)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if ip and not isinstance(ip, str):
            raise TypeError("Expected argument 'ip' to be a str")
        pulumi.set(__self__, "ip", ip)
        if mount_point_id and not isinstance(mount_point_id, str):
            raise TypeError("Expected argument 'mount_point_id' to be a str")
        pulumi.set(__self__, "mount_point_id", mount_point_id)
        if mount_point_name and not isinstance(mount_point_name, str):
            raise TypeError("Expected argument 'mount_point_name' to be a str")
        pulumi.set(__self__, "mount_point_name", mount_point_name)
        if permission_group and not isinstance(permission_group, dict):
            raise TypeError("Expected argument 'permission_group' to be a dict")
        pulumi.set(__self__, "permission_group", permission_group)
        if permission_group_id and not isinstance(permission_group_id, str):
            raise TypeError("Expected argument 'permission_group_id' to be a str")
        pulumi.set(__self__, "permission_group_id", permission_group_id)
        if status and not isinstance(status, str):
            raise TypeError("Expected argument 'status' to be a str")
        pulumi.set(__self__, "status", status)
        if subnet_id and not isinstance(subnet_id, str):
            raise TypeError("Expected argument 'subnet_id' to be a str")
        pulumi.set(__self__, "subnet_id", subnet_id)
        if subnet_name and not isinstance(subnet_name, str):
            raise TypeError("Expected argument 'subnet_name' to be a str")
        pulumi.set(__self__, "subnet_name", subnet_name)
        if updated_time and not isinstance(updated_time, str):
            raise TypeError("Expected argument 'updated_time' to be a str")
        pulumi.set(__self__, "updated_time", updated_time)
        if vpc_id and not isinstance(vpc_id, str):
            raise TypeError("Expected argument 'vpc_id' to be a str")
        pulumi.set(__self__, "vpc_id", vpc_id)
        if vpc_name and not isinstance(vpc_name, str):
            raise TypeError("Expected argument 'vpc_name' to be a str")
        pulumi.set(__self__, "vpc_name", vpc_name)

    @property
    @pulumi.getter
    def clients(self) -> Sequence['outputs.GetMountPointClientResult']:
        """
        客户端信息。
        """
        return pulumi.get(self, "clients")

    @property
    @pulumi.getter(name="createdTime")
    def created_time(self) -> builtins.str:
        """
        挂载点创建时间。
        """
        return pulumi.get(self, "created_time")

    @property
    @pulumi.getter
    def domain(self) -> builtins.str:
        """
        DNS 地址。
        """
        return pulumi.get(self, "domain")

    @property
    @pulumi.getter(name="fileSystemId")
    def file_system_id(self) -> builtins.str:
        """
        文件系统 ID。
        """
        return pulumi.get(self, "file_system_id")

    @property
    @pulumi.getter
    def id(self) -> builtins.str:
        """
        Uniquely identifies the resource.
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def ip(self) -> builtins.str:
        """
        挂载点地址。
        """
        return pulumi.get(self, "ip")

    @property
    @pulumi.getter(name="mountPointId")
    def mount_point_id(self) -> builtins.str:
        """
        挂载点 ID。
        """
        return pulumi.get(self, "mount_point_id")

    @property
    @pulumi.getter(name="mountPointName")
    def mount_point_name(self) -> builtins.str:
        """
        挂载点名称。
        """
        return pulumi.get(self, "mount_point_name")

    @property
    @pulumi.getter(name="permissionGroup")
    def permission_group(self) -> 'outputs.GetMountPointPermissionGroupResult':
        """
        挂载点绑定的权限组信息。
        """
        return pulumi.get(self, "permission_group")

    @property
    @pulumi.getter(name="permissionGroupId")
    def permission_group_id(self) -> builtins.str:
        """
        权限组 ID。
        """
        return pulumi.get(self, "permission_group_id")

    @property
    @pulumi.getter
    def status(self) -> builtins.str:
        """
        挂载点状态。取值：Running：运行中。Creating：创建中。Updating：更新中。Error：异常。Deleting：删除中。DeleteError：删除异常。Deleted：已删除。Stopped：已停止。
        """
        return pulumi.get(self, "status")

    @property
    @pulumi.getter(name="subnetId")
    def subnet_id(self) -> builtins.str:
        """
        子网 ID。
        """
        return pulumi.get(self, "subnet_id")

    @property
    @pulumi.getter(name="subnetName")
    def subnet_name(self) -> builtins.str:
        """
        子网名称。
        """
        return pulumi.get(self, "subnet_name")

    @property
    @pulumi.getter(name="updatedTime")
    def updated_time(self) -> builtins.str:
        """
        挂载点更新时间。
        """
        return pulumi.get(self, "updated_time")

    @property
    @pulumi.getter(name="vpcId")
    def vpc_id(self) -> builtins.str:
        """
        私有网络 ID。
        """
        return pulumi.get(self, "vpc_id")

    @property
    @pulumi.getter(name="vpcName")
    def vpc_name(self) -> builtins.str:
        """
        私有网络名称。
        """
        return pulumi.get(self, "vpc_name")


class AwaitableGetMountPointResult(GetMountPointResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetMountPointResult(
            clients=self.clients,
            created_time=self.created_time,
            domain=self.domain,
            file_system_id=self.file_system_id,
            id=self.id,
            ip=self.ip,
            mount_point_id=self.mount_point_id,
            mount_point_name=self.mount_point_name,
            permission_group=self.permission_group,
            permission_group_id=self.permission_group_id,
            status=self.status,
            subnet_id=self.subnet_id,
            subnet_name=self.subnet_name,
            updated_time=self.updated_time,
            vpc_id=self.vpc_id,
            vpc_name=self.vpc_name)


def get_mount_point(id: Optional[builtins.str] = None,
                    opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetMountPointResult:
    """
    Data Source schema for Byteplus::FileNAS::MountPoint


    :param builtins.str id: Uniquely identifies the resource.
    """
    __args__ = dict()
    __args__['id'] = id
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('bytepluscc:filenas/getMountPoint:getMountPoint', __args__, opts=opts, typ=GetMountPointResult).value

    return AwaitableGetMountPointResult(
        clients=pulumi.get(__ret__, 'clients'),
        created_time=pulumi.get(__ret__, 'created_time'),
        domain=pulumi.get(__ret__, 'domain'),
        file_system_id=pulumi.get(__ret__, 'file_system_id'),
        id=pulumi.get(__ret__, 'id'),
        ip=pulumi.get(__ret__, 'ip'),
        mount_point_id=pulumi.get(__ret__, 'mount_point_id'),
        mount_point_name=pulumi.get(__ret__, 'mount_point_name'),
        permission_group=pulumi.get(__ret__, 'permission_group'),
        permission_group_id=pulumi.get(__ret__, 'permission_group_id'),
        status=pulumi.get(__ret__, 'status'),
        subnet_id=pulumi.get(__ret__, 'subnet_id'),
        subnet_name=pulumi.get(__ret__, 'subnet_name'),
        updated_time=pulumi.get(__ret__, 'updated_time'),
        vpc_id=pulumi.get(__ret__, 'vpc_id'),
        vpc_name=pulumi.get(__ret__, 'vpc_name'))
def get_mount_point_output(id: Optional[pulumi.Input[builtins.str]] = None,
                           opts: Optional[Union[pulumi.InvokeOptions, pulumi.InvokeOutputOptions]] = None) -> pulumi.Output[GetMountPointResult]:
    """
    Data Source schema for Byteplus::FileNAS::MountPoint


    :param builtins.str id: Uniquely identifies the resource.
    """
    __args__ = dict()
    __args__['id'] = id
    opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke_output('bytepluscc:filenas/getMountPoint:getMountPoint', __args__, opts=opts, typ=GetMountPointResult)
    return __ret__.apply(lambda __response__: GetMountPointResult(
        clients=pulumi.get(__response__, 'clients'),
        created_time=pulumi.get(__response__, 'created_time'),
        domain=pulumi.get(__response__, 'domain'),
        file_system_id=pulumi.get(__response__, 'file_system_id'),
        id=pulumi.get(__response__, 'id'),
        ip=pulumi.get(__response__, 'ip'),
        mount_point_id=pulumi.get(__response__, 'mount_point_id'),
        mount_point_name=pulumi.get(__response__, 'mount_point_name'),
        permission_group=pulumi.get(__response__, 'permission_group'),
        permission_group_id=pulumi.get(__response__, 'permission_group_id'),
        status=pulumi.get(__response__, 'status'),
        subnet_id=pulumi.get(__response__, 'subnet_id'),
        subnet_name=pulumi.get(__response__, 'subnet_name'),
        updated_time=pulumi.get(__response__, 'updated_time'),
        vpc_id=pulumi.get(__response__, 'vpc_id'),
        vpc_name=pulumi.get(__response__, 'vpc_name')))
