<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 GetRouterBfd
    {
        /// <summary>
        /// Use this data source to get information on fortios router bfd
        /// </summary>
        public static Task<GetRouterBfdResult> InvokeAsync(GetRouterBfdArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetRouterBfdResult>("fortios:index/getRouterBfd:getRouterBfd", args ?? new GetRouterBfdArgs(), options.WithDefaults());

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


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

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


    [OutputType]
    public sealed class GetRouterBfdResult
    {
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// BFD multi-hop template table. The structure of `multihop_template` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterBfdMultihopTemplateResult> MultihopTemplates;
        /// <summary>
        /// neighbor The structure of `neighbor` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetRouterBfdNeighborResult> Neighbors;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetRouterBfdResult(
            string id,

            ImmutableArray<Outputs.GetRouterBfdMultihopTemplateResult> multihopTemplates,

            ImmutableArray<Outputs.GetRouterBfdNeighborResult> neighbors,

            string? vdomparam)
        {
            Id = id;
            MultihopTemplates = multihopTemplates;
            Neighbors = neighbors;
            Vdomparam = vdomparam;
        }
    }
}
