// *** 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 GetFirewallwildcardfqdnGroup
    {
        /// <summary>
        /// Use this data source to get information on an fortios firewallwildcardfqdn group
        /// </summary>
        public static Task<GetFirewallwildcardfqdnGroupResult> InvokeAsync(GetFirewallwildcardfqdnGroupArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetFirewallwildcardfqdnGroupResult>("fortios:index/getFirewallwildcardfqdnGroup:getFirewallwildcardfqdnGroup", args ?? new GetFirewallwildcardfqdnGroupArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on an fortios firewallwildcardfqdn group
        /// </summary>
        public static Output<GetFirewallwildcardfqdnGroupResult> Invoke(GetFirewallwildcardfqdnGroupInvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetFirewallwildcardfqdnGroupResult>("fortios:index/getFirewallwildcardfqdnGroup:getFirewallwildcardfqdnGroup", args ?? new GetFirewallwildcardfqdnGroupInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetFirewallwildcardfqdnGroupArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired firewallwildcardfqdn group.
        /// </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 GetFirewallwildcardfqdnGroupArgs()
        {
        }
        public static new GetFirewallwildcardfqdnGroupArgs Empty => new GetFirewallwildcardfqdnGroupArgs();
    }

    public sealed class GetFirewallwildcardfqdnGroupInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired firewallwildcardfqdn group.
        /// </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 GetFirewallwildcardfqdnGroupInvokeArgs()
        {
        }
        public static new GetFirewallwildcardfqdnGroupInvokeArgs Empty => new GetFirewallwildcardfqdnGroupInvokeArgs();
    }


    [OutputType]
    public sealed class GetFirewallwildcardfqdnGroupResult
    {
        /// <summary>
        /// GUI icon color.
        /// </summary>
        public readonly int Color;
        /// <summary>
        /// Comment.
        /// </summary>
        public readonly string Comment;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Address group members. The structure of `member` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallwildcardfqdnGroupMemberResult> Members;
        /// <summary>
        /// Address name.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Universally Unique Identifier (UUID; automatically assigned but can be manually reset).
        /// </summary>
        public readonly string Uuid;
        public readonly string? Vdomparam;
        /// <summary>
        /// Enable/disable address visibility.
        /// </summary>
        public readonly string Visibility;

        [OutputConstructor]
        private GetFirewallwildcardfqdnGroupResult(
            int color,

            string comment,

            string id,

            ImmutableArray<Outputs.GetFirewallwildcardfqdnGroupMemberResult> members,

            string name,

            string uuid,

            string? vdomparam,

            string visibility)
        {
            Color = color;
            Comment = comment;
            Id = id;
            Members = members;
            Name = name;
            Uuid = uuid;
            Vdomparam = vdomparam;
            Visibility = visibility;
        }
    }
}
