// *** 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 GetFirewallInternetserviceextensionlist
    {
        /// <summary>
        /// Provides a list of `fortios.FirewallInternetserviceextension`.
        /// </summary>
        public static Task<GetFirewallInternetserviceextensionlistResult> InvokeAsync(GetFirewallInternetserviceextensionlistArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetFirewallInternetserviceextensionlistResult>("fortios:index/getFirewallInternetserviceextensionlist:getFirewallInternetserviceextensionlist", args ?? new GetFirewallInternetserviceextensionlistArgs(), options.WithDefaults());

        /// <summary>
        /// Provides a list of `fortios.FirewallInternetserviceextension`.
        /// </summary>
        public static Output<GetFirewallInternetserviceextensionlistResult> Invoke(GetFirewallInternetserviceextensionlistInvokeArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetFirewallInternetserviceextensionlistResult>("fortios:index/getFirewallInternetserviceextensionlist:getFirewallInternetserviceextensionlist", args ?? new GetFirewallInternetserviceextensionlistInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetFirewallInternetserviceextensionlistArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// A filter used to scope the list. See Filter results of datasource.
        /// </summary>
        [Input("filter")]
        public string? Filter { 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 GetFirewallInternetserviceextensionlistArgs()
        {
        }
        public static new GetFirewallInternetserviceextensionlistArgs Empty => new GetFirewallInternetserviceextensionlistArgs();
    }

    public sealed class GetFirewallInternetserviceextensionlistInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// A filter used to scope the list. See Filter results of datasource.
        /// </summary>
        [Input("filter")]
        public Input<string>? Filter { 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 Input<string>? Vdomparam { get; set; }

        public GetFirewallInternetserviceextensionlistInvokeArgs()
        {
        }
        public static new GetFirewallInternetserviceextensionlistInvokeArgs Empty => new GetFirewallInternetserviceextensionlistInvokeArgs();
    }


    [OutputType]
    public sealed class GetFirewallInternetserviceextensionlistResult
    {
        public readonly string? Filter;
        /// <summary>
        /// A list of the `fortios.FirewallInternetserviceextension`.
        /// </summary>
        public readonly ImmutableArray<int> Fosidlists;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetFirewallInternetserviceextensionlistResult(
            string? filter,

            ImmutableArray<int> fosidlists,

            string id,

            string? vdomparam)
        {
            Filter = filter;
            Fosidlists = fosidlists;
            Id = id;
            Vdomparam = vdomparam;
        }
    }
}
