<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 GetSystemNetflow
    {
        /// <summary>
        /// Use this data source to get information on fortios system netflow
        /// </summary>
        public static Task<GetSystemNetflowResult> InvokeAsync(GetSystemNetflowArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetSystemNetflowResult>("fortios:index/getSystemNetflow:getSystemNetflow", args ?? new GetSystemNetflowArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on fortios system netflow
        /// </summary>
        public static Output<GetSystemNetflowResult> Invoke(GetSystemNetflowInvokeArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetSystemNetflowResult>("fortios:index/getSystemNetflow:getSystemNetflow", args ?? new GetSystemNetflowInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetSystemNetflowArgs : global::Pulumi.InvokeArgs
    {
        /// <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 GetSystemNetflowArgs()
        {
        }
        public static new GetSystemNetflowArgs Empty => new GetSystemNetflowArgs();
    }

    public sealed class GetSystemNetflowInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <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 GetSystemNetflowInvokeArgs()
        {
        }
        public static new GetSystemNetflowInvokeArgs Empty => new GetSystemNetflowInvokeArgs();
    }


    [OutputType]
    public sealed class GetSystemNetflowResult
    {
        /// <summary>
        /// Timeout to report active flows (1 - 60 min, default = 30).
        /// </summary>
        public readonly int ActiveFlowTimeout;
        /// <summary>
        /// Collector IP.
        /// </summary>
        public readonly string CollectorIp;
        /// <summary>
        /// NetFlow collector port number.
        /// </summary>
        public readonly int CollectorPort;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Timeout for periodic report of finished flows (10 - 600 sec, default = 15).
        /// </summary>
        public readonly int InactiveFlowTimeout;
        /// <summary>
        /// Specify outgoing interface to reach server.
        /// </summary>
        public readonly string Interface;
        /// <summary>
        /// Specify how to select outgoing interface to reach server.
        /// </summary>
        public readonly string InterfaceSelectMethod;
        /// <summary>
        /// Source IP address for communication with the NetFlow agent.
        /// </summary>
        public readonly string SourceIp;
        /// <summary>
        /// Counter of flowset records before resending a template flowset record.
        /// </summary>
        public readonly int TemplateTxCounter;
        /// <summary>
        /// Timeout for periodic template flowset transmission (1 - 1440 min, default = 30).
        /// </summary>
        public readonly int TemplateTxTimeout;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetSystemNetflowResult(
            int activeFlowTimeout,

            string collectorIp,

            int collectorPort,

            string id,

            int inactiveFlowTimeout,

            string @interface,

            string interfaceSelectMethod,

            string sourceIp,

            int templateTxCounter,

            int templateTxTimeout,

            string? vdomparam)
        {
            ActiveFlowTimeout = activeFlowTimeout;
            CollectorIp = collectorIp;
            CollectorPort = collectorPort;
            Id = id;
            InactiveFlowTimeout = inactiveFlowTimeout;
            Interface = @interface;
            InterfaceSelectMethod = interfaceSelectMethod;
            SourceIp = sourceIp;
            TemplateTxCounter = templateTxCounter;
            TemplateTxTimeout = templateTxTimeout;
            Vdomparam = vdomparam;
        }
    }
}
