<filename>sdk/dotnet/GetFirewallAddress6.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 Pulumiverse.Fortios
{
    public static class GetFirewallAddress6
    {
        /// <summary>
        /// Use this data source to get information on an fortios firewall address6
        /// </summary>
        public static Task<GetFirewallAddress6Result> InvokeAsync(GetFirewallAddress6Args args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetFirewallAddress6Result>("fortios:index/getFirewallAddress6:getFirewallAddress6", args ?? new GetFirewallAddress6Args(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on an fortios firewall address6
        /// </summary>
        public static Output<GetFirewallAddress6Result> Invoke(GetFirewallAddress6InvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetFirewallAddress6Result>("fortios:index/getFirewallAddress6:getFirewallAddress6", args ?? new GetFirewallAddress6InvokeArgs(), options.WithDefaults());
    }


    public sealed class GetFirewallAddress6Args : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired firewall address6.
        /// </summary>
        [Input("name", required: true)]
        public string Name { get; set; } = null!;

        /// <summary>
        /// Specifies the vdom to which the data source will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
        /// </summary>
        [Input("vdomparam")]
        public string? Vdomparam { get; set; }

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

    public sealed class GetFirewallAddress6InvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired firewall address6.
        /// </summary>
        [Input("name", required: true)]
        public Input<string> Name { get; set; } = null!;

        /// <summary>
        /// Specifies the vdom to which the data source will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
        /// </summary>
        [Input("vdomparam")]
        public Input<string>? Vdomparam { get; set; }

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


    [OutputType]
    public sealed class GetFirewallAddress6Result
    {
        /// <summary>
        /// Minimal TTL of individual IPv6 addresses in FQDN cache.
        /// </summary>
        public readonly int CacheTtl;
        /// <summary>
        /// Integer value to determine the color of the icon in the GUI (range 1 to 32, default = 0, which sets the value to 1).
        /// </summary>
        public readonly int Color;
        /// <summary>
        /// Comment.
        /// </summary>
        public readonly string Comment;
        /// <summary>
        /// IPv6 addresses associated to a specific country.
        /// </summary>
        public readonly string Country;
        /// <summary>
        /// Final IP address (inclusive) in the range for the address (format: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx).
        /// </summary>
        public readonly string EndIp;
        /// <summary>
        /// Last MAC address in the range.
        /// </summary>
        public readonly string EndMac;
        /// <summary>
        /// Endpoint group name.
        /// </summary>
        public readonly string EpgName;
        /// <summary>
        /// Security Fabric global object setting.
        /// </summary>
        public readonly string FabricObject;
        /// <summary>
        /// Fully qualified domain name.
        /// </summary>
        public readonly string Fqdn;
        /// <summary>
        /// Host Address.
        /// </summary>
        public readonly string Host;
        /// <summary>
        /// Host type.
        /// </summary>
        public readonly string HostType;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// IPv6 address prefix (format: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/xxx).
        /// </summary>
        public readonly string Ip6;
        /// <summary>
        /// IP address list. The structure of `list` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallAddress6ListResult> Lists;
        /// <summary>
        /// MAC address ranges &lt;start&gt;[-&lt;end&gt;] separated by space.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallAddress6MacaddrResult> Macaddrs;
        /// <summary>
        /// Name.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Object ID for NSX.
        /// </summary>
        public readonly string ObjId;
        /// <summary>
        /// SDN.
        /// </summary>
        public readonly string Sdn;
        /// <summary>
        /// SDN Tag.
        /// </summary>
        public readonly string SdnTag;
        /// <summary>
        /// First IP address (inclusive) in the range for the address (format: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx).
        /// </summary>
        public readonly string StartIp;
        /// <summary>
        /// First MAC address in the range.
        /// </summary>
        public readonly string StartMac;
        /// <summary>
        /// IPv6 subnet segments. The structure of `subnet_segment` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallAddress6SubnetSegmentResult> SubnetSegments;
        /// <summary>
        /// Config object tagging The structure of `tagging` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallAddress6TaggingResult> Taggings;
        /// <summary>
        /// IPv6 address template.
        /// </summary>
        public readonly string Template;
        /// <summary>
        /// Tenant.
        /// </summary>
        public readonly string Tenant;
        /// <summary>
        /// Subnet segment type.
        /// </summary>
        public readonly string Type;
        /// <summary>
        /// Universally Unique Identifier (UUID; automatically assigned but can be manually reset).
        /// </summary>
        public readonly string Uuid;
        public readonly string? Vdomparam;
        /// <summary>
        /// Enable/disable the visibility of the object in the GUI.
        /// </summary>
        public readonly string Visibility;

        [OutputConstructor]
        private GetFirewallAddress6Result(
            int cacheTtl,

            int color,

            string comment,

            string country,

            string endIp,

            string endMac,

            string epgName,

            string fabricObject,

            string fqdn,

            string host,

            string hostType,

            string id,

            string ip6,

            ImmutableArray<Outputs.GetFirewallAddress6ListResult> lists,

            ImmutableArray<Outputs.GetFirewallAddress6MacaddrResult> macaddrs,

            string name,

            string objId,

            string sdn,

            string sdnTag,

            string startIp,

            string startMac,

            ImmutableArray<Outputs.GetFirewallAddress6SubnetSegmentResult> subnetSegments,

            ImmutableArray<Outputs.GetFirewallAddress6TaggingResult> taggings,

            string template,

            string tenant,

            string type,

            string uuid,

            string? vdomparam,

            string visibility)
        {
            CacheTtl = cacheTtl;
            Color = color;
            Comment = comment;
            Country = country;
            EndIp = endIp;
            EndMac = endMac;
            EpgName = epgName;
            FabricObject = fabricObject;
            Fqdn = fqdn;
            Host = host;
            HostType = hostType;
            Id = id;
            Ip6 = ip6;
            Lists = lists;
            Macaddrs = macaddrs;
            Name = name;
            ObjId = objId;
            Sdn = sdn;
            SdnTag = sdnTag;
            StartIp = startIp;
            StartMac = startMac;
            SubnetSegments = subnetSegments;
            Taggings = taggings;
            Template = template;
            Tenant = tenant;
            Type = type;
            Uuid = uuid;
            Vdomparam = vdomparam;
            Visibility = visibility;
        }
    }
}
