<reponame>pulumiverse/pulumi-vra// *** 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! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;

namespace Pulumiverse.Vra.Region
{
    public static class GetEnumerationVmc
    {
        /// <summary>
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// ### S
        /// 
        /// This is an example of how to lookup a region enumeration data source for VMC cloud account.
        /// 
        /// **Region enumeration data source for VMC**
        /// ```csharp
        /// using System.Collections.Generic;
        /// using Pulumi;
        /// using Vra = Pulumi.Vra;
        /// 
        /// return await Deployment.RunAsync(() =&gt; 
        /// {
        ///     var @this = Vra.Region.GetEnumerationVmc.Invoke(new()
        ///     {
        ///         AcceptSelfSignedCert = true,
        ///         DcId = @var.Vra_data_collector_id,
        ///         ApiToken = @var.Api_token,
        ///         SddcName = @var.Sddc_name,
        ///         NsxHostname = @var.Nsx_hostname,
        ///         VcenterHostname = @var.Vcenter_hostname,
        ///         VcenterPassword = @var.Vcenter_password,
        ///         VcenterUsername = @var.Vcenter_username,
        ///     });
        /// 
        /// });
        /// ```
        /// 
        /// The region enumeration data source for VMC cloud account supports the following arguments:
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Task<GetEnumerationVmcResult> InvokeAsync(GetEnumerationVmcArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetEnumerationVmcResult>("vra:region/getEnumerationVmc:getEnumerationVmc", args ?? new GetEnumerationVmcArgs(), options.WithDefaults());

        /// <summary>
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// ### S
        /// 
        /// This is an example of how to lookup a region enumeration data source for VMC cloud account.
        /// 
        /// **Region enumeration data source for VMC**
        /// ```csharp
        /// using System.Collections.Generic;
        /// using Pulumi;
        /// using Vra = Pulumi.Vra;
        /// 
        /// return await Deployment.RunAsync(() =&gt; 
        /// {
        ///     var @this = Vra.Region.GetEnumerationVmc.Invoke(new()
        ///     {
        ///         AcceptSelfSignedCert = true,
        ///         DcId = @var.Vra_data_collector_id,
        ///         ApiToken = @var.Api_token,
        ///         SddcName = @var.Sddc_name,
        ///         NsxHostname = @var.Nsx_hostname,
        ///         VcenterHostname = @var.Vcenter_hostname,
        ///         VcenterPassword = @var.Vcenter_password,
        ///         VcenterUsername = @var.Vcenter_username,
        ///     });
        /// 
        /// });
        /// ```
        /// 
        /// The region enumeration data source for VMC cloud account supports the following arguments:
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Output<GetEnumerationVmcResult> Invoke(GetEnumerationVmcInvokeArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetEnumerationVmcResult>("vra:region/getEnumerationVmc:getEnumerationVmc", args ?? new GetEnumerationVmcInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetEnumerationVmcArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Accept self signed certificate when connecting to vSphere. Example: false
        /// </summary>
        [Input("acceptSelfSignedCert")]
        public bool? AcceptSelfSignedCert { get; set; }

        /// <summary>
        /// API Token for the cloud account endpoint.
        /// </summary>
        [Input("apiToken", required: true)]
        public string ApiToken { get; set; } = null!;

        /// <summary>
        /// ID of a data collector vm deployed in the on premise infrastructure. Refer to the data-collector API to create or list data collectors.
        /// </summary>
        [Input("dcId")]
        public string? DcId { get; set; }

        /// <summary>
        /// The IP address of the NSX Manager server in the specified SDDC / FQDN.
        /// </summary>
        [Input("nsxHostname", required: true)]
        public string NsxHostname { get; set; } = null!;

        /// <summary>
        /// Identifier of the on-premise SDDC to be used by this cloud account.
        /// </summary>
        [Input("sddcName", required: true)]
        public string SddcName { get; set; } = null!;

        /// <summary>
        /// The IP address or FQDN of the vCenter Server in the specified SDDC. The cloud proxy belongs on this vCenter.
        /// </summary>
        [Input("vcenterHostname", required: true)]
        public string VcenterHostname { get; set; } = null!;

        /// <summary>
        /// Password for the user used to authenticate with the cloud Account
        /// </summary>
        [Input("vcenterPassword", required: true)]
        public string VcenterPassword { get; set; } = null!;

        /// <summary>
        /// vCenter user name for the specified SDDC.The specified user requires CloudAdmin credentials. The user does not require CloudGlobalAdmin credentials.
        /// </summary>
        [Input("vcenterUsername", required: true)]
        public string VcenterUsername { get; set; } = null!;

        public GetEnumerationVmcArgs()
        {
        }
        public static new GetEnumerationVmcArgs Empty => new GetEnumerationVmcArgs();
    }

    public sealed class GetEnumerationVmcInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Accept self signed certificate when connecting to vSphere. Example: false
        /// </summary>
        [Input("acceptSelfSignedCert")]
        public Input<bool>? AcceptSelfSignedCert { get; set; }

        /// <summary>
        /// API Token for the cloud account endpoint.
        /// </summary>
        [Input("apiToken", required: true)]
        public Input<string> ApiToken { get; set; } = null!;

        /// <summary>
        /// ID of a data collector vm deployed in the on premise infrastructure. Refer to the data-collector API to create or list data collectors.
        /// </summary>
        [Input("dcId")]
        public Input<string>? DcId { get; set; }

        /// <summary>
        /// The IP address of the NSX Manager server in the specified SDDC / FQDN.
        /// </summary>
        [Input("nsxHostname", required: true)]
        public Input<string> NsxHostname { get; set; } = null!;

        /// <summary>
        /// Identifier of the on-premise SDDC to be used by this cloud account.
        /// </summary>
        [Input("sddcName", required: true)]
        public Input<string> SddcName { get; set; } = null!;

        /// <summary>
        /// The IP address or FQDN of the vCenter Server in the specified SDDC. The cloud proxy belongs on this vCenter.
        /// </summary>
        [Input("vcenterHostname", required: true)]
        public Input<string> VcenterHostname { get; set; } = null!;

        /// <summary>
        /// Password for the user used to authenticate with the cloud Account
        /// </summary>
        [Input("vcenterPassword", required: true)]
        public Input<string> VcenterPassword { get; set; } = null!;

        /// <summary>
        /// vCenter user name for the specified SDDC.The specified user requires CloudAdmin credentials. The user does not require CloudGlobalAdmin credentials.
        /// </summary>
        [Input("vcenterUsername", required: true)]
        public Input<string> VcenterUsername { get; set; } = null!;

        public GetEnumerationVmcInvokeArgs()
        {
        }
        public static new GetEnumerationVmcInvokeArgs Empty => new GetEnumerationVmcInvokeArgs();
    }


    [OutputType]
    public sealed class GetEnumerationVmcResult
    {
        public readonly bool? AcceptSelfSignedCert;
        public readonly string ApiToken;
        public readonly string? DcId;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        public readonly string NsxHostname;
        /// <summary>
        /// A set of Region names to enable provisioning on. Example: northamerica-northeast1
        /// </summary>
        public readonly ImmutableArray<string> Regions;
        public readonly string SddcName;
        public readonly string VcenterHostname;
        public readonly string VcenterPassword;
        public readonly string VcenterUsername;

        [OutputConstructor]
        private GetEnumerationVmcResult(
            bool? acceptSelfSignedCert,

            string apiToken,

            string? dcId,

            string id,

            string nsxHostname,

            ImmutableArray<string> regions,

            string sddcName,

            string vcenterHostname,

            string vcenterPassword,

            string vcenterUsername)
        {
            AcceptSelfSignedCert = acceptSelfSignedCert;
            ApiToken = apiToken;
            DcId = dcId;
            Id = id;
            NsxHostname = nsxHostname;
            Regions = regions;
            SddcName = sddcName;
            VcenterHostname = vcenterHostname;
            VcenterPassword = vcenterPassword;
            VcenterUsername = vcenterUsername;
        }
    }
}
