<gh_stars>0// *** 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 zscaler.PulumiPackage.Zia.TrafficForwarding
{
    public static class GetTrafficForwardingGRETunnelInfo
    {
        /// <summary>
        /// The **zia_traffic_forwarding_gre_tunnel_info** data source to get information about provisioned GRE tunnel information created in the Zscaler Internet Access portal.
        /// 
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// 
        /// ```csharp
        /// using System.Collections.Generic;
        /// using Pulumi;
        /// using Zia = Pulumi.Zia;
        /// 
        /// return await Deployment.RunAsync(() =&gt; 
        /// {
        ///     var example = Zia.TrafficForwarding.GetTrafficForwardingGRETunnelInfo.Invoke(new()
        ///     {
        ///         IpAddress = "1.1.1.1",
        ///     });
        /// 
        /// });
        /// ```
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Task<GetTrafficForwardingGRETunnelInfoResult> InvokeAsync(GetTrafficForwardingGRETunnelInfoArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetTrafficForwardingGRETunnelInfoResult>("zia:TrafficForwarding/getTrafficForwardingGRETunnelInfo:getTrafficForwardingGRETunnelInfo", args ?? new GetTrafficForwardingGRETunnelInfoArgs(), options.WithDefaults());

        /// <summary>
        /// The **zia_traffic_forwarding_gre_tunnel_info** data source to get information about provisioned GRE tunnel information created in the Zscaler Internet Access portal.
        /// 
        /// {{% examples %}}
        /// ## Example Usage
        /// {{% example %}}
        /// 
        /// ```csharp
        /// using System.Collections.Generic;
        /// using Pulumi;
        /// using Zia = Pulumi.Zia;
        /// 
        /// return await Deployment.RunAsync(() =&gt; 
        /// {
        ///     var example = Zia.TrafficForwarding.GetTrafficForwardingGRETunnelInfo.Invoke(new()
        ///     {
        ///         IpAddress = "1.1.1.1",
        ///     });
        /// 
        /// });
        /// ```
        /// {{% /example %}}
        /// {{% /examples %}}
        /// </summary>
        public static Output<GetTrafficForwardingGRETunnelInfoResult> Invoke(GetTrafficForwardingGRETunnelInfoInvokeArgs? args = null, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetTrafficForwardingGRETunnelInfoResult>("zia:TrafficForwarding/getTrafficForwardingGRETunnelInfo:getTrafficForwardingGRETunnelInfo", args ?? new GetTrafficForwardingGRETunnelInfoInvokeArgs(), options.WithDefaults());
    }


    public sealed class GetTrafficForwardingGRETunnelInfoArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Displays only ip addresses with GRE tunnel enabled
        /// </summary>
        [Input("greEnabled")]
        public bool? GreEnabled { get; set; }

        /// <summary>
        /// Filter based on an IP address range.
        /// </summary>
        [Input("ipAddress")]
        public string? IpAddress { get; set; }

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

    public sealed class GetTrafficForwardingGRETunnelInfoInvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Displays only ip addresses with GRE tunnel enabled
        /// </summary>
        [Input("greEnabled")]
        public Input<bool>? GreEnabled { get; set; }

        /// <summary>
        /// Filter based on an IP address range.
        /// </summary>
        [Input("ipAddress")]
        public Input<string>? IpAddress { get; set; }

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


    [OutputType]
    public sealed class GetTrafficForwardingGRETunnelInfoResult
    {
        public readonly bool? GreEnabled;
        /// <summary>
        /// (String)
        /// </summary>
        public readonly string GreRangePrimary;
        /// <summary>
        /// (String)
        /// </summary>
        public readonly string GreRangeSecondary;
        /// <summary>
        /// (String) The start of the internal IP address in /29 CIDR range
        /// </summary>
        public readonly string GreTunnelIp;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        public readonly string? IpAddress;
        /// <summary>
        /// (String)
        /// </summary>
        public readonly string PrimaryGw;
        /// <summary>
        /// (String)
        /// </summary>
        public readonly string SecondaryGw;
        /// <summary>
        /// (Number)
        /// </summary>
        public readonly int TunId;

        [OutputConstructor]
        private GetTrafficForwardingGRETunnelInfoResult(
            bool? greEnabled,

            string greRangePrimary,

            string greRangeSecondary,

            string greTunnelIp,

            string id,

            string? ipAddress,

            string primaryGw,

            string secondaryGw,

            int tunId)
        {
            GreEnabled = greEnabled;
            GreRangePrimary = greRangePrimary;
            GreRangeSecondary = greRangeSecondary;
            GreTunnelIp = greTunnelIp;
            Id = id;
            IpAddress = ipAddress;
            PrimaryGw = primaryGw;
            SecondaryGw = secondaryGw;
            TunId = tunId;
        }
    }
}
