<reponame>pulumiverse/pulumi-fortios// *** 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 GetFirewallInternetservicecustomgroup
    {
        /// <summary>
        /// Use this data source to get information on an fortios firewall internetservicecustomgroup
        /// </summary>
        public static Task<GetFirewallInternetservicecustomgroupResult> InvokeAsync(GetFirewallInternetservicecustomgroupArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetFirewallInternetservicecustomgroupResult>("fortios:index/getFirewallInternetservicecustomgroup:getFirewallInternetservicecustomgroup", args ?? new GetFirewallInternetservicecustomgroupArgs(), options.WithDefaults());

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


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

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


    [OutputType]
    public sealed class GetFirewallInternetservicecustomgroupResult
    {
        /// <summary>
        /// Comment.
        /// </summary>
        public readonly string Comment;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Custom Internet Service group members. The structure of `member` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallInternetservicecustomgroupMemberResult> Members;
        /// <summary>
        /// Group member name.
        /// </summary>
        public readonly string Name;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetFirewallInternetservicecustomgroupResult(
            string comment,

            string id,

            ImmutableArray<Outputs.GetFirewallInternetservicecustomgroupMemberResult> members,

            string name,

            string? vdomparam)
        {
            Comment = comment;
            Id = id;
            Members = members;
            Name = name;
            Vdomparam = vdomparam;
        }
    }
}
