// *** 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.Outputs
{

    [OutputType]
    public sealed class EndpointcontrolProfileForticlientWinmacSettings
    {
        /// <summary>
        /// Enable/disable FortiClient AntiVirus real-time protection. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? AvRealtimeProtection;
        /// <summary>
        /// Enable/disable FortiClient AV signature updates. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? AvSignatureUpToDate;
        /// <summary>
        /// Enable/disable the FortiClient application firewall. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? ForticlientApplicationFirewall;
        /// <summary>
        /// FortiClient application firewall rule list.
        /// </summary>
        public readonly string? ForticlientApplicationFirewallList;
        /// <summary>
        /// Enable/disable FortiClient AntiVirus scanning. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? ForticlientAv;
        /// <summary>
        /// Enable/disable FortiClient Enterprise Management Server (EMS) compliance. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? ForticlientEmsCompliance;
        /// <summary>
        /// FortiClient EMS compliance action. Valid values: `block`, `warning`.
        /// </summary>
        public readonly string? ForticlientEmsComplianceAction;
        /// <summary>
        /// FortiClient EMS entries. The structure of `forticlient_ems_entries` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.EndpointcontrolProfileForticlientWinmacSettingsForticlientEmsEntry> ForticlientEmsEntries;
        /// <summary>
        /// Minimum FortiClient Linux version.
        /// </summary>
        public readonly string? ForticlientLinuxVer;
        /// <summary>
        /// Enable/disable uploading FortiClient logs. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? ForticlientLogUpload;
        /// <summary>
        /// Select the FortiClient logs to upload. Valid values: `traffic`, `vulnerability`, `event`.
        /// </summary>
        public readonly string? ForticlientLogUploadLevel;
        /// <summary>
        /// IP address or FQDN of the server to which to upload FortiClient logs.
        /// </summary>
        public readonly string? ForticlientLogUploadServer;
        /// <summary>
        /// Minimum FortiClient Mac OS version.
        /// </summary>
        public readonly string? ForticlientMacVer;
        /// <summary>
        /// Enable/disable requiring clients to run FortiClient with a minimum software version number. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? ForticlientMinimumSoftwareVersion;
        /// <summary>
        /// FortiClient operating system. The structure of `forticlient_operating_system` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.EndpointcontrolProfileForticlientWinmacSettingsForticlientOperatingSystem> ForticlientOperatingSystems;
        /// <summary>
        /// Checking the path and filename of the FortiClient application. The structure of `forticlient_own_file` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.EndpointcontrolProfileForticlientWinmacSettingsForticlientOwnFile> ForticlientOwnFiles;
        /// <summary>
        /// FortiClient registration compliance action. Valid values: `block`, `warning`.
        /// </summary>
        public readonly string? ForticlientRegistrationComplianceAction;
        /// <summary>
        /// FortiClient registry entry. The structure of `forticlient_registry_entry` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.EndpointcontrolProfileForticlientWinmacSettingsForticlientRegistryEntry> ForticlientRegistryEntries;
        /// <summary>
        /// Use FortiClient to verify if the listed applications are running on the client. The structure of `forticlient_running_app` block is documented below.
        /// </summary>
        public readonly ImmutableArray<Outputs.EndpointcontrolProfileForticlientWinmacSettingsForticlientRunningApp> ForticlientRunningApps;
        /// <summary>
        /// Enable/disable FortiClient security posture check options. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? ForticlientSecurityPosture;
        /// <summary>
        /// FortiClient security posture compliance action. Valid values: `block`, `warning`.
        /// </summary>
        public readonly string? ForticlientSecurityPostureComplianceAction;
        /// <summary>
        /// Enable/disable enforcement of FortiClient system compliance. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? ForticlientSystemCompliance;
        /// <summary>
        /// Block or warn clients not compliant with FortiClient requirements. Valid values: `block`, `warning`.
        /// </summary>
        public readonly string? ForticlientSystemComplianceAction;
        /// <summary>
        /// Enable/disable FortiClient vulnerability scanning. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? ForticlientVulnScan;
        /// <summary>
        /// FortiClient vulnerability compliance action. Valid values: `block`, `warning`.
        /// </summary>
        public readonly string? ForticlientVulnScanComplianceAction;
        /// <summary>
        /// Configure the level of the vulnerability found that causes a FortiClient vulnerability compliance action. Valid values: `critical`, `high`, `medium`, `low`, `info`.
        /// </summary>
        public readonly string? ForticlientVulnScanEnforce;
        /// <summary>
        /// FortiClient vulnerability scan enforcement grace period (0 - 30 days, default = 1).
        /// </summary>
        public readonly int? ForticlientVulnScanEnforceGrace;
        /// <summary>
        /// Enable/disable compliance exemption for vulnerabilities that cannot be patched automatically. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? ForticlientVulnScanExempt;
        /// <summary>
        /// Enable/disable FortiClient web filtering. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? ForticlientWf;
        /// <summary>
        /// The FortiClient web filter profile to apply.
        /// </summary>
        public readonly string? ForticlientWfProfile;
        /// <summary>
        /// Minimum FortiClient Windows version.
        /// </summary>
        public readonly string? ForticlientWinVer;
        /// <summary>
        /// Enable/disable checking for OS recognized AntiVirus software. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? OsAvSoftwareInstalled;
        /// <summary>
        /// FortiSandbox address.
        /// </summary>
        public readonly string? SandboxAddress;
        /// <summary>
        /// Enable/disable sending files to FortiSandbox for analysis. Valid values: `enable`, `disable`.
        /// </summary>
        public readonly string? SandboxAnalysis;

        [OutputConstructor]
        private EndpointcontrolProfileForticlientWinmacSettings(
            string? avRealtimeProtection,

            string? avSignatureUpToDate,

            string? forticlientApplicationFirewall,

            string? forticlientApplicationFirewallList,

            string? forticlientAv,

            string? forticlientEmsCompliance,

            string? forticlientEmsComplianceAction,

            ImmutableArray<Outputs.EndpointcontrolProfileForticlientWinmacSettingsForticlientEmsEntry> forticlientEmsEntries,

            string? forticlientLinuxVer,

            string? forticlientLogUpload,

            string? forticlientLogUploadLevel,

            string? forticlientLogUploadServer,

            string? forticlientMacVer,

            string? forticlientMinimumSoftwareVersion,

            ImmutableArray<Outputs.EndpointcontrolProfileForticlientWinmacSettingsForticlientOperatingSystem> forticlientOperatingSystems,

            ImmutableArray<Outputs.EndpointcontrolProfileForticlientWinmacSettingsForticlientOwnFile> forticlientOwnFiles,

            string? forticlientRegistrationComplianceAction,

            ImmutableArray<Outputs.EndpointcontrolProfileForticlientWinmacSettingsForticlientRegistryEntry> forticlientRegistryEntries,

            ImmutableArray<Outputs.EndpointcontrolProfileForticlientWinmacSettingsForticlientRunningApp> forticlientRunningApps,

            string? forticlientSecurityPosture,

            string? forticlientSecurityPostureComplianceAction,

            string? forticlientSystemCompliance,

            string? forticlientSystemComplianceAction,

            string? forticlientVulnScan,

            string? forticlientVulnScanComplianceAction,

            string? forticlientVulnScanEnforce,

            int? forticlientVulnScanEnforceGrace,

            string? forticlientVulnScanExempt,

            string? forticlientWf,

            string? forticlientWfProfile,

            string? forticlientWinVer,

            string? osAvSoftwareInstalled,

            string? sandboxAddress,

            string? sandboxAnalysis)
        {
            AvRealtimeProtection = avRealtimeProtection;
            AvSignatureUpToDate = avSignatureUpToDate;
            ForticlientApplicationFirewall = forticlientApplicationFirewall;
            ForticlientApplicationFirewallList = forticlientApplicationFirewallList;
            ForticlientAv = forticlientAv;
            ForticlientEmsCompliance = forticlientEmsCompliance;
            ForticlientEmsComplianceAction = forticlientEmsComplianceAction;
            ForticlientEmsEntries = forticlientEmsEntries;
            ForticlientLinuxVer = forticlientLinuxVer;
            ForticlientLogUpload = forticlientLogUpload;
            ForticlientLogUploadLevel = forticlientLogUploadLevel;
            ForticlientLogUploadServer = forticlientLogUploadServer;
            ForticlientMacVer = forticlientMacVer;
            ForticlientMinimumSoftwareVersion = forticlientMinimumSoftwareVersion;
            ForticlientOperatingSystems = forticlientOperatingSystems;
            ForticlientOwnFiles = forticlientOwnFiles;
            ForticlientRegistrationComplianceAction = forticlientRegistrationComplianceAction;
            ForticlientRegistryEntries = forticlientRegistryEntries;
            ForticlientRunningApps = forticlientRunningApps;
            ForticlientSecurityPosture = forticlientSecurityPosture;
            ForticlientSecurityPostureComplianceAction = forticlientSecurityPostureComplianceAction;
            ForticlientSystemCompliance = forticlientSystemCompliance;
            ForticlientSystemComplianceAction = forticlientSystemComplianceAction;
            ForticlientVulnScan = forticlientVulnScan;
            ForticlientVulnScanComplianceAction = forticlientVulnScanComplianceAction;
            ForticlientVulnScanEnforce = forticlientVulnScanEnforce;
            ForticlientVulnScanEnforceGrace = forticlientVulnScanEnforceGrace;
            ForticlientVulnScanExempt = forticlientVulnScanExempt;
            ForticlientWf = forticlientWf;
            ForticlientWfProfile = forticlientWfProfile;
            ForticlientWinVer = forticlientWinVer;
            OsAvSoftwareInstalled = osAvSoftwareInstalled;
            SandboxAddress = sandboxAddress;
            SandboxAnalysis = sandboxAnalysis;
        }
    }
}
