// *** 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 GetSystemIpv6tunnel
    {
        /// <summary>
        /// Use this data source to get information on an fortios system ipv6tunnel
        /// </summary>
        public static Task<GetSystemIpv6tunnelResult> InvokeAsync(GetSystemIpv6tunnelArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetSystemIpv6tunnelResult>("fortios:index/getSystemIpv6tunnel:getSystemIpv6tunnel", args ?? new GetSystemIpv6tunnelArgs(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on an fortios system ipv6tunnel
        /// </summary>
        public static Output<GetSystemIpv6tunnelResult> Invoke(GetSystemIpv6tunnelInvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetSystemIpv6tunnelResult>("fortios:index/getSystemIpv6tunnel:getSystemIpv6tunnel", args ?? new GetSystemIpv6tunnelInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetSystemIpv6tunnelArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired system ipv6tunnel.
        /// </summary>
        [Input("name", required: true)]
        public string Name { 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 string? Vdomparam { get; set; }

        public GetSystemIpv6tunnelArgs()
        {
        }
        public static new GetSystemIpv6tunnelArgs Empty => new GetSystemIpv6tunnelArgs();
    }

    public sealed class GetSystemIpv6tunnelInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired system ipv6tunnel.
        /// </summary>
        [Input("name", required: true)]
        public Input<string> Name { 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 GetSystemIpv6tunnelInvokeArgs()
        {
        }
        public static new GetSystemIpv6tunnelInvokeArgs Empty => new GetSystemIpv6tunnelInvokeArgs();
    }


    [OutputType]
    public sealed class GetSystemIpv6tunnelResult
    {
        /// <summary>
        /// Enable/disable tunnel ASIC offloading.
        /// </summary>
        public readonly string AutoAsicOffload;
        /// <summary>
        /// Remote IPv6 address of the tunnel.
        /// </summary>
        public readonly string Destination;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Interface name.
        /// </summary>
        public readonly string Interface;
        /// <summary>
        /// IPv6 tunnel name.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Local IPv6 address of the tunnel.
        /// </summary>
        public readonly string Source;
        /// <summary>
        /// Enable/disable use of SD-WAN to reach remote gateway.
        /// </summary>
        public readonly string UseSdwan;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetSystemIpv6tunnelResult(
            string autoAsicOffload,

            string destination,

            string id,

            string @interface,

            string name,

            string source,

            string useSdwan,

            string? vdomparam)
        {
            AutoAsicOffload = autoAsicOffload;
            Destination = destination;
            Id = id;
            Interface = @interface;
            Name = name;
            Source = source;
            UseSdwan = useSdwan;
            Vdomparam = vdomparam;
        }
    }
}
