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

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


    public sealed class GetFirewallInternetserviceArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the fosid of the desired firewall internetservice.
        /// </summary>
        [Input("fosid", required: true)]
        public int Fosid { get; set; }

        /// <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 GetFirewallInternetserviceArgs()
        {
        }
        public static new GetFirewallInternetserviceArgs Empty => new GetFirewallInternetserviceArgs();
    }

    public sealed class GetFirewallInternetserviceInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the fosid of the desired firewall internetservice.
        /// </summary>
        [Input("fosid", required: true)]
        public Input<int> Fosid { 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 GetFirewallInternetserviceInvokeArgs()
        {
        }
        public static new GetFirewallInternetserviceInvokeArgs Empty => new GetFirewallInternetserviceInvokeArgs();
    }


    [OutputType]
    public sealed class GetFirewallInternetserviceResult
    {
        /// <summary>
        /// Database name this Internet Service belongs to.
        /// </summary>
        public readonly string Database;
        /// <summary>
        /// How this service may be used in a firewall policy (source, destination or both).
        /// </summary>
        public readonly string Direction;
        /// <summary>
        /// Extra number of IPv6 ranges.
        /// </summary>
        public readonly int ExtraIp6RangeNumber;
        /// <summary>
        /// Extra number of IP ranges.
        /// </summary>
        public readonly int ExtraIpRangeNumber;
        /// <summary>
        /// Internet Service ID.
        /// </summary>
        public readonly int Fosid;
        /// <summary>
        /// Icon ID of Internet Service.
        /// </summary>
        public readonly int IconId;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Number of IPv6 ranges.
        /// </summary>
        public readonly int Ip6RangeNumber;
        /// <summary>
        /// Total number of IP addresses.
        /// </summary>
        public readonly int IpNumber;
        /// <summary>
        /// Total number of IP ranges.
        /// </summary>
        public readonly int IpRangeNumber;
        /// <summary>
        /// Internet Service name.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Indicates whether the Internet Service can be used.
        /// </summary>
        public readonly int Obsolete;
        /// <summary>
        /// Reputation level of the Internet Service.
        /// </summary>
        public readonly int Reputation;
        /// <summary>
        /// Singular level of the Internet Service.
        /// </summary>
        public readonly int Singularity;
        /// <summary>
        /// Second Level Domain.
        /// </summary>
        public readonly int SldId;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetFirewallInternetserviceResult(
            string database,

            string direction,

            int extraIp6RangeNumber,

            int extraIpRangeNumber,

            int fosid,

            int iconId,

            string id,

            int ip6RangeNumber,

            int ipNumber,

            int ipRangeNumber,

            string name,

            int obsolete,

            int reputation,

            int singularity,

            int sldId,

            string? vdomparam)
        {
            Database = database;
            Direction = direction;
            ExtraIp6RangeNumber = extraIp6RangeNumber;
            ExtraIpRangeNumber = extraIpRangeNumber;
            Fosid = fosid;
            IconId = iconId;
            Id = id;
            Ip6RangeNumber = ip6RangeNumber;
            IpNumber = ipNumber;
            IpRangeNumber = ipRangeNumber;
            Name = name;
            Obsolete = obsolete;
            Reputation = reputation;
            Singularity = singularity;
            SldId = sldId;
            Vdomparam = vdomparam;
        }
    }
}
