<gh_stars>0// *** 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 GetRouterStatic
    {
        /// <summary>
        /// Use this data source to get information on an fortios router static
        /// 
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// 
        /// ```csharp
        /// using System.Collections.Generic;
        /// using System.Linq;
        /// using Pulumi;
        /// using Fortios = Pulumi.Fortios;
        /// 
        /// return await Deployment.RunAsync(() =&gt; 
        /// {
        ///     var sample1 = Fortios.GetRouterStatic.Invoke(new()
        ///     {
        ///         SeqNum = 1,
        ///     });
        /// 
        ///     return new Dictionary&lt;string, object?&gt;
        ///     {
        ///         ["output1"] = sample1,
        ///     };
        /// });
        /// ```
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Task<GetRouterStaticResult> InvokeAsync(GetRouterStaticArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetRouterStaticResult>("fortios:index/getRouterStatic:getRouterStatic", args ?? new GetRouterStaticArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on an fortios router static
        /// 
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// 
        /// ```csharp
        /// using System.Collections.Generic;
        /// using System.Linq;
        /// using Pulumi;
        /// using Fortios = Pulumi.Fortios;
        /// 
        /// return await Deployment.RunAsync(() =&gt; 
        /// {
        ///     var sample1 = Fortios.GetRouterStatic.Invoke(new()
        ///     {
        ///         SeqNum = 1,
        ///     });
        /// 
        ///     return new Dictionary&lt;string, object?&gt;
        ///     {
        ///         ["output1"] = sample1,
        ///     };
        /// });
        /// ```
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Output<GetRouterStaticResult> Invoke(GetRouterStaticInvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetRouterStaticResult>("fortios:index/getRouterStatic:getRouterStatic", args ?? new GetRouterStaticInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetRouterStaticArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the seq_num of the desired router static.
        /// </summary>
        [Input("seqNum", required: true)]
        public int SeqNum { 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 GetRouterStaticArgs()
        {
        }
        public static new GetRouterStaticArgs Empty => new GetRouterStaticArgs();
    }

    public sealed class GetRouterStaticInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the seq_num of the desired router static.
        /// </summary>
        [Input("seqNum", required: true)]
        public Input<int> SeqNum { 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 GetRouterStaticInvokeArgs()
        {
        }
        public static new GetRouterStaticInvokeArgs Empty => new GetRouterStaticInvokeArgs();
    }


    [OutputType]
    public sealed class GetRouterStaticResult
    {
        /// <summary>
        /// Enable/disable Bidirectional Forwarding Detection (BFD).
        /// </summary>
        public readonly string Bfd;
        /// <summary>
        /// Enable/disable black hole.
        /// </summary>
        public readonly string Blackhole;
        /// <summary>
        /// Optional comments.
        /// </summary>
        public readonly string Comment;
        /// <summary>
        /// Gateway out interface or tunnel.
        /// </summary>
        public readonly string Device;
        /// <summary>
        /// Administrative distance (1 - 255).
        /// </summary>
        public readonly int Distance;
        /// <summary>
        /// Destination IP and mask for this route.
        /// </summary>
        public readonly string Dst;
        /// <summary>
        /// Name of firewall address or address group.
        /// </summary>
        public readonly string Dstaddr;
        /// <summary>
        /// Enable use of dynamic gateway retrieved from a DHCP or PPP server.
        /// </summary>
        public readonly string DynamicGateway;
        /// <summary>
        /// Gateway IP for this route.
        /// </summary>
        public readonly string Gateway;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Application ID in the Internet service database.
        /// </summary>
        public readonly int InternetService;
        /// <summary>
        /// Application name in the Internet service custom database.
        /// </summary>
        public readonly string InternetServiceCustom;
        /// <summary>
        /// Enable/disable withdrawing this route when link monitor or health check is down.
        /// </summary>
        public readonly string LinkMonitorExempt;
        /// <summary>
        /// Administrative priority (0 - 4294967295).
        /// </summary>
        public readonly int Priority;
        /// <summary>
        /// Enable/disable egress through SD-WAN.
        /// </summary>
        public readonly string Sdwan;
        /// <summary>
        /// Choose SD-WAN Zone. The structure of `sdwan_zone` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterStaticSdwanZoneResult> SdwanZones;
        /// <summary>
        /// Sequence number.
        /// </summary>
        public readonly int SeqNum;
        /// <summary>
        /// Source prefix for this route.
        /// </summary>
        public readonly string Src;
        /// <summary>
        /// Enable/disable this static route.
        /// </summary>
        public readonly string Status;
        public readonly string? Vdomparam;
        /// <summary>
        /// Enable/disable egress through the virtual-wan-link.
        /// </summary>
        public readonly string VirtualWanLink;
        /// <summary>
        /// Virtual Routing Forwarding ID.
        /// </summary>
        public readonly int Vrf;
        /// <summary>
        /// Administrative weight (0 - 255).
        /// </summary>
        public readonly int Weight;

        [OutputConstructor]
        private GetRouterStaticResult(
            string bfd,

            string blackhole,

            string comment,

            string device,

            int distance,

            string dst,

            string dstaddr,

            string dynamicGateway,

            string gateway,

            string id,

            int internetService,

            string internetServiceCustom,

            string linkMonitorExempt,

            int priority,

            string sdwan,

            ImmutableArray<Outputs.GetRouterStaticSdwanZoneResult> sdwanZones,

            int seqNum,

            string src,

            string status,

            string? vdomparam,

            string virtualWanLink,

            int vrf,

            int weight)
        {
            Bfd = bfd;
            Blackhole = blackhole;
            Comment = comment;
            Device = device;
            Distance = distance;
            Dst = dst;
            Dstaddr = dstaddr;
            DynamicGateway = dynamicGateway;
            Gateway = gateway;
            Id = id;
            InternetService = internetService;
            InternetServiceCustom = internetServiceCustom;
            LinkMonitorExempt = linkMonitorExempt;
            Priority = priority;
            Sdwan = sdwan;
            SdwanZones = sdwanZones;
            SeqNum = seqNum;
            Src = src;
            Status = status;
            Vdomparam = vdomparam;
            VirtualWanLink = virtualWanLink;
            Vrf = vrf;
            Weight = weight;
        }
    }
}
