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

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


    public sealed class GetSystemIpiptunnelArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired system ipiptunnel.
        /// </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 GetSystemIpiptunnelArgs()
        {
        }
        public static new GetSystemIpiptunnelArgs Empty => new GetSystemIpiptunnelArgs();
    }

    public sealed class GetSystemIpiptunnelInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the name of the desired system ipiptunnel.
        /// </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 GetSystemIpiptunnelInvokeArgs()
        {
        }
        public static new GetSystemIpiptunnelInvokeArgs Empty => new GetSystemIpiptunnelInvokeArgs();
    }


    [OutputType]
    public sealed class GetSystemIpiptunnelResult
    {
        /// <summary>
        /// Enable/disable tunnel ASIC offloading.
        /// </summary>
        public readonly string AutoAsicOffload;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Interface name that is associated with the incoming traffic from available options.
        /// </summary>
        public readonly string Interface;
        /// <summary>
        /// IPv4 address for the local gateway.
        /// </summary>
        public readonly string LocalGw;
        /// <summary>
        /// IPIP Tunnel name.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// IPv4 address for the remote gateway.
        /// </summary>
        public readonly string RemoteGw;
        /// <summary>
        /// Enable/disable use of SD-WAN to reach remote gateway.
        /// </summary>
        public readonly string UseSdwan;
        public readonly string? Vdomparam;

        [OutputConstructor]
        private GetSystemIpiptunnelResult(
            string autoAsicOffload,

            string id,

            string @interface,

            string localGw,

            string name,

            string remoteGw,

            string useSdwan,

            string? vdomparam)
        {
            AutoAsicOffload = autoAsicOffload;
            Id = id;
            Interface = @interface;
            LocalGw = localGw;
            Name = name;
            RemoteGw = remoteGw;
            UseSdwan = useSdwan;
            Vdomparam = vdomparam;
        }
    }
}
