<filename>sdk/dotnet/GetFirewallInternetservicegroup.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 GetFirewallInternetservicegroup
    {
        /// <summary>
        /// Use this data source to get information on an fortios firewall internetservicegroup
        /// </summary>
        public static Task<GetFirewallInternetservicegroupResult> InvokeAsync(GetFirewallInternetservicegroupArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetFirewallInternetservicegroupResult>("fortios:index/getFirewallInternetservicegroup:getFirewallInternetservicegroup", args ?? new GetFirewallInternetservicegroupArgs(), options.WithDefaults());

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


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

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


    [OutputType]
    public sealed class GetFirewallInternetservicegroupResult
    {
        /// <summary>
        /// Comment.
        /// </summary>
        public readonly string Comment;
        /// <summary>
        /// How this service may be used (source, destination or both).
        /// </summary>
        public readonly string Direction;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Internet Service group member. The structure of `member` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallInternetservicegroupMemberResult> Members;
        /// <summary>
        /// Internet Service name.
        /// </summary>
        public readonly string Name;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetFirewallInternetservicegroupResult(
            string comment,

            string direction,

            string id,

            ImmutableArray<Outputs.GetFirewallInternetservicegroupMemberResult> members,

            string name,

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