<filename>sdk/dotnet/SystemGlobal.cs// *** 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
{
    /// <summary>
    /// Configure global attributes.
    /// 
    /// ## Example Usage
    /// 
    /// ```csharp
    /// using System.Collections.Generic;
    /// using System.Linq;
    /// using Pulumi;
    /// using Fortios = Pulumiverse.Fortios;
    /// 
    /// return await Deployment.RunAsync(() =&gt; 
    /// {
    ///     var trname = new Fortios.SystemGlobal("trname", new()
    ///     {
    ///         AdminSport = 443,
    ///         Alias = "FGVM02TM20003062",
    ///         Hostname = "ste11",
    ///         Timezone = "04",
    ///     });
    /// 
    /// });
    /// ```
    /// 
    /// ## Import
    /// 
    /// System Global can be imported using any of these accepted formats
    /// 
    /// ```sh
    ///  $ pulumi import fortios:index/systemGlobal:SystemGlobal labelname SystemGlobal
    /// ```
    /// 
    ///  If you do not want to import arguments of block$ export "FORTIOS_IMPORT_TABLE"="false"
    /// 
    /// ```sh
    ///  $ pulumi import fortios:index/systemGlobal:SystemGlobal labelname SystemGlobal
    /// ```
    /// 
    ///  $ unset "FORTIOS_IMPORT_TABLE"
    /// </summary>
    [FortiosResourceType("fortios:index/systemGlobal:SystemGlobal")]
    public partial class SystemGlobal : global::Pulumi.CustomResource
    {
        /// <summary>
        /// Enable/disable concurrent administrator logins. (Use policy-auth-concurrent for firewall authenticated users.) Valid values: `enable`, `disable`.
        /// </summary>
        [Output("adminConcurrent")]
        public Output<string> AdminConcurrent { get; private set; } = null!;

        /// <summary>
        /// Console login timeout that overrides the admintimeout value. (15 - 300 seconds) (15 seconds to 5 minutes). 0 the default, disables this timeout.
        /// </summary>
        [Output("adminConsoleTimeout")]
        public Output<int> AdminConsoleTimeout { get; private set; } = null!;

        /// <summary>
        /// Enable/disable FortiCloud admin login via SSO. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("adminForticloudSsoLogin")]
        public Output<string> AdminForticloudSsoLogin { get; private set; } = null!;

        /// <summary>
        /// Administrative host for HTTP and HTTPS. When set, will be used in lieu of the client's Host header for any redirection.
        /// </summary>
        [Output("adminHost")]
        public Output<string> AdminHost { get; private set; } = null!;

        /// <summary>
        /// HTTPS Strict-Transport-Security header max-age in seconds. A value of 0 will reset any HSTS records in the browser.When admin-https-redirect is disabled the header max-age will be 0.
        /// </summary>
        [Output("adminHstsMaxAge")]
        public Output<int> AdminHstsMaxAge { get; private set; } = null!;

        /// <summary>
        /// Enable/disable admin login method. Enable to force administrators to provide a valid certificate to log in if PKI is enabled. Disable to allow administrators to log in with a certificate or password. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("adminHttpsPkiRequired")]
        public Output<string> AdminHttpsPkiRequired { get; private set; } = null!;

        /// <summary>
        /// Enable/disable redirection of HTTP administration access to HTTPS. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("adminHttpsRedirect")]
        public Output<string> AdminHttpsRedirect { get; private set; } = null!;

        /// <summary>
        /// Select one or more cipher technologies that cannot be used in GUI HTTPS negotiations. Only applies to TLS 1.2 and below. Valid values: `RSA`, `DHE`, `ECDHE`, `DSS`, `ECDSA`, `AES`, `AESGCM`, `CAMELLIA`, `3DES`, `SHA1`, `SHA256`, `SHA384`, `STATIC`, `CHACHA20`, `ARIA`, `AESCCM`.
        /// </summary>
        [Output("adminHttpsSslBannedCiphers")]
        public Output<string> AdminHttpsSslBannedCiphers { get; private set; } = null!;

        /// <summary>
        /// Select one or more TLS 1.3 ciphersuites to enable. Does not affect ciphers in TLS 1.2 and below. At least one must be enabled. To disable all, remove TLS1.3 from admin-https-ssl-versions. Valid values: `TLS-AES-128-GCM-SHA256`, `TLS-AES-256-GCM-SHA384`, `TLS-CHACHA20-POLY1305-SHA256`, `TLS-AES-128-CCM-SHA256`, `TLS-AES-128-CCM-8-SHA256`.
        /// </summary>
        [Output("adminHttpsSslCiphersuites")]
        public Output<string> AdminHttpsSslCiphersuites { get; private set; } = null!;

        /// <summary>
        /// Allowed TLS versions for web administration.
        /// </summary>
        [Output("adminHttpsSslVersions")]
        public Output<string> AdminHttpsSslVersions { get; private set; } = null!;

        /// <summary>
        /// Amount of time in seconds that an administrator account is locked out after reaching the admin-lockout-threshold for repeated failed login attempts.
        /// </summary>
        [Output("adminLockoutDuration")]
        public Output<int> AdminLockoutDuration { get; private set; } = null!;

        /// <summary>
        /// Number of failed login attempts before an administrator account is locked out for the admin-lockout-duration.
        /// </summary>
        [Output("adminLockoutThreshold")]
        public Output<int> AdminLockoutThreshold { get; private set; } = null!;

        /// <summary>
        /// Maximum number of administrators who can be logged in at the same time (1 - 100, default = 100)
        /// </summary>
        [Output("adminLoginMax")]
        public Output<int> AdminLoginMax { get; private set; } = null!;

        /// <summary>
        /// Enable/disable maintainer administrator login. When enabled, the maintainer account can be used to log in from the console after a hard reboot. The password is "bcpb" followed by the FortiGate unit serial number. You have limited time to complete this login. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("adminMaintainer")]
        public Output<string> AdminMaintainer { get; private set; } = null!;

        /// <summary>
        /// Administrative access port for HTTP. (1 - 65535, default = 80).
        /// </summary>
        [Output("adminPort")]
        public Output<int> AdminPort { get; private set; } = null!;

        /// <summary>
        /// Enable/disable local admin authentication restriction when remote authenticator is up and running. (default = disable) Valid values: `enable`, `disable`.
        /// </summary>
        [Output("adminRestrictLocal")]
        public Output<string> AdminRestrictLocal { get; private set; } = null!;

        /// <summary>
        /// Enable/disable using SCP to download the system configuration. You can use SCP as an alternative method for backing up the configuration. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("adminScp")]
        public Output<string> AdminScp { get; private set; } = null!;

        /// <summary>
        /// Server certificate that the FortiGate uses for HTTPS administrative connections.
        /// </summary>
        [Output("adminServerCert")]
        public Output<string> AdminServerCert { get; private set; } = null!;

        /// <summary>
        /// Administrative access port for HTTPS. (1 - 65535, default = 443).
        /// </summary>
        [Output("adminSport")]
        public Output<int> AdminSport { get; private set; } = null!;

        /// <summary>
        /// Maximum time in seconds permitted between making an SSH connection to the FortiGate unit and authenticating (10 - 3600 sec (1 hour), default 120).
        /// </summary>
        [Output("adminSshGraceTime")]
        public Output<int> AdminSshGraceTime { get; private set; } = null!;

        /// <summary>
        /// Enable/disable password authentication for SSH admin access. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("adminSshPassword")]
        public Output<string> AdminSshPassword { get; private set; } = null!;

        /// <summary>
        /// Administrative access port for SSH. (1 - 65535, default = 22).
        /// </summary>
        [Output("adminSshPort")]
        public Output<int> AdminSshPort { get; private set; } = null!;

        /// <summary>
        /// Enable/disable SSH v1 compatibility. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("adminSshV1")]
        public Output<string> AdminSshV1 { get; private set; } = null!;

        /// <summary>
        /// Enable/disable TELNET service. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("adminTelnet")]
        public Output<string> AdminTelnet { get; private set; } = null!;

        /// <summary>
        /// Administrative access port for TELNET. (1 - 65535, default = 23).
        /// </summary>
        [Output("adminTelnetPort")]
        public Output<int> AdminTelnetPort { get; private set; } = null!;

        /// <summary>
        /// Number of minutes before an idle administrator session times out (5 - 480 minutes (8 hours), default = 5). A shorter idle timeout is more secure.
        /// </summary>
        [Output("admintimeout")]
        public Output<int> Admintimeout { get; private set; } = null!;

        /// <summary>
        /// Alias for your FortiGate unit.
        /// </summary>
        [Output("alias")]
        public Output<string> Alias { get; private set; } = null!;

        /// <summary>
        /// Disable to allow traffic to be routed back on a different interface. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("allowTrafficRedirect")]
        public Output<string> AllowTrafficRedirect { get; private set; } = null!;

        /// <summary>
        /// Level of checking for packet replay and TCP sequence checking. Valid values: `disable`, `loose`, `strict`.
        /// </summary>
        [Output("antiReplay")]
        public Output<string> AntiReplay { get; private set; } = null!;

        /// <summary>
        /// Maximum number of dynamically learned MAC addresses that can be added to the ARP table (131072 - 2147483647, default = 131072).
        /// </summary>
        [Output("arpMaxEntry")]
        public Output<int> ArpMaxEntry { get; private set; } = null!;

        /// <summary>
        /// Enable/disable asymmetric route. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("asymroute")]
        public Output<string> Asymroute { get; private set; } = null!;

        /// <summary>
        /// Server certificate that the FortiGate uses for HTTPS firewall authentication connections.
        /// </summary>
        [Output("authCert")]
        public Output<string> AuthCert { get; private set; } = null!;

        /// <summary>
        /// User authentication HTTP port. (1 - 65535, default = 80).
        /// </summary>
        [Output("authHttpPort")]
        public Output<int> AuthHttpPort { get; private set; } = null!;

        /// <summary>
        /// User authentication HTTPS port. (1 - 65535, default = 443).
        /// </summary>
        [Output("authHttpsPort")]
        public Output<int> AuthHttpsPort { get; private set; } = null!;

        /// <summary>
        /// User IKE SAML authentication port (0 - 65535, default = 1001).
        /// </summary>
        [Output("authIkeSamlPort")]
        public Output<int> AuthIkeSamlPort { get; private set; } = null!;

        /// <summary>
        /// Enable to prevent user authentication sessions from timing out when idle. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("authKeepalive")]
        public Output<string> AuthKeepalive { get; private set; } = null!;

        /// <summary>
        /// Action to take when the number of allowed user authenticated sessions is reached. Valid values: `block-new`, `logout-inactive`.
        /// </summary>
        [Output("authSessionLimit")]
        public Output<string> AuthSessionLimit { get; private set; } = null!;

        /// <summary>
        /// Enable/disable automatic authorization of dedicated Fortinet extension devices. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("autoAuthExtensionDevice")]
        public Output<string> AutoAuthExtensionDevice { get; private set; } = null!;

        /// <summary>
        /// Enable/disable automatic log partition check after ungraceful shutdown. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("autorunLogFsck")]
        public Output<string> AutorunLogFsck { get; private set; } = null!;

        /// <summary>
        /// Affinity setting for AV scanning (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Output("avAffinity")]
        public Output<string> AvAffinity { get; private set; } = null!;

        /// <summary>
        /// Set the action to take if the FortiGate is running low on memory or the proxy connection limit has been reached. Valid values: `pass`, `off`, `one-shot`.
        /// </summary>
        [Output("avFailopen")]
        public Output<string> AvFailopen { get; private set; } = null!;

        /// <summary>
        /// When enabled and a proxy for a protocol runs out of room in its session table, that protocol goes into failopen mode and enacts the action specified by av-failopen. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("avFailopenSession")]
        public Output<string> AvFailopenSession { get; private set; } = null!;

        /// <summary>
        /// Enable/disable batch mode, allowing you to enter a series of CLI commands that will execute as a group once they are loaded. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("batchCmdb")]
        public Output<string> BatchCmdb { get; private set; } = null!;

        /// <summary>
        /// Duration in seconds for blocked sessions (1 - 300 sec  (5 minutes), default = 30).
        /// </summary>
        [Output("blockSessionTimer")]
        public Output<int> BlockSessionTimer { get; private set; } = null!;

        /// <summary>
        /// Maximum number of bridge forwarding database (FDB) entries.
        /// </summary>
        [Output("brFdbMaxEntry")]
        public Output<int> BrFdbMaxEntry { get; private set; } = null!;

        /// <summary>
        /// Maximum number of certificates that can be traversed in a certificate chain.
        /// </summary>
        [Output("certChainMax")]
        public Output<int> CertChainMax { get; private set; } = null!;

        /// <summary>
        /// Time-out for reverting to the last saved configuration.
        /// </summary>
        [Output("cfgRevertTimeout")]
        public Output<int> CfgRevertTimeout { get; private set; } = null!;

        /// <summary>
        /// Configuration file save mode for CLI changes. Valid values: `automatic`, `manual`, `revert`.
        /// </summary>
        [Output("cfgSave")]
        public Output<string> CfgSave { get; private set; } = null!;

        /// <summary>
        /// Level of checking performed on protocol headers. Strict checking is more thorough but may affect performance. Loose checking is ok in most cases. Valid values: `loose`, `strict`.
        /// </summary>
        [Output("checkProtocolHeader")]
        public Output<string> CheckProtocolHeader { get; private set; } = null!;

        /// <summary>
        /// Configure ICMP error message verification. You can either apply strict RST range checking or disable it. Valid values: `strict`, `disable`.
        /// </summary>
        [Output("checkResetRange")]
        public Output<string> CheckResetRange { get; private set; } = null!;

        /// <summary>
        /// Enable/disable CLI audit log. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("cliAuditLog")]
        public Output<string> CliAuditLog { get; private set; } = null!;

        /// <summary>
        /// Enable/disable all cloud communication. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("cloudCommunication")]
        public Output<string> CloudCommunication { get; private set; } = null!;

        /// <summary>
        /// Enable/disable requiring administrators to have a client certificate to log into the GUI using HTTPS. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("cltCertReq")]
        public Output<string> CltCertReq { get; private set; } = null!;

        /// <summary>
        /// Affinity setting for cmdbsvr (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Output("cmdbsvrAffinity")]
        public Output<string> CmdbsvrAffinity { get; private set; } = null!;

        /// <summary>
        /// Enable/disable global PCI DSS compliance check. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("complianceCheck")]
        public Output<string> ComplianceCheck { get; private set; } = null!;

        /// <summary>
        /// Time of day to run scheduled PCI DSS compliance checks.
        /// </summary>
        [Output("complianceCheckTime")]
        public Output<string> ComplianceCheckTime { get; private set; } = null!;

        /// <summary>
        /// Threshold at which CPU usage is reported. (% of total CPU, default = 90).
        /// </summary>
        [Output("cpuUseThreshold")]
        public Output<int> CpuUseThreshold { get; private set; } = null!;

        /// <summary>
        /// Enable/disable the CA attribute in certificates. Some CA servers reject CSRs that have the CA attribute. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("csrCaAttribute")]
        public Output<string> CsrCaAttribute { get; private set; } = null!;

        /// <summary>
        /// Enable/disable daily restart of FortiGate unit. Use the restart-time option to set the time of day for the restart. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("dailyRestart")]
        public Output<string> DailyRestart { get; private set; } = null!;

        /// <summary>
        /// Default service source port range. (default=1-65535)
        /// </summary>
        [Output("defaultServiceSourcePort")]
        public Output<string> DefaultServiceSourcePort { get; private set; } = null!;

        /// <summary>
        /// Number of seconds to passively scan a device before performing an active scan. (20 - 3600 sec, (20 sec to 1 hour), default = 90).
        /// </summary>
        [Output("deviceIdentificationActiveScanDelay")]
        public Output<int> DeviceIdentificationActiveScanDelay { get; private set; } = null!;

        /// <summary>
        /// Time in seconds that a device must be idle to automatically log the device user out. (30 - 31536000 sec (30 sec to 1 year), default = 300).
        /// </summary>
        [Output("deviceIdleTimeout")]
        public Output<int> DeviceIdleTimeout { get; private set; } = null!;

        /// <summary>
        /// Number of bits to use in the Diffie-Hellman exchange for HTTPS/SSH protocols. Valid values: `1024`, `1536`, `2048`, `3072`, `4096`, `6144`, `8192`.
        /// </summary>
        [Output("dhParams")]
        public Output<string> DhParams { get; private set; } = null!;

        /// <summary>
        /// DNS proxy worker count.
        /// </summary>
        [Output("dnsproxyWorkerCount")]
        public Output<int> DnsproxyWorkerCount { get; private set; } = null!;

        /// <summary>
        /// Enable/disable daylight saving time. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("dst")]
        public Output<string> Dst { get; private set; } = null!;

        /// <summary>
        /// Enable/disable early TCP NPU session. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("earlyTcpNpuSession")]
        public Output<string> EarlyTcpNpuSession { get; private set; } = null!;

        /// <summary>
        /// Enable/disable edit new VDOM prompt. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("editVdomPrompt")]
        public Output<string> EditVdomPrompt { get; private set; } = null!;

        /// <summary>
        /// Enable/disable access to the FortiGuard network for non-compliant endpoints. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("endpointControlFdsAccess")]
        public Output<string> EndpointControlFdsAccess { get; private set; } = null!;

        /// <summary>
        /// Endpoint control portal port (1 - 65535).
        /// </summary>
        [Output("endpointControlPortalPort")]
        public Output<int> EndpointControlPortalPort { get; private set; } = null!;

        /// <summary>
        /// Configure reserved network subnet for managed LAN extension FortiExtenders. This is available when the extender daemon is running.
        /// </summary>
        [Output("extenderControllerReservedNetwork")]
        public Output<string> ExtenderControllerReservedNetwork { get; private set; } = null!;

        /// <summary>
        /// Fail-time for server lost.
        /// </summary>
        [Output("failtime")]
        public Output<int> Failtime { get; private set; } = null!;

        /// <summary>
        /// Maximum disk buffer size to temporarily store logs destined for FortiAnalyzer. To be used in the event that FortiAnalyzer is unavailalble.
        /// </summary>
        [Output("fazDiskBufferSize")]
        public Output<int> FazDiskBufferSize { get; private set; } = null!;

        /// <summary>
        /// Enable/disable sending IPS, Application Control, and AntiVirus data to FortiGuard. This data is used to improve FortiGuard services and is not shared with external parties and is protected by Fortinet's privacy policy. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("fdsStatistics")]
        public Output<string> FdsStatistics { get; private set; } = null!;

        /// <summary>
        /// FortiGuard statistics collection period in minutes. (1 - 1440 min (1 min to 24 hours), default = 60).
        /// </summary>
        [Output("fdsStatisticsPeriod")]
        public Output<int> FdsStatisticsPeriod { get; private set; } = null!;

        /// <summary>
        /// Local UDP port for Forward Error Correction (49152 - 65535).
        /// </summary>
        [Output("fecPort")]
        public Output<int> FecPort { get; private set; } = null!;

        /// <summary>
        /// Type of alert to retrieve from FortiGuard. Valid values: `advisory`, `latest-threat`, `latest-virus`, `latest-attack`, `new-antivirus-db`, `new-attack-db`.
        /// </summary>
        [Output("fgdAlertSubscription")]
        public Output<string> FgdAlertSubscription { get; private set; } = null!;

        /// <summary>
        /// Enable/disable FortiExtender. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("fortiextender")]
        public Output<string> Fortiextender { get; private set; } = null!;

        /// <summary>
        /// FortiExtender data port (1024 - 49150, default = 25246).
        /// </summary>
        [Output("fortiextenderDataPort")]
        public Output<int> FortiextenderDataPort { get; private set; } = null!;

        /// <summary>
        /// Enable/disable FortiExtender CAPWAP lockdown. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("fortiextenderDiscoveryLockdown")]
        public Output<string> FortiextenderDiscoveryLockdown { get; private set; } = null!;

        /// <summary>
        /// Enable/disable automatic provisioning of latest FortiExtender firmware on authorization. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("fortiextenderProvisionOnAuthorization")]
        public Output<string> FortiextenderProvisionOnAuthorization { get; private set; } = null!;

        /// <summary>
        /// Enable/disable FortiExtender VLAN mode. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("fortiextenderVlanMode")]
        public Output<string> FortiextenderVlanMode { get; private set; } = null!;

        /// <summary>
        /// Enable/disable integration with the FortiIPAM cloud service. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("fortiipamIntegration")]
        public Output<string> FortiipamIntegration { get; private set; } = null!;

        /// <summary>
        /// FortiService port (1 - 65535, default = 8013). Used by FortiClient endpoint compliance. Older versions of FortiClient used a different port.
        /// </summary>
        [Output("fortiservicePort")]
        public Output<int> FortiservicePort { get; private set; } = null!;

        /// <summary>
        /// Enable/disable FortiToken Cloud service. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("fortitokenCloud")]
        public Output<string> FortitokenCloud { get; private set; } = null!;

        /// <summary>
        /// Enable/disable the GUI warning about using a default hostname Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiAllowDefaultHostname")]
        public Output<string> GuiAllowDefaultHostname { get; private set; } = null!;

        /// <summary>
        /// Enable/disable Allow app-detection based SD-WAN. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiAppDetectionSdwan")]
        public Output<string> GuiAppDetectionSdwan { get; private set; } = null!;

        /// <summary>
        /// Enable/disable Load GUI static files from a CDN. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiCdnUsage")]
        public Output<string> GuiCdnUsage { get; private set; } = null!;

        /// <summary>
        /// Enable/disable the System &gt; Certificate GUI page, allowing you to add and configure certificates from the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiCertificates")]
        public Output<string> GuiCertificates { get; private set; } = null!;

        /// <summary>
        /// Enable/disable custom languages in GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiCustomLanguage")]
        public Output<string> GuiCustomLanguage { get; private set; } = null!;

        /// <summary>
        /// Default date format used throughout GUI. Valid values: `yyyy/MM/dd`, `dd/MM/yyyy`, `MM/dd/yyyy`, `yyyy-MM-dd`, `dd-MM-yyyy`, `MM-dd-yyyy`.
        /// </summary>
        [Output("guiDateFormat")]
        public Output<string> GuiDateFormat { get; private set; } = null!;

        /// <summary>
        /// Source from which the FortiGate GUI uses to display date and time entries. Valid values: `system`, `browser`.
        /// </summary>
        [Output("guiDateTimeSource")]
        public Output<string> GuiDateTimeSource { get; private set; } = null!;

        /// <summary>
        /// Add the latitude of the location of this FortiGate to position it on the Threat Map.
        /// </summary>
        [Output("guiDeviceLatitude")]
        public Output<string> GuiDeviceLatitude { get; private set; } = null!;

        /// <summary>
        /// Add the longitude of the location of this FortiGate to position it on the Threat Map.
        /// </summary>
        [Output("guiDeviceLongitude")]
        public Output<string> GuiDeviceLongitude { get; private set; } = null!;

        /// <summary>
        /// Enable/disable displaying the FortiGate's hostname on the GUI login page. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiDisplayHostname")]
        public Output<string> GuiDisplayHostname { get; private set; } = null!;

        /// <summary>
        /// Enable/disable the firmware upgrade warning on GUI setup wizard. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiFirmwareUpgradeSetupWarning")]
        public Output<string> GuiFirmwareUpgradeSetupWarning { get; private set; } = null!;

        /// <summary>
        /// Enable/disable the firmware upgrade warning on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiFirmwareUpgradeWarning")]
        public Output<string> GuiFirmwareUpgradeWarning { get; private set; } = null!;

        /// <summary>
        /// Enable/disable the FortiCare registration setup warning on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiForticareRegistrationSetupWarning")]
        public Output<string> GuiForticareRegistrationSetupWarning { get; private set; } = null!;

        /// <summary>
        /// Enable/disable displaying FortiGate Cloud Sandbox on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiFortigateCloudSandbox")]
        public Output<string> GuiFortigateCloudSandbox { get; private set; } = null!;

        /// <summary>
        /// Enable/disable retrieving static GUI resources from FortiGuard. Disabling it will improve GUI load time for air-gapped environments. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiFortiguardResourceFetch")]
        public Output<string> GuiFortiguardResourceFetch { get; private set; } = null!;

        /// <summary>
        /// Enable/disable displaying FortiSandbox Cloud on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiFortisandboxCloud")]
        public Output<string> GuiFortisandboxCloud { get; private set; } = null!;

        /// <summary>
        /// Enable/disable IPv6 settings on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiIpv6")]
        public Output<string> GuiIpv6 { get; private set; } = null!;

        /// <summary>
        /// Number of lines to display per page for web administration.
        /// </summary>
        [Output("guiLinesPerPage")]
        public Output<int> GuiLinesPerPage { get; private set; } = null!;

        /// <summary>
        /// Enable/disable Local-out traffic on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiLocalOut")]
        public Output<string> GuiLocalOut { get; private set; } = null!;

        /// <summary>
        /// Enable/disable replacement message groups on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiReplacementMessageGroups")]
        public Output<string> GuiReplacementMessageGroups { get; private set; } = null!;

        /// <summary>
        /// Enable/disable REST API result caching on FortiGate. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiRestApiCache")]
        public Output<string> GuiRestApiCache { get; private set; } = null!;

        /// <summary>
        /// Color scheme for the administration GUI.
        /// </summary>
        [Output("guiTheme")]
        public Output<string> GuiTheme { get; private set; } = null!;

        /// <summary>
        /// Enable/disable wireless open security option on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiWirelessOpensecurity")]
        public Output<string> GuiWirelessOpensecurity { get; private set; } = null!;

        /// <summary>
        /// Enable/disable Workflow management features on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("guiWorkflowManagement")]
        public Output<string> GuiWorkflowManagement { get; private set; } = null!;

        /// <summary>
        /// Affinity setting for HA daemons (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Output("haAffinity")]
        public Output<string> HaAffinity { get; private set; } = null!;

        /// <summary>
        /// Enable/disable honoring of Don't-Fragment (DF) flag. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("honorDf")]
        public Output<string> HonorDf { get; private set; } = null!;

        /// <summary>
        /// FortiGate unit's hostname. Most models will truncate names longer than 24 characters. Some models support hostnames up to 35 characters.
        /// </summary>
        [Output("hostname")]
        public Output<string> Hostname { get; private set; } = null!;

        /// <summary>
        /// Maximum number of IGMP memberships (96 - 64000, default = 3200).
        /// </summary>
        [Output("igmpStateLimit")]
        public Output<int> IgmpStateLimit { get; private set; } = null!;

        /// <summary>
        /// Maximum number of IPsec tunnels to negotiate simultaneously.
        /// </summary>
        [Output("ikeEmbryonicLimit")]
        public Output<int> IkeEmbryonicLimit { get; private set; } = null!;

        /// <summary>
        /// Configure which Internet Service database size to download from FortiGuard and use. Valid values: `mini`, `standard`, `full`.
        /// </summary>
        [Output("internetServiceDatabase")]
        public Output<string> InternetServiceDatabase { get; private set; } = null!;

        /// <summary>
        /// Dead gateway detection interval.
        /// </summary>
        [Output("interval")]
        public Output<int> Interval { get; private set; } = null!;

        /// <summary>
        /// IP source port range used for traffic originating from the FortiGate unit.
        /// </summary>
        [Output("ipSrcPortRange")]
        public Output<string> IpSrcPortRange { get; private set; } = null!;

        /// <summary>
        /// Affinity setting for IPS (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx; allowed CPUs must be less than total number of IPS engine daemons).
        /// </summary>
        [Output("ipsAffinity")]
        public Output<string> IpsAffinity { get; private set; } = null!;

        /// <summary>
        /// Enable/disable ASIC offloading (hardware acceleration) for IPsec VPN traffic. Hardware acceleration can offload IPsec VPN sessions and accelerate encryption and decryption. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("ipsecAsicOffload")]
        public Output<string> IpsecAsicOffload { get; private set; } = null!;

        /// <summary>
        /// ESP jump ahead rate (1G - 10G pps equivalent).
        /// </summary>
        [Output("ipsecHaSeqjumpRate")]
        public Output<int> IpsecHaSeqjumpRate { get; private set; } = null!;

        /// <summary>
        /// Enable/disable offloading (hardware acceleration) of HMAC processing for IPsec VPN. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("ipsecHmacOffload")]
        public Output<string> IpsecHmacOffload { get; private set; } = null!;

        /// <summary>
        /// Enable/disable round-robin redistribution to multiple CPUs for IPsec VPN traffic. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("ipsecRoundRobin")]
        public Output<string> IpsecRoundRobin { get; private set; } = null!;

        /// <summary>
        /// Enable/disable software decryption asynchronization (using multiple CPUs to do decryption) for IPsec VPN traffic. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("ipsecSoftDecAsync")]
        public Output<string> IpsecSoftDecAsync { get; private set; } = null!;

        /// <summary>
        /// Enable/disable acceptance of IPv6 Duplicate Address Detection (DAD).
        /// </summary>
        [Output("ipv6AcceptDad")]
        public Output<int> Ipv6AcceptDad { get; private set; } = null!;

        /// <summary>
        /// Enable/disable IPv6 address probe through Anycast. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("ipv6AllowAnycastProbe")]
        public Output<string> Ipv6AllowAnycastProbe { get; private set; } = null!;

        /// <summary>
        /// Enable/disable silent drop of IPv6 local-in traffic. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("ipv6AllowLocalInSlientDrop")]
        public Output<string> Ipv6AllowLocalInSlientDrop { get; private set; } = null!;

        /// <summary>
        /// Enable/disable IPv6 address probe through Multicast. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("ipv6AllowMulticastProbe")]
        public Output<string> Ipv6AllowMulticastProbe { get; private set; } = null!;

        /// <summary>
        /// Disable to prevent IPv6 traffic with same local ingress and egress interface from being forwarded without policy check. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("ipv6AllowTrafficRedirect")]
        public Output<string> Ipv6AllowTrafficRedirect { get; private set; } = null!;

        /// <summary>
        /// Configure CPU IRQ time accounting mode. Valid values: `auto`, `force`.
        /// </summary>
        [Output("irqTimeAccounting")]
        public Output<string> IrqTimeAccounting { get; private set; } = null!;

        /// <summary>
        /// GUI display language. Valid values: `english`, `french`, `spanish`, `portuguese`, `japanese`, `trach`, `simch`, `korean`.
        /// </summary>
        [Output("language")]
        public Output<string> Language { get; private set; } = null!;

        /// <summary>
        /// Global timeout for connections with remote LDAP servers in milliseconds (1 - 300000, default 500).
        /// </summary>
        [Output("ldapconntimeout")]
        public Output<int> Ldapconntimeout { get; private set; } = null!;

        /// <summary>
        /// Enable/disable Link Layer Discovery Protocol (LLDP) reception. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("lldpReception")]
        public Output<string> LldpReception { get; private set; } = null!;

        /// <summary>
        /// Enable/disable Link Layer Discovery Protocol (LLDP) transmission. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("lldpTransmission")]
        public Output<string> LldpTransmission { get; private set; } = null!;

        /// <summary>
        /// Enable/disable logging of SSL connection events. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("logSslConnection")]
        public Output<string> LogSslConnection { get; private set; } = null!;

        /// <summary>
        /// Enable/disable insertion of address UUIDs to traffic logs. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("logUuidAddress")]
        public Output<string> LogUuidAddress { get; private set; } = null!;

        /// <summary>
        /// Enable/disable insertion of policy UUIDs to traffic logs. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("logUuidPolicy")]
        public Output<string> LogUuidPolicy { get; private set; } = null!;

        /// <summary>
        /// Enable/disable login time recording. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("loginTimestamp")]
        public Output<string> LoginTimestamp { get; private set; } = null!;

        /// <summary>
        /// Enable/disable long VDOM name support. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("longVdomName")]
        public Output<string> LongVdomName { get; private set; } = null!;

        /// <summary>
        /// Management IP address of this FortiGate. Used to log into this FortiGate from another FortiGate in the Security Fabric.
        /// </summary>
        [Output("managementIp")]
        public Output<string> ManagementIp { get; private set; } = null!;

        /// <summary>
        /// Overriding port for management connection (Overrides admin port).
        /// </summary>
        [Output("managementPort")]
        public Output<int> ManagementPort { get; private set; } = null!;

        /// <summary>
        /// Enable/disable use of the admin-sport setting for the management port. If disabled, FortiGate will allow user to specify management-port. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("managementPortUseAdminSport")]
        public Output<string> ManagementPortUseAdminSport { get; private set; } = null!;

        /// <summary>
        /// Management virtual domain name.
        /// </summary>
        [Output("managementVdom")]
        public Output<string> ManagementVdom { get; private set; } = null!;

        /// <summary>
        /// Maximum DLP stat memory (0 - 4294967295).
        /// </summary>
        [Output("maxDlpstatMemory")]
        public Output<int> MaxDlpstatMemory { get; private set; } = null!;

        /// <summary>
        /// Maximum number of IP route cache entries (0 - 2147483647).
        /// </summary>
        [Output("maxRouteCacheSize")]
        public Output<int> MaxRouteCacheSize { get; private set; } = null!;

        /// <summary>
        /// Enable/disable no modification of multicast TTL. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("mcTtlNotchange")]
        public Output<string> McTtlNotchange { get; private set; } = null!;

        /// <summary>
        /// Threshold at which memory usage is considered extreme (new sessions are dropped) (% of total RAM, default = 95).
        /// </summary>
        [Output("memoryUseThresholdExtreme")]
        public Output<int> MemoryUseThresholdExtreme { get; private set; } = null!;

        /// <summary>
        /// Threshold at which memory usage forces the FortiGate to exit conserve mode (% of total RAM, default = 82).
        /// </summary>
        [Output("memoryUseThresholdGreen")]
        public Output<int> MemoryUseThresholdGreen { get; private set; } = null!;

        /// <summary>
        /// Threshold at which memory usage forces the FortiGate to enter conserve mode (% of total RAM, default = 88).
        /// </summary>
        [Output("memoryUseThresholdRed")]
        public Output<int> MemoryUseThresholdRed { get; private set; } = null!;

        /// <summary>
        /// Affinity setting for logging (64-bit hexadecimal value in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Output("miglogAffinity")]
        public Output<string> MiglogAffinity { get; private set; } = null!;

        /// <summary>
        /// Number of logging (miglogd) processes to be allowed to run. Higher number can reduce performance; lower number can slow log processing time. No logs will be dropped or lost if the number is changed.
        /// </summary>
        [Output("miglogdChildren")]
        public Output<int> MiglogdChildren { get; private set; } = null!;

        /// <summary>
        /// Enforce all login methods to require an additional authentication factor (default = optional). Valid values: `optional`, `mandatory`.
        /// </summary>
        [Output("multiFactorAuthentication")]
        public Output<string> MultiFactorAuthentication { get; private set; } = null!;

        /// <summary>
        /// Enable/disable multicast forwarding. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("multicastForward")]
        public Output<string> MulticastForward { get; private set; } = null!;

        /// <summary>
        /// Maximum number of NDP table entries (set to 65,536 or higher; if set to 0, kernel holds 65,536 entries).
        /// </summary>
        [Output("ndpMaxEntry")]
        public Output<int> NdpMaxEntry { get; private set; } = null!;

        /// <summary>
        /// Enable/disable per-user block/allow list filter. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("perUserBal")]
        public Output<string> PerUserBal { get; private set; } = null!;

        /// <summary>
        /// Enable/disable per-user black/white list filter. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("perUserBwl")]
        public Output<string> PerUserBwl { get; private set; } = null!;

        /// <summary>
        /// Enable/disable path MTU discovery. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("pmtuDiscovery")]
        public Output<string> PmtuDiscovery { get; private set; } = null!;

        /// <summary>
        /// Number of concurrent firewall use logins from the same user (1 - 100, default = 0 means no limit).
        /// </summary>
        [Output("policyAuthConcurrent")]
        public Output<int> PolicyAuthConcurrent { get; private set; } = null!;

        /// <summary>
        /// Enable/disable displaying the administrator access disclaimer message after an administrator successfully logs in. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("postLoginBanner")]
        public Output<string> PostLoginBanner { get; private set; } = null!;

        /// <summary>
        /// Enable/disable displaying the administrator access disclaimer message on the login page before an administrator logs in. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("preLoginBanner")]
        public Output<string> PreLoginBanner { get; private set; } = null!;

        /// <summary>
        /// Enable/disable private data encryption using an AES 128-bit key. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("privateDataEncryption")]
        public Output<string> PrivateDataEncryption { get; private set; } = null!;

        /// <summary>
        /// Enable/disable authenticated users lifetime control.  This is a cap on the total time a proxy user can be authenticated for after which re-authentication will take place. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("proxyAuthLifetime")]
        public Output<string> ProxyAuthLifetime { get; private set; } = null!;

        /// <summary>
        /// Lifetime timeout in minutes for authenticated users (5  - 65535 min, default=480 (8 hours)).
        /// </summary>
        [Output("proxyAuthLifetimeTimeout")]
        public Output<int> ProxyAuthLifetimeTimeout { get; private set; } = null!;

        /// <summary>
        /// Authentication timeout in minutes for authenticated users (1 - 300 min, default = 10).
        /// </summary>
        [Output("proxyAuthTimeout")]
        public Output<int> ProxyAuthTimeout { get; private set; } = null!;

        /// <summary>
        /// Enable/disable using management VDOM to send requests. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("proxyCertUseMgmtVdom")]
        public Output<string> ProxyCertUseMgmtVdom { get; private set; } = null!;

        /// <summary>
        /// Enable/disable using content processor (CP8 or CP9) hardware acceleration to encrypt and decrypt IPsec and SSL traffic. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("proxyCipherHardwareAcceleration")]
        public Output<string> ProxyCipherHardwareAcceleration { get; private set; } = null!;

        /// <summary>
        /// Enable/disable email proxy hardware acceleration. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("proxyHardwareAcceleration")]
        public Output<string> ProxyHardwareAcceleration { get; private set; } = null!;

        /// <summary>
        /// Enable/disable using the content processor to accelerate KXP traffic. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("proxyKxpHardwareAcceleration")]
        public Output<string> ProxyKxpHardwareAcceleration { get; private set; } = null!;

        /// <summary>
        /// Control if users must re-authenticate after a session is closed, traffic has been idle, or from the point at which the user was first created. Valid values: `session`, `traffic`, `absolute`.
        /// </summary>
        [Output("proxyReAuthenticationMode")]
        public Output<string> ProxyReAuthenticationMode { get; private set; } = null!;

        /// <summary>
        /// Enable/disable use of the maximum memory usage on the FortiGate unit's proxy processing of resources, such as block lists, allow lists, and external resources. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("proxyResourceMode")]
        public Output<string> ProxyResourceMode { get; private set; } = null!;

        /// <summary>
        /// Proxy worker count.
        /// </summary>
        [Output("proxyWorkerCount")]
        public Output<int> ProxyWorkerCount { get; private set; } = null!;

        /// <summary>
        /// RADIUS service port number.
        /// </summary>
        [Output("radiusPort")]
        public Output<int> RadiusPort { get; private set; } = null!;

        /// <summary>
        /// Enable/disable reboot of system upon restoring configuration. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("rebootUponConfigRestore")]
        public Output<string> RebootUponConfigRestore { get; private set; } = null!;

        /// <summary>
        /// Statistics refresh interval in GUI.
        /// </summary>
        [Output("refresh")]
        public Output<int> Refresh { get; private set; } = null!;

        /// <summary>
        /// Number of seconds that the FortiGate waits for responses from remote RADIUS, LDAP, or TACACS+ authentication servers. (0-300 sec, default = 5, 0 means no timeout).
        /// </summary>
        [Output("remoteauthtimeout")]
        public Output<int> Remoteauthtimeout { get; private set; } = null!;

        /// <summary>
        /// Action to perform if the FortiGate receives a TCP packet but cannot find a corresponding session in its session table. NAT/Route mode only. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("resetSessionlessTcp")]
        public Output<string> ResetSessionlessTcp { get; private set; } = null!;

        /// <summary>
        /// Daily restart time (hh:mm).
        /// </summary>
        [Output("restartTime")]
        public Output<string> RestartTime { get; private set; } = null!;

        /// <summary>
        /// Enable/disable back-up of the latest configuration revision when an administrator logs out of the CLI or GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("revisionBackupOnLogout")]
        public Output<string> RevisionBackupOnLogout { get; private set; } = null!;

        /// <summary>
        /// Enable/disable back-up of the latest configuration revision after the firmware is upgraded. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("revisionImageAutoBackup")]
        public Output<string> RevisionImageAutoBackup { get; private set; } = null!;

        /// <summary>
        /// Number of scanunits. The range and the default depend on the number of CPUs. Only available on FortiGate units with multiple CPUs.
        /// </summary>
        [Output("scanunitCount")]
        public Output<int> ScanunitCount { get; private set; } = null!;

        /// <summary>
        /// Enable/disable the submission of Security Rating results to FortiGuard. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("securityRatingResultSubmission")]
        public Output<string> SecurityRatingResultSubmission { get; private set; } = null!;

        /// <summary>
        /// Enable/disable scheduled runs of Security Rating. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("securityRatingRunOnSchedule")]
        public Output<string> SecurityRatingRunOnSchedule { get; private set; } = null!;

        /// <summary>
        /// Enable/disable sending of path maximum transmission unit (PMTU) - ICMP destination unreachable packet and to support PMTUD protocol on your network to reduce fragmentation of packets. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("sendPmtuIcmp")]
        public Output<string> SendPmtuIcmp { get; private set; } = null!;

        /// <summary>
        /// Enable/disable the ability to change the static NAT route. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("snatRouteChange")]
        public Output<string> SnatRouteChange { get; private set; } = null!;

        /// <summary>
        /// Enable/disable IPS detection of HIBUN format files when using Data Leak Protection. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("specialFile23Support")]
        public Output<string> SpecialFile23Support { get; private set; } = null!;

        /// <summary>
        /// Enable/disable speed test server. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("speedtestServer")]
        public Output<string> SpeedtestServer { get; private set; } = null!;

        /// <summary>
        /// Split port(s) to multiple 10Gbps ports.
        /// </summary>
        [Output("splitPort")]
        public Output<string> SplitPort { get; private set; } = null!;

        /// <summary>
        /// Date within a month to run ssd trim.
        /// </summary>
        [Output("ssdTrimDate")]
        public Output<int> SsdTrimDate { get; private set; } = null!;

        /// <summary>
        /// How often to run SSD Trim (default = weekly). SSD Trim prevents SSD drive data loss by finding and isolating errors. Valid values: `never`, `hourly`, `daily`, `weekly`, `monthly`.
        /// </summary>
        [Output("ssdTrimFreq")]
        public Output<string> SsdTrimFreq { get; private set; } = null!;

        /// <summary>
        /// Hour of the day on which to run SSD Trim (0 - 23, default = 1).
        /// </summary>
        [Output("ssdTrimHour")]
        public Output<int> SsdTrimHour { get; private set; } = null!;

        /// <summary>
        /// Minute of the hour on which to run SSD Trim (0 - 59, 60 for random).
        /// </summary>
        [Output("ssdTrimMin")]
        public Output<int> SsdTrimMin { get; private set; } = null!;

        /// <summary>
        /// Day of week to run SSD Trim. Valid values: `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.
        /// </summary>
        [Output("ssdTrimWeekday")]
        public Output<string> SsdTrimWeekday { get; private set; } = null!;

        /// <summary>
        /// Enable/disable CBC cipher for SSH access. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("sshCbcCipher")]
        public Output<string> SshCbcCipher { get; private set; } = null!;

        /// <summary>
        /// Select one or more SSH ciphers. Valid values: `chacha20-poly1305@openssh.com`, `aes128-ctr`, `aes192-ctr`, `aes256-ctr`, `arcfour256`, `arcfour128`, `aes128-cbc`, `3des-cbc`, `blowfish-cbc`, `cast128-cbc`, `aes192-cbc`, `aes256-cbc`, `arcfour`, `rijndael-cbc@lysator.liu.se`, `aes128-gcm@openssh.com`, `aes256-gcm@openssh.com`.
        /// </summary>
        [Output("sshEncAlgo")]
        public Output<string> SshEncAlgo { get; private set; } = null!;

        /// <summary>
        /// Enable/disable HMAC-MD5 for SSH access. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("sshHmacMd5")]
        public Output<string> SshHmacMd5 { get; private set; } = null!;

        /// <summary>
        /// Select one or more SSH kex algorithms. Valid values: `diffie-hellman-group1-sha1`, `diffie-hellman-group14-sha1`, `diffie-hellman-group-exchange-sha1`, `diffie-hellman-group-exchange-sha256`, `curve25519-sha256@libssh.org`, `ecdh-sha2-nistp256`, `ecdh-sha2-nistp384`, `ecdh-sha2-nistp521`.
        /// </summary>
        [Output("sshKexAlgo")]
        public Output<string> SshKexAlgo { get; private set; } = null!;

        /// <summary>
        /// Enable/disable SHA1 key exchange for SSH access. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("sshKexSha1")]
        public Output<string> SshKexSha1 { get; private set; } = null!;

        /// <summary>
        /// Select one or more SSH MAC algorithms. Valid values: `hmac-md5`, `hmac-md5-etm@openssh.com`, `hmac-md5-96`, `hmac-md5-96-etm@openssh.com`, `hmac-sha1`, `hmac-sha1-etm@openssh.com`, `hmac-sha2-256`, `hmac-sha2-256-etm@openssh.com`, `hmac-sha2-512`, `hmac-sha2-512-etm@openssh.com`, `hmac-ripemd160`, `hmac-ripemd160@openssh.com`, `hmac-ripemd160-etm@openssh.com`, `umac-64@openssh.com`, `umac-128@openssh.com`, `umac-64-etm@openssh.com`, `umac-128-etm@openssh.com`.
        /// </summary>
        [Output("sshMacAlgo")]
        public Output<string> SshMacAlgo { get; private set; } = null!;

        /// <summary>
        /// Enable/disable HMAC-SHA1 and UMAC-64-ETM for SSH access. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("sshMacWeak")]
        public Output<string> SshMacWeak { get; private set; } = null!;

        /// <summary>
        /// Minimum supported protocol version for SSL/TLS connections (default = TLSv1.2).
        /// </summary>
        [Output("sslMinProtoVersion")]
        public Output<string> SslMinProtoVersion { get; private set; } = null!;

        /// <summary>
        /// Enable/disable static key ciphers in SSL/TLS connections (e.g. AES128-SHA, AES256-SHA, AES128-SHA256, AES256-SHA256). Valid values: `enable`, `disable`.
        /// </summary>
        [Output("sslStaticKeyCiphers")]
        public Output<string> SslStaticKeyCiphers { get; private set; } = null!;

        /// <summary>
        /// Enable/disable SSL VPN hardware acceleration. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("sslvpnCipherHardwareAcceleration")]
        public Output<string> SslvpnCipherHardwareAcceleration { get; private set; } = null!;

        /// <summary>
        /// Enable/disable verification of EMS serial number in SSL-VPN connection. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("sslvpnEmsSnCheck")]
        public Output<string> SslvpnEmsSnCheck { get; private set; } = null!;

        /// <summary>
        /// Enable/disable SSL VPN KXP hardware acceleration. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("sslvpnKxpHardwareAcceleration")]
        public Output<string> SslvpnKxpHardwareAcceleration { get; private set; } = null!;

        /// <summary>
        /// Maximum number of SSL VPN processes. Upper limit for this value is the number of CPUs and depends on the model.
        /// </summary>
        [Output("sslvpnMaxWorkerCount")]
        public Output<int> SslvpnMaxWorkerCount { get; private set; } = null!;

        /// <summary>
        /// Enable/disable checking browser's plugin version by SSL VPN. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("sslvpnPluginVersionCheck")]
        public Output<string> SslvpnPluginVersionCheck { get; private set; } = null!;

        /// <summary>
        /// Enable to check the session against the original policy when revalidating. This can prevent dropping of redirected sessions when web-filtering and authentication are enabled together. If this option is enabled, the FortiGate unit deletes a session if a routing or policy change causes the session to no longer match the policy that originally allowed the session. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("strictDirtySessionCheck")]
        public Output<string> StrictDirtySessionCheck { get; private set; } = null!;

        /// <summary>
        /// Enable to use strong encryption and only allow strong ciphers (AES, 3DES) and digest (SHA1) for HTTPS/SSH/TLS/SSL functions. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("strongCrypto")]
        public Output<string> StrongCrypto { get; private set; } = null!;

        /// <summary>
        /// Enable/disable switch controller feature. Switch controller allows you to manage FortiSwitch from the FortiGate itself. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("switchController")]
        public Output<string> SwitchController { get; private set; } = null!;

        /// <summary>
        /// Enable reserved network subnet for controlled switches. This is available when the switch controller is enabled.
        /// </summary>
        [Output("switchControllerReservedNetwork")]
        public Output<string> SwitchControllerReservedNetwork { get; private set; } = null!;

        /// <summary>
        /// Time in minutes between updates of performance statistics logging. (1 - 15 min, default = 5, 0 = disabled).
        /// </summary>
        [Output("sysPerfLogInterval")]
        public Output<int> SysPerfLogInterval { get; private set; } = null!;

        /// <summary>
        /// Number of seconds the FortiGate unit should wait to close a session after one peer has sent a FIN packet but the other has not responded (1 - 86400 sec (1 day), default = 120).
        /// </summary>
        [Output("tcpHalfcloseTimer")]
        public Output<int> TcpHalfcloseTimer { get; private set; } = null!;

        /// <summary>
        /// Number of seconds the FortiGate unit should wait to close a session after one peer has sent an open session packet but the other has not responded (1 - 86400 sec (1 day), default = 10).
        /// </summary>
        [Output("tcpHalfopenTimer")]
        public Output<int> TcpHalfopenTimer { get; private set; } = null!;

        /// <summary>
        /// Enable SACK, timestamp and MSS TCP options. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("tcpOption")]
        public Output<string> TcpOption { get; private set; } = null!;

        /// <summary>
        /// Length of the TCP CLOSE state in seconds (5 - 300 sec, default = 5).
        /// </summary>
        [Output("tcpRstTimer")]
        public Output<int> TcpRstTimer { get; private set; } = null!;

        /// <summary>
        /// Length of the TCP TIME-WAIT state in seconds.
        /// </summary>
        [Output("tcpTimewaitTimer")]
        public Output<int> TcpTimewaitTimer { get; private set; } = null!;

        /// <summary>
        /// Enable/disable TFTP. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("tftp")]
        public Output<string> Tftp { get; private set; } = null!;

        /// <summary>
        /// Number corresponding to your time zone from 00 to 86. Enter set timezone ? to view the list of time zones and the numbers that represent them. Valid values: `01`, `02`, `03`, `04`, `05`, `81`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `74`, `14`, `77`, `15`, `87`, `16`, `17`, `18`, `19`, `20`, `75`, `21`, `22`, `23`, `24`, `80`, `79`, `25`, `26`, `27`, `28`, `78`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `36`, `37`, `38`, `83`, `84`, `40`, `85`, `41`, `42`, `43`, `39`, `44`, `46`, `47`, `51`, `48`, `45`, `49`, `50`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `59`, `60`, `62`, `63`, `61`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `00`, `82`, `73`, `86`, `76`.
        /// </summary>
        [Output("timezone")]
        public Output<string> Timezone { get; private set; } = null!;

        /// <summary>
        /// Enable/disable skip policy check and allow multicast through. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("tpMcSkipPolicy")]
        public Output<string> TpMcSkipPolicy { get; private set; } = null!;

        /// <summary>
        /// Choose Type of Service (ToS) or Differentiated Services Code Point (DSCP) for traffic prioritization in traffic shaping. Valid values: `tos`, `dscp`.
        /// </summary>
        [Output("trafficPriority")]
        public Output<string> TrafficPriority { get; private set; } = null!;

        /// <summary>
        /// Default system-wide level of priority for traffic prioritization. Valid values: `low`, `medium`, `high`.
        /// </summary>
        [Output("trafficPriorityLevel")]
        public Output<string> TrafficPriorityLevel { get; private set; } = null!;

        /// <summary>
        /// Email-based two-factor authentication session timeout (30 - 300 seconds (5 minutes), default = 60).
        /// </summary>
        [Output("twoFactorEmailExpiry")]
        public Output<int> TwoFactorEmailExpiry { get; private set; } = null!;

        /// <summary>
        /// FortiAuthenticator token authentication session timeout (10 - 3600 seconds (1 hour), default = 60).
        /// </summary>
        [Output("twoFactorFacExpiry")]
        public Output<int> TwoFactorFacExpiry { get; private set; } = null!;

        /// <summary>
        /// FortiToken authentication session timeout (60 - 600 sec (10 minutes), default = 60).
        /// </summary>
        [Output("twoFactorFtkExpiry")]
        public Output<int> TwoFactorFtkExpiry { get; private set; } = null!;

        /// <summary>
        /// FortiToken Mobile session timeout (1 - 168 hours (7 days), default = 72).
        /// </summary>
        [Output("twoFactorFtmExpiry")]
        public Output<int> TwoFactorFtmExpiry { get; private set; } = null!;

        /// <summary>
        /// SMS-based two-factor authentication session timeout (30 - 300 sec, default = 60).
        /// </summary>
        [Output("twoFactorSmsExpiry")]
        public Output<int> TwoFactorSmsExpiry { get; private set; } = null!;

        /// <summary>
        /// UDP connection session timeout. This command can be useful in managing CPU and memory resources (1 - 86400 seconds (1 day), default = 60).
        /// </summary>
        [Output("udpIdleTimer")]
        public Output<int> UdpIdleTimer { get; private set; } = null!;

        /// <summary>
        /// URL filter CPU affinity.
        /// </summary>
        [Output("urlFilterAffinity")]
        public Output<string> UrlFilterAffinity { get; private set; } = null!;

        /// <summary>
        /// URL filter daemon count.
        /// </summary>
        [Output("urlFilterCount")]
        public Output<int> UrlFilterCount { get; private set; } = null!;

        /// <summary>
        /// Maximum number of devices allowed in user device store.
        /// </summary>
        [Output("userDeviceStoreMaxDevices")]
        public Output<int> UserDeviceStoreMaxDevices { get; private set; } = null!;

        /// <summary>
        /// Maximum unified memory allowed in user device store.
        /// </summary>
        [Output("userDeviceStoreMaxUnifiedMem")]
        public Output<int> UserDeviceStoreMaxUnifiedMem { get; private set; } = null!;

        /// <summary>
        /// Maximum number of users allowed in user device store.
        /// </summary>
        [Output("userDeviceStoreMaxUsers")]
        public Output<int> UserDeviceStoreMaxUsers { get; private set; } = null!;

        /// <summary>
        /// Certificate to use for https user authentication.
        /// </summary>
        [Output("userServerCert")]
        public Output<string> UserServerCert { get; private set; } = null!;

        /// <summary>
        /// Enable/disable support for multiple virtual domains (VDOMs). Valid values: `enable`, `disable`.
        /// </summary>
        [Output("vdomAdmin")]
        public Output<string> VdomAdmin { get; private set; } = null!;

        /// <summary>
        /// Enable/disable support for split/multiple virtual domains (VDOMs). Valid values: `no-vdom`, `split-vdom`, `multi-vdom`.
        /// </summary>
        [Output("vdomMode")]
        public Output<string> VdomMode { get; private set; } = null!;

        /// <summary>
        /// Specifies the vdom to which the resource 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>
        [Output("vdomparam")]
        public Output<string?> Vdomparam { get; private set; } = null!;

        /// <summary>
        /// Controls the number of ARPs that the FortiGate sends for a Virtual IP (VIP) address range. Valid values: `unlimited`, `restricted`.
        /// </summary>
        [Output("vipArpRange")]
        public Output<string> VipArpRange { get; private set; } = null!;

        /// <summary>
        /// Maximum number of virtual server processes to create. The maximum is the number of CPU cores. This is not available on single-core CPUs.
        /// </summary>
        [Output("virtualServerCount")]
        public Output<int> VirtualServerCount { get; private set; } = null!;

        /// <summary>
        /// Enable/disable virtual server hardware acceleration. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("virtualServerHardwareAcceleration")]
        public Output<string> VirtualServerHardwareAcceleration { get; private set; } = null!;

        /// <summary>
        /// Enable/disable virtual switch VLAN. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("virtualSwitchVlan")]
        public Output<string> VirtualSwitchVlan { get; private set; } = null!;

        /// <summary>
        /// Affinity setting for wad (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Output("wadAffinity")]
        public Output<string> WadAffinity { get; private set; } = null!;

        /// <summary>
        /// Number of concurrent WAD-cache-service object-cache processes.
        /// </summary>
        [Output("wadCsvcCsCount")]
        public Output<int> WadCsvcCsCount { get; private set; } = null!;

        /// <summary>
        /// Number of concurrent WAD-cache-service byte-cache processes.
        /// </summary>
        [Output("wadCsvcDbCount")]
        public Output<int> WadCsvcDbCount { get; private set; } = null!;

        /// <summary>
        /// Minimum percentage change in system memory usage detected by the wad daemon prior to adjusting TCP window size for any active connection.
        /// </summary>
        [Output("wadMemoryChangeGranularity")]
        public Output<int> WadMemoryChangeGranularity { get; private set; } = null!;

        /// <summary>
        /// Enable/disable dispatching traffic to WAD workers based on source affinity. Valid values: `disable`, `enable`.
        /// </summary>
        [Output("wadSourceAffinity")]
        public Output<string> WadSourceAffinity { get; private set; } = null!;

        /// <summary>
        /// Number of explicit proxy WAN optimization daemon (WAD) processes. By default WAN optimization, explicit proxy, and web caching is handled by all of the CPU cores in a FortiGate unit.
        /// </summary>
        [Output("wadWorkerCount")]
        public Output<int> WadWorkerCount { get; private set; } = null!;

        /// <summary>
        /// CA certificate that verifies the WiFi certificate.
        /// </summary>
        [Output("wifiCaCertificate")]
        public Output<string> WifiCaCertificate { get; private set; } = null!;

        /// <summary>
        /// Certificate to use for WiFi authentication.
        /// </summary>
        [Output("wifiCertificate")]
        public Output<string> WifiCertificate { get; private set; } = null!;

        /// <summary>
        /// Enable/disable comparability with WiMAX 4G USB devices. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("wimax4gUsb")]
        public Output<string> Wimax4gUsb { get; private set; } = null!;

        /// <summary>
        /// Enable/disable the wireless controller feature to use the FortiGate unit to manage FortiAPs. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("wirelessController")]
        public Output<string> WirelessController { get; private set; } = null!;

        /// <summary>
        /// Port used for the control channel in wireless controller mode (wireless-mode is ac). The data channel port is the control channel port number plus one (1024 - 49150, default = 5246).
        /// </summary>
        [Output("wirelessControllerPort")]
        public Output<int> WirelessControllerPort { get; private set; } = null!;


        /// <summary>
        /// Create a SystemGlobal resource with the given unique name, arguments, and options.
        /// </summary>
        ///
        /// <param name="name">The unique name of the resource</param>
        /// <param name="args">The arguments used to populate this resource's properties</param>
        /// <param name="options">A bag of options that control this resource's behavior</param>
        public SystemGlobal(string name, SystemGlobalArgs? args = null, CustomResourceOptions? options = null)
            : base("fortios:index/systemGlobal:SystemGlobal", name, args ?? new SystemGlobalArgs(), MakeResourceOptions(options, ""))
        {
        }

        private SystemGlobal(string name, Input<string> id, SystemGlobalState? state = null, CustomResourceOptions? options = null)
            : base("fortios:index/systemGlobal:SystemGlobal", name, state, MakeResourceOptions(options, id))
        {
        }

        private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input<string>? id)
        {
            var defaultOptions = new CustomResourceOptions
            {
                Version = Utilities.Version,
                PluginDownloadURL = "github://api.github.com/pulumiverse/pulumi-fortios",
            };
            var merged = CustomResourceOptions.Merge(defaultOptions, options);
            // Override the ID if one was specified for consistency with other language SDKs.
            merged.Id = id ?? merged.Id;
            return merged;
        }
        /// <summary>
        /// Get an existing SystemGlobal resource's state with the given name, ID, and optional extra
        /// properties used to qualify the lookup.
        /// </summary>
        ///
        /// <param name="name">The unique name of the resulting resource.</param>
        /// <param name="id">The unique provider ID of the resource to lookup.</param>
        /// <param name="state">Any extra arguments used during the lookup.</param>
        /// <param name="options">A bag of options that control this resource's behavior</param>
        public static SystemGlobal Get(string name, Input<string> id, SystemGlobalState? state = null, CustomResourceOptions? options = null)
        {
            return new SystemGlobal(name, id, state, options);
        }
    }

    public sealed class SystemGlobalArgs : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// Enable/disable concurrent administrator logins. (Use policy-auth-concurrent for firewall authenticated users.) Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminConcurrent")]
        public Input<string>? AdminConcurrent { get; set; }

        /// <summary>
        /// Console login timeout that overrides the admintimeout value. (15 - 300 seconds) (15 seconds to 5 minutes). 0 the default, disables this timeout.
        /// </summary>
        [Input("adminConsoleTimeout")]
        public Input<int>? AdminConsoleTimeout { get; set; }

        /// <summary>
        /// Enable/disable FortiCloud admin login via SSO. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminForticloudSsoLogin")]
        public Input<string>? AdminForticloudSsoLogin { get; set; }

        /// <summary>
        /// Administrative host for HTTP and HTTPS. When set, will be used in lieu of the client's Host header for any redirection.
        /// </summary>
        [Input("adminHost")]
        public Input<string>? AdminHost { get; set; }

        /// <summary>
        /// HTTPS Strict-Transport-Security header max-age in seconds. A value of 0 will reset any HSTS records in the browser.When admin-https-redirect is disabled the header max-age will be 0.
        /// </summary>
        [Input("adminHstsMaxAge")]
        public Input<int>? AdminHstsMaxAge { get; set; }

        /// <summary>
        /// Enable/disable admin login method. Enable to force administrators to provide a valid certificate to log in if PKI is enabled. Disable to allow administrators to log in with a certificate or password. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminHttpsPkiRequired")]
        public Input<string>? AdminHttpsPkiRequired { get; set; }

        /// <summary>
        /// Enable/disable redirection of HTTP administration access to HTTPS. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminHttpsRedirect")]
        public Input<string>? AdminHttpsRedirect { get; set; }

        /// <summary>
        /// Select one or more cipher technologies that cannot be used in GUI HTTPS negotiations. Only applies to TLS 1.2 and below. Valid values: `RSA`, `DHE`, `ECDHE`, `DSS`, `ECDSA`, `AES`, `AESGCM`, `CAMELLIA`, `3DES`, `SHA1`, `SHA256`, `SHA384`, `STATIC`, `CHACHA20`, `ARIA`, `AESCCM`.
        /// </summary>
        [Input("adminHttpsSslBannedCiphers")]
        public Input<string>? AdminHttpsSslBannedCiphers { get; set; }

        /// <summary>
        /// Select one or more TLS 1.3 ciphersuites to enable. Does not affect ciphers in TLS 1.2 and below. At least one must be enabled. To disable all, remove TLS1.3 from admin-https-ssl-versions. Valid values: `TLS-AES-128-GCM-SHA256`, `TLS-AES-256-GCM-SHA384`, `TLS-CHACHA20-POLY1305-SHA256`, `TLS-AES-128-CCM-SHA256`, `TLS-AES-128-CCM-8-SHA256`.
        /// </summary>
        [Input("adminHttpsSslCiphersuites")]
        public Input<string>? AdminHttpsSslCiphersuites { get; set; }

        /// <summary>
        /// Allowed TLS versions for web administration.
        /// </summary>
        [Input("adminHttpsSslVersions")]
        public Input<string>? AdminHttpsSslVersions { get; set; }

        /// <summary>
        /// Amount of time in seconds that an administrator account is locked out after reaching the admin-lockout-threshold for repeated failed login attempts.
        /// </summary>
        [Input("adminLockoutDuration")]
        public Input<int>? AdminLockoutDuration { get; set; }

        /// <summary>
        /// Number of failed login attempts before an administrator account is locked out for the admin-lockout-duration.
        /// </summary>
        [Input("adminLockoutThreshold")]
        public Input<int>? AdminLockoutThreshold { get; set; }

        /// <summary>
        /// Maximum number of administrators who can be logged in at the same time (1 - 100, default = 100)
        /// </summary>
        [Input("adminLoginMax")]
        public Input<int>? AdminLoginMax { get; set; }

        /// <summary>
        /// Enable/disable maintainer administrator login. When enabled, the maintainer account can be used to log in from the console after a hard reboot. The password is "bcpb" followed by the FortiGate unit serial number. You have limited time to complete this login. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminMaintainer")]
        public Input<string>? AdminMaintainer { get; set; }

        /// <summary>
        /// Administrative access port for HTTP. (1 - 65535, default = 80).
        /// </summary>
        [Input("adminPort")]
        public Input<int>? AdminPort { get; set; }

        /// <summary>
        /// Enable/disable local admin authentication restriction when remote authenticator is up and running. (default = disable) Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminRestrictLocal")]
        public Input<string>? AdminRestrictLocal { get; set; }

        /// <summary>
        /// Enable/disable using SCP to download the system configuration. You can use SCP as an alternative method for backing up the configuration. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminScp")]
        public Input<string>? AdminScp { get; set; }

        /// <summary>
        /// Server certificate that the FortiGate uses for HTTPS administrative connections.
        /// </summary>
        [Input("adminServerCert")]
        public Input<string>? AdminServerCert { get; set; }

        /// <summary>
        /// Administrative access port for HTTPS. (1 - 65535, default = 443).
        /// </summary>
        [Input("adminSport")]
        public Input<int>? AdminSport { get; set; }

        /// <summary>
        /// Maximum time in seconds permitted between making an SSH connection to the FortiGate unit and authenticating (10 - 3600 sec (1 hour), default 120).
        /// </summary>
        [Input("adminSshGraceTime")]
        public Input<int>? AdminSshGraceTime { get; set; }

        /// <summary>
        /// Enable/disable password authentication for SSH admin access. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminSshPassword")]
        public Input<string>? AdminSshPassword { get; set; }

        /// <summary>
        /// Administrative access port for SSH. (1 - 65535, default = 22).
        /// </summary>
        [Input("adminSshPort")]
        public Input<int>? AdminSshPort { get; set; }

        /// <summary>
        /// Enable/disable SSH v1 compatibility. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminSshV1")]
        public Input<string>? AdminSshV1 { get; set; }

        /// <summary>
        /// Enable/disable TELNET service. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminTelnet")]
        public Input<string>? AdminTelnet { get; set; }

        /// <summary>
        /// Administrative access port for TELNET. (1 - 65535, default = 23).
        /// </summary>
        [Input("adminTelnetPort")]
        public Input<int>? AdminTelnetPort { get; set; }

        /// <summary>
        /// Number of minutes before an idle administrator session times out (5 - 480 minutes (8 hours), default = 5). A shorter idle timeout is more secure.
        /// </summary>
        [Input("admintimeout")]
        public Input<int>? Admintimeout { get; set; }

        /// <summary>
        /// Alias for your FortiGate unit.
        /// </summary>
        [Input("alias")]
        public Input<string>? Alias { get; set; }

        /// <summary>
        /// Disable to allow traffic to be routed back on a different interface. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("allowTrafficRedirect")]
        public Input<string>? AllowTrafficRedirect { get; set; }

        /// <summary>
        /// Level of checking for packet replay and TCP sequence checking. Valid values: `disable`, `loose`, `strict`.
        /// </summary>
        [Input("antiReplay")]
        public Input<string>? AntiReplay { get; set; }

        /// <summary>
        /// Maximum number of dynamically learned MAC addresses that can be added to the ARP table (131072 - 2147483647, default = 131072).
        /// </summary>
        [Input("arpMaxEntry")]
        public Input<int>? ArpMaxEntry { get; set; }

        /// <summary>
        /// Enable/disable asymmetric route. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("asymroute")]
        public Input<string>? Asymroute { get; set; }

        /// <summary>
        /// Server certificate that the FortiGate uses for HTTPS firewall authentication connections.
        /// </summary>
        [Input("authCert")]
        public Input<string>? AuthCert { get; set; }

        /// <summary>
        /// User authentication HTTP port. (1 - 65535, default = 80).
        /// </summary>
        [Input("authHttpPort")]
        public Input<int>? AuthHttpPort { get; set; }

        /// <summary>
        /// User authentication HTTPS port. (1 - 65535, default = 443).
        /// </summary>
        [Input("authHttpsPort")]
        public Input<int>? AuthHttpsPort { get; set; }

        /// <summary>
        /// User IKE SAML authentication port (0 - 65535, default = 1001).
        /// </summary>
        [Input("authIkeSamlPort")]
        public Input<int>? AuthIkeSamlPort { get; set; }

        /// <summary>
        /// Enable to prevent user authentication sessions from timing out when idle. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("authKeepalive")]
        public Input<string>? AuthKeepalive { get; set; }

        /// <summary>
        /// Action to take when the number of allowed user authenticated sessions is reached. Valid values: `block-new`, `logout-inactive`.
        /// </summary>
        [Input("authSessionLimit")]
        public Input<string>? AuthSessionLimit { get; set; }

        /// <summary>
        /// Enable/disable automatic authorization of dedicated Fortinet extension devices. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("autoAuthExtensionDevice")]
        public Input<string>? AutoAuthExtensionDevice { get; set; }

        /// <summary>
        /// Enable/disable automatic log partition check after ungraceful shutdown. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("autorunLogFsck")]
        public Input<string>? AutorunLogFsck { get; set; }

        /// <summary>
        /// Affinity setting for AV scanning (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Input("avAffinity")]
        public Input<string>? AvAffinity { get; set; }

        /// <summary>
        /// Set the action to take if the FortiGate is running low on memory or the proxy connection limit has been reached. Valid values: `pass`, `off`, `one-shot`.
        /// </summary>
        [Input("avFailopen")]
        public Input<string>? AvFailopen { get; set; }

        /// <summary>
        /// When enabled and a proxy for a protocol runs out of room in its session table, that protocol goes into failopen mode and enacts the action specified by av-failopen. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("avFailopenSession")]
        public Input<string>? AvFailopenSession { get; set; }

        /// <summary>
        /// Enable/disable batch mode, allowing you to enter a series of CLI commands that will execute as a group once they are loaded. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("batchCmdb")]
        public Input<string>? BatchCmdb { get; set; }

        /// <summary>
        /// Duration in seconds for blocked sessions (1 - 300 sec  (5 minutes), default = 30).
        /// </summary>
        [Input("blockSessionTimer")]
        public Input<int>? BlockSessionTimer { get; set; }

        /// <summary>
        /// Maximum number of bridge forwarding database (FDB) entries.
        /// </summary>
        [Input("brFdbMaxEntry")]
        public Input<int>? BrFdbMaxEntry { get; set; }

        /// <summary>
        /// Maximum number of certificates that can be traversed in a certificate chain.
        /// </summary>
        [Input("certChainMax")]
        public Input<int>? CertChainMax { get; set; }

        /// <summary>
        /// Time-out for reverting to the last saved configuration.
        /// </summary>
        [Input("cfgRevertTimeout")]
        public Input<int>? CfgRevertTimeout { get; set; }

        /// <summary>
        /// Configuration file save mode for CLI changes. Valid values: `automatic`, `manual`, `revert`.
        /// </summary>
        [Input("cfgSave")]
        public Input<string>? CfgSave { get; set; }

        /// <summary>
        /// Level of checking performed on protocol headers. Strict checking is more thorough but may affect performance. Loose checking is ok in most cases. Valid values: `loose`, `strict`.
        /// </summary>
        [Input("checkProtocolHeader")]
        public Input<string>? CheckProtocolHeader { get; set; }

        /// <summary>
        /// Configure ICMP error message verification. You can either apply strict RST range checking or disable it. Valid values: `strict`, `disable`.
        /// </summary>
        [Input("checkResetRange")]
        public Input<string>? CheckResetRange { get; set; }

        /// <summary>
        /// Enable/disable CLI audit log. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("cliAuditLog")]
        public Input<string>? CliAuditLog { get; set; }

        /// <summary>
        /// Enable/disable all cloud communication. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("cloudCommunication")]
        public Input<string>? CloudCommunication { get; set; }

        /// <summary>
        /// Enable/disable requiring administrators to have a client certificate to log into the GUI using HTTPS. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("cltCertReq")]
        public Input<string>? CltCertReq { get; set; }

        /// <summary>
        /// Affinity setting for cmdbsvr (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Input("cmdbsvrAffinity")]
        public Input<string>? CmdbsvrAffinity { get; set; }

        /// <summary>
        /// Enable/disable global PCI DSS compliance check. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("complianceCheck")]
        public Input<string>? ComplianceCheck { get; set; }

        /// <summary>
        /// Time of day to run scheduled PCI DSS compliance checks.
        /// </summary>
        [Input("complianceCheckTime")]
        public Input<string>? ComplianceCheckTime { get; set; }

        /// <summary>
        /// Threshold at which CPU usage is reported. (% of total CPU, default = 90).
        /// </summary>
        [Input("cpuUseThreshold")]
        public Input<int>? CpuUseThreshold { get; set; }

        /// <summary>
        /// Enable/disable the CA attribute in certificates. Some CA servers reject CSRs that have the CA attribute. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("csrCaAttribute")]
        public Input<string>? CsrCaAttribute { get; set; }

        /// <summary>
        /// Enable/disable daily restart of FortiGate unit. Use the restart-time option to set the time of day for the restart. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("dailyRestart")]
        public Input<string>? DailyRestart { get; set; }

        /// <summary>
        /// Default service source port range. (default=1-65535)
        /// </summary>
        [Input("defaultServiceSourcePort")]
        public Input<string>? DefaultServiceSourcePort { get; set; }

        /// <summary>
        /// Number of seconds to passively scan a device before performing an active scan. (20 - 3600 sec, (20 sec to 1 hour), default = 90).
        /// </summary>
        [Input("deviceIdentificationActiveScanDelay")]
        public Input<int>? DeviceIdentificationActiveScanDelay { get; set; }

        /// <summary>
        /// Time in seconds that a device must be idle to automatically log the device user out. (30 - 31536000 sec (30 sec to 1 year), default = 300).
        /// </summary>
        [Input("deviceIdleTimeout")]
        public Input<int>? DeviceIdleTimeout { get; set; }

        /// <summary>
        /// Number of bits to use in the Diffie-Hellman exchange for HTTPS/SSH protocols. Valid values: `1024`, `1536`, `2048`, `3072`, `4096`, `6144`, `8192`.
        /// </summary>
        [Input("dhParams")]
        public Input<string>? DhParams { get; set; }

        /// <summary>
        /// DNS proxy worker count.
        /// </summary>
        [Input("dnsproxyWorkerCount")]
        public Input<int>? DnsproxyWorkerCount { get; set; }

        /// <summary>
        /// Enable/disable daylight saving time. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("dst")]
        public Input<string>? Dst { get; set; }

        /// <summary>
        /// Enable/disable early TCP NPU session. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("earlyTcpNpuSession")]
        public Input<string>? EarlyTcpNpuSession { get; set; }

        /// <summary>
        /// Enable/disable edit new VDOM prompt. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("editVdomPrompt")]
        public Input<string>? EditVdomPrompt { get; set; }

        /// <summary>
        /// Enable/disable access to the FortiGuard network for non-compliant endpoints. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("endpointControlFdsAccess")]
        public Input<string>? EndpointControlFdsAccess { get; set; }

        /// <summary>
        /// Endpoint control portal port (1 - 65535).
        /// </summary>
        [Input("endpointControlPortalPort")]
        public Input<int>? EndpointControlPortalPort { get; set; }

        /// <summary>
        /// Configure reserved network subnet for managed LAN extension FortiExtenders. This is available when the extender daemon is running.
        /// </summary>
        [Input("extenderControllerReservedNetwork")]
        public Input<string>? ExtenderControllerReservedNetwork { get; set; }

        /// <summary>
        /// Fail-time for server lost.
        /// </summary>
        [Input("failtime")]
        public Input<int>? Failtime { get; set; }

        /// <summary>
        /// Maximum disk buffer size to temporarily store logs destined for FortiAnalyzer. To be used in the event that FortiAnalyzer is unavailalble.
        /// </summary>
        [Input("fazDiskBufferSize")]
        public Input<int>? FazDiskBufferSize { get; set; }

        /// <summary>
        /// Enable/disable sending IPS, Application Control, and AntiVirus data to FortiGuard. This data is used to improve FortiGuard services and is not shared with external parties and is protected by Fortinet's privacy policy. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("fdsStatistics")]
        public Input<string>? FdsStatistics { get; set; }

        /// <summary>
        /// FortiGuard statistics collection period in minutes. (1 - 1440 min (1 min to 24 hours), default = 60).
        /// </summary>
        [Input("fdsStatisticsPeriod")]
        public Input<int>? FdsStatisticsPeriod { get; set; }

        /// <summary>
        /// Local UDP port for Forward Error Correction (49152 - 65535).
        /// </summary>
        [Input("fecPort")]
        public Input<int>? FecPort { get; set; }

        /// <summary>
        /// Type of alert to retrieve from FortiGuard. Valid values: `advisory`, `latest-threat`, `latest-virus`, `latest-attack`, `new-antivirus-db`, `new-attack-db`.
        /// </summary>
        [Input("fgdAlertSubscription")]
        public Input<string>? FgdAlertSubscription { get; set; }

        /// <summary>
        /// Enable/disable FortiExtender. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("fortiextender")]
        public Input<string>? Fortiextender { get; set; }

        /// <summary>
        /// FortiExtender data port (1024 - 49150, default = 25246).
        /// </summary>
        [Input("fortiextenderDataPort")]
        public Input<int>? FortiextenderDataPort { get; set; }

        /// <summary>
        /// Enable/disable FortiExtender CAPWAP lockdown. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("fortiextenderDiscoveryLockdown")]
        public Input<string>? FortiextenderDiscoveryLockdown { get; set; }

        /// <summary>
        /// Enable/disable automatic provisioning of latest FortiExtender firmware on authorization. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("fortiextenderProvisionOnAuthorization")]
        public Input<string>? FortiextenderProvisionOnAuthorization { get; set; }

        /// <summary>
        /// Enable/disable FortiExtender VLAN mode. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("fortiextenderVlanMode")]
        public Input<string>? FortiextenderVlanMode { get; set; }

        /// <summary>
        /// Enable/disable integration with the FortiIPAM cloud service. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("fortiipamIntegration")]
        public Input<string>? FortiipamIntegration { get; set; }

        /// <summary>
        /// FortiService port (1 - 65535, default = 8013). Used by FortiClient endpoint compliance. Older versions of FortiClient used a different port.
        /// </summary>
        [Input("fortiservicePort")]
        public Input<int>? FortiservicePort { get; set; }

        /// <summary>
        /// Enable/disable FortiToken Cloud service. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("fortitokenCloud")]
        public Input<string>? FortitokenCloud { get; set; }

        /// <summary>
        /// Enable/disable the GUI warning about using a default hostname Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiAllowDefaultHostname")]
        public Input<string>? GuiAllowDefaultHostname { get; set; }

        /// <summary>
        /// Enable/disable Allow app-detection based SD-WAN. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiAppDetectionSdwan")]
        public Input<string>? GuiAppDetectionSdwan { get; set; }

        /// <summary>
        /// Enable/disable Load GUI static files from a CDN. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiCdnUsage")]
        public Input<string>? GuiCdnUsage { get; set; }

        /// <summary>
        /// Enable/disable the System &gt; Certificate GUI page, allowing you to add and configure certificates from the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiCertificates")]
        public Input<string>? GuiCertificates { get; set; }

        /// <summary>
        /// Enable/disable custom languages in GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiCustomLanguage")]
        public Input<string>? GuiCustomLanguage { get; set; }

        /// <summary>
        /// Default date format used throughout GUI. Valid values: `yyyy/MM/dd`, `dd/MM/yyyy`, `MM/dd/yyyy`, `yyyy-MM-dd`, `dd-MM-yyyy`, `MM-dd-yyyy`.
        /// </summary>
        [Input("guiDateFormat")]
        public Input<string>? GuiDateFormat { get; set; }

        /// <summary>
        /// Source from which the FortiGate GUI uses to display date and time entries. Valid values: `system`, `browser`.
        /// </summary>
        [Input("guiDateTimeSource")]
        public Input<string>? GuiDateTimeSource { get; set; }

        /// <summary>
        /// Add the latitude of the location of this FortiGate to position it on the Threat Map.
        /// </summary>
        [Input("guiDeviceLatitude")]
        public Input<string>? GuiDeviceLatitude { get; set; }

        /// <summary>
        /// Add the longitude of the location of this FortiGate to position it on the Threat Map.
        /// </summary>
        [Input("guiDeviceLongitude")]
        public Input<string>? GuiDeviceLongitude { get; set; }

        /// <summary>
        /// Enable/disable displaying the FortiGate's hostname on the GUI login page. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiDisplayHostname")]
        public Input<string>? GuiDisplayHostname { get; set; }

        /// <summary>
        /// Enable/disable the firmware upgrade warning on GUI setup wizard. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiFirmwareUpgradeSetupWarning")]
        public Input<string>? GuiFirmwareUpgradeSetupWarning { get; set; }

        /// <summary>
        /// Enable/disable the firmware upgrade warning on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiFirmwareUpgradeWarning")]
        public Input<string>? GuiFirmwareUpgradeWarning { get; set; }

        /// <summary>
        /// Enable/disable the FortiCare registration setup warning on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiForticareRegistrationSetupWarning")]
        public Input<string>? GuiForticareRegistrationSetupWarning { get; set; }

        /// <summary>
        /// Enable/disable displaying FortiGate Cloud Sandbox on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiFortigateCloudSandbox")]
        public Input<string>? GuiFortigateCloudSandbox { get; set; }

        /// <summary>
        /// Enable/disable retrieving static GUI resources from FortiGuard. Disabling it will improve GUI load time for air-gapped environments. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiFortiguardResourceFetch")]
        public Input<string>? GuiFortiguardResourceFetch { get; set; }

        /// <summary>
        /// Enable/disable displaying FortiSandbox Cloud on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiFortisandboxCloud")]
        public Input<string>? GuiFortisandboxCloud { get; set; }

        /// <summary>
        /// Enable/disable IPv6 settings on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiIpv6")]
        public Input<string>? GuiIpv6 { get; set; }

        /// <summary>
        /// Number of lines to display per page for web administration.
        /// </summary>
        [Input("guiLinesPerPage")]
        public Input<int>? GuiLinesPerPage { get; set; }

        /// <summary>
        /// Enable/disable Local-out traffic on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiLocalOut")]
        public Input<string>? GuiLocalOut { get; set; }

        /// <summary>
        /// Enable/disable replacement message groups on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiReplacementMessageGroups")]
        public Input<string>? GuiReplacementMessageGroups { get; set; }

        /// <summary>
        /// Enable/disable REST API result caching on FortiGate. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiRestApiCache")]
        public Input<string>? GuiRestApiCache { get; set; }

        /// <summary>
        /// Color scheme for the administration GUI.
        /// </summary>
        [Input("guiTheme")]
        public Input<string>? GuiTheme { get; set; }

        /// <summary>
        /// Enable/disable wireless open security option on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiWirelessOpensecurity")]
        public Input<string>? GuiWirelessOpensecurity { get; set; }

        /// <summary>
        /// Enable/disable Workflow management features on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiWorkflowManagement")]
        public Input<string>? GuiWorkflowManagement { get; set; }

        /// <summary>
        /// Affinity setting for HA daemons (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Input("haAffinity")]
        public Input<string>? HaAffinity { get; set; }

        /// <summary>
        /// Enable/disable honoring of Don't-Fragment (DF) flag. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("honorDf")]
        public Input<string>? HonorDf { get; set; }

        /// <summary>
        /// FortiGate unit's hostname. Most models will truncate names longer than 24 characters. Some models support hostnames up to 35 characters.
        /// </summary>
        [Input("hostname")]
        public Input<string>? Hostname { get; set; }

        /// <summary>
        /// Maximum number of IGMP memberships (96 - 64000, default = 3200).
        /// </summary>
        [Input("igmpStateLimit")]
        public Input<int>? IgmpStateLimit { get; set; }

        /// <summary>
        /// Maximum number of IPsec tunnels to negotiate simultaneously.
        /// </summary>
        [Input("ikeEmbryonicLimit")]
        public Input<int>? IkeEmbryonicLimit { get; set; }

        /// <summary>
        /// Configure which Internet Service database size to download from FortiGuard and use. Valid values: `mini`, `standard`, `full`.
        /// </summary>
        [Input("internetServiceDatabase")]
        public Input<string>? InternetServiceDatabase { get; set; }

        /// <summary>
        /// Dead gateway detection interval.
        /// </summary>
        [Input("interval")]
        public Input<int>? Interval { get; set; }

        /// <summary>
        /// IP source port range used for traffic originating from the FortiGate unit.
        /// </summary>
        [Input("ipSrcPortRange")]
        public Input<string>? IpSrcPortRange { get; set; }

        /// <summary>
        /// Affinity setting for IPS (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx; allowed CPUs must be less than total number of IPS engine daemons).
        /// </summary>
        [Input("ipsAffinity")]
        public Input<string>? IpsAffinity { get; set; }

        /// <summary>
        /// Enable/disable ASIC offloading (hardware acceleration) for IPsec VPN traffic. Hardware acceleration can offload IPsec VPN sessions and accelerate encryption and decryption. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipsecAsicOffload")]
        public Input<string>? IpsecAsicOffload { get; set; }

        /// <summary>
        /// ESP jump ahead rate (1G - 10G pps equivalent).
        /// </summary>
        [Input("ipsecHaSeqjumpRate")]
        public Input<int>? IpsecHaSeqjumpRate { get; set; }

        /// <summary>
        /// Enable/disable offloading (hardware acceleration) of HMAC processing for IPsec VPN. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipsecHmacOffload")]
        public Input<string>? IpsecHmacOffload { get; set; }

        /// <summary>
        /// Enable/disable round-robin redistribution to multiple CPUs for IPsec VPN traffic. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipsecRoundRobin")]
        public Input<string>? IpsecRoundRobin { get; set; }

        /// <summary>
        /// Enable/disable software decryption asynchronization (using multiple CPUs to do decryption) for IPsec VPN traffic. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipsecSoftDecAsync")]
        public Input<string>? IpsecSoftDecAsync { get; set; }

        /// <summary>
        /// Enable/disable acceptance of IPv6 Duplicate Address Detection (DAD).
        /// </summary>
        [Input("ipv6AcceptDad")]
        public Input<int>? Ipv6AcceptDad { get; set; }

        /// <summary>
        /// Enable/disable IPv6 address probe through Anycast. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipv6AllowAnycastProbe")]
        public Input<string>? Ipv6AllowAnycastProbe { get; set; }

        /// <summary>
        /// Enable/disable silent drop of IPv6 local-in traffic. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipv6AllowLocalInSlientDrop")]
        public Input<string>? Ipv6AllowLocalInSlientDrop { get; set; }

        /// <summary>
        /// Enable/disable IPv6 address probe through Multicast. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipv6AllowMulticastProbe")]
        public Input<string>? Ipv6AllowMulticastProbe { get; set; }

        /// <summary>
        /// Disable to prevent IPv6 traffic with same local ingress and egress interface from being forwarded without policy check. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipv6AllowTrafficRedirect")]
        public Input<string>? Ipv6AllowTrafficRedirect { get; set; }

        /// <summary>
        /// Configure CPU IRQ time accounting mode. Valid values: `auto`, `force`.
        /// </summary>
        [Input("irqTimeAccounting")]
        public Input<string>? IrqTimeAccounting { get; set; }

        /// <summary>
        /// GUI display language. Valid values: `english`, `french`, `spanish`, `portuguese`, `japanese`, `trach`, `simch`, `korean`.
        /// </summary>
        [Input("language")]
        public Input<string>? Language { get; set; }

        /// <summary>
        /// Global timeout for connections with remote LDAP servers in milliseconds (1 - 300000, default 500).
        /// </summary>
        [Input("ldapconntimeout")]
        public Input<int>? Ldapconntimeout { get; set; }

        /// <summary>
        /// Enable/disable Link Layer Discovery Protocol (LLDP) reception. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("lldpReception")]
        public Input<string>? LldpReception { get; set; }

        /// <summary>
        /// Enable/disable Link Layer Discovery Protocol (LLDP) transmission. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("lldpTransmission")]
        public Input<string>? LldpTransmission { get; set; }

        /// <summary>
        /// Enable/disable logging of SSL connection events. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("logSslConnection")]
        public Input<string>? LogSslConnection { get; set; }

        /// <summary>
        /// Enable/disable insertion of address UUIDs to traffic logs. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("logUuidAddress")]
        public Input<string>? LogUuidAddress { get; set; }

        /// <summary>
        /// Enable/disable insertion of policy UUIDs to traffic logs. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("logUuidPolicy")]
        public Input<string>? LogUuidPolicy { get; set; }

        /// <summary>
        /// Enable/disable login time recording. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("loginTimestamp")]
        public Input<string>? LoginTimestamp { get; set; }

        /// <summary>
        /// Enable/disable long VDOM name support. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("longVdomName")]
        public Input<string>? LongVdomName { get; set; }

        /// <summary>
        /// Management IP address of this FortiGate. Used to log into this FortiGate from another FortiGate in the Security Fabric.
        /// </summary>
        [Input("managementIp")]
        public Input<string>? ManagementIp { get; set; }

        /// <summary>
        /// Overriding port for management connection (Overrides admin port).
        /// </summary>
        [Input("managementPort")]
        public Input<int>? ManagementPort { get; set; }

        /// <summary>
        /// Enable/disable use of the admin-sport setting for the management port. If disabled, FortiGate will allow user to specify management-port. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("managementPortUseAdminSport")]
        public Input<string>? ManagementPortUseAdminSport { get; set; }

        /// <summary>
        /// Management virtual domain name.
        /// </summary>
        [Input("managementVdom")]
        public Input<string>? ManagementVdom { get; set; }

        /// <summary>
        /// Maximum DLP stat memory (0 - 4294967295).
        /// </summary>
        [Input("maxDlpstatMemory")]
        public Input<int>? MaxDlpstatMemory { get; set; }

        /// <summary>
        /// Maximum number of IP route cache entries (0 - 2147483647).
        /// </summary>
        [Input("maxRouteCacheSize")]
        public Input<int>? MaxRouteCacheSize { get; set; }

        /// <summary>
        /// Enable/disable no modification of multicast TTL. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("mcTtlNotchange")]
        public Input<string>? McTtlNotchange { get; set; }

        /// <summary>
        /// Threshold at which memory usage is considered extreme (new sessions are dropped) (% of total RAM, default = 95).
        /// </summary>
        [Input("memoryUseThresholdExtreme")]
        public Input<int>? MemoryUseThresholdExtreme { get; set; }

        /// <summary>
        /// Threshold at which memory usage forces the FortiGate to exit conserve mode (% of total RAM, default = 82).
        /// </summary>
        [Input("memoryUseThresholdGreen")]
        public Input<int>? MemoryUseThresholdGreen { get; set; }

        /// <summary>
        /// Threshold at which memory usage forces the FortiGate to enter conserve mode (% of total RAM, default = 88).
        /// </summary>
        [Input("memoryUseThresholdRed")]
        public Input<int>? MemoryUseThresholdRed { get; set; }

        /// <summary>
        /// Affinity setting for logging (64-bit hexadecimal value in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Input("miglogAffinity")]
        public Input<string>? MiglogAffinity { get; set; }

        /// <summary>
        /// Number of logging (miglogd) processes to be allowed to run. Higher number can reduce performance; lower number can slow log processing time. No logs will be dropped or lost if the number is changed.
        /// </summary>
        [Input("miglogdChildren")]
        public Input<int>? MiglogdChildren { get; set; }

        /// <summary>
        /// Enforce all login methods to require an additional authentication factor (default = optional). Valid values: `optional`, `mandatory`.
        /// </summary>
        [Input("multiFactorAuthentication")]
        public Input<string>? MultiFactorAuthentication { get; set; }

        /// <summary>
        /// Enable/disable multicast forwarding. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("multicastForward")]
        public Input<string>? MulticastForward { get; set; }

        /// <summary>
        /// Maximum number of NDP table entries (set to 65,536 or higher; if set to 0, kernel holds 65,536 entries).
        /// </summary>
        [Input("ndpMaxEntry")]
        public Input<int>? NdpMaxEntry { get; set; }

        /// <summary>
        /// Enable/disable per-user block/allow list filter. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("perUserBal")]
        public Input<string>? PerUserBal { get; set; }

        /// <summary>
        /// Enable/disable per-user black/white list filter. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("perUserBwl")]
        public Input<string>? PerUserBwl { get; set; }

        /// <summary>
        /// Enable/disable path MTU discovery. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("pmtuDiscovery")]
        public Input<string>? PmtuDiscovery { get; set; }

        /// <summary>
        /// Number of concurrent firewall use logins from the same user (1 - 100, default = 0 means no limit).
        /// </summary>
        [Input("policyAuthConcurrent")]
        public Input<int>? PolicyAuthConcurrent { get; set; }

        /// <summary>
        /// Enable/disable displaying the administrator access disclaimer message after an administrator successfully logs in. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("postLoginBanner")]
        public Input<string>? PostLoginBanner { get; set; }

        /// <summary>
        /// Enable/disable displaying the administrator access disclaimer message on the login page before an administrator logs in. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("preLoginBanner")]
        public Input<string>? PreLoginBanner { get; set; }

        /// <summary>
        /// Enable/disable private data encryption using an AES 128-bit key. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("privateDataEncryption")]
        public Input<string>? PrivateDataEncryption { get; set; }

        /// <summary>
        /// Enable/disable authenticated users lifetime control.  This is a cap on the total time a proxy user can be authenticated for after which re-authentication will take place. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("proxyAuthLifetime")]
        public Input<string>? ProxyAuthLifetime { get; set; }

        /// <summary>
        /// Lifetime timeout in minutes for authenticated users (5  - 65535 min, default=480 (8 hours)).
        /// </summary>
        [Input("proxyAuthLifetimeTimeout")]
        public Input<int>? ProxyAuthLifetimeTimeout { get; set; }

        /// <summary>
        /// Authentication timeout in minutes for authenticated users (1 - 300 min, default = 10).
        /// </summary>
        [Input("proxyAuthTimeout")]
        public Input<int>? ProxyAuthTimeout { get; set; }

        /// <summary>
        /// Enable/disable using management VDOM to send requests. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("proxyCertUseMgmtVdom")]
        public Input<string>? ProxyCertUseMgmtVdom { get; set; }

        /// <summary>
        /// Enable/disable using content processor (CP8 or CP9) hardware acceleration to encrypt and decrypt IPsec and SSL traffic. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("proxyCipherHardwareAcceleration")]
        public Input<string>? ProxyCipherHardwareAcceleration { get; set; }

        /// <summary>
        /// Enable/disable email proxy hardware acceleration. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("proxyHardwareAcceleration")]
        public Input<string>? ProxyHardwareAcceleration { get; set; }

        /// <summary>
        /// Enable/disable using the content processor to accelerate KXP traffic. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("proxyKxpHardwareAcceleration")]
        public Input<string>? ProxyKxpHardwareAcceleration { get; set; }

        /// <summary>
        /// Control if users must re-authenticate after a session is closed, traffic has been idle, or from the point at which the user was first created. Valid values: `session`, `traffic`, `absolute`.
        /// </summary>
        [Input("proxyReAuthenticationMode")]
        public Input<string>? ProxyReAuthenticationMode { get; set; }

        /// <summary>
        /// Enable/disable use of the maximum memory usage on the FortiGate unit's proxy processing of resources, such as block lists, allow lists, and external resources. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("proxyResourceMode")]
        public Input<string>? ProxyResourceMode { get; set; }

        /// <summary>
        /// Proxy worker count.
        /// </summary>
        [Input("proxyWorkerCount")]
        public Input<int>? ProxyWorkerCount { get; set; }

        /// <summary>
        /// RADIUS service port number.
        /// </summary>
        [Input("radiusPort")]
        public Input<int>? RadiusPort { get; set; }

        /// <summary>
        /// Enable/disable reboot of system upon restoring configuration. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("rebootUponConfigRestore")]
        public Input<string>? RebootUponConfigRestore { get; set; }

        /// <summary>
        /// Statistics refresh interval in GUI.
        /// </summary>
        [Input("refresh")]
        public Input<int>? Refresh { get; set; }

        /// <summary>
        /// Number of seconds that the FortiGate waits for responses from remote RADIUS, LDAP, or TACACS+ authentication servers. (0-300 sec, default = 5, 0 means no timeout).
        /// </summary>
        [Input("remoteauthtimeout")]
        public Input<int>? Remoteauthtimeout { get; set; }

        /// <summary>
        /// Action to perform if the FortiGate receives a TCP packet but cannot find a corresponding session in its session table. NAT/Route mode only. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("resetSessionlessTcp")]
        public Input<string>? ResetSessionlessTcp { get; set; }

        /// <summary>
        /// Daily restart time (hh:mm).
        /// </summary>
        [Input("restartTime")]
        public Input<string>? RestartTime { get; set; }

        /// <summary>
        /// Enable/disable back-up of the latest configuration revision when an administrator logs out of the CLI or GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("revisionBackupOnLogout")]
        public Input<string>? RevisionBackupOnLogout { get; set; }

        /// <summary>
        /// Enable/disable back-up of the latest configuration revision after the firmware is upgraded. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("revisionImageAutoBackup")]
        public Input<string>? RevisionImageAutoBackup { get; set; }

        /// <summary>
        /// Number of scanunits. The range and the default depend on the number of CPUs. Only available on FortiGate units with multiple CPUs.
        /// </summary>
        [Input("scanunitCount")]
        public Input<int>? ScanunitCount { get; set; }

        /// <summary>
        /// Enable/disable the submission of Security Rating results to FortiGuard. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("securityRatingResultSubmission")]
        public Input<string>? SecurityRatingResultSubmission { get; set; }

        /// <summary>
        /// Enable/disable scheduled runs of Security Rating. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("securityRatingRunOnSchedule")]
        public Input<string>? SecurityRatingRunOnSchedule { get; set; }

        /// <summary>
        /// Enable/disable sending of path maximum transmission unit (PMTU) - ICMP destination unreachable packet and to support PMTUD protocol on your network to reduce fragmentation of packets. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sendPmtuIcmp")]
        public Input<string>? SendPmtuIcmp { get; set; }

        /// <summary>
        /// Enable/disable the ability to change the static NAT route. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("snatRouteChange")]
        public Input<string>? SnatRouteChange { get; set; }

        /// <summary>
        /// Enable/disable IPS detection of HIBUN format files when using Data Leak Protection. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("specialFile23Support")]
        public Input<string>? SpecialFile23Support { get; set; }

        /// <summary>
        /// Enable/disable speed test server. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("speedtestServer")]
        public Input<string>? SpeedtestServer { get; set; }

        /// <summary>
        /// Split port(s) to multiple 10Gbps ports.
        /// </summary>
        [Input("splitPort")]
        public Input<string>? SplitPort { get; set; }

        /// <summary>
        /// Date within a month to run ssd trim.
        /// </summary>
        [Input("ssdTrimDate")]
        public Input<int>? SsdTrimDate { get; set; }

        /// <summary>
        /// How often to run SSD Trim (default = weekly). SSD Trim prevents SSD drive data loss by finding and isolating errors. Valid values: `never`, `hourly`, `daily`, `weekly`, `monthly`.
        /// </summary>
        [Input("ssdTrimFreq")]
        public Input<string>? SsdTrimFreq { get; set; }

        /// <summary>
        /// Hour of the day on which to run SSD Trim (0 - 23, default = 1).
        /// </summary>
        [Input("ssdTrimHour")]
        public Input<int>? SsdTrimHour { get; set; }

        /// <summary>
        /// Minute of the hour on which to run SSD Trim (0 - 59, 60 for random).
        /// </summary>
        [Input("ssdTrimMin")]
        public Input<int>? SsdTrimMin { get; set; }

        /// <summary>
        /// Day of week to run SSD Trim. Valid values: `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.
        /// </summary>
        [Input("ssdTrimWeekday")]
        public Input<string>? SsdTrimWeekday { get; set; }

        /// <summary>
        /// Enable/disable CBC cipher for SSH access. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sshCbcCipher")]
        public Input<string>? SshCbcCipher { get; set; }

        /// <summary>
        /// Select one or more SSH ciphers. Valid values: `chacha20-poly1305@openssh.com`, `aes128-ctr`, `aes192-ctr`, `aes256-ctr`, `arcfour256`, `arcfour128`, `aes128-cbc`, `3des-cbc`, `blowfish-cbc`, `cast128-cbc`, `aes192-cbc`, `aes256-cbc`, `arcfour`, `rijndael-cbc@lysator.liu.se`, `aes128-gcm@openssh.com`, `aes256-gcm@openssh.com`.
        /// </summary>
        [Input("sshEncAlgo")]
        public Input<string>? SshEncAlgo { get; set; }

        /// <summary>
        /// Enable/disable HMAC-MD5 for SSH access. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sshHmacMd5")]
        public Input<string>? SshHmacMd5 { get; set; }

        /// <summary>
        /// Select one or more SSH kex algorithms. Valid values: `diffie-hellman-group1-sha1`, `diffie-hellman-group14-sha1`, `diffie-hellman-group-exchange-sha1`, `diffie-hellman-group-exchange-sha256`, `curve25519-sha256@libssh.org`, `ecdh-sha2-nistp256`, `ecdh-sha2-nistp384`, `ecdh-sha2-nistp521`.
        /// </summary>
        [Input("sshKexAlgo")]
        public Input<string>? SshKexAlgo { get; set; }

        /// <summary>
        /// Enable/disable SHA1 key exchange for SSH access. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sshKexSha1")]
        public Input<string>? SshKexSha1 { get; set; }

        /// <summary>
        /// Select one or more SSH MAC algorithms. Valid values: `hmac-md5`, `hmac-md5-etm@openssh.com`, `hmac-md5-96`, `hmac-md5-96-etm@openssh.com`, `hmac-sha1`, `hmac-sha1-etm@openssh.com`, `hmac-sha2-256`, `hmac-sha2-256-etm@openssh.com`, `hmac-sha2-512`, `hmac-sha2-512-etm@openssh.com`, `hmac-ripemd160`, `hmac-ripemd160@openssh.com`, `hmac-ripemd160-etm@openssh.com`, `umac-64@openssh.com`, `umac-128@openssh.com`, `umac-64-etm@openssh.com`, `umac-128-etm@openssh.com`.
        /// </summary>
        [Input("sshMacAlgo")]
        public Input<string>? SshMacAlgo { get; set; }

        /// <summary>
        /// Enable/disable HMAC-SHA1 and UMAC-64-ETM for SSH access. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sshMacWeak")]
        public Input<string>? SshMacWeak { get; set; }

        /// <summary>
        /// Minimum supported protocol version for SSL/TLS connections (default = TLSv1.2).
        /// </summary>
        [Input("sslMinProtoVersion")]
        public Input<string>? SslMinProtoVersion { get; set; }

        /// <summary>
        /// Enable/disable static key ciphers in SSL/TLS connections (e.g. AES128-SHA, AES256-SHA, AES128-SHA256, AES256-SHA256). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sslStaticKeyCiphers")]
        public Input<string>? SslStaticKeyCiphers { get; set; }

        /// <summary>
        /// Enable/disable SSL VPN hardware acceleration. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sslvpnCipherHardwareAcceleration")]
        public Input<string>? SslvpnCipherHardwareAcceleration { get; set; }

        /// <summary>
        /// Enable/disable verification of EMS serial number in SSL-VPN connection. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sslvpnEmsSnCheck")]
        public Input<string>? SslvpnEmsSnCheck { get; set; }

        /// <summary>
        /// Enable/disable SSL VPN KXP hardware acceleration. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sslvpnKxpHardwareAcceleration")]
        public Input<string>? SslvpnKxpHardwareAcceleration { get; set; }

        /// <summary>
        /// Maximum number of SSL VPN processes. Upper limit for this value is the number of CPUs and depends on the model.
        /// </summary>
        [Input("sslvpnMaxWorkerCount")]
        public Input<int>? SslvpnMaxWorkerCount { get; set; }

        /// <summary>
        /// Enable/disable checking browser's plugin version by SSL VPN. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sslvpnPluginVersionCheck")]
        public Input<string>? SslvpnPluginVersionCheck { get; set; }

        /// <summary>
        /// Enable to check the session against the original policy when revalidating. This can prevent dropping of redirected sessions when web-filtering and authentication are enabled together. If this option is enabled, the FortiGate unit deletes a session if a routing or policy change causes the session to no longer match the policy that originally allowed the session. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("strictDirtySessionCheck")]
        public Input<string>? StrictDirtySessionCheck { get; set; }

        /// <summary>
        /// Enable to use strong encryption and only allow strong ciphers (AES, 3DES) and digest (SHA1) for HTTPS/SSH/TLS/SSL functions. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("strongCrypto")]
        public Input<string>? StrongCrypto { get; set; }

        /// <summary>
        /// Enable/disable switch controller feature. Switch controller allows you to manage FortiSwitch from the FortiGate itself. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("switchController")]
        public Input<string>? SwitchController { get; set; }

        /// <summary>
        /// Enable reserved network subnet for controlled switches. This is available when the switch controller is enabled.
        /// </summary>
        [Input("switchControllerReservedNetwork")]
        public Input<string>? SwitchControllerReservedNetwork { get; set; }

        /// <summary>
        /// Time in minutes between updates of performance statistics logging. (1 - 15 min, default = 5, 0 = disabled).
        /// </summary>
        [Input("sysPerfLogInterval")]
        public Input<int>? SysPerfLogInterval { get; set; }

        /// <summary>
        /// Number of seconds the FortiGate unit should wait to close a session after one peer has sent a FIN packet but the other has not responded (1 - 86400 sec (1 day), default = 120).
        /// </summary>
        [Input("tcpHalfcloseTimer")]
        public Input<int>? TcpHalfcloseTimer { get; set; }

        /// <summary>
        /// Number of seconds the FortiGate unit should wait to close a session after one peer has sent an open session packet but the other has not responded (1 - 86400 sec (1 day), default = 10).
        /// </summary>
        [Input("tcpHalfopenTimer")]
        public Input<int>? TcpHalfopenTimer { get; set; }

        /// <summary>
        /// Enable SACK, timestamp and MSS TCP options. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("tcpOption")]
        public Input<string>? TcpOption { get; set; }

        /// <summary>
        /// Length of the TCP CLOSE state in seconds (5 - 300 sec, default = 5).
        /// </summary>
        [Input("tcpRstTimer")]
        public Input<int>? TcpRstTimer { get; set; }

        /// <summary>
        /// Length of the TCP TIME-WAIT state in seconds.
        /// </summary>
        [Input("tcpTimewaitTimer")]
        public Input<int>? TcpTimewaitTimer { get; set; }

        /// <summary>
        /// Enable/disable TFTP. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("tftp")]
        public Input<string>? Tftp { get; set; }

        /// <summary>
        /// Number corresponding to your time zone from 00 to 86. Enter set timezone ? to view the list of time zones and the numbers that represent them. Valid values: `01`, `02`, `03`, `04`, `05`, `81`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `74`, `14`, `77`, `15`, `87`, `16`, `17`, `18`, `19`, `20`, `75`, `21`, `22`, `23`, `24`, `80`, `79`, `25`, `26`, `27`, `28`, `78`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `36`, `37`, `38`, `83`, `84`, `40`, `85`, `41`, `42`, `43`, `39`, `44`, `46`, `47`, `51`, `48`, `45`, `49`, `50`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `59`, `60`, `62`, `63`, `61`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `00`, `82`, `73`, `86`, `76`.
        /// </summary>
        [Input("timezone")]
        public Input<string>? Timezone { get; set; }

        /// <summary>
        /// Enable/disable skip policy check and allow multicast through. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("tpMcSkipPolicy")]
        public Input<string>? TpMcSkipPolicy { get; set; }

        /// <summary>
        /// Choose Type of Service (ToS) or Differentiated Services Code Point (DSCP) for traffic prioritization in traffic shaping. Valid values: `tos`, `dscp`.
        /// </summary>
        [Input("trafficPriority")]
        public Input<string>? TrafficPriority { get; set; }

        /// <summary>
        /// Default system-wide level of priority for traffic prioritization. Valid values: `low`, `medium`, `high`.
        /// </summary>
        [Input("trafficPriorityLevel")]
        public Input<string>? TrafficPriorityLevel { get; set; }

        /// <summary>
        /// Email-based two-factor authentication session timeout (30 - 300 seconds (5 minutes), default = 60).
        /// </summary>
        [Input("twoFactorEmailExpiry")]
        public Input<int>? TwoFactorEmailExpiry { get; set; }

        /// <summary>
        /// FortiAuthenticator token authentication session timeout (10 - 3600 seconds (1 hour), default = 60).
        /// </summary>
        [Input("twoFactorFacExpiry")]
        public Input<int>? TwoFactorFacExpiry { get; set; }

        /// <summary>
        /// FortiToken authentication session timeout (60 - 600 sec (10 minutes), default = 60).
        /// </summary>
        [Input("twoFactorFtkExpiry")]
        public Input<int>? TwoFactorFtkExpiry { get; set; }

        /// <summary>
        /// FortiToken Mobile session timeout (1 - 168 hours (7 days), default = 72).
        /// </summary>
        [Input("twoFactorFtmExpiry")]
        public Input<int>? TwoFactorFtmExpiry { get; set; }

        /// <summary>
        /// SMS-based two-factor authentication session timeout (30 - 300 sec, default = 60).
        /// </summary>
        [Input("twoFactorSmsExpiry")]
        public Input<int>? TwoFactorSmsExpiry { get; set; }

        /// <summary>
        /// UDP connection session timeout. This command can be useful in managing CPU and memory resources (1 - 86400 seconds (1 day), default = 60).
        /// </summary>
        [Input("udpIdleTimer")]
        public Input<int>? UdpIdleTimer { get; set; }

        /// <summary>
        /// URL filter CPU affinity.
        /// </summary>
        [Input("urlFilterAffinity")]
        public Input<string>? UrlFilterAffinity { get; set; }

        /// <summary>
        /// URL filter daemon count.
        /// </summary>
        [Input("urlFilterCount")]
        public Input<int>? UrlFilterCount { get; set; }

        /// <summary>
        /// Maximum number of devices allowed in user device store.
        /// </summary>
        [Input("userDeviceStoreMaxDevices")]
        public Input<int>? UserDeviceStoreMaxDevices { get; set; }

        /// <summary>
        /// Maximum unified memory allowed in user device store.
        /// </summary>
        [Input("userDeviceStoreMaxUnifiedMem")]
        public Input<int>? UserDeviceStoreMaxUnifiedMem { get; set; }

        /// <summary>
        /// Maximum number of users allowed in user device store.
        /// </summary>
        [Input("userDeviceStoreMaxUsers")]
        public Input<int>? UserDeviceStoreMaxUsers { get; set; }

        /// <summary>
        /// Certificate to use for https user authentication.
        /// </summary>
        [Input("userServerCert")]
        public Input<string>? UserServerCert { get; set; }

        /// <summary>
        /// Enable/disable support for multiple virtual domains (VDOMs). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("vdomAdmin")]
        public Input<string>? VdomAdmin { get; set; }

        /// <summary>
        /// Enable/disable support for split/multiple virtual domains (VDOMs). Valid values: `no-vdom`, `split-vdom`, `multi-vdom`.
        /// </summary>
        [Input("vdomMode")]
        public Input<string>? VdomMode { get; set; }

        /// <summary>
        /// Specifies the vdom to which the resource 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; }

        /// <summary>
        /// Controls the number of ARPs that the FortiGate sends for a Virtual IP (VIP) address range. Valid values: `unlimited`, `restricted`.
        /// </summary>
        [Input("vipArpRange")]
        public Input<string>? VipArpRange { get; set; }

        /// <summary>
        /// Maximum number of virtual server processes to create. The maximum is the number of CPU cores. This is not available on single-core CPUs.
        /// </summary>
        [Input("virtualServerCount")]
        public Input<int>? VirtualServerCount { get; set; }

        /// <summary>
        /// Enable/disable virtual server hardware acceleration. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("virtualServerHardwareAcceleration")]
        public Input<string>? VirtualServerHardwareAcceleration { get; set; }

        /// <summary>
        /// Enable/disable virtual switch VLAN. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("virtualSwitchVlan")]
        public Input<string>? VirtualSwitchVlan { get; set; }

        /// <summary>
        /// Affinity setting for wad (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Input("wadAffinity")]
        public Input<string>? WadAffinity { get; set; }

        /// <summary>
        /// Number of concurrent WAD-cache-service object-cache processes.
        /// </summary>
        [Input("wadCsvcCsCount")]
        public Input<int>? WadCsvcCsCount { get; set; }

        /// <summary>
        /// Number of concurrent WAD-cache-service byte-cache processes.
        /// </summary>
        [Input("wadCsvcDbCount")]
        public Input<int>? WadCsvcDbCount { get; set; }

        /// <summary>
        /// Minimum percentage change in system memory usage detected by the wad daemon prior to adjusting TCP window size for any active connection.
        /// </summary>
        [Input("wadMemoryChangeGranularity")]
        public Input<int>? WadMemoryChangeGranularity { get; set; }

        /// <summary>
        /// Enable/disable dispatching traffic to WAD workers based on source affinity. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("wadSourceAffinity")]
        public Input<string>? WadSourceAffinity { get; set; }

        /// <summary>
        /// Number of explicit proxy WAN optimization daemon (WAD) processes. By default WAN optimization, explicit proxy, and web caching is handled by all of the CPU cores in a FortiGate unit.
        /// </summary>
        [Input("wadWorkerCount")]
        public Input<int>? WadWorkerCount { get; set; }

        /// <summary>
        /// CA certificate that verifies the WiFi certificate.
        /// </summary>
        [Input("wifiCaCertificate")]
        public Input<string>? WifiCaCertificate { get; set; }

        /// <summary>
        /// Certificate to use for WiFi authentication.
        /// </summary>
        [Input("wifiCertificate")]
        public Input<string>? WifiCertificate { get; set; }

        /// <summary>
        /// Enable/disable comparability with WiMAX 4G USB devices. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("wimax4gUsb")]
        public Input<string>? Wimax4gUsb { get; set; }

        /// <summary>
        /// Enable/disable the wireless controller feature to use the FortiGate unit to manage FortiAPs. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("wirelessController")]
        public Input<string>? WirelessController { get; set; }

        /// <summary>
        /// Port used for the control channel in wireless controller mode (wireless-mode is ac). The data channel port is the control channel port number plus one (1024 - 49150, default = 5246).
        /// </summary>
        [Input("wirelessControllerPort")]
        public Input<int>? WirelessControllerPort { get; set; }

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

    public sealed class SystemGlobalState : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// Enable/disable concurrent administrator logins. (Use policy-auth-concurrent for firewall authenticated users.) Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminConcurrent")]
        public Input<string>? AdminConcurrent { get; set; }

        /// <summary>
        /// Console login timeout that overrides the admintimeout value. (15 - 300 seconds) (15 seconds to 5 minutes). 0 the default, disables this timeout.
        /// </summary>
        [Input("adminConsoleTimeout")]
        public Input<int>? AdminConsoleTimeout { get; set; }

        /// <summary>
        /// Enable/disable FortiCloud admin login via SSO. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminForticloudSsoLogin")]
        public Input<string>? AdminForticloudSsoLogin { get; set; }

        /// <summary>
        /// Administrative host for HTTP and HTTPS. When set, will be used in lieu of the client's Host header for any redirection.
        /// </summary>
        [Input("adminHost")]
        public Input<string>? AdminHost { get; set; }

        /// <summary>
        /// HTTPS Strict-Transport-Security header max-age in seconds. A value of 0 will reset any HSTS records in the browser.When admin-https-redirect is disabled the header max-age will be 0.
        /// </summary>
        [Input("adminHstsMaxAge")]
        public Input<int>? AdminHstsMaxAge { get; set; }

        /// <summary>
        /// Enable/disable admin login method. Enable to force administrators to provide a valid certificate to log in if PKI is enabled. Disable to allow administrators to log in with a certificate or password. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminHttpsPkiRequired")]
        public Input<string>? AdminHttpsPkiRequired { get; set; }

        /// <summary>
        /// Enable/disable redirection of HTTP administration access to HTTPS. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminHttpsRedirect")]
        public Input<string>? AdminHttpsRedirect { get; set; }

        /// <summary>
        /// Select one or more cipher technologies that cannot be used in GUI HTTPS negotiations. Only applies to TLS 1.2 and below. Valid values: `RSA`, `DHE`, `ECDHE`, `DSS`, `ECDSA`, `AES`, `AESGCM`, `CAMELLIA`, `3DES`, `SHA1`, `SHA256`, `SHA384`, `STATIC`, `CHACHA20`, `ARIA`, `AESCCM`.
        /// </summary>
        [Input("adminHttpsSslBannedCiphers")]
        public Input<string>? AdminHttpsSslBannedCiphers { get; set; }

        /// <summary>
        /// Select one or more TLS 1.3 ciphersuites to enable. Does not affect ciphers in TLS 1.2 and below. At least one must be enabled. To disable all, remove TLS1.3 from admin-https-ssl-versions. Valid values: `TLS-AES-128-GCM-SHA256`, `TLS-AES-256-GCM-SHA384`, `TLS-CHACHA20-POLY1305-SHA256`, `TLS-AES-128-CCM-SHA256`, `TLS-AES-128-CCM-8-SHA256`.
        /// </summary>
        [Input("adminHttpsSslCiphersuites")]
        public Input<string>? AdminHttpsSslCiphersuites { get; set; }

        /// <summary>
        /// Allowed TLS versions for web administration.
        /// </summary>
        [Input("adminHttpsSslVersions")]
        public Input<string>? AdminHttpsSslVersions { get; set; }

        /// <summary>
        /// Amount of time in seconds that an administrator account is locked out after reaching the admin-lockout-threshold for repeated failed login attempts.
        /// </summary>
        [Input("adminLockoutDuration")]
        public Input<int>? AdminLockoutDuration { get; set; }

        /// <summary>
        /// Number of failed login attempts before an administrator account is locked out for the admin-lockout-duration.
        /// </summary>
        [Input("adminLockoutThreshold")]
        public Input<int>? AdminLockoutThreshold { get; set; }

        /// <summary>
        /// Maximum number of administrators who can be logged in at the same time (1 - 100, default = 100)
        /// </summary>
        [Input("adminLoginMax")]
        public Input<int>? AdminLoginMax { get; set; }

        /// <summary>
        /// Enable/disable maintainer administrator login. When enabled, the maintainer account can be used to log in from the console after a hard reboot. The password is "bcpb" followed by the FortiGate unit serial number. You have limited time to complete this login. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminMaintainer")]
        public Input<string>? AdminMaintainer { get; set; }

        /// <summary>
        /// Administrative access port for HTTP. (1 - 65535, default = 80).
        /// </summary>
        [Input("adminPort")]
        public Input<int>? AdminPort { get; set; }

        /// <summary>
        /// Enable/disable local admin authentication restriction when remote authenticator is up and running. (default = disable) Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminRestrictLocal")]
        public Input<string>? AdminRestrictLocal { get; set; }

        /// <summary>
        /// Enable/disable using SCP to download the system configuration. You can use SCP as an alternative method for backing up the configuration. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminScp")]
        public Input<string>? AdminScp { get; set; }

        /// <summary>
        /// Server certificate that the FortiGate uses for HTTPS administrative connections.
        /// </summary>
        [Input("adminServerCert")]
        public Input<string>? AdminServerCert { get; set; }

        /// <summary>
        /// Administrative access port for HTTPS. (1 - 65535, default = 443).
        /// </summary>
        [Input("adminSport")]
        public Input<int>? AdminSport { get; set; }

        /// <summary>
        /// Maximum time in seconds permitted between making an SSH connection to the FortiGate unit and authenticating (10 - 3600 sec (1 hour), default 120).
        /// </summary>
        [Input("adminSshGraceTime")]
        public Input<int>? AdminSshGraceTime { get; set; }

        /// <summary>
        /// Enable/disable password authentication for SSH admin access. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminSshPassword")]
        public Input<string>? AdminSshPassword { get; set; }

        /// <summary>
        /// Administrative access port for SSH. (1 - 65535, default = 22).
        /// </summary>
        [Input("adminSshPort")]
        public Input<int>? AdminSshPort { get; set; }

        /// <summary>
        /// Enable/disable SSH v1 compatibility. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminSshV1")]
        public Input<string>? AdminSshV1 { get; set; }

        /// <summary>
        /// Enable/disable TELNET service. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("adminTelnet")]
        public Input<string>? AdminTelnet { get; set; }

        /// <summary>
        /// Administrative access port for TELNET. (1 - 65535, default = 23).
        /// </summary>
        [Input("adminTelnetPort")]
        public Input<int>? AdminTelnetPort { get; set; }

        /// <summary>
        /// Number of minutes before an idle administrator session times out (5 - 480 minutes (8 hours), default = 5). A shorter idle timeout is more secure.
        /// </summary>
        [Input("admintimeout")]
        public Input<int>? Admintimeout { get; set; }

        /// <summary>
        /// Alias for your FortiGate unit.
        /// </summary>
        [Input("alias")]
        public Input<string>? Alias { get; set; }

        /// <summary>
        /// Disable to allow traffic to be routed back on a different interface. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("allowTrafficRedirect")]
        public Input<string>? AllowTrafficRedirect { get; set; }

        /// <summary>
        /// Level of checking for packet replay and TCP sequence checking. Valid values: `disable`, `loose`, `strict`.
        /// </summary>
        [Input("antiReplay")]
        public Input<string>? AntiReplay { get; set; }

        /// <summary>
        /// Maximum number of dynamically learned MAC addresses that can be added to the ARP table (131072 - 2147483647, default = 131072).
        /// </summary>
        [Input("arpMaxEntry")]
        public Input<int>? ArpMaxEntry { get; set; }

        /// <summary>
        /// Enable/disable asymmetric route. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("asymroute")]
        public Input<string>? Asymroute { get; set; }

        /// <summary>
        /// Server certificate that the FortiGate uses for HTTPS firewall authentication connections.
        /// </summary>
        [Input("authCert")]
        public Input<string>? AuthCert { get; set; }

        /// <summary>
        /// User authentication HTTP port. (1 - 65535, default = 80).
        /// </summary>
        [Input("authHttpPort")]
        public Input<int>? AuthHttpPort { get; set; }

        /// <summary>
        /// User authentication HTTPS port. (1 - 65535, default = 443).
        /// </summary>
        [Input("authHttpsPort")]
        public Input<int>? AuthHttpsPort { get; set; }

        /// <summary>
        /// User IKE SAML authentication port (0 - 65535, default = 1001).
        /// </summary>
        [Input("authIkeSamlPort")]
        public Input<int>? AuthIkeSamlPort { get; set; }

        /// <summary>
        /// Enable to prevent user authentication sessions from timing out when idle. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("authKeepalive")]
        public Input<string>? AuthKeepalive { get; set; }

        /// <summary>
        /// Action to take when the number of allowed user authenticated sessions is reached. Valid values: `block-new`, `logout-inactive`.
        /// </summary>
        [Input("authSessionLimit")]
        public Input<string>? AuthSessionLimit { get; set; }

        /// <summary>
        /// Enable/disable automatic authorization of dedicated Fortinet extension devices. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("autoAuthExtensionDevice")]
        public Input<string>? AutoAuthExtensionDevice { get; set; }

        /// <summary>
        /// Enable/disable automatic log partition check after ungraceful shutdown. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("autorunLogFsck")]
        public Input<string>? AutorunLogFsck { get; set; }

        /// <summary>
        /// Affinity setting for AV scanning (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Input("avAffinity")]
        public Input<string>? AvAffinity { get; set; }

        /// <summary>
        /// Set the action to take if the FortiGate is running low on memory or the proxy connection limit has been reached. Valid values: `pass`, `off`, `one-shot`.
        /// </summary>
        [Input("avFailopen")]
        public Input<string>? AvFailopen { get; set; }

        /// <summary>
        /// When enabled and a proxy for a protocol runs out of room in its session table, that protocol goes into failopen mode and enacts the action specified by av-failopen. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("avFailopenSession")]
        public Input<string>? AvFailopenSession { get; set; }

        /// <summary>
        /// Enable/disable batch mode, allowing you to enter a series of CLI commands that will execute as a group once they are loaded. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("batchCmdb")]
        public Input<string>? BatchCmdb { get; set; }

        /// <summary>
        /// Duration in seconds for blocked sessions (1 - 300 sec  (5 minutes), default = 30).
        /// </summary>
        [Input("blockSessionTimer")]
        public Input<int>? BlockSessionTimer { get; set; }

        /// <summary>
        /// Maximum number of bridge forwarding database (FDB) entries.
        /// </summary>
        [Input("brFdbMaxEntry")]
        public Input<int>? BrFdbMaxEntry { get; set; }

        /// <summary>
        /// Maximum number of certificates that can be traversed in a certificate chain.
        /// </summary>
        [Input("certChainMax")]
        public Input<int>? CertChainMax { get; set; }

        /// <summary>
        /// Time-out for reverting to the last saved configuration.
        /// </summary>
        [Input("cfgRevertTimeout")]
        public Input<int>? CfgRevertTimeout { get; set; }

        /// <summary>
        /// Configuration file save mode for CLI changes. Valid values: `automatic`, `manual`, `revert`.
        /// </summary>
        [Input("cfgSave")]
        public Input<string>? CfgSave { get; set; }

        /// <summary>
        /// Level of checking performed on protocol headers. Strict checking is more thorough but may affect performance. Loose checking is ok in most cases. Valid values: `loose`, `strict`.
        /// </summary>
        [Input("checkProtocolHeader")]
        public Input<string>? CheckProtocolHeader { get; set; }

        /// <summary>
        /// Configure ICMP error message verification. You can either apply strict RST range checking or disable it. Valid values: `strict`, `disable`.
        /// </summary>
        [Input("checkResetRange")]
        public Input<string>? CheckResetRange { get; set; }

        /// <summary>
        /// Enable/disable CLI audit log. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("cliAuditLog")]
        public Input<string>? CliAuditLog { get; set; }

        /// <summary>
        /// Enable/disable all cloud communication. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("cloudCommunication")]
        public Input<string>? CloudCommunication { get; set; }

        /// <summary>
        /// Enable/disable requiring administrators to have a client certificate to log into the GUI using HTTPS. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("cltCertReq")]
        public Input<string>? CltCertReq { get; set; }

        /// <summary>
        /// Affinity setting for cmdbsvr (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Input("cmdbsvrAffinity")]
        public Input<string>? CmdbsvrAffinity { get; set; }

        /// <summary>
        /// Enable/disable global PCI DSS compliance check. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("complianceCheck")]
        public Input<string>? ComplianceCheck { get; set; }

        /// <summary>
        /// Time of day to run scheduled PCI DSS compliance checks.
        /// </summary>
        [Input("complianceCheckTime")]
        public Input<string>? ComplianceCheckTime { get; set; }

        /// <summary>
        /// Threshold at which CPU usage is reported. (% of total CPU, default = 90).
        /// </summary>
        [Input("cpuUseThreshold")]
        public Input<int>? CpuUseThreshold { get; set; }

        /// <summary>
        /// Enable/disable the CA attribute in certificates. Some CA servers reject CSRs that have the CA attribute. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("csrCaAttribute")]
        public Input<string>? CsrCaAttribute { get; set; }

        /// <summary>
        /// Enable/disable daily restart of FortiGate unit. Use the restart-time option to set the time of day for the restart. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("dailyRestart")]
        public Input<string>? DailyRestart { get; set; }

        /// <summary>
        /// Default service source port range. (default=1-65535)
        /// </summary>
        [Input("defaultServiceSourcePort")]
        public Input<string>? DefaultServiceSourcePort { get; set; }

        /// <summary>
        /// Number of seconds to passively scan a device before performing an active scan. (20 - 3600 sec, (20 sec to 1 hour), default = 90).
        /// </summary>
        [Input("deviceIdentificationActiveScanDelay")]
        public Input<int>? DeviceIdentificationActiveScanDelay { get; set; }

        /// <summary>
        /// Time in seconds that a device must be idle to automatically log the device user out. (30 - 31536000 sec (30 sec to 1 year), default = 300).
        /// </summary>
        [Input("deviceIdleTimeout")]
        public Input<int>? DeviceIdleTimeout { get; set; }

        /// <summary>
        /// Number of bits to use in the Diffie-Hellman exchange for HTTPS/SSH protocols. Valid values: `1024`, `1536`, `2048`, `3072`, `4096`, `6144`, `8192`.
        /// </summary>
        [Input("dhParams")]
        public Input<string>? DhParams { get; set; }

        /// <summary>
        /// DNS proxy worker count.
        /// </summary>
        [Input("dnsproxyWorkerCount")]
        public Input<int>? DnsproxyWorkerCount { get; set; }

        /// <summary>
        /// Enable/disable daylight saving time. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("dst")]
        public Input<string>? Dst { get; set; }

        /// <summary>
        /// Enable/disable early TCP NPU session. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("earlyTcpNpuSession")]
        public Input<string>? EarlyTcpNpuSession { get; set; }

        /// <summary>
        /// Enable/disable edit new VDOM prompt. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("editVdomPrompt")]
        public Input<string>? EditVdomPrompt { get; set; }

        /// <summary>
        /// Enable/disable access to the FortiGuard network for non-compliant endpoints. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("endpointControlFdsAccess")]
        public Input<string>? EndpointControlFdsAccess { get; set; }

        /// <summary>
        /// Endpoint control portal port (1 - 65535).
        /// </summary>
        [Input("endpointControlPortalPort")]
        public Input<int>? EndpointControlPortalPort { get; set; }

        /// <summary>
        /// Configure reserved network subnet for managed LAN extension FortiExtenders. This is available when the extender daemon is running.
        /// </summary>
        [Input("extenderControllerReservedNetwork")]
        public Input<string>? ExtenderControllerReservedNetwork { get; set; }

        /// <summary>
        /// Fail-time for server lost.
        /// </summary>
        [Input("failtime")]
        public Input<int>? Failtime { get; set; }

        /// <summary>
        /// Maximum disk buffer size to temporarily store logs destined for FortiAnalyzer. To be used in the event that FortiAnalyzer is unavailalble.
        /// </summary>
        [Input("fazDiskBufferSize")]
        public Input<int>? FazDiskBufferSize { get; set; }

        /// <summary>
        /// Enable/disable sending IPS, Application Control, and AntiVirus data to FortiGuard. This data is used to improve FortiGuard services and is not shared with external parties and is protected by Fortinet's privacy policy. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("fdsStatistics")]
        public Input<string>? FdsStatistics { get; set; }

        /// <summary>
        /// FortiGuard statistics collection period in minutes. (1 - 1440 min (1 min to 24 hours), default = 60).
        /// </summary>
        [Input("fdsStatisticsPeriod")]
        public Input<int>? FdsStatisticsPeriod { get; set; }

        /// <summary>
        /// Local UDP port for Forward Error Correction (49152 - 65535).
        /// </summary>
        [Input("fecPort")]
        public Input<int>? FecPort { get; set; }

        /// <summary>
        /// Type of alert to retrieve from FortiGuard. Valid values: `advisory`, `latest-threat`, `latest-virus`, `latest-attack`, `new-antivirus-db`, `new-attack-db`.
        /// </summary>
        [Input("fgdAlertSubscription")]
        public Input<string>? FgdAlertSubscription { get; set; }

        /// <summary>
        /// Enable/disable FortiExtender. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("fortiextender")]
        public Input<string>? Fortiextender { get; set; }

        /// <summary>
        /// FortiExtender data port (1024 - 49150, default = 25246).
        /// </summary>
        [Input("fortiextenderDataPort")]
        public Input<int>? FortiextenderDataPort { get; set; }

        /// <summary>
        /// Enable/disable FortiExtender CAPWAP lockdown. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("fortiextenderDiscoveryLockdown")]
        public Input<string>? FortiextenderDiscoveryLockdown { get; set; }

        /// <summary>
        /// Enable/disable automatic provisioning of latest FortiExtender firmware on authorization. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("fortiextenderProvisionOnAuthorization")]
        public Input<string>? FortiextenderProvisionOnAuthorization { get; set; }

        /// <summary>
        /// Enable/disable FortiExtender VLAN mode. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("fortiextenderVlanMode")]
        public Input<string>? FortiextenderVlanMode { get; set; }

        /// <summary>
        /// Enable/disable integration with the FortiIPAM cloud service. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("fortiipamIntegration")]
        public Input<string>? FortiipamIntegration { get; set; }

        /// <summary>
        /// FortiService port (1 - 65535, default = 8013). Used by FortiClient endpoint compliance. Older versions of FortiClient used a different port.
        /// </summary>
        [Input("fortiservicePort")]
        public Input<int>? FortiservicePort { get; set; }

        /// <summary>
        /// Enable/disable FortiToken Cloud service. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("fortitokenCloud")]
        public Input<string>? FortitokenCloud { get; set; }

        /// <summary>
        /// Enable/disable the GUI warning about using a default hostname Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiAllowDefaultHostname")]
        public Input<string>? GuiAllowDefaultHostname { get; set; }

        /// <summary>
        /// Enable/disable Allow app-detection based SD-WAN. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiAppDetectionSdwan")]
        public Input<string>? GuiAppDetectionSdwan { get; set; }

        /// <summary>
        /// Enable/disable Load GUI static files from a CDN. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiCdnUsage")]
        public Input<string>? GuiCdnUsage { get; set; }

        /// <summary>
        /// Enable/disable the System &gt; Certificate GUI page, allowing you to add and configure certificates from the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiCertificates")]
        public Input<string>? GuiCertificates { get; set; }

        /// <summary>
        /// Enable/disable custom languages in GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiCustomLanguage")]
        public Input<string>? GuiCustomLanguage { get; set; }

        /// <summary>
        /// Default date format used throughout GUI. Valid values: `yyyy/MM/dd`, `dd/MM/yyyy`, `MM/dd/yyyy`, `yyyy-MM-dd`, `dd-MM-yyyy`, `MM-dd-yyyy`.
        /// </summary>
        [Input("guiDateFormat")]
        public Input<string>? GuiDateFormat { get; set; }

        /// <summary>
        /// Source from which the FortiGate GUI uses to display date and time entries. Valid values: `system`, `browser`.
        /// </summary>
        [Input("guiDateTimeSource")]
        public Input<string>? GuiDateTimeSource { get; set; }

        /// <summary>
        /// Add the latitude of the location of this FortiGate to position it on the Threat Map.
        /// </summary>
        [Input("guiDeviceLatitude")]
        public Input<string>? GuiDeviceLatitude { get; set; }

        /// <summary>
        /// Add the longitude of the location of this FortiGate to position it on the Threat Map.
        /// </summary>
        [Input("guiDeviceLongitude")]
        public Input<string>? GuiDeviceLongitude { get; set; }

        /// <summary>
        /// Enable/disable displaying the FortiGate's hostname on the GUI login page. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiDisplayHostname")]
        public Input<string>? GuiDisplayHostname { get; set; }

        /// <summary>
        /// Enable/disable the firmware upgrade warning on GUI setup wizard. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiFirmwareUpgradeSetupWarning")]
        public Input<string>? GuiFirmwareUpgradeSetupWarning { get; set; }

        /// <summary>
        /// Enable/disable the firmware upgrade warning on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiFirmwareUpgradeWarning")]
        public Input<string>? GuiFirmwareUpgradeWarning { get; set; }

        /// <summary>
        /// Enable/disable the FortiCare registration setup warning on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiForticareRegistrationSetupWarning")]
        public Input<string>? GuiForticareRegistrationSetupWarning { get; set; }

        /// <summary>
        /// Enable/disable displaying FortiGate Cloud Sandbox on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiFortigateCloudSandbox")]
        public Input<string>? GuiFortigateCloudSandbox { get; set; }

        /// <summary>
        /// Enable/disable retrieving static GUI resources from FortiGuard. Disabling it will improve GUI load time for air-gapped environments. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiFortiguardResourceFetch")]
        public Input<string>? GuiFortiguardResourceFetch { get; set; }

        /// <summary>
        /// Enable/disable displaying FortiSandbox Cloud on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiFortisandboxCloud")]
        public Input<string>? GuiFortisandboxCloud { get; set; }

        /// <summary>
        /// Enable/disable IPv6 settings on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiIpv6")]
        public Input<string>? GuiIpv6 { get; set; }

        /// <summary>
        /// Number of lines to display per page for web administration.
        /// </summary>
        [Input("guiLinesPerPage")]
        public Input<int>? GuiLinesPerPage { get; set; }

        /// <summary>
        /// Enable/disable Local-out traffic on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiLocalOut")]
        public Input<string>? GuiLocalOut { get; set; }

        /// <summary>
        /// Enable/disable replacement message groups on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiReplacementMessageGroups")]
        public Input<string>? GuiReplacementMessageGroups { get; set; }

        /// <summary>
        /// Enable/disable REST API result caching on FortiGate. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiRestApiCache")]
        public Input<string>? GuiRestApiCache { get; set; }

        /// <summary>
        /// Color scheme for the administration GUI.
        /// </summary>
        [Input("guiTheme")]
        public Input<string>? GuiTheme { get; set; }

        /// <summary>
        /// Enable/disable wireless open security option on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiWirelessOpensecurity")]
        public Input<string>? GuiWirelessOpensecurity { get; set; }

        /// <summary>
        /// Enable/disable Workflow management features on the GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("guiWorkflowManagement")]
        public Input<string>? GuiWorkflowManagement { get; set; }

        /// <summary>
        /// Affinity setting for HA daemons (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Input("haAffinity")]
        public Input<string>? HaAffinity { get; set; }

        /// <summary>
        /// Enable/disable honoring of Don't-Fragment (DF) flag. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("honorDf")]
        public Input<string>? HonorDf { get; set; }

        /// <summary>
        /// FortiGate unit's hostname. Most models will truncate names longer than 24 characters. Some models support hostnames up to 35 characters.
        /// </summary>
        [Input("hostname")]
        public Input<string>? Hostname { get; set; }

        /// <summary>
        /// Maximum number of IGMP memberships (96 - 64000, default = 3200).
        /// </summary>
        [Input("igmpStateLimit")]
        public Input<int>? IgmpStateLimit { get; set; }

        /// <summary>
        /// Maximum number of IPsec tunnels to negotiate simultaneously.
        /// </summary>
        [Input("ikeEmbryonicLimit")]
        public Input<int>? IkeEmbryonicLimit { get; set; }

        /// <summary>
        /// Configure which Internet Service database size to download from FortiGuard and use. Valid values: `mini`, `standard`, `full`.
        /// </summary>
        [Input("internetServiceDatabase")]
        public Input<string>? InternetServiceDatabase { get; set; }

        /// <summary>
        /// Dead gateway detection interval.
        /// </summary>
        [Input("interval")]
        public Input<int>? Interval { get; set; }

        /// <summary>
        /// IP source port range used for traffic originating from the FortiGate unit.
        /// </summary>
        [Input("ipSrcPortRange")]
        public Input<string>? IpSrcPortRange { get; set; }

        /// <summary>
        /// Affinity setting for IPS (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx; allowed CPUs must be less than total number of IPS engine daemons).
        /// </summary>
        [Input("ipsAffinity")]
        public Input<string>? IpsAffinity { get; set; }

        /// <summary>
        /// Enable/disable ASIC offloading (hardware acceleration) for IPsec VPN traffic. Hardware acceleration can offload IPsec VPN sessions and accelerate encryption and decryption. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipsecAsicOffload")]
        public Input<string>? IpsecAsicOffload { get; set; }

        /// <summary>
        /// ESP jump ahead rate (1G - 10G pps equivalent).
        /// </summary>
        [Input("ipsecHaSeqjumpRate")]
        public Input<int>? IpsecHaSeqjumpRate { get; set; }

        /// <summary>
        /// Enable/disable offloading (hardware acceleration) of HMAC processing for IPsec VPN. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipsecHmacOffload")]
        public Input<string>? IpsecHmacOffload { get; set; }

        /// <summary>
        /// Enable/disable round-robin redistribution to multiple CPUs for IPsec VPN traffic. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipsecRoundRobin")]
        public Input<string>? IpsecRoundRobin { get; set; }

        /// <summary>
        /// Enable/disable software decryption asynchronization (using multiple CPUs to do decryption) for IPsec VPN traffic. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipsecSoftDecAsync")]
        public Input<string>? IpsecSoftDecAsync { get; set; }

        /// <summary>
        /// Enable/disable acceptance of IPv6 Duplicate Address Detection (DAD).
        /// </summary>
        [Input("ipv6AcceptDad")]
        public Input<int>? Ipv6AcceptDad { get; set; }

        /// <summary>
        /// Enable/disable IPv6 address probe through Anycast. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipv6AllowAnycastProbe")]
        public Input<string>? Ipv6AllowAnycastProbe { get; set; }

        /// <summary>
        /// Enable/disable silent drop of IPv6 local-in traffic. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipv6AllowLocalInSlientDrop")]
        public Input<string>? Ipv6AllowLocalInSlientDrop { get; set; }

        /// <summary>
        /// Enable/disable IPv6 address probe through Multicast. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipv6AllowMulticastProbe")]
        public Input<string>? Ipv6AllowMulticastProbe { get; set; }

        /// <summary>
        /// Disable to prevent IPv6 traffic with same local ingress and egress interface from being forwarded without policy check. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ipv6AllowTrafficRedirect")]
        public Input<string>? Ipv6AllowTrafficRedirect { get; set; }

        /// <summary>
        /// Configure CPU IRQ time accounting mode. Valid values: `auto`, `force`.
        /// </summary>
        [Input("irqTimeAccounting")]
        public Input<string>? IrqTimeAccounting { get; set; }

        /// <summary>
        /// GUI display language. Valid values: `english`, `french`, `spanish`, `portuguese`, `japanese`, `trach`, `simch`, `korean`.
        /// </summary>
        [Input("language")]
        public Input<string>? Language { get; set; }

        /// <summary>
        /// Global timeout for connections with remote LDAP servers in milliseconds (1 - 300000, default 500).
        /// </summary>
        [Input("ldapconntimeout")]
        public Input<int>? Ldapconntimeout { get; set; }

        /// <summary>
        /// Enable/disable Link Layer Discovery Protocol (LLDP) reception. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("lldpReception")]
        public Input<string>? LldpReception { get; set; }

        /// <summary>
        /// Enable/disable Link Layer Discovery Protocol (LLDP) transmission. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("lldpTransmission")]
        public Input<string>? LldpTransmission { get; set; }

        /// <summary>
        /// Enable/disable logging of SSL connection events. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("logSslConnection")]
        public Input<string>? LogSslConnection { get; set; }

        /// <summary>
        /// Enable/disable insertion of address UUIDs to traffic logs. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("logUuidAddress")]
        public Input<string>? LogUuidAddress { get; set; }

        /// <summary>
        /// Enable/disable insertion of policy UUIDs to traffic logs. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("logUuidPolicy")]
        public Input<string>? LogUuidPolicy { get; set; }

        /// <summary>
        /// Enable/disable login time recording. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("loginTimestamp")]
        public Input<string>? LoginTimestamp { get; set; }

        /// <summary>
        /// Enable/disable long VDOM name support. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("longVdomName")]
        public Input<string>? LongVdomName { get; set; }

        /// <summary>
        /// Management IP address of this FortiGate. Used to log into this FortiGate from another FortiGate in the Security Fabric.
        /// </summary>
        [Input("managementIp")]
        public Input<string>? ManagementIp { get; set; }

        /// <summary>
        /// Overriding port for management connection (Overrides admin port).
        /// </summary>
        [Input("managementPort")]
        public Input<int>? ManagementPort { get; set; }

        /// <summary>
        /// Enable/disable use of the admin-sport setting for the management port. If disabled, FortiGate will allow user to specify management-port. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("managementPortUseAdminSport")]
        public Input<string>? ManagementPortUseAdminSport { get; set; }

        /// <summary>
        /// Management virtual domain name.
        /// </summary>
        [Input("managementVdom")]
        public Input<string>? ManagementVdom { get; set; }

        /// <summary>
        /// Maximum DLP stat memory (0 - 4294967295).
        /// </summary>
        [Input("maxDlpstatMemory")]
        public Input<int>? MaxDlpstatMemory { get; set; }

        /// <summary>
        /// Maximum number of IP route cache entries (0 - 2147483647).
        /// </summary>
        [Input("maxRouteCacheSize")]
        public Input<int>? MaxRouteCacheSize { get; set; }

        /// <summary>
        /// Enable/disable no modification of multicast TTL. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("mcTtlNotchange")]
        public Input<string>? McTtlNotchange { get; set; }

        /// <summary>
        /// Threshold at which memory usage is considered extreme (new sessions are dropped) (% of total RAM, default = 95).
        /// </summary>
        [Input("memoryUseThresholdExtreme")]
        public Input<int>? MemoryUseThresholdExtreme { get; set; }

        /// <summary>
        /// Threshold at which memory usage forces the FortiGate to exit conserve mode (% of total RAM, default = 82).
        /// </summary>
        [Input("memoryUseThresholdGreen")]
        public Input<int>? MemoryUseThresholdGreen { get; set; }

        /// <summary>
        /// Threshold at which memory usage forces the FortiGate to enter conserve mode (% of total RAM, default = 88).
        /// </summary>
        [Input("memoryUseThresholdRed")]
        public Input<int>? MemoryUseThresholdRed { get; set; }

        /// <summary>
        /// Affinity setting for logging (64-bit hexadecimal value in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Input("miglogAffinity")]
        public Input<string>? MiglogAffinity { get; set; }

        /// <summary>
        /// Number of logging (miglogd) processes to be allowed to run. Higher number can reduce performance; lower number can slow log processing time. No logs will be dropped or lost if the number is changed.
        /// </summary>
        [Input("miglogdChildren")]
        public Input<int>? MiglogdChildren { get; set; }

        /// <summary>
        /// Enforce all login methods to require an additional authentication factor (default = optional). Valid values: `optional`, `mandatory`.
        /// </summary>
        [Input("multiFactorAuthentication")]
        public Input<string>? MultiFactorAuthentication { get; set; }

        /// <summary>
        /// Enable/disable multicast forwarding. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("multicastForward")]
        public Input<string>? MulticastForward { get; set; }

        /// <summary>
        /// Maximum number of NDP table entries (set to 65,536 or higher; if set to 0, kernel holds 65,536 entries).
        /// </summary>
        [Input("ndpMaxEntry")]
        public Input<int>? NdpMaxEntry { get; set; }

        /// <summary>
        /// Enable/disable per-user block/allow list filter. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("perUserBal")]
        public Input<string>? PerUserBal { get; set; }

        /// <summary>
        /// Enable/disable per-user black/white list filter. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("perUserBwl")]
        public Input<string>? PerUserBwl { get; set; }

        /// <summary>
        /// Enable/disable path MTU discovery. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("pmtuDiscovery")]
        public Input<string>? PmtuDiscovery { get; set; }

        /// <summary>
        /// Number of concurrent firewall use logins from the same user (1 - 100, default = 0 means no limit).
        /// </summary>
        [Input("policyAuthConcurrent")]
        public Input<int>? PolicyAuthConcurrent { get; set; }

        /// <summary>
        /// Enable/disable displaying the administrator access disclaimer message after an administrator successfully logs in. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("postLoginBanner")]
        public Input<string>? PostLoginBanner { get; set; }

        /// <summary>
        /// Enable/disable displaying the administrator access disclaimer message on the login page before an administrator logs in. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("preLoginBanner")]
        public Input<string>? PreLoginBanner { get; set; }

        /// <summary>
        /// Enable/disable private data encryption using an AES 128-bit key. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("privateDataEncryption")]
        public Input<string>? PrivateDataEncryption { get; set; }

        /// <summary>
        /// Enable/disable authenticated users lifetime control.  This is a cap on the total time a proxy user can be authenticated for after which re-authentication will take place. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("proxyAuthLifetime")]
        public Input<string>? ProxyAuthLifetime { get; set; }

        /// <summary>
        /// Lifetime timeout in minutes for authenticated users (5  - 65535 min, default=480 (8 hours)).
        /// </summary>
        [Input("proxyAuthLifetimeTimeout")]
        public Input<int>? ProxyAuthLifetimeTimeout { get; set; }

        /// <summary>
        /// Authentication timeout in minutes for authenticated users (1 - 300 min, default = 10).
        /// </summary>
        [Input("proxyAuthTimeout")]
        public Input<int>? ProxyAuthTimeout { get; set; }

        /// <summary>
        /// Enable/disable using management VDOM to send requests. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("proxyCertUseMgmtVdom")]
        public Input<string>? ProxyCertUseMgmtVdom { get; set; }

        /// <summary>
        /// Enable/disable using content processor (CP8 or CP9) hardware acceleration to encrypt and decrypt IPsec and SSL traffic. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("proxyCipherHardwareAcceleration")]
        public Input<string>? ProxyCipherHardwareAcceleration { get; set; }

        /// <summary>
        /// Enable/disable email proxy hardware acceleration. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("proxyHardwareAcceleration")]
        public Input<string>? ProxyHardwareAcceleration { get; set; }

        /// <summary>
        /// Enable/disable using the content processor to accelerate KXP traffic. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("proxyKxpHardwareAcceleration")]
        public Input<string>? ProxyKxpHardwareAcceleration { get; set; }

        /// <summary>
        /// Control if users must re-authenticate after a session is closed, traffic has been idle, or from the point at which the user was first created. Valid values: `session`, `traffic`, `absolute`.
        /// </summary>
        [Input("proxyReAuthenticationMode")]
        public Input<string>? ProxyReAuthenticationMode { get; set; }

        /// <summary>
        /// Enable/disable use of the maximum memory usage on the FortiGate unit's proxy processing of resources, such as block lists, allow lists, and external resources. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("proxyResourceMode")]
        public Input<string>? ProxyResourceMode { get; set; }

        /// <summary>
        /// Proxy worker count.
        /// </summary>
        [Input("proxyWorkerCount")]
        public Input<int>? ProxyWorkerCount { get; set; }

        /// <summary>
        /// RADIUS service port number.
        /// </summary>
        [Input("radiusPort")]
        public Input<int>? RadiusPort { get; set; }

        /// <summary>
        /// Enable/disable reboot of system upon restoring configuration. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("rebootUponConfigRestore")]
        public Input<string>? RebootUponConfigRestore { get; set; }

        /// <summary>
        /// Statistics refresh interval in GUI.
        /// </summary>
        [Input("refresh")]
        public Input<int>? Refresh { get; set; }

        /// <summary>
        /// Number of seconds that the FortiGate waits for responses from remote RADIUS, LDAP, or TACACS+ authentication servers. (0-300 sec, default = 5, 0 means no timeout).
        /// </summary>
        [Input("remoteauthtimeout")]
        public Input<int>? Remoteauthtimeout { get; set; }

        /// <summary>
        /// Action to perform if the FortiGate receives a TCP packet but cannot find a corresponding session in its session table. NAT/Route mode only. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("resetSessionlessTcp")]
        public Input<string>? ResetSessionlessTcp { get; set; }

        /// <summary>
        /// Daily restart time (hh:mm).
        /// </summary>
        [Input("restartTime")]
        public Input<string>? RestartTime { get; set; }

        /// <summary>
        /// Enable/disable back-up of the latest configuration revision when an administrator logs out of the CLI or GUI. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("revisionBackupOnLogout")]
        public Input<string>? RevisionBackupOnLogout { get; set; }

        /// <summary>
        /// Enable/disable back-up of the latest configuration revision after the firmware is upgraded. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("revisionImageAutoBackup")]
        public Input<string>? RevisionImageAutoBackup { get; set; }

        /// <summary>
        /// Number of scanunits. The range and the default depend on the number of CPUs. Only available on FortiGate units with multiple CPUs.
        /// </summary>
        [Input("scanunitCount")]
        public Input<int>? ScanunitCount { get; set; }

        /// <summary>
        /// Enable/disable the submission of Security Rating results to FortiGuard. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("securityRatingResultSubmission")]
        public Input<string>? SecurityRatingResultSubmission { get; set; }

        /// <summary>
        /// Enable/disable scheduled runs of Security Rating. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("securityRatingRunOnSchedule")]
        public Input<string>? SecurityRatingRunOnSchedule { get; set; }

        /// <summary>
        /// Enable/disable sending of path maximum transmission unit (PMTU) - ICMP destination unreachable packet and to support PMTUD protocol on your network to reduce fragmentation of packets. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sendPmtuIcmp")]
        public Input<string>? SendPmtuIcmp { get; set; }

        /// <summary>
        /// Enable/disable the ability to change the static NAT route. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("snatRouteChange")]
        public Input<string>? SnatRouteChange { get; set; }

        /// <summary>
        /// Enable/disable IPS detection of HIBUN format files when using Data Leak Protection. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("specialFile23Support")]
        public Input<string>? SpecialFile23Support { get; set; }

        /// <summary>
        /// Enable/disable speed test server. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("speedtestServer")]
        public Input<string>? SpeedtestServer { get; set; }

        /// <summary>
        /// Split port(s) to multiple 10Gbps ports.
        /// </summary>
        [Input("splitPort")]
        public Input<string>? SplitPort { get; set; }

        /// <summary>
        /// Date within a month to run ssd trim.
        /// </summary>
        [Input("ssdTrimDate")]
        public Input<int>? SsdTrimDate { get; set; }

        /// <summary>
        /// How often to run SSD Trim (default = weekly). SSD Trim prevents SSD drive data loss by finding and isolating errors. Valid values: `never`, `hourly`, `daily`, `weekly`, `monthly`.
        /// </summary>
        [Input("ssdTrimFreq")]
        public Input<string>? SsdTrimFreq { get; set; }

        /// <summary>
        /// Hour of the day on which to run SSD Trim (0 - 23, default = 1).
        /// </summary>
        [Input("ssdTrimHour")]
        public Input<int>? SsdTrimHour { get; set; }

        /// <summary>
        /// Minute of the hour on which to run SSD Trim (0 - 59, 60 for random).
        /// </summary>
        [Input("ssdTrimMin")]
        public Input<int>? SsdTrimMin { get; set; }

        /// <summary>
        /// Day of week to run SSD Trim. Valid values: `sunday`, `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`.
        /// </summary>
        [Input("ssdTrimWeekday")]
        public Input<string>? SsdTrimWeekday { get; set; }

        /// <summary>
        /// Enable/disable CBC cipher for SSH access. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sshCbcCipher")]
        public Input<string>? SshCbcCipher { get; set; }

        /// <summary>
        /// Select one or more SSH ciphers. Valid values: `chacha20-poly1305@openssh.com`, `aes128-ctr`, `aes192-ctr`, `aes256-ctr`, `arcfour256`, `arcfour128`, `aes128-cbc`, `3des-cbc`, `blowfish-cbc`, `cast128-cbc`, `aes192-cbc`, `aes256-cbc`, `arcfour`, `rijndael-cbc@lysator.liu.se`, `aes128-gcm@openssh.com`, `aes256-gcm@openssh.com`.
        /// </summary>
        [Input("sshEncAlgo")]
        public Input<string>? SshEncAlgo { get; set; }

        /// <summary>
        /// Enable/disable HMAC-MD5 for SSH access. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sshHmacMd5")]
        public Input<string>? SshHmacMd5 { get; set; }

        /// <summary>
        /// Select one or more SSH kex algorithms. Valid values: `diffie-hellman-group1-sha1`, `diffie-hellman-group14-sha1`, `diffie-hellman-group-exchange-sha1`, `diffie-hellman-group-exchange-sha256`, `curve25519-sha256@libssh.org`, `ecdh-sha2-nistp256`, `ecdh-sha2-nistp384`, `ecdh-sha2-nistp521`.
        /// </summary>
        [Input("sshKexAlgo")]
        public Input<string>? SshKexAlgo { get; set; }

        /// <summary>
        /// Enable/disable SHA1 key exchange for SSH access. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sshKexSha1")]
        public Input<string>? SshKexSha1 { get; set; }

        /// <summary>
        /// Select one or more SSH MAC algorithms. Valid values: `hmac-md5`, `hmac-md5-etm@openssh.com`, `hmac-md5-96`, `hmac-md5-96-etm@openssh.com`, `hmac-sha1`, `hmac-sha1-etm@openssh.com`, `hmac-sha2-256`, `hmac-sha2-256-etm@openssh.com`, `hmac-sha2-512`, `hmac-sha2-512-etm@openssh.com`, `hmac-ripemd160`, `hmac-ripemd160@openssh.com`, `hmac-ripemd160-etm@openssh.com`, `umac-64@openssh.com`, `umac-128@openssh.com`, `umac-64-etm@openssh.com`, `umac-128-etm@openssh.com`.
        /// </summary>
        [Input("sshMacAlgo")]
        public Input<string>? SshMacAlgo { get; set; }

        /// <summary>
        /// Enable/disable HMAC-SHA1 and UMAC-64-ETM for SSH access. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sshMacWeak")]
        public Input<string>? SshMacWeak { get; set; }

        /// <summary>
        /// Minimum supported protocol version for SSL/TLS connections (default = TLSv1.2).
        /// </summary>
        [Input("sslMinProtoVersion")]
        public Input<string>? SslMinProtoVersion { get; set; }

        /// <summary>
        /// Enable/disable static key ciphers in SSL/TLS connections (e.g. AES128-SHA, AES256-SHA, AES128-SHA256, AES256-SHA256). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sslStaticKeyCiphers")]
        public Input<string>? SslStaticKeyCiphers { get; set; }

        /// <summary>
        /// Enable/disable SSL VPN hardware acceleration. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sslvpnCipherHardwareAcceleration")]
        public Input<string>? SslvpnCipherHardwareAcceleration { get; set; }

        /// <summary>
        /// Enable/disable verification of EMS serial number in SSL-VPN connection. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sslvpnEmsSnCheck")]
        public Input<string>? SslvpnEmsSnCheck { get; set; }

        /// <summary>
        /// Enable/disable SSL VPN KXP hardware acceleration. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sslvpnKxpHardwareAcceleration")]
        public Input<string>? SslvpnKxpHardwareAcceleration { get; set; }

        /// <summary>
        /// Maximum number of SSL VPN processes. Upper limit for this value is the number of CPUs and depends on the model.
        /// </summary>
        [Input("sslvpnMaxWorkerCount")]
        public Input<int>? SslvpnMaxWorkerCount { get; set; }

        /// <summary>
        /// Enable/disable checking browser's plugin version by SSL VPN. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("sslvpnPluginVersionCheck")]
        public Input<string>? SslvpnPluginVersionCheck { get; set; }

        /// <summary>
        /// Enable to check the session against the original policy when revalidating. This can prevent dropping of redirected sessions when web-filtering and authentication are enabled together. If this option is enabled, the FortiGate unit deletes a session if a routing or policy change causes the session to no longer match the policy that originally allowed the session. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("strictDirtySessionCheck")]
        public Input<string>? StrictDirtySessionCheck { get; set; }

        /// <summary>
        /// Enable to use strong encryption and only allow strong ciphers (AES, 3DES) and digest (SHA1) for HTTPS/SSH/TLS/SSL functions. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("strongCrypto")]
        public Input<string>? StrongCrypto { get; set; }

        /// <summary>
        /// Enable/disable switch controller feature. Switch controller allows you to manage FortiSwitch from the FortiGate itself. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("switchController")]
        public Input<string>? SwitchController { get; set; }

        /// <summary>
        /// Enable reserved network subnet for controlled switches. This is available when the switch controller is enabled.
        /// </summary>
        [Input("switchControllerReservedNetwork")]
        public Input<string>? SwitchControllerReservedNetwork { get; set; }

        /// <summary>
        /// Time in minutes between updates of performance statistics logging. (1 - 15 min, default = 5, 0 = disabled).
        /// </summary>
        [Input("sysPerfLogInterval")]
        public Input<int>? SysPerfLogInterval { get; set; }

        /// <summary>
        /// Number of seconds the FortiGate unit should wait to close a session after one peer has sent a FIN packet but the other has not responded (1 - 86400 sec (1 day), default = 120).
        /// </summary>
        [Input("tcpHalfcloseTimer")]
        public Input<int>? TcpHalfcloseTimer { get; set; }

        /// <summary>
        /// Number of seconds the FortiGate unit should wait to close a session after one peer has sent an open session packet but the other has not responded (1 - 86400 sec (1 day), default = 10).
        /// </summary>
        [Input("tcpHalfopenTimer")]
        public Input<int>? TcpHalfopenTimer { get; set; }

        /// <summary>
        /// Enable SACK, timestamp and MSS TCP options. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("tcpOption")]
        public Input<string>? TcpOption { get; set; }

        /// <summary>
        /// Length of the TCP CLOSE state in seconds (5 - 300 sec, default = 5).
        /// </summary>
        [Input("tcpRstTimer")]
        public Input<int>? TcpRstTimer { get; set; }

        /// <summary>
        /// Length of the TCP TIME-WAIT state in seconds.
        /// </summary>
        [Input("tcpTimewaitTimer")]
        public Input<int>? TcpTimewaitTimer { get; set; }

        /// <summary>
        /// Enable/disable TFTP. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("tftp")]
        public Input<string>? Tftp { get; set; }

        /// <summary>
        /// Number corresponding to your time zone from 00 to 86. Enter set timezone ? to view the list of time zones and the numbers that represent them. Valid values: `01`, `02`, `03`, `04`, `05`, `81`, `06`, `07`, `08`, `09`, `10`, `11`, `12`, `13`, `74`, `14`, `77`, `15`, `87`, `16`, `17`, `18`, `19`, `20`, `75`, `21`, `22`, `23`, `24`, `80`, `79`, `25`, `26`, `27`, `28`, `78`, `29`, `30`, `31`, `32`, `33`, `34`, `35`, `36`, `37`, `38`, `83`, `84`, `40`, `85`, `41`, `42`, `43`, `39`, `44`, `46`, `47`, `51`, `48`, `45`, `49`, `50`, `52`, `53`, `54`, `55`, `56`, `57`, `58`, `59`, `60`, `62`, `63`, `61`, `64`, `65`, `66`, `67`, `68`, `69`, `70`, `71`, `72`, `00`, `82`, `73`, `86`, `76`.
        /// </summary>
        [Input("timezone")]
        public Input<string>? Timezone { get; set; }

        /// <summary>
        /// Enable/disable skip policy check and allow multicast through. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("tpMcSkipPolicy")]
        public Input<string>? TpMcSkipPolicy { get; set; }

        /// <summary>
        /// Choose Type of Service (ToS) or Differentiated Services Code Point (DSCP) for traffic prioritization in traffic shaping. Valid values: `tos`, `dscp`.
        /// </summary>
        [Input("trafficPriority")]
        public Input<string>? TrafficPriority { get; set; }

        /// <summary>
        /// Default system-wide level of priority for traffic prioritization. Valid values: `low`, `medium`, `high`.
        /// </summary>
        [Input("trafficPriorityLevel")]
        public Input<string>? TrafficPriorityLevel { get; set; }

        /// <summary>
        /// Email-based two-factor authentication session timeout (30 - 300 seconds (5 minutes), default = 60).
        /// </summary>
        [Input("twoFactorEmailExpiry")]
        public Input<int>? TwoFactorEmailExpiry { get; set; }

        /// <summary>
        /// FortiAuthenticator token authentication session timeout (10 - 3600 seconds (1 hour), default = 60).
        /// </summary>
        [Input("twoFactorFacExpiry")]
        public Input<int>? TwoFactorFacExpiry { get; set; }

        /// <summary>
        /// FortiToken authentication session timeout (60 - 600 sec (10 minutes), default = 60).
        /// </summary>
        [Input("twoFactorFtkExpiry")]
        public Input<int>? TwoFactorFtkExpiry { get; set; }

        /// <summary>
        /// FortiToken Mobile session timeout (1 - 168 hours (7 days), default = 72).
        /// </summary>
        [Input("twoFactorFtmExpiry")]
        public Input<int>? TwoFactorFtmExpiry { get; set; }

        /// <summary>
        /// SMS-based two-factor authentication session timeout (30 - 300 sec, default = 60).
        /// </summary>
        [Input("twoFactorSmsExpiry")]
        public Input<int>? TwoFactorSmsExpiry { get; set; }

        /// <summary>
        /// UDP connection session timeout. This command can be useful in managing CPU and memory resources (1 - 86400 seconds (1 day), default = 60).
        /// </summary>
        [Input("udpIdleTimer")]
        public Input<int>? UdpIdleTimer { get; set; }

        /// <summary>
        /// URL filter CPU affinity.
        /// </summary>
        [Input("urlFilterAffinity")]
        public Input<string>? UrlFilterAffinity { get; set; }

        /// <summary>
        /// URL filter daemon count.
        /// </summary>
        [Input("urlFilterCount")]
        public Input<int>? UrlFilterCount { get; set; }

        /// <summary>
        /// Maximum number of devices allowed in user device store.
        /// </summary>
        [Input("userDeviceStoreMaxDevices")]
        public Input<int>? UserDeviceStoreMaxDevices { get; set; }

        /// <summary>
        /// Maximum unified memory allowed in user device store.
        /// </summary>
        [Input("userDeviceStoreMaxUnifiedMem")]
        public Input<int>? UserDeviceStoreMaxUnifiedMem { get; set; }

        /// <summary>
        /// Maximum number of users allowed in user device store.
        /// </summary>
        [Input("userDeviceStoreMaxUsers")]
        public Input<int>? UserDeviceStoreMaxUsers { get; set; }

        /// <summary>
        /// Certificate to use for https user authentication.
        /// </summary>
        [Input("userServerCert")]
        public Input<string>? UserServerCert { get; set; }

        /// <summary>
        /// Enable/disable support for multiple virtual domains (VDOMs). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("vdomAdmin")]
        public Input<string>? VdomAdmin { get; set; }

        /// <summary>
        /// Enable/disable support for split/multiple virtual domains (VDOMs). Valid values: `no-vdom`, `split-vdom`, `multi-vdom`.
        /// </summary>
        [Input("vdomMode")]
        public Input<string>? VdomMode { get; set; }

        /// <summary>
        /// Specifies the vdom to which the resource 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; }

        /// <summary>
        /// Controls the number of ARPs that the FortiGate sends for a Virtual IP (VIP) address range. Valid values: `unlimited`, `restricted`.
        /// </summary>
        [Input("vipArpRange")]
        public Input<string>? VipArpRange { get; set; }

        /// <summary>
        /// Maximum number of virtual server processes to create. The maximum is the number of CPU cores. This is not available on single-core CPUs.
        /// </summary>
        [Input("virtualServerCount")]
        public Input<int>? VirtualServerCount { get; set; }

        /// <summary>
        /// Enable/disable virtual server hardware acceleration. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("virtualServerHardwareAcceleration")]
        public Input<string>? VirtualServerHardwareAcceleration { get; set; }

        /// <summary>
        /// Enable/disable virtual switch VLAN. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("virtualSwitchVlan")]
        public Input<string>? VirtualSwitchVlan { get; set; }

        /// <summary>
        /// Affinity setting for wad (hexadecimal value up to 256 bits in the format of xxxxxxxxxxxxxxxx).
        /// </summary>
        [Input("wadAffinity")]
        public Input<string>? WadAffinity { get; set; }

        /// <summary>
        /// Number of concurrent WAD-cache-service object-cache processes.
        /// </summary>
        [Input("wadCsvcCsCount")]
        public Input<int>? WadCsvcCsCount { get; set; }

        /// <summary>
        /// Number of concurrent WAD-cache-service byte-cache processes.
        /// </summary>
        [Input("wadCsvcDbCount")]
        public Input<int>? WadCsvcDbCount { get; set; }

        /// <summary>
        /// Minimum percentage change in system memory usage detected by the wad daemon prior to adjusting TCP window size for any active connection.
        /// </summary>
        [Input("wadMemoryChangeGranularity")]
        public Input<int>? WadMemoryChangeGranularity { get; set; }

        /// <summary>
        /// Enable/disable dispatching traffic to WAD workers based on source affinity. Valid values: `disable`, `enable`.
        /// </summary>
        [Input("wadSourceAffinity")]
        public Input<string>? WadSourceAffinity { get; set; }

        /// <summary>
        /// Number of explicit proxy WAN optimization daemon (WAD) processes. By default WAN optimization, explicit proxy, and web caching is handled by all of the CPU cores in a FortiGate unit.
        /// </summary>
        [Input("wadWorkerCount")]
        public Input<int>? WadWorkerCount { get; set; }

        /// <summary>
        /// CA certificate that verifies the WiFi certificate.
        /// </summary>
        [Input("wifiCaCertificate")]
        public Input<string>? WifiCaCertificate { get; set; }

        /// <summary>
        /// Certificate to use for WiFi authentication.
        /// </summary>
        [Input("wifiCertificate")]
        public Input<string>? WifiCertificate { get; set; }

        /// <summary>
        /// Enable/disable comparability with WiMAX 4G USB devices. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("wimax4gUsb")]
        public Input<string>? Wimax4gUsb { get; set; }

        /// <summary>
        /// Enable/disable the wireless controller feature to use the FortiGate unit to manage FortiAPs. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("wirelessController")]
        public Input<string>? WirelessController { get; set; }

        /// <summary>
        /// Port used for the control channel in wireless controller mode (wireless-mode is ac). The data channel port is the control channel port number plus one (1024 - 49150, default = 5246).
        /// </summary>
        [Input("wirelessControllerPort")]
        public Input<int>? WirelessControllerPort { get; set; }

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