// *** 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 GetFirewallProxyaddrgrp
    {
        /// <summary>
        /// Use this data source to get information on an fortios firewall proxyaddrgrp
        /// </summary>
        public static Task<GetFirewallProxyaddrgrpResult> InvokeAsync(GetFirewallProxyaddrgrpArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetFirewallProxyaddrgrpResult>("fortios:index/getFirewallProxyaddrgrp:getFirewallProxyaddrgrp", args ?? new GetFirewallProxyaddrgrpArgs(), options.WithDefaults());

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


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

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


    [OutputType]
    public sealed class GetFirewallProxyaddrgrpResult
    {
        /// <summary>
        /// Integer value to determine the color of the icon in the GUI (1 - 32, default = 0, which sets value to 1).
        /// </summary>
        public readonly int Color;
        /// <summary>
        /// Optional comments.
        /// </summary>
        public readonly string Comment;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Members of address group. The structure of `member` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProxyaddrgrpMemberResult> Members;
        /// <summary>
        /// Tag name.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Config object tagging. The structure of `tagging` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallProxyaddrgrpTaggingResult> Taggings;
        /// <summary>
        /// Source or destination address group 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 visibility of the object in the GUI.
        /// </summary>
        public readonly string Visibility;

        [OutputConstructor]
        private GetFirewallProxyaddrgrpResult(
            int color,

            string comment,

            string id,

            ImmutableArray<Outputs.GetFirewallProxyaddrgrpMemberResult> members,

            string name,

            ImmutableArray<Outputs.GetFirewallProxyaddrgrpTaggingResult> taggings,

            string type,

            string uuid,

            string? vdomparam,

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