// *** 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 GetSystemsnmpSysinfo
    {
        /// <summary>
        /// Use this data source to get information on fortios systemsnmp sysinfo
        /// </summary>
        public static Task<GetSystemsnmpSysinfoResult> InvokeAsync(GetSystemsnmpSysinfoArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetSystemsnmpSysinfoResult>("fortios:index/getSystemsnmpSysinfo:getSystemsnmpSysinfo", args ?? new GetSystemsnmpSysinfoArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on fortios systemsnmp sysinfo
        /// </summary>
        public static Output<GetSystemsnmpSysinfoResult> Invoke(GetSystemsnmpSysinfoInvokeArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetSystemsnmpSysinfoResult>("fortios:index/getSystemsnmpSysinfo:getSystemsnmpSysinfo", args ?? new GetSystemsnmpSysinfoInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetSystemsnmpSysinfoArgs : 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 GetSystemsnmpSysinfoArgs()
        {
        }
        public static new GetSystemsnmpSysinfoArgs Empty => new GetSystemsnmpSysinfoArgs();
    }

    public sealed class GetSystemsnmpSysinfoInvokeArgs : 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 GetSystemsnmpSysinfoInvokeArgs()
        {
        }
        public static new GetSystemsnmpSysinfoInvokeArgs Empty => new GetSystemsnmpSysinfoInvokeArgs();
    }


    [OutputType]
    public sealed class GetSystemsnmpSysinfoResult
    {
        /// <summary>
        /// Contact information.
        /// </summary>
        public readonly string ContactInfo;
        /// <summary>
        /// System description.
        /// </summary>
        public readonly string Description;
        /// <summary>
        /// Local SNMP engineID string (maximum 24 characters).
        /// </summary>
        public readonly string EngineId;
        /// <summary>
        /// Local SNMP engineID type (text/hex/mac).
        /// </summary>
        public readonly string EngineIdType;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// System location.
        /// </summary>
        public readonly string Location;
        /// <summary>
        /// Enable/disable SNMP.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// CPU usage when trap is sent.
        /// </summary>
        public readonly int TrapHighCpuThreshold;
        /// <summary>
        /// Log disk usage when trap is sent.
        /// </summary>
        public readonly int TrapLogFullThreshold;
        /// <summary>
        /// Memory usage when trap is sent.
        /// </summary>
        public readonly int TrapLowMemoryThreshold;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetSystemsnmpSysinfoResult(
            string contactInfo,

            string description,

            string engineId,

            string engineIdType,

            string id,

            string location,

            string status,

            int trapHighCpuThreshold,

            int trapLogFullThreshold,

            int trapLowMemoryThreshold,

            string? vdomparam)
        {
            ContactInfo = contactInfo;
            Description = description;
            EngineId = engineId;
            EngineIdType = engineIdType;
            Id = id;
            Location = location;
            Status = status;
            TrapHighCpuThreshold = trapHighCpuThreshold;
            TrapLogFullThreshold = trapLogFullThreshold;
            TrapLowMemoryThreshold = trapLowMemoryThreshold;
            Vdomparam = vdomparam;
        }
    }
}
