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

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


    public sealed class GetRouterStatic6Args : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the seq_num of the desired router static6.
        /// </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 GetRouterStatic6Args()
        {
        }
        public static new GetRouterStatic6Args Empty => new GetRouterStatic6Args();
    }

    public sealed class GetRouterStatic6InvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the seq_num of the desired router static6.
        /// </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 GetRouterStatic6InvokeArgs()
        {
        }
        public static new GetRouterStatic6InvokeArgs Empty => new GetRouterStatic6InvokeArgs();
    }


    [OutputType]
    public sealed class GetRouterStatic6Result
    {
        /// <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>
        /// Device index (0 - 4294967295).
        /// </summary>
        public readonly int Devindex;
        /// <summary>
        /// Administrative distance (1 - 255).
        /// </summary>
        public readonly int Distance;
        /// <summary>
        /// Destination IPv6 prefix.
        /// </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 Router Advertisement (RA).
        /// </summary>
        public readonly string DynamicGateway;
        /// <summary>
        /// IPv6 address of the gateway.
        /// </summary>
        public readonly string Gateway;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Enable/disable withdrawal of this static 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 the 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.GetRouterStatic6SdwanZoneResult> SdwanZones;
        /// <summary>
        /// Sequence number.
        /// </summary>
        public readonly int SeqNum;
        /// <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 GetRouterStatic6Result(
            string bfd,

            string blackhole,

            string comment,

            string device,

            int devindex,

            int distance,

            string dst,

            string dstaddr,

            string dynamicGateway,

            string gateway,

            string id,

            string linkMonitorExempt,

            int priority,

            string sdwan,

            ImmutableArray<Outputs.GetRouterStatic6SdwanZoneResult> sdwanZones,

            int seqNum,

            string status,

            string? vdomparam,

            string virtualWanLink,

            int vrf,

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