<filename>sdk/dotnet/GetVpc.cs// *** 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 PiersKarsenbarg.Nutanix
{
    public static class GetVpc
    {
        /// <summary>
        /// Provides a datasource to retrieve VPC with vpc_uuid or vpc_name .
        /// </summary>
        public static Task<GetVpcResult> InvokeAsync(GetVpcArgs? args = null, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetVpcResult>("nutanix:index/getVpc:getVpc", args ?? new GetVpcArgs(), options.WithDefaults());

        /// <summary>
        /// Provides a datasource to retrieve VPC with vpc_uuid or vpc_name .
        /// </summary>
        public static Output<GetVpcResult> Invoke(GetVpcInvokeArgs? args = null, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetVpcResult>("nutanix:index/getVpc:getVpc", args ?? new GetVpcInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetVpcArgs : Pulumi.InvokeArgs
    {
        /// <summary>
        /// vpc Name
        /// </summary>
        [Input("vpcName")]
        public string? VpcName { get; set; }

        /// <summary>
        /// vpc UUID
        /// </summary>
        [Input("vpcUuid")]
        public string? VpcUuid { get; set; }

        public GetVpcArgs()
        {
        }
    }

    public sealed class GetVpcInvokeArgs : Pulumi.InvokeArgs
    {
        /// <summary>
        /// vpc Name
        /// </summary>
        [Input("vpcName")]
        public Input<string>? VpcName { get; set; }

        /// <summary>
        /// vpc UUID
        /// </summary>
        [Input("vpcUuid")]
        public Input<string>? VpcUuid { get; set; }

        public GetVpcInvokeArgs()
        {
        }
    }


    [OutputType]
    public sealed class GetVpcResult
    {
        /// <summary>
        /// The version of the API.
        /// </summary>
        public readonly string ApiVersion;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        public readonly ImmutableDictionary<string, string> Metadata;
        /// <summary>
        /// VPC input spec
        /// </summary>
        public readonly ImmutableArray<Outputs.GetVpcSpecResult> Specs;
        /// <summary>
        /// VPC output status
        /// </summary>
        public readonly ImmutableArray<Outputs.GetVpcStatusResult> Statuses;
        public readonly string? VpcName;
        public readonly string? VpcUuid;

        [OutputConstructor]
        private GetVpcResult(
            string apiVersion,

            string id,

            ImmutableDictionary<string, string> metadata,

            ImmutableArray<Outputs.GetVpcSpecResult> specs,

            ImmutableArray<Outputs.GetVpcStatusResult> statuses,

            string? vpcName,

            string? vpcUuid)
        {
            ApiVersion = apiVersion;
            Id = id;
            Metadata = metadata;
            Specs = specs;
            Statuses = statuses;
            VpcName = vpcName;
            VpcUuid = vpcUuid;
        }
    }
}
