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

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


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

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


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

        [OutputConstructor]
        private GetRouterBfd6Result(
            string id,

            ImmutableArray<Outputs.GetRouterBfd6MultihopTemplateResult> multihopTemplates,

            ImmutableArray<Outputs.GetRouterBfd6NeighborResult> neighbors,

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