<reponame>pulumiverse/pulumi-fortios<filename>sdk/dotnet/GetSystemsnmpCommunity.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 GetSystemsnmpCommunity
    {
        /// <summary>
        /// Use this data source to get information on an fortios systemsnmp community
        /// </summary>
        public static Task<GetSystemsnmpCommunityResult> InvokeAsync(GetSystemsnmpCommunityArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetSystemsnmpCommunityResult>("fortios:index/getSystemsnmpCommunity:getSystemsnmpCommunity", args ?? new GetSystemsnmpCommunityArgs(), options.WithDefaults());

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


    public sealed class GetSystemsnmpCommunityArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the fosid of the desired systemsnmp community.
        /// </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 GetSystemsnmpCommunityArgs()
        {
        }
        public static new GetSystemsnmpCommunityArgs Empty => new GetSystemsnmpCommunityArgs();
    }

    public sealed class GetSystemsnmpCommunityInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the fosid of the desired systemsnmp community.
        /// </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 GetSystemsnmpCommunityInvokeArgs()
        {
        }
        public static new GetSystemsnmpCommunityInvokeArgs Empty => new GetSystemsnmpCommunityInvokeArgs();
    }


    [OutputType]
    public sealed class GetSystemsnmpCommunityResult
    {
        /// <summary>
        /// SNMP trap events.
        /// </summary>
        public readonly string Events;
        /// <summary>
        /// Community ID.
        /// </summary>
        public readonly int Fosid;
        /// <summary>
        /// Configure IPv4 SNMP managers (hosts). The structure of `hosts` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetSystemsnmpCommunityHostResult> Hosts;
        /// <summary>
        /// Configure IPv6 SNMP managers. The structure of `hosts6` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetSystemsnmpCommunityHosts6Result> Hosts6s;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// SNMP access control MIB view.
        /// </summary>
        public readonly string MibView;
        /// <summary>
        /// VDOM name
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// SNMP v1 query port (default = 161).
        /// </summary>
        public readonly int QueryV1Port;
        /// <summary>
        /// Enable/disable SNMP v1 queries.
        /// </summary>
        public readonly string QueryV1Status;
        /// <summary>
        /// SNMP v2c query port (default = 161).
        /// </summary>
        public readonly int QueryV2cPort;
        /// <summary>
        /// Enable/disable SNMP v2c queries.
        /// </summary>
        public readonly string QueryV2cStatus;
        /// <summary>
        /// Enable/disable this SNMP community.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// SNMP v1 trap local port (default = 162).
        /// </summary>
        public readonly int TrapV1Lport;
        /// <summary>
        /// SNMP v1 trap remote port (default = 162).
        /// </summary>
        public readonly int TrapV1Rport;
        /// <summary>
        /// Enable/disable SNMP v1 traps.
        /// </summary>
        public readonly string TrapV1Status;
        /// <summary>
        /// SNMP v2c trap local port (default = 162).
        /// </summary>
        public readonly int TrapV2cLport;
        /// <summary>
        /// SNMP v2c trap remote port (default = 162).
        /// </summary>
        public readonly int TrapV2cRport;
        /// <summary>
        /// Enable/disable SNMP v2c traps.
        /// </summary>
        public readonly string TrapV2cStatus;
        public readonly string? Vdomparam;
        /// <summary>
        /// SNMP access control VDOMs. The structure of `vdoms` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetSystemsnmpCommunityVdomResult> Vdoms;

        [OutputConstructor]
        private GetSystemsnmpCommunityResult(
            string events,

            int fosid,

            ImmutableArray<Outputs.GetSystemsnmpCommunityHostResult> hosts,

            ImmutableArray<Outputs.GetSystemsnmpCommunityHosts6Result> hosts6s,

            string id,

            string mibView,

            string name,

            int queryV1Port,

            string queryV1Status,

            int queryV2cPort,

            string queryV2cStatus,

            string status,

            int trapV1Lport,

            int trapV1Rport,

            string trapV1Status,

            int trapV2cLport,

            int trapV2cRport,

            string trapV2cStatus,

            string? vdomparam,

            ImmutableArray<Outputs.GetSystemsnmpCommunityVdomResult> vdoms)
        {
            Events = events;
            Fosid = fosid;
            Hosts = hosts;
            Hosts6s = hosts6s;
            Id = id;
            MibView = mibView;
            Name = name;
            QueryV1Port = queryV1Port;
            QueryV1Status = queryV1Status;
            QueryV2cPort = queryV2cPort;
            QueryV2cStatus = queryV2cStatus;
            Status = status;
            TrapV1Lport = trapV1Lport;
            TrapV1Rport = trapV1Rport;
            TrapV1Status = trapV1Status;
            TrapV2cLport = trapV2cLport;
            TrapV2cRport = trapV2cRport;
            TrapV2cStatus = trapV2cStatus;
            Vdomparam = vdomparam;
            Vdoms = vdoms;
        }
    }
}
