# 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__ = [
    'GetEnumerationVmcResult',
    'AwaitableGetEnumerationVmcResult',
    'get_enumeration_vmc',
    'get_enumeration_vmc_output',
]

@pulumi.output_type
class GetEnumerationVmcResult:
    """
    A collection of values returned by getEnumerationVmc.
    """
    def __init__(__self__, accept_self_signed_cert=None, api_token=None, dc_id=None, id=None, nsx_hostname=None, regions=None, sddc_name=None, vcenter_hostname=None, vcenter_password=None, vcenter_username=None):
        if accept_self_signed_cert and not isinstance(accept_self_signed_cert, bool):
            raise TypeError("Expected argument 'accept_self_signed_cert' to be a bool")
        pulumi.set(__self__, "accept_self_signed_cert", accept_self_signed_cert)
        if api_token and not isinstance(api_token, str):
            raise TypeError("Expected argument 'api_token' to be a str")
        pulumi.set(__self__, "api_token", api_token)
        if dc_id and not isinstance(dc_id, str):
            raise TypeError("Expected argument 'dc_id' to be a str")
        pulumi.set(__self__, "dc_id", dc_id)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if nsx_hostname and not isinstance(nsx_hostname, str):
            raise TypeError("Expected argument 'nsx_hostname' to be a str")
        pulumi.set(__self__, "nsx_hostname", nsx_hostname)
        if regions and not isinstance(regions, list):
            raise TypeError("Expected argument 'regions' to be a list")
        pulumi.set(__self__, "regions", regions)
        if sddc_name and not isinstance(sddc_name, str):
            raise TypeError("Expected argument 'sddc_name' to be a str")
        pulumi.set(__self__, "sddc_name", sddc_name)
        if vcenter_hostname and not isinstance(vcenter_hostname, str):
            raise TypeError("Expected argument 'vcenter_hostname' to be a str")
        pulumi.set(__self__, "vcenter_hostname", vcenter_hostname)
        if vcenter_password and not isinstance(vcenter_password, str):
            raise TypeError("Expected argument 'vcenter_password' to be a str")
        pulumi.set(__self__, "vcenter_password", vcenter_password)
        if vcenter_username and not isinstance(vcenter_username, str):
            raise TypeError("Expected argument 'vcenter_username' to be a str")
        pulumi.set(__self__, "vcenter_username", vcenter_username)

    @property
    @pulumi.getter(name="acceptSelfSignedCert")
    def accept_self_signed_cert(self) -> Optional[bool]:
        return pulumi.get(self, "accept_self_signed_cert")

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

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

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The provider-assigned unique ID for this managed resource.
        """
        return pulumi.get(self, "id")

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

    @property
    @pulumi.getter
    def regions(self) -> Sequence[str]:
        """
        A set of Region names to enable provisioning on. Example: northamerica-northeast1
        """
        return pulumi.get(self, "regions")

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

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

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

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


class AwaitableGetEnumerationVmcResult(GetEnumerationVmcResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetEnumerationVmcResult(
            accept_self_signed_cert=self.accept_self_signed_cert,
            api_token=self.api_token,
            dc_id=self.dc_id,
            id=self.id,
            nsx_hostname=self.nsx_hostname,
            regions=self.regions,
            sddc_name=self.sddc_name,
            vcenter_hostname=self.vcenter_hostname,
            vcenter_password=self.vcenter_password,
            vcenter_username=self.vcenter_username)


def get_enumeration_vmc(accept_self_signed_cert: Optional[bool] = None,
                        api_token: Optional[str] = None,
                        dc_id: Optional[str] = None,
                        nsx_hostname: Optional[str] = None,
                        sddc_name: Optional[str] = None,
                        vcenter_hostname: Optional[str] = None,
                        vcenter_password: Optional[str] = None,
                        vcenter_username: Optional[str] = None,
                        opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetEnumerationVmcResult:
    """
    ## Example Usage
    ### S

    This is an example of how to lookup a region enumeration data source for VMC cloud account.

    **Region enumeration data source for VMC**
    ```python
    import pulumi
    import pulumi_vra as vra

    this = vra.region.get_enumeration_vmc(accept_self_signed_cert=True,
        dc_id=var["vra_data_collector_id"],
        api_token=var["api_token"],
        sddc_name=var["sddc_name"],
        nsx_hostname=var["nsx_hostname"],
        vcenter_hostname=var["vcenter_hostname"],
        vcenter_password=var["vcenter_password"],
        vcenter_username=var["vcenter_username"])
    ```

    The region enumeration data source for VMC cloud account supports the following arguments:


    :param bool accept_self_signed_cert: Accept self signed certificate when connecting to vSphere. Example: false
    :param str api_token: API Token for the cloud account endpoint.
    :param str dc_id: ID of a data collector vm deployed in the on premise infrastructure. Refer to the data-collector API to create or list data collectors.
    :param str nsx_hostname: The IP address of the NSX Manager server in the specified SDDC / FQDN.
    :param str sddc_name: Identifier of the on-premise SDDC to be used by this cloud account.
    :param str vcenter_hostname: The IP address or FQDN of the vCenter Server in the specified SDDC. The cloud proxy belongs on this vCenter.
    :param str vcenter_password: Password for the user used to authenticate with the cloud Account
    :param str vcenter_username: vCenter user name for the specified SDDC.The specified user requires CloudAdmin credentials. The user does not require CloudGlobalAdmin credentials.
    """
    __args__ = dict()
    __args__['acceptSelfSignedCert'] = accept_self_signed_cert
    __args__['apiToken'] = api_token
    __args__['dcId'] = dc_id
    __args__['nsxHostname'] = nsx_hostname
    __args__['sddcName'] = sddc_name
    __args__['vcenterHostname'] = vcenter_hostname
    __args__['vcenterPassword'] = vcenter_password
    __args__['vcenterUsername'] = vcenter_username
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('vra:region/getEnumerationVmc:getEnumerationVmc', __args__, opts=opts, typ=GetEnumerationVmcResult).value

    return AwaitableGetEnumerationVmcResult(
        accept_self_signed_cert=__ret__.accept_self_signed_cert,
        api_token=__ret__.api_token,
        dc_id=__ret__.dc_id,
        id=__ret__.id,
        nsx_hostname=__ret__.nsx_hostname,
        regions=__ret__.regions,
        sddc_name=__ret__.sddc_name,
        vcenter_hostname=__ret__.vcenter_hostname,
        vcenter_password=__ret__.vcenter_password,
        vcenter_username=__ret__.vcenter_username)


@_utilities.lift_output_func(get_enumeration_vmc)
def get_enumeration_vmc_output(accept_self_signed_cert: Optional[pulumi.Input[Optional[bool]]] = None,
                               api_token: Optional[pulumi.Input[str]] = None,
                               dc_id: Optional[pulumi.Input[Optional[str]]] = None,
                               nsx_hostname: Optional[pulumi.Input[str]] = None,
                               sddc_name: Optional[pulumi.Input[str]] = None,
                               vcenter_hostname: Optional[pulumi.Input[str]] = None,
                               vcenter_password: Optional[pulumi.Input[str]] = None,
                               vcenter_username: Optional[pulumi.Input[str]] = None,
                               opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetEnumerationVmcResult]:
    """
    ## Example Usage
    ### S

    This is an example of how to lookup a region enumeration data source for VMC cloud account.

    **Region enumeration data source for VMC**
    ```python
    import pulumi
    import pulumi_vra as vra

    this = vra.region.get_enumeration_vmc(accept_self_signed_cert=True,
        dc_id=var["vra_data_collector_id"],
        api_token=var["api_token"],
        sddc_name=var["sddc_name"],
        nsx_hostname=var["nsx_hostname"],
        vcenter_hostname=var["vcenter_hostname"],
        vcenter_password=var["vcenter_password"],
        vcenter_username=var["vcenter_username"])
    ```

    The region enumeration data source for VMC cloud account supports the following arguments:


    :param bool accept_self_signed_cert: Accept self signed certificate when connecting to vSphere. Example: false
    :param str api_token: API Token for the cloud account endpoint.
    :param str dc_id: ID of a data collector vm deployed in the on premise infrastructure. Refer to the data-collector API to create or list data collectors.
    :param str nsx_hostname: The IP address of the NSX Manager server in the specified SDDC / FQDN.
    :param str sddc_name: Identifier of the on-premise SDDC to be used by this cloud account.
    :param str vcenter_hostname: The IP address or FQDN of the vCenter Server in the specified SDDC. The cloud proxy belongs on this vCenter.
    :param str vcenter_password: Password for the user used to authenticate with the cloud Account
    :param str vcenter_username: vCenter user name for the specified SDDC.The specified user requires CloudAdmin credentials. The user does not require CloudGlobalAdmin credentials.
    """
    ...
