<filename>sdk/dotnet/GetRouterRip.cs<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 GetRouterRip
    {
        /// <summary>
        /// Use this data source to get information on fortios router rip
        /// </summary>
        public static Task<GetRouterRipResult> InvokeAsync(GetRouterRipArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetRouterRipResult>("fortios:index/getRouterRip:getRouterRip", args ?? new GetRouterRipArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on fortios router rip
        /// </summary>
        public static Output<GetRouterRipResult> Invoke(GetRouterRipInvokeArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetRouterRipResult>("fortios:index/getRouterRip:getRouterRip", args ?? new GetRouterRipInvokeArgs(), options.WithDefaults());
    }


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

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


    [OutputType]
    public sealed class GetRouterRipResult
    {
        /// <summary>
        /// Enable/disable generation of default route.
        /// </summary>
        public readonly string DefaultInformationOriginate;
        /// <summary>
        /// Default metric.
        /// </summary>
        public readonly int DefaultMetric;
        /// <summary>
        /// Distance (1 - 255).
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterRipDistanceResult> Distances;
        /// <summary>
        /// Distribute list. The structure of `distribute_list` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterRipDistributeListResult> DistributeLists;
        /// <summary>
        /// Garbage timer in seconds.
        /// </summary>
        public readonly int GarbageTimer;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Interface name.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterRipInterfaceResult> Interfaces;
        /// <summary>
        /// Maximum metric allowed to output(0 means 'not set').
        /// </summary>
        public readonly int MaxOutMetric;
        /// <summary>
        /// neighbor The structure of `neighbor` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterRipNeighborResult> Neighbors;
        /// <summary>
        /// network The structure of `network` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterRipNetworkResult> Networks;
        /// <summary>
        /// Offset list. The structure of `offset_list` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterRipOffsetListResult> OffsetLists;
        /// <summary>
        /// Passive interface configuration. The structure of `passive_interface` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterRipPassiveInterfaceResult> PassiveInterfaces;
        /// <summary>
        /// Receiving buffer size.
        /// </summary>
        public readonly int RecvBufferSize;
        /// <summary>
        /// Redistribute configuration. The structure of `redistribute` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterRipRedistributeResult> Redistributes;
        /// <summary>
        /// Timeout timer in seconds.
        /// </summary>
        public readonly int TimeoutTimer;
        /// <summary>
        /// Update timer in seconds.
        /// </summary>
        public readonly int UpdateTimer;
        public readonly string? Vdomparam;
        /// <summary>
        /// RIP version.
        /// </summary>
        public readonly string Version;

        [OutputConstructor]
        private GetRouterRipResult(
            string defaultInformationOriginate,

            int defaultMetric,

            ImmutableArray<Outputs.GetRouterRipDistanceResult> distances,

            ImmutableArray<Outputs.GetRouterRipDistributeListResult> distributeLists,

            int garbageTimer,

            string id,

            ImmutableArray<Outputs.GetRouterRipInterfaceResult> interfaces,

            int maxOutMetric,

            ImmutableArray<Outputs.GetRouterRipNeighborResult> neighbors,

            ImmutableArray<Outputs.GetRouterRipNetworkResult> networks,

            ImmutableArray<Outputs.GetRouterRipOffsetListResult> offsetLists,

            ImmutableArray<Outputs.GetRouterRipPassiveInterfaceResult> passiveInterfaces,

            int recvBufferSize,

            ImmutableArray<Outputs.GetRouterRipRedistributeResult> redistributes,

            int timeoutTimer,

            int updateTimer,

            string? vdomparam,

            string version)
        {
            DefaultInformationOriginate = defaultInformationOriginate;
            DefaultMetric = defaultMetric;
            Distances = distances;
            DistributeLists = distributeLists;
            GarbageTimer = garbageTimer;
            Id = id;
            Interfaces = interfaces;
            MaxOutMetric = maxOutMetric;
            Neighbors = neighbors;
            Networks = networks;
            OffsetLists = offsetLists;
            PassiveInterfaces = passiveInterfaces;
            RecvBufferSize = recvBufferSize;
            Redistributes = redistributes;
            TimeoutTimer = timeoutTimer;
            UpdateTimer = updateTimer;
            Vdomparam = vdomparam;
            Version = version;
        }
    }
}
