<reponame>pierskarsenbarg/pulumi-nutanix<gh_stars>0// *** 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 GetAddressGroup
    {
        /// <summary>
        /// Provides a datasource to retrieve a address group.
        /// 
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// 
        /// ```csharp
        /// using Pulumi;
        /// using Nutanix = PiersKarsenbarg.Nutanix;
        /// using Nutanix = Pulumi.Nutanix;
        /// 
        /// class MyStack : Stack
        /// {
        ///     public MyStack()
        ///     {
        ///         var testAddress = new Nutanix.AddressGroup("testAddress", new Nutanix.AddressGroupArgs
        ///         {
        ///             Description = "test address groups resource",
        ///             IpAddressBlockLists = 
        ///             {
        ///                 new Nutanix.Inputs.AddressGroupIpAddressBlockListArgs
        ///                 {
        ///                     Ip = "10.0.0.0",
        ///                     PrefixLength = 24,
        ///                 },
        ///             },
        ///         });
        ///         var addrGroup = Nutanix.GetAddressGroup.Invoke(new Nutanix.GetAddressGroupInvokeArgs
        ///         {
        ///             Uuid = testAddress.Id,
        ///         });
        ///     }
        /// 
        /// }
        /// ```
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Task<GetAddressGroupResult> InvokeAsync(GetAddressGroupArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.InvokeAsync<GetAddressGroupResult>("nutanix:index/getAddressGroup:getAddressGroup", args ?? new GetAddressGroupArgs(), options.WithDefaults());

        /// <summary>
        /// Provides a datasource to retrieve a address group.
        /// 
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// 
        /// ```csharp
        /// using Pulumi;
        /// using Nutanix = PiersKarsenbarg.Nutanix;
        /// using Nutanix = Pulumi.Nutanix;
        /// 
        /// class MyStack : Stack
        /// {
        ///     public MyStack()
        ///     {
        ///         var testAddress = new Nutanix.AddressGroup("testAddress", new Nutanix.AddressGroupArgs
        ///         {
        ///             Description = "test address groups resource",
        ///             IpAddressBlockLists = 
        ///             {
        ///                 new Nutanix.Inputs.AddressGroupIpAddressBlockListArgs
        ///                 {
        ///                     Ip = "10.0.0.0",
        ///                     PrefixLength = 24,
        ///                 },
        ///             },
        ///         });
        ///         var addrGroup = Nutanix.GetAddressGroup.Invoke(new Nutanix.GetAddressGroupInvokeArgs
        ///         {
        ///             Uuid = testAddress.Id,
        ///         });
        ///     }
        /// 
        /// }
        /// ```
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Output<GetAddressGroupResult> Invoke(GetAddressGroupInvokeArgs args, InvokeOptions? options = null)
            => Pulumi.Deployment.Instance.Invoke<GetAddressGroupResult>("nutanix:index/getAddressGroup:getAddressGroup", args ?? new GetAddressGroupInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetAddressGroupArgs : Pulumi.InvokeArgs
    {
        [Input("uuid", required: true)]
        public string Uuid { get; set; } = null!;

        public GetAddressGroupArgs()
        {
        }
    }

    public sealed class GetAddressGroupInvokeArgs : Pulumi.InvokeArgs
    {
        [Input("uuid", required: true)]
        public Input<string> Uuid { get; set; } = null!;

        public GetAddressGroupInvokeArgs()
        {
        }
    }


    [OutputType]
    public sealed class GetAddressGroupResult
    {
        public readonly string AddressGroupString;
        public readonly string Description;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        public readonly ImmutableArray<Outputs.GetAddressGroupIpAddressBlockListResult> IpAddressBlockLists;
        public readonly string Name;
        public readonly string Uuid;

        [OutputConstructor]
        private GetAddressGroupResult(
            string addressGroupString,

            string description,

            string id,

            ImmutableArray<Outputs.GetAddressGroupIpAddressBlockListResult> ipAddressBlockLists,

            string name,

            string uuid)
        {
            AddressGroupString = addressGroupString;
            Description = description;
            Id = id;
            IpAddressBlockLists = ipAddressBlockLists;
            Name = name;
            Uuid = uuid;
        }
    }
}
