<filename>sdk/dotnet/GetFirewallPolicy6.cs<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 Pulumiverse.Fortios
{
    public static class GetFirewallPolicy6
    {
        /// <summary>
        /// Use this data source to get information on an fortios firewall policy6
        /// </summary>
        public static Task<GetFirewallPolicy6Result> InvokeAsync(GetFirewallPolicy6Args args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.InvokeAsync<GetFirewallPolicy6Result>("fortios:index/getFirewallPolicy6:getFirewallPolicy6", args ?? new GetFirewallPolicy6Args(), options.WithDefaults());

        /// <summary>
        /// Use this data source to get information on an fortios firewall policy6
        /// </summary>
        public static Output<GetFirewallPolicy6Result> Invoke(GetFirewallPolicy6InvokeArgs args, InvokeOptions? options = null)
            => global::Pulumi.Deployment.Instance.Invoke<GetFirewallPolicy6Result>("fortios:index/getFirewallPolicy6:getFirewallPolicy6", args ?? new GetFirewallPolicy6InvokeArgs(), options.WithDefaults());
    }


    public sealed class GetFirewallPolicy6Args : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the policyid of the desired firewall policy6.
        /// </summary>
        [Input("policyid", required: true)]
        public int Policyid { 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 GetFirewallPolicy6Args()
        {
        }
        public static new GetFirewallPolicy6Args Empty => new GetFirewallPolicy6Args();
    }

    public sealed class GetFirewallPolicy6InvokeArgs : global::Pulumi.InvokeArgs
    {
        /// <summary>
        /// Specify the policyid of the desired firewall policy6.
        /// </summary>
        [Input("policyid", required: true)]
        public Input<int> Policyid { 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 GetFirewallPolicy6InvokeArgs()
        {
        }
        public static new GetFirewallPolicy6InvokeArgs Empty => new GetFirewallPolicy6InvokeArgs();
    }


    [OutputType]
    public sealed class GetFirewallPolicy6Result
    {
        /// <summary>
        /// Policy action (allow/deny/ipsec).
        /// </summary>
        public readonly string Action;
        /// <summary>
        /// Enable/disable anti-replay check.
        /// </summary>
        public readonly string AntiReplay;
        /// <summary>
        /// Application category ID list. The structure of `app_category` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6AppCategoryResult> AppCategories;
        /// <summary>
        /// Application group names. The structure of `app_group` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6AppGroupResult> AppGroups;
        /// <summary>
        /// Name of an existing Application list.
        /// </summary>
        public readonly string ApplicationList;
        /// <summary>
        /// Application ID list. The structure of `application` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6ApplicationResult> Applications;
        /// <summary>
        /// Enable/disable policy traffic ASIC offloading.
        /// </summary>
        public readonly string AutoAsicOffload;
        /// <summary>
        /// Name of an existing Antivirus profile.
        /// </summary>
        public readonly string AvProfile;
        /// <summary>
        /// Name of an existing CIFS profile.
        /// </summary>
        public readonly string CifsProfile;
        /// <summary>
        /// Comment.
        /// </summary>
        public readonly string Comments;
        /// <summary>
        /// Log field index numbers to append custom log fields to log messages for this policy. The structure of `custom_log_fields` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6CustomLogFieldResult> CustomLogFields;
        /// <summary>
        /// Decrypted traffic mirror.
        /// </summary>
        public readonly string DecryptedTrafficMirror;
        /// <summary>
        /// Names of devices or device groups that can be matched by the policy. The structure of `devices` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6DeviceResult> Devices;
        /// <summary>
        /// Enable to change packet's DiffServ values to the specified diffservcode-forward value.
        /// </summary>
        public readonly string DiffservForward;
        /// <summary>
        /// Enable to change packet's reverse (reply) DiffServ values to the specified diffservcode-rev value.
        /// </summary>
        public readonly string DiffservReverse;
        /// <summary>
        /// Change packet's DiffServ to this value.
        /// </summary>
        public readonly string DiffservcodeForward;
        /// <summary>
        /// Change packet's reverse (reply) DiffServ to this value.
        /// </summary>
        public readonly string DiffservcodeRev;
        /// <summary>
        /// Name of an existing DLP sensor.
        /// </summary>
        public readonly string DlpSensor;
        /// <summary>
        /// Name of an existing DNS filter profile.
        /// </summary>
        public readonly string DnsfilterProfile;
        /// <summary>
        /// Enable DSRI to ignore HTTP server responses.
        /// </summary>
        public readonly string Dsri;
        /// <summary>
        /// When enabled dstaddr specifies what the destination address must NOT be.
        /// </summary>
        public readonly string DstaddrNegate;
        /// <summary>
        /// Destination address and address group names. The structure of `dstaddr` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6DstaddrResult> Dstaddrs;
        /// <summary>
        /// Outgoing (egress) interface. The structure of `dstintf` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6DstintfResult> Dstintfs;
        /// <summary>
        /// Name of an existing email filter profile.
        /// </summary>
        public readonly string EmailfilterProfile;
        /// <summary>
        /// How to handle sessions if the configuration of this firewall policy changes.
        /// </summary>
        public readonly string FirewallSessionDirty;
        /// <summary>
        /// Enable to prevent source NAT from changing a session's source port.
        /// </summary>
        public readonly string Fixedport;
        /// <summary>
        /// Names of FSSO groups. The structure of `fsso_groups` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6FssoGroupResult> FssoGroups;
        /// <summary>
        /// Label for the policy that appears when the GUI is in Global View mode.
        /// </summary>
        public readonly string GlobalLabel;
        /// <summary>
        /// Names of user groups that can authenticate with this policy. The structure of `groups` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6GroupResult> Groups;
        /// <summary>
        /// Redirect HTTP(S) traffic to matching transparent web proxy policy.
        /// </summary>
        public readonly string HttpPolicyRedirect;
        /// <summary>
        /// Name of an existing ICAP profile.
        /// </summary>
        public readonly string IcapProfile;
        /// <summary>
        /// The provider-assigned unique ID for this managed resource.
        /// </summary>
        public readonly string Id;
        /// <summary>
        /// Policy-based IPsec VPN: only traffic from the remote network can initiate a VPN.
        /// </summary>
        public readonly string Inbound;
        /// <summary>
        /// Policy inspection mode (Flow/proxy). Default is Flow mode.
        /// </summary>
        public readonly string InspectionMode;
        /// <summary>
        /// Enable to use IP Pools for source NAT.
        /// </summary>
        public readonly string Ippool;
        /// <summary>
        /// Name of an existing IPS sensor.
        /// </summary>
        public readonly string IpsSensor;
        /// <summary>
        /// Label for the policy that appears when the GUI is in Section View mode.
        /// </summary>
        public readonly string Label;
        /// <summary>
        /// Enable or disable logging. Log all sessions or security profile sessions.
        /// </summary>
        public readonly string Logtraffic;
        /// <summary>
        /// Record logs when a session starts.
        /// </summary>
        public readonly string LogtrafficStart;
        /// <summary>
        /// Names of FSSO groups.
        /// </summary>
        public readonly string Name;
        /// <summary>
        /// Enable/disable source NAT.
        /// </summary>
        public readonly string Nat;
        /// <summary>
        /// Policy-based IPsec VPN: apply destination NAT to inbound traffic.
        /// </summary>
        public readonly string Natinbound;
        /// <summary>
        /// Policy-based IPsec VPN: apply source NAT to outbound traffic.
        /// </summary>
        public readonly string Natoutbound;
        /// <summary>
        /// Policy-based IPsec VPN: only traffic from the internal network can initiate a VPN.
        /// </summary>
        public readonly string Outbound;
        /// <summary>
        /// Per-IP traffic shaper.
        /// </summary>
        public readonly string PerIpShaper;
        /// <summary>
        /// Policy ID.
        /// </summary>
        public readonly int Policyid;
        /// <summary>
        /// IP Pool names. The structure of `poolname` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6PoolnameResult> Poolnames;
        /// <summary>
        /// Name of profile group.
        /// </summary>
        public readonly string ProfileGroup;
        /// <summary>
        /// Name of an existing Protocol options profile.
        /// </summary>
        public readonly string ProfileProtocolOptions;
        /// <summary>
        /// Determine whether the firewall policy allows security profile groups or single profiles only.
        /// </summary>
        public readonly string ProfileType;
        /// <summary>
        /// Override the default replacement message group for this policy.
        /// </summary>
        public readonly string ReplacemsgOverrideGroup;
        /// <summary>
        /// Enable/disable RADIUS single sign-on (RSSO).
        /// </summary>
        public readonly string Rsso;
        /// <summary>
        /// Schedule name.
        /// </summary>
        public readonly string Schedule;
        /// <summary>
        /// Enable/disable return of deny-packet.
        /// </summary>
        public readonly string SendDenyPacket;
        /// <summary>
        /// When enabled service specifies what the service must NOT be.
        /// </summary>
        public readonly string ServiceNegate;
        /// <summary>
        /// Service and service group names. The structure of `service` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6ServiceResult> Services;
        /// <summary>
        /// Session TTL in seconds for sessions accepted by this policy. 0 means use the system default session TTL.
        /// </summary>
        public readonly int SessionTtl;
        /// <summary>
        /// Name of an existing Spam filter profile.
        /// </summary>
        public readonly string SpamfilterProfile;
        /// <summary>
        /// When enabled srcaddr specifies what the source address must NOT be.
        /// </summary>
        public readonly string SrcaddrNegate;
        /// <summary>
        /// Source address and address group names. The structure of `srcaddr` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6SrcaddrResult> Srcaddrs;
        /// <summary>
        /// Incoming (ingress) interface. The structure of `srcintf` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6SrcintfResult> Srcintfs;
        /// <summary>
        /// Name of an existing SSH filter profile.
        /// </summary>
        public readonly string SshFilterProfile;
        /// <summary>
        /// Redirect SSH traffic to matching transparent proxy policy.
        /// </summary>
        public readonly string SshPolicyRedirect;
        /// <summary>
        /// Enable to copy decrypted SSL traffic to a FortiGate interface (called SSL mirroring).
        /// </summary>
        public readonly string SslMirror;
        /// <summary>
        /// SSL mirror interface name. The structure of `ssl_mirror_intf` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6SslMirrorIntfResult> SslMirrorIntfs;
        /// <summary>
        /// Name of an existing SSL SSH profile.
        /// </summary>
        public readonly string SslSshProfile;
        /// <summary>
        /// Enable or disable this policy.
        /// </summary>
        public readonly string Status;
        /// <summary>
        /// Receiver TCP maximum segment size (MSS).
        /// </summary>
        public readonly int TcpMssReceiver;
        /// <summary>
        /// Sender TCP maximum segment size (MSS).
        /// </summary>
        public readonly int TcpMssSender;
        /// <summary>
        /// Enable/disable creation of TCP session without SYN flag.
        /// </summary>
        public readonly string TcpSessionWithoutSyn;
        /// <summary>
        /// Enable/disable sending RST packets when TCP sessions expire.
        /// </summary>
        public readonly string TimeoutSendRst;
        /// <summary>
        /// ToS (Type of Service) value used for comparison.
        /// </summary>
        public readonly string Tos;
        /// <summary>
        /// Non-zero bit positions are used for comparison while zero bit positions are ignored.
        /// </summary>
        public readonly string TosMask;
        /// <summary>
        /// Enable negated TOS match.
        /// </summary>
        public readonly string TosNegate;
        /// <summary>
        /// Reverse traffic shaper.
        /// </summary>
        public readonly string TrafficShaper;
        /// <summary>
        /// Reverse traffic shaper.
        /// </summary>
        public readonly string TrafficShaperReverse;
        /// <summary>
        /// URL category ID list. The structure of `url_category` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6UrlCategoryResult> UrlCategories;
        /// <summary>
        /// Names of individual users that can authenticate with this policy. The structure of `users` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.GetFirewallPolicy6UserResult> Users;
        /// <summary>
        /// Enable AV/web/ips protection profile.
        /// </summary>
        public readonly string UtmStatus;
        /// <summary>
        /// Universally Unique Identifier (UUID; automatically assigned but can be manually reset).
        /// </summary>
        public readonly string Uuid;
        public readonly string? Vdomparam;
        /// <summary>
        /// VLAN forward direction user priority: 255 passthrough, 0 lowest, 7 highest
        /// </summary>
        public readonly int VlanCosFwd;
        /// <summary>
        /// VLAN reverse direction user priority: 255 passthrough, 0 lowest, 7 highest
        /// </summary>
        public readonly int VlanCosRev;
        /// <summary>
        /// Set VLAN filters.
        /// </summary>
        public readonly string VlanFilter;
        /// <summary>
        /// Name of an existing VoIP profile.
        /// </summary>
        public readonly string VoipProfile;
        /// <summary>
        /// Policy-based IPsec VPN: name of the IPsec VPN Phase 1.
        /// </summary>
        public readonly string Vpntunnel;
        /// <summary>
        /// Name of an existing Web application firewall profile.
        /// </summary>
        public readonly string WafProfile;
        /// <summary>
        /// Enable/disable web cache.
        /// </summary>
        public readonly string Webcache;
        /// <summary>
        /// Enable/disable web cache for HTTPS.
        /// </summary>
        public readonly string WebcacheHttps;
        /// <summary>
        /// Name of an existing Web filter profile.
        /// </summary>
        public readonly string WebfilterProfile;
        /// <summary>
        /// Web proxy forward server name.
        /// </summary>
        public readonly string WebproxyForwardServer;
        /// <summary>
        /// Webproxy profile name.
        /// </summary>
        public readonly string WebproxyProfile;

        [OutputConstructor]
        private GetFirewallPolicy6Result(
            string action,

            string antiReplay,

            ImmutableArray<Outputs.GetFirewallPolicy6AppCategoryResult> appCategories,

            ImmutableArray<Outputs.GetFirewallPolicy6AppGroupResult> appGroups,

            string applicationList,

            ImmutableArray<Outputs.GetFirewallPolicy6ApplicationResult> applications,

            string autoAsicOffload,

            string avProfile,

            string cifsProfile,

            string comments,

            ImmutableArray<Outputs.GetFirewallPolicy6CustomLogFieldResult> customLogFields,

            string decryptedTrafficMirror,

            ImmutableArray<Outputs.GetFirewallPolicy6DeviceResult> devices,

            string diffservForward,

            string diffservReverse,

            string diffservcodeForward,

            string diffservcodeRev,

            string dlpSensor,

            string dnsfilterProfile,

            string dsri,

            string dstaddrNegate,

            ImmutableArray<Outputs.GetFirewallPolicy6DstaddrResult> dstaddrs,

            ImmutableArray<Outputs.GetFirewallPolicy6DstintfResult> dstintfs,

            string emailfilterProfile,

            string firewallSessionDirty,

            string fixedport,

            ImmutableArray<Outputs.GetFirewallPolicy6FssoGroupResult> fssoGroups,

            string globalLabel,

            ImmutableArray<Outputs.GetFirewallPolicy6GroupResult> groups,

            string httpPolicyRedirect,

            string icapProfile,

            string id,

            string inbound,

            string inspectionMode,

            string ippool,

            string ipsSensor,

            string label,

            string logtraffic,

            string logtrafficStart,

            string name,

            string nat,

            string natinbound,

            string natoutbound,

            string outbound,

            string perIpShaper,

            int policyid,

            ImmutableArray<Outputs.GetFirewallPolicy6PoolnameResult> poolnames,

            string profileGroup,

            string profileProtocolOptions,

            string profileType,

            string replacemsgOverrideGroup,

            string rsso,

            string schedule,

            string sendDenyPacket,

            string serviceNegate,

            ImmutableArray<Outputs.GetFirewallPolicy6ServiceResult> services,

            int sessionTtl,

            string spamfilterProfile,

            string srcaddrNegate,

            ImmutableArray<Outputs.GetFirewallPolicy6SrcaddrResult> srcaddrs,

            ImmutableArray<Outputs.GetFirewallPolicy6SrcintfResult> srcintfs,

            string sshFilterProfile,

            string sshPolicyRedirect,

            string sslMirror,

            ImmutableArray<Outputs.GetFirewallPolicy6SslMirrorIntfResult> sslMirrorIntfs,

            string sslSshProfile,

            string status,

            int tcpMssReceiver,

            int tcpMssSender,

            string tcpSessionWithoutSyn,

            string timeoutSendRst,

            string tos,

            string tosMask,

            string tosNegate,

            string trafficShaper,

            string trafficShaperReverse,

            ImmutableArray<Outputs.GetFirewallPolicy6UrlCategoryResult> urlCategories,

            ImmutableArray<Outputs.GetFirewallPolicy6UserResult> users,

            string utmStatus,

            string uuid,

            string? vdomparam,

            int vlanCosFwd,

            int vlanCosRev,

            string vlanFilter,

            string voipProfile,

            string vpntunnel,

            string wafProfile,

            string webcache,

            string webcacheHttps,

            string webfilterProfile,

            string webproxyForwardServer,

            string webproxyProfile)
        {
            Action = action;
            AntiReplay = antiReplay;
            AppCategories = appCategories;
            AppGroups = appGroups;
            ApplicationList = applicationList;
            Applications = applications;
            AutoAsicOffload = autoAsicOffload;
            AvProfile = avProfile;
            CifsProfile = cifsProfile;
            Comments = comments;
            CustomLogFields = customLogFields;
            DecryptedTrafficMirror = decryptedTrafficMirror;
            Devices = devices;
            DiffservForward = diffservForward;
            DiffservReverse = diffservReverse;
            DiffservcodeForward = diffservcodeForward;
            DiffservcodeRev = diffservcodeRev;
            DlpSensor = dlpSensor;
            DnsfilterProfile = dnsfilterProfile;
            Dsri = dsri;
            DstaddrNegate = dstaddrNegate;
            Dstaddrs = dstaddrs;
            Dstintfs = dstintfs;
            EmailfilterProfile = emailfilterProfile;
            FirewallSessionDirty = firewallSessionDirty;
            Fixedport = fixedport;
            FssoGroups = fssoGroups;
            GlobalLabel = globalLabel;
            Groups = groups;
            HttpPolicyRedirect = httpPolicyRedirect;
            IcapProfile = icapProfile;
            Id = id;
            Inbound = inbound;
            InspectionMode = inspectionMode;
            Ippool = ippool;
            IpsSensor = ipsSensor;
            Label = label;
            Logtraffic = logtraffic;
            LogtrafficStart = logtrafficStart;
            Name = name;
            Nat = nat;
            Natinbound = natinbound;
            Natoutbound = natoutbound;
            Outbound = outbound;
            PerIpShaper = perIpShaper;
            Policyid = policyid;
            Poolnames = poolnames;
            ProfileGroup = profileGroup;
            ProfileProtocolOptions = profileProtocolOptions;
            ProfileType = profileType;
            ReplacemsgOverrideGroup = replacemsgOverrideGroup;
            Rsso = rsso;
            Schedule = schedule;
            SendDenyPacket = sendDenyPacket;
            ServiceNegate = serviceNegate;
            Services = services;
            SessionTtl = sessionTtl;
            SpamfilterProfile = spamfilterProfile;
            SrcaddrNegate = srcaddrNegate;
            Srcaddrs = srcaddrs;
            Srcintfs = srcintfs;
            SshFilterProfile = sshFilterProfile;
            SshPolicyRedirect = sshPolicyRedirect;
            SslMirror = sslMirror;
            SslMirrorIntfs = sslMirrorIntfs;
            SslSshProfile = sslSshProfile;
            Status = status;
            TcpMssReceiver = tcpMssReceiver;
            TcpMssSender = tcpMssSender;
            TcpSessionWithoutSyn = tcpSessionWithoutSyn;
            TimeoutSendRst = timeoutSendRst;
            Tos = tos;
            TosMask = tosMask;
            TosNegate = tosNegate;
            TrafficShaper = trafficShaper;
            TrafficShaperReverse = trafficShaperReverse;
            UrlCategories = urlCategories;
            Users = users;
            UtmStatus = utmStatus;
            Uuid = uuid;
            Vdomparam = vdomparam;
            VlanCosFwd = vlanCosFwd;
            VlanCosRev = vlanCosRev;
            VlanFilter = vlanFilter;
            VoipProfile = voipProfile;
            Vpntunnel = vpntunnel;
            WafProfile = wafProfile;
            Webcache = webcache;
            WebcacheHttps = webcacheHttps;
            WebfilterProfile = webfilterProfile;
            WebproxyForwardServer = webproxyForwardServer;
            WebproxyProfile = webproxyProfile;
        }
    }
}
