<reponame>pulumiverse/pulumi-fortios<filename>sdk/dotnet/WirelesscontrollerWtpprofile.cs<gh_stars>0// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Threading.Tasks;
using Pulumi.Serialization;
using Pulumi;

namespace Pulumiverse.Fortios
{
    /// <summary>
    /// Configure WTP profiles or FortiAP profiles that define radio settings for manageable FortiAP platforms.
    /// 
    /// ## Import
    /// 
    /// WirelessController WtpProfile can be imported using any of these accepted formats
    /// 
    /// ```sh
    ///  $ pulumi import fortios:index/wirelesscontrollerWtpprofile:WirelesscontrollerWtpprofile labelname {{name}}
    /// ```
    /// 
    ///  If you do not want to import arguments of block$ export "FORTIOS_IMPORT_TABLE"="false"
    /// 
    /// ```sh
    ///  $ pulumi import fortios:index/wirelesscontrollerWtpprofile:WirelesscontrollerWtpprofile labelname {{name}}
    /// ```
    /// 
    ///  $ unset "FORTIOS_IMPORT_TABLE"
    /// </summary>
    [FortiosResourceType("fortios:index/wirelesscontrollerWtpprofile:WirelesscontrollerWtpprofile")]
    public partial class WirelesscontrollerWtpprofile : global::Pulumi.CustomResource
    {
        /// <summary>
        /// Control management access to the managed WTP, FortiAP, or AP. Separate entries with a space.
        /// </summary>
        [Output("allowaccess")]
        public Output<string> Allowaccess { get; private set; } = null!;

        /// <summary>
        /// Country in which this WTP, FortiAP or AP will operate (default = NA, automatically use the country configured for the current VDOM).
        /// </summary>
        [Output("apCountry")]
        public Output<string> ApCountry { get; private set; } = null!;

        /// <summary>
        /// Enable/disable AP handoff of clients to other APs (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Output("apHandoff")]
        public Output<string> ApHandoff { get; private set; } = null!;

        /// <summary>
        /// AP local configuration profile name.
        /// </summary>
        [Output("apcfgProfile")]
        public Output<string> ApcfgProfile { get; private set; } = null!;

        /// <summary>
        /// Bluetooth Low Energy profile name.
        /// </summary>
        [Output("bleProfile")]
        public Output<string> BleProfile { get; private set; } = null!;

        /// <summary>
        /// Comment.
        /// </summary>
        [Output("comment")]
        public Output<string?> Comment { get; private set; } = null!;

        /// <summary>
        /// Enable/disable FAP console login access (default = enable). Valid values: `enable`, `disable`.
        /// </summary>
        [Output("consoleLogin")]
        public Output<string> ConsoleLogin { get; private set; } = null!;

        /// <summary>
        /// Enable/disable CAPWAP control message data channel offload.
        /// </summary>
        [Output("controlMessageOffload")]
        public Output<string> ControlMessageOffload { get; private set; } = null!;

        /// <summary>
        /// List of MAC addresses that are denied access to this WTP, FortiAP, or AP. The structure of `deny_mac_list` block is documented below.
        /// </summary>
        [Output("denyMacLists")]
        public Output<ImmutableArray<Outputs.WirelesscontrollerWtpprofileDenyMacList>> DenyMacLists { get; private set; } = null!;

        /// <summary>
        /// Enable/disable data channel DTLS in kernel. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("dtlsInKernel")]
        public Output<string> DtlsInKernel { get; private set; } = null!;

        /// <summary>
        /// WTP data channel DTLS policy (default = clear-text). Valid values: `clear-text`, `dtls-enabled`, `ipsec-vpn`.
        /// </summary>
        [Output("dtlsPolicy")]
        public Output<string> DtlsPolicy { get; private set; } = null!;

        /// <summary>
        /// Sort sub-tables, please do not set this parameter when configuring static sub-tables. Options: [ false, true, natural, alphabetical ]. false: Default value, do not sort tables; true/natural: sort tables in natural order. For example: [ a10, a2 ] -&gt; [ a2, a10 ]; alphabetical: sort tables in alphabetical order. For example: [ a10, a2 ] -&gt; [ a10, a2 ].
        /// </summary>
        [Output("dynamicSortSubtable")]
        public Output<string?> DynamicSortSubtable { get; private set; } = null!;

        /// <summary>
        /// Enable/disable use of energy efficient Ethernet on WTP. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("energyEfficientEthernet")]
        public Output<string> EnergyEfficientEthernet { get; private set; } = null!;

        /// <summary>
        /// ESL SES-imagotag dongle configuration. The structure of `esl_ses_dongle` block is documented below.
        /// </summary>
        [Output("eslSesDongle")]
        public Output<Outputs.WirelesscontrollerWtpprofileEslSesDongle> EslSesDongle { get; private set; } = null!;

        /// <summary>
        /// Enable/disable station/VAP/radio extension information. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("extInfoEnable")]
        public Output<string> ExtInfoEnable { get; private set; } = null!;

        /// <summary>
        /// Enable/disable frequency handoff of clients to other channels (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Output("frequencyHandoff")]
        public Output<string> FrequencyHandoff { get; private set; } = null!;

        /// <summary>
        /// Enable/disable client load balancing during roaming to avoid roaming delay (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Output("handoffRoaming")]
        public Output<string> HandoffRoaming { get; private set; } = null!;

        /// <summary>
        /// Minimum received signal strength indicator (RSSI) value for handoff (20 - 30, default = 25).
        /// </summary>
        [Output("handoffRssi")]
        public Output<int> HandoffRssi { get; private set; } = null!;

        /// <summary>
        /// Threshold value for AP handoff.
        /// </summary>
        [Output("handoffStaThresh")]
        public Output<int> HandoffStaThresh { get; private set; } = null!;

        /// <summary>
        /// Set to allow indoor/outdoor-only channels under regulatory rules (default = platform-determined). Valid values: `platform-determined`, `outdoor`, `indoor`.
        /// </summary>
        [Output("indoorOutdoorDeployment")]
        public Output<string> IndoorOutdoorDeployment { get; private set; } = null!;

        /// <summary>
        /// Select how to prevent IP fragmentation for CAPWAP tunneled control and data packets (default = tcp-mss-adjust). Valid values: `tcp-mss-adjust`, `icmp-unreachable`.
        /// </summary>
        [Output("ipFragmentPreventing")]
        public Output<string> IpFragmentPreventing { get; private set; } = null!;

        /// <summary>
        /// WTP LAN port mapping. The structure of `lan` block is documented below.
        /// </summary>
        [Output("lan")]
        public Output<Outputs.WirelesscontrollerWtpprofileLan> Lan { get; private set; } = null!;

        /// <summary>
        /// Set various location based service (LBS) options. The structure of `lbs` block is documented below.
        /// </summary>
        [Output("lbs")]
        public Output<Outputs.WirelesscontrollerWtpprofileLbs> Lbs { get; private set; } = null!;

        /// <summary>
        /// Recurring firewall schedules for illuminating LEDs on the FortiAP. If led-state is enabled, LEDs will be visible when at least one of the schedules is valid. Separate multiple schedule names with a space. The structure of `led_schedules` block is documented below.
        /// </summary>
        [Output("ledSchedules")]
        public Output<ImmutableArray<Outputs.WirelesscontrollerWtpprofileLedSchedule>> LedSchedules { get; private set; } = null!;

        /// <summary>
        /// Enable/disable use of LEDs on WTP (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Output("ledState")]
        public Output<string> LedState { get; private set; } = null!;

        /// <summary>
        /// Enable/disable Link Layer Discovery Protocol (LLDP) for the WTP, FortiAP, or AP (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Output("lldp")]
        public Output<string> Lldp { get; private set; } = null!;

        /// <summary>
        /// Set the managed WTP, FortiAP, or AP's administrator password.
        /// </summary>
        [Output("loginPasswd")]
        public Output<string?> LoginPasswd { get; private set; } = null!;

        /// <summary>
        /// Change or reset the administrator password of a managed WTP, FortiAP or AP (yes, default, or no, default = no). Valid values: `yes`, `default`, `no`.
        /// </summary>
        [Output("loginPasswdChange")]
        public Output<string> LoginPasswdChange { get; private set; } = null!;

        /// <summary>
        /// Maximum number of stations (STAs) supported by the WTP (default = 0, meaning no client limitation).
        /// </summary>
        [Output("maxClients")]
        public Output<int> MaxClients { get; private set; } = null!;

        /// <summary>
        /// WTP (or FortiAP or AP) profile name.
        /// </summary>
        [Output("name")]
        public Output<string> Name { get; private set; } = null!;

        /// <summary>
        /// WTP, FortiAP, or AP platform. The structure of `platform` block is documented below.
        /// </summary>
        [Output("platform")]
        public Output<Outputs.WirelesscontrollerWtpprofilePlatform> Platform { get; private set; } = null!;

        /// <summary>
        /// Set the WTP, FortiAP, or AP's PoE mode.
        /// </summary>
        [Output("poeMode")]
        public Output<string> PoeMode { get; private set; } = null!;

        /// <summary>
        /// Configuration options for radio 1. The structure of `radio_1` block is documented below.
        /// </summary>
        [Output("radio1")]
        public Output<Outputs.WirelesscontrollerWtpprofileRadio1> Radio1 { get; private set; } = null!;

        /// <summary>
        /// Configuration options for radio 2. The structure of `radio_2` block is documented below.
        /// </summary>
        [Output("radio2")]
        public Output<Outputs.WirelesscontrollerWtpprofileRadio2> Radio2 { get; private set; } = null!;

        /// <summary>
        /// Configuration options for radio 3. The structure of `radio_3` block is documented below.
        /// </summary>
        [Output("radio3")]
        public Output<Outputs.WirelesscontrollerWtpprofileRadio3> Radio3 { get; private set; } = null!;

        /// <summary>
        /// Configuration options for radio 4. The structure of `radio_4` block is documented below.
        /// </summary>
        [Output("radio4")]
        public Output<Outputs.WirelesscontrollerWtpprofileRadio4> Radio4 { get; private set; } = null!;

        /// <summary>
        /// Enable/disable automatically adding local subnetwork of FortiAP to split-tunneling ACL (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Output("splitTunnelingAclLocalApSubnet")]
        public Output<string> SplitTunnelingAclLocalApSubnet { get; private set; } = null!;

        /// <summary>
        /// Split tunneling ACL path is local/tunnel. Valid values: `tunnel`, `local`.
        /// </summary>
        [Output("splitTunnelingAclPath")]
        public Output<string> SplitTunnelingAclPath { get; private set; } = null!;

        /// <summary>
        /// Split tunneling ACL filter list. The structure of `split_tunneling_acl` block is documented below.
        /// </summary>
        [Output("splitTunnelingAcls")]
        public Output<ImmutableArray<Outputs.WirelesscontrollerWtpprofileSplitTunnelingAcl>> SplitTunnelingAcls { get; private set; } = null!;

        /// <summary>
        /// System log server configuration profile name.
        /// </summary>
        [Output("syslogProfile")]
        public Output<string> SyslogProfile { get; private set; } = null!;

        /// <summary>
        /// Downlink CAPWAP tunnel MTU (0, 576, or 1500 bytes, default = 0).
        /// </summary>
        [Output("tunMtuDownlink")]
        public Output<int> TunMtuDownlink { get; private set; } = null!;

        /// <summary>
        /// Uplink CAPWAP tunnel MTU (0, 576, or 1500 bytes, default = 0).
        /// </summary>
        [Output("tunMtuUplink")]
        public Output<int> TunMtuUplink { 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>
        /// Set WAN port authentication mode (default = none). Valid values: `none`, `802.1x`.
        /// </summary>
        [Output("wanPortAuth")]
        public Output<string> WanPortAuth { get; private set; } = null!;

        /// <summary>
        /// WAN port 802.1x supplicant EAP methods (default = all). Valid values: `all`, `EAP-FAST`, `EAP-TLS`, `EAP-PEAP`.
        /// </summary>
        [Output("wanPortAuthMethods")]
        public Output<string> WanPortAuthMethods { get; private set; } = null!;

        /// <summary>
        /// Set WAN port 802.1x supplicant password.
        /// </summary>
        [Output("wanPortAuthPassword")]
        public Output<string?> WanPortAuthPassword { get; private set; } = null!;

        /// <summary>
        /// Set WAN port 802.1x supplicant user name.
        /// </summary>
        [Output("wanPortAuthUsrname")]
        public Output<string> WanPortAuthUsrname { get; private set; } = null!;

        /// <summary>
        /// Enable/disable using a WAN port as a LAN port. Valid values: `wan-lan`, `wan-only`.
        /// </summary>
        [Output("wanPortMode")]
        public Output<string> WanPortMode { get; private set; } = null!;


        /// <summary>
        /// Create a WirelesscontrollerWtpprofile 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 WirelesscontrollerWtpprofile(string name, WirelesscontrollerWtpprofileArgs? args = null, CustomResourceOptions? options = null)
            : base("fortios:index/wirelesscontrollerWtpprofile:WirelesscontrollerWtpprofile", name, args ?? new WirelesscontrollerWtpprofileArgs(), MakeResourceOptions(options, ""))
        {
        }

        private WirelesscontrollerWtpprofile(string name, Input<string> id, WirelesscontrollerWtpprofileState? state = null, CustomResourceOptions? options = null)
            : base("fortios:index/wirelesscontrollerWtpprofile:WirelesscontrollerWtpprofile", 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",
                AdditionalSecretOutputs =
                {
                    "loginPasswd",
                },
            };
            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 WirelesscontrollerWtpprofile 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 WirelesscontrollerWtpprofile Get(string name, Input<string> id, WirelesscontrollerWtpprofileState? state = null, CustomResourceOptions? options = null)
        {
            return new WirelesscontrollerWtpprofile(name, id, state, options);
        }
    }

    public sealed class WirelesscontrollerWtpprofileArgs : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// Control management access to the managed WTP, FortiAP, or AP. Separate entries with a space.
        /// </summary>
        [Input("allowaccess")]
        public Input<string>? Allowaccess { get; set; }

        /// <summary>
        /// Country in which this WTP, FortiAP or AP will operate (default = NA, automatically use the country configured for the current VDOM).
        /// </summary>
        [Input("apCountry")]
        public Input<string>? ApCountry { get; set; }

        /// <summary>
        /// Enable/disable AP handoff of clients to other APs (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("apHandoff")]
        public Input<string>? ApHandoff { get; set; }

        /// <summary>
        /// AP local configuration profile name.
        /// </summary>
        [Input("apcfgProfile")]
        public Input<string>? ApcfgProfile { get; set; }

        /// <summary>
        /// Bluetooth Low Energy profile name.
        /// </summary>
        [Input("bleProfile")]
        public Input<string>? BleProfile { get; set; }

        /// <summary>
        /// Comment.
        /// </summary>
        [Input("comment")]
        public Input<string>? Comment { get; set; }

        /// <summary>
        /// Enable/disable FAP console login access (default = enable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("consoleLogin")]
        public Input<string>? ConsoleLogin { get; set; }

        /// <summary>
        /// Enable/disable CAPWAP control message data channel offload.
        /// </summary>
        [Input("controlMessageOffload")]
        public Input<string>? ControlMessageOffload { get; set; }

        [Input("denyMacLists")]
        private InputList<Inputs.WirelesscontrollerWtpprofileDenyMacListArgs>? _denyMacLists;

        /// <summary>
        /// List of MAC addresses that are denied access to this WTP, FortiAP, or AP. The structure of `deny_mac_list` block is documented below.
        /// </summary>
        public InputList<Inputs.WirelesscontrollerWtpprofileDenyMacListArgs> DenyMacLists
        {
            get => _denyMacLists ?? (_denyMacLists = new InputList<Inputs.WirelesscontrollerWtpprofileDenyMacListArgs>());
            set => _denyMacLists = value;
        }

        /// <summary>
        /// Enable/disable data channel DTLS in kernel. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("dtlsInKernel")]
        public Input<string>? DtlsInKernel { get; set; }

        /// <summary>
        /// WTP data channel DTLS policy (default = clear-text). Valid values: `clear-text`, `dtls-enabled`, `ipsec-vpn`.
        /// </summary>
        [Input("dtlsPolicy")]
        public Input<string>? DtlsPolicy { get; set; }

        /// <summary>
        /// Sort sub-tables, please do not set this parameter when configuring static sub-tables. Options: [ false, true, natural, alphabetical ]. false: Default value, do not sort tables; true/natural: sort tables in natural order. For example: [ a10, a2 ] -&gt; [ a2, a10 ]; alphabetical: sort tables in alphabetical order. For example: [ a10, a2 ] -&gt; [ a10, a2 ].
        /// </summary>
        [Input("dynamicSortSubtable")]
        public Input<string>? DynamicSortSubtable { get; set; }

        /// <summary>
        /// Enable/disable use of energy efficient Ethernet on WTP. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("energyEfficientEthernet")]
        public Input<string>? EnergyEfficientEthernet { get; set; }

        /// <summary>
        /// ESL SES-imagotag dongle configuration. The structure of `esl_ses_dongle` block is documented below.
        /// </summary>
        [Input("eslSesDongle")]
        public Input<Inputs.WirelesscontrollerWtpprofileEslSesDongleArgs>? EslSesDongle { get; set; }

        /// <summary>
        /// Enable/disable station/VAP/radio extension information. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("extInfoEnable")]
        public Input<string>? ExtInfoEnable { get; set; }

        /// <summary>
        /// Enable/disable frequency handoff of clients to other channels (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("frequencyHandoff")]
        public Input<string>? FrequencyHandoff { get; set; }

        /// <summary>
        /// Enable/disable client load balancing during roaming to avoid roaming delay (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("handoffRoaming")]
        public Input<string>? HandoffRoaming { get; set; }

        /// <summary>
        /// Minimum received signal strength indicator (RSSI) value for handoff (20 - 30, default = 25).
        /// </summary>
        [Input("handoffRssi")]
        public Input<int>? HandoffRssi { get; set; }

        /// <summary>
        /// Threshold value for AP handoff.
        /// </summary>
        [Input("handoffStaThresh")]
        public Input<int>? HandoffStaThresh { get; set; }

        /// <summary>
        /// Set to allow indoor/outdoor-only channels under regulatory rules (default = platform-determined). Valid values: `platform-determined`, `outdoor`, `indoor`.
        /// </summary>
        [Input("indoorOutdoorDeployment")]
        public Input<string>? IndoorOutdoorDeployment { get; set; }

        /// <summary>
        /// Select how to prevent IP fragmentation for CAPWAP tunneled control and data packets (default = tcp-mss-adjust). Valid values: `tcp-mss-adjust`, `icmp-unreachable`.
        /// </summary>
        [Input("ipFragmentPreventing")]
        public Input<string>? IpFragmentPreventing { get; set; }

        /// <summary>
        /// WTP LAN port mapping. The structure of `lan` block is documented below.
        /// </summary>
        [Input("lan")]
        public Input<Inputs.WirelesscontrollerWtpprofileLanArgs>? Lan { get; set; }

        /// <summary>
        /// Set various location based service (LBS) options. The structure of `lbs` block is documented below.
        /// </summary>
        [Input("lbs")]
        public Input<Inputs.WirelesscontrollerWtpprofileLbsArgs>? Lbs { get; set; }

        [Input("ledSchedules")]
        private InputList<Inputs.WirelesscontrollerWtpprofileLedScheduleArgs>? _ledSchedules;

        /// <summary>
        /// Recurring firewall schedules for illuminating LEDs on the FortiAP. If led-state is enabled, LEDs will be visible when at least one of the schedules is valid. Separate multiple schedule names with a space. The structure of `led_schedules` block is documented below.
        /// </summary>
        public InputList<Inputs.WirelesscontrollerWtpprofileLedScheduleArgs> LedSchedules
        {
            get => _ledSchedules ?? (_ledSchedules = new InputList<Inputs.WirelesscontrollerWtpprofileLedScheduleArgs>());
            set => _ledSchedules = value;
        }

        /// <summary>
        /// Enable/disable use of LEDs on WTP (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ledState")]
        public Input<string>? LedState { get; set; }

        /// <summary>
        /// Enable/disable Link Layer Discovery Protocol (LLDP) for the WTP, FortiAP, or AP (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("lldp")]
        public Input<string>? Lldp { get; set; }

        [Input("loginPasswd")]
        private Input<string>? _loginPasswd;

        /// <summary>
        /// Set the managed WTP, FortiAP, or AP's administrator password.
        /// </summary>
        public Input<string>? LoginPasswd
        {
            get => _loginPasswd;
            set
            {
                var emptySecret = Output.CreateSecret(0);
                _loginPasswd = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
            }
        }

        /// <summary>
        /// Change or reset the administrator password of a managed WTP, FortiAP or AP (yes, default, or no, default = no). Valid values: `yes`, `default`, `no`.
        /// </summary>
        [Input("loginPasswdChange")]
        public Input<string>? LoginPasswdChange { get; set; }

        /// <summary>
        /// Maximum number of stations (STAs) supported by the WTP (default = 0, meaning no client limitation).
        /// </summary>
        [Input("maxClients")]
        public Input<int>? MaxClients { get; set; }

        /// <summary>
        /// WTP (or FortiAP or AP) profile name.
        /// </summary>
        [Input("name")]
        public Input<string>? Name { get; set; }

        /// <summary>
        /// WTP, FortiAP, or AP platform. The structure of `platform` block is documented below.
        /// </summary>
        [Input("platform")]
        public Input<Inputs.WirelesscontrollerWtpprofilePlatformArgs>? Platform { get; set; }

        /// <summary>
        /// Set the WTP, FortiAP, or AP's PoE mode.
        /// </summary>
        [Input("poeMode")]
        public Input<string>? PoeMode { get; set; }

        /// <summary>
        /// Configuration options for radio 1. The structure of `radio_1` block is documented below.
        /// </summary>
        [Input("radio1")]
        public Input<Inputs.WirelesscontrollerWtpprofileRadio1Args>? Radio1 { get; set; }

        /// <summary>
        /// Configuration options for radio 2. The structure of `radio_2` block is documented below.
        /// </summary>
        [Input("radio2")]
        public Input<Inputs.WirelesscontrollerWtpprofileRadio2Args>? Radio2 { get; set; }

        /// <summary>
        /// Configuration options for radio 3. The structure of `radio_3` block is documented below.
        /// </summary>
        [Input("radio3")]
        public Input<Inputs.WirelesscontrollerWtpprofileRadio3Args>? Radio3 { get; set; }

        /// <summary>
        /// Configuration options for radio 4. The structure of `radio_4` block is documented below.
        /// </summary>
        [Input("radio4")]
        public Input<Inputs.WirelesscontrollerWtpprofileRadio4Args>? Radio4 { get; set; }

        /// <summary>
        /// Enable/disable automatically adding local subnetwork of FortiAP to split-tunneling ACL (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("splitTunnelingAclLocalApSubnet")]
        public Input<string>? SplitTunnelingAclLocalApSubnet { get; set; }

        /// <summary>
        /// Split tunneling ACL path is local/tunnel. Valid values: `tunnel`, `local`.
        /// </summary>
        [Input("splitTunnelingAclPath")]
        public Input<string>? SplitTunnelingAclPath { get; set; }

        [Input("splitTunnelingAcls")]
        private InputList<Inputs.WirelesscontrollerWtpprofileSplitTunnelingAclArgs>? _splitTunnelingAcls;

        /// <summary>
        /// Split tunneling ACL filter list. The structure of `split_tunneling_acl` block is documented below.
        /// </summary>
        public InputList<Inputs.WirelesscontrollerWtpprofileSplitTunnelingAclArgs> SplitTunnelingAcls
        {
            get => _splitTunnelingAcls ?? (_splitTunnelingAcls = new InputList<Inputs.WirelesscontrollerWtpprofileSplitTunnelingAclArgs>());
            set => _splitTunnelingAcls = value;
        }

        /// <summary>
        /// System log server configuration profile name.
        /// </summary>
        [Input("syslogProfile")]
        public Input<string>? SyslogProfile { get; set; }

        /// <summary>
        /// Downlink CAPWAP tunnel MTU (0, 576, or 1500 bytes, default = 0).
        /// </summary>
        [Input("tunMtuDownlink")]
        public Input<int>? TunMtuDownlink { get; set; }

        /// <summary>
        /// Uplink CAPWAP tunnel MTU (0, 576, or 1500 bytes, default = 0).
        /// </summary>
        [Input("tunMtuUplink")]
        public Input<int>? TunMtuUplink { 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>
        /// Set WAN port authentication mode (default = none). Valid values: `none`, `802.1x`.
        /// </summary>
        [Input("wanPortAuth")]
        public Input<string>? WanPortAuth { get; set; }

        /// <summary>
        /// WAN port 802.1x supplicant EAP methods (default = all). Valid values: `all`, `EAP-FAST`, `EAP-TLS`, `EAP-PEAP`.
        /// </summary>
        [Input("wanPortAuthMethods")]
        public Input<string>? WanPortAuthMethods { get; set; }

        /// <summary>
        /// Set WAN port 802.1x supplicant password.
        /// </summary>
        [Input("wanPortAuthPassword")]
        public Input<string>? WanPortAuthPassword { get; set; }

        /// <summary>
        /// Set WAN port 802.1x supplicant user name.
        /// </summary>
        [Input("wanPortAuthUsrname")]
        public Input<string>? WanPortAuthUsrname { get; set; }

        /// <summary>
        /// Enable/disable using a WAN port as a LAN port. Valid values: `wan-lan`, `wan-only`.
        /// </summary>
        [Input("wanPortMode")]
        public Input<string>? WanPortMode { get; set; }

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

    public sealed class WirelesscontrollerWtpprofileState : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// Control management access to the managed WTP, FortiAP, or AP. Separate entries with a space.
        /// </summary>
        [Input("allowaccess")]
        public Input<string>? Allowaccess { get; set; }

        /// <summary>
        /// Country in which this WTP, FortiAP or AP will operate (default = NA, automatically use the country configured for the current VDOM).
        /// </summary>
        [Input("apCountry")]
        public Input<string>? ApCountry { get; set; }

        /// <summary>
        /// Enable/disable AP handoff of clients to other APs (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("apHandoff")]
        public Input<string>? ApHandoff { get; set; }

        /// <summary>
        /// AP local configuration profile name.
        /// </summary>
        [Input("apcfgProfile")]
        public Input<string>? ApcfgProfile { get; set; }

        /// <summary>
        /// Bluetooth Low Energy profile name.
        /// </summary>
        [Input("bleProfile")]
        public Input<string>? BleProfile { get; set; }

        /// <summary>
        /// Comment.
        /// </summary>
        [Input("comment")]
        public Input<string>? Comment { get; set; }

        /// <summary>
        /// Enable/disable FAP console login access (default = enable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("consoleLogin")]
        public Input<string>? ConsoleLogin { get; set; }

        /// <summary>
        /// Enable/disable CAPWAP control message data channel offload.
        /// </summary>
        [Input("controlMessageOffload")]
        public Input<string>? ControlMessageOffload { get; set; }

        [Input("denyMacLists")]
        private InputList<Inputs.WirelesscontrollerWtpprofileDenyMacListGetArgs>? _denyMacLists;

        /// <summary>
        /// List of MAC addresses that are denied access to this WTP, FortiAP, or AP. The structure of `deny_mac_list` block is documented below.
        /// </summary>
        public InputList<Inputs.WirelesscontrollerWtpprofileDenyMacListGetArgs> DenyMacLists
        {
            get => _denyMacLists ?? (_denyMacLists = new InputList<Inputs.WirelesscontrollerWtpprofileDenyMacListGetArgs>());
            set => _denyMacLists = value;
        }

        /// <summary>
        /// Enable/disable data channel DTLS in kernel. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("dtlsInKernel")]
        public Input<string>? DtlsInKernel { get; set; }

        /// <summary>
        /// WTP data channel DTLS policy (default = clear-text). Valid values: `clear-text`, `dtls-enabled`, `ipsec-vpn`.
        /// </summary>
        [Input("dtlsPolicy")]
        public Input<string>? DtlsPolicy { get; set; }

        /// <summary>
        /// Sort sub-tables, please do not set this parameter when configuring static sub-tables. Options: [ false, true, natural, alphabetical ]. false: Default value, do not sort tables; true/natural: sort tables in natural order. For example: [ a10, a2 ] -&gt; [ a2, a10 ]; alphabetical: sort tables in alphabetical order. For example: [ a10, a2 ] -&gt; [ a10, a2 ].
        /// </summary>
        [Input("dynamicSortSubtable")]
        public Input<string>? DynamicSortSubtable { get; set; }

        /// <summary>
        /// Enable/disable use of energy efficient Ethernet on WTP. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("energyEfficientEthernet")]
        public Input<string>? EnergyEfficientEthernet { get; set; }

        /// <summary>
        /// ESL SES-imagotag dongle configuration. The structure of `esl_ses_dongle` block is documented below.
        /// </summary>
        [Input("eslSesDongle")]
        public Input<Inputs.WirelesscontrollerWtpprofileEslSesDongleGetArgs>? EslSesDongle { get; set; }

        /// <summary>
        /// Enable/disable station/VAP/radio extension information. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("extInfoEnable")]
        public Input<string>? ExtInfoEnable { get; set; }

        /// <summary>
        /// Enable/disable frequency handoff of clients to other channels (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("frequencyHandoff")]
        public Input<string>? FrequencyHandoff { get; set; }

        /// <summary>
        /// Enable/disable client load balancing during roaming to avoid roaming delay (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("handoffRoaming")]
        public Input<string>? HandoffRoaming { get; set; }

        /// <summary>
        /// Minimum received signal strength indicator (RSSI) value for handoff (20 - 30, default = 25).
        /// </summary>
        [Input("handoffRssi")]
        public Input<int>? HandoffRssi { get; set; }

        /// <summary>
        /// Threshold value for AP handoff.
        /// </summary>
        [Input("handoffStaThresh")]
        public Input<int>? HandoffStaThresh { get; set; }

        /// <summary>
        /// Set to allow indoor/outdoor-only channels under regulatory rules (default = platform-determined). Valid values: `platform-determined`, `outdoor`, `indoor`.
        /// </summary>
        [Input("indoorOutdoorDeployment")]
        public Input<string>? IndoorOutdoorDeployment { get; set; }

        /// <summary>
        /// Select how to prevent IP fragmentation for CAPWAP tunneled control and data packets (default = tcp-mss-adjust). Valid values: `tcp-mss-adjust`, `icmp-unreachable`.
        /// </summary>
        [Input("ipFragmentPreventing")]
        public Input<string>? IpFragmentPreventing { get; set; }

        /// <summary>
        /// WTP LAN port mapping. The structure of `lan` block is documented below.
        /// </summary>
        [Input("lan")]
        public Input<Inputs.WirelesscontrollerWtpprofileLanGetArgs>? Lan { get; set; }

        /// <summary>
        /// Set various location based service (LBS) options. The structure of `lbs` block is documented below.
        /// </summary>
        [Input("lbs")]
        public Input<Inputs.WirelesscontrollerWtpprofileLbsGetArgs>? Lbs { get; set; }

        [Input("ledSchedules")]
        private InputList<Inputs.WirelesscontrollerWtpprofileLedScheduleGetArgs>? _ledSchedules;

        /// <summary>
        /// Recurring firewall schedules for illuminating LEDs on the FortiAP. If led-state is enabled, LEDs will be visible when at least one of the schedules is valid. Separate multiple schedule names with a space. The structure of `led_schedules` block is documented below.
        /// </summary>
        public InputList<Inputs.WirelesscontrollerWtpprofileLedScheduleGetArgs> LedSchedules
        {
            get => _ledSchedules ?? (_ledSchedules = new InputList<Inputs.WirelesscontrollerWtpprofileLedScheduleGetArgs>());
            set => _ledSchedules = value;
        }

        /// <summary>
        /// Enable/disable use of LEDs on WTP (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("ledState")]
        public Input<string>? LedState { get; set; }

        /// <summary>
        /// Enable/disable Link Layer Discovery Protocol (LLDP) for the WTP, FortiAP, or AP (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("lldp")]
        public Input<string>? Lldp { get; set; }

        [Input("loginPasswd")]
        private Input<string>? _loginPasswd;

        /// <summary>
        /// Set the managed WTP, FortiAP, or AP's administrator password.
        /// </summary>
        public Input<string>? LoginPasswd
        {
            get => _loginPasswd;
            set
            {
                var emptySecret = Output.CreateSecret(0);
                _loginPasswd = Output.Tuple<Input<string>?, int>(value, emptySecret).Apply(t => t.Item1);
            }
        }

        /// <summary>
        /// Change or reset the administrator password of a managed WTP, FortiAP or AP (yes, default, or no, default = no). Valid values: `yes`, `default`, `no`.
        /// </summary>
        [Input("loginPasswdChange")]
        public Input<string>? LoginPasswdChange { get; set; }

        /// <summary>
        /// Maximum number of stations (STAs) supported by the WTP (default = 0, meaning no client limitation).
        /// </summary>
        [Input("maxClients")]
        public Input<int>? MaxClients { get; set; }

        /// <summary>
        /// WTP (or FortiAP or AP) profile name.
        /// </summary>
        [Input("name")]
        public Input<string>? Name { get; set; }

        /// <summary>
        /// WTP, FortiAP, or AP platform. The structure of `platform` block is documented below.
        /// </summary>
        [Input("platform")]
        public Input<Inputs.WirelesscontrollerWtpprofilePlatformGetArgs>? Platform { get; set; }

        /// <summary>
        /// Set the WTP, FortiAP, or AP's PoE mode.
        /// </summary>
        [Input("poeMode")]
        public Input<string>? PoeMode { get; set; }

        /// <summary>
        /// Configuration options for radio 1. The structure of `radio_1` block is documented below.
        /// </summary>
        [Input("radio1")]
        public Input<Inputs.WirelesscontrollerWtpprofileRadio1GetArgs>? Radio1 { get; set; }

        /// <summary>
        /// Configuration options for radio 2. The structure of `radio_2` block is documented below.
        /// </summary>
        [Input("radio2")]
        public Input<Inputs.WirelesscontrollerWtpprofileRadio2GetArgs>? Radio2 { get; set; }

        /// <summary>
        /// Configuration options for radio 3. The structure of `radio_3` block is documented below.
        /// </summary>
        [Input("radio3")]
        public Input<Inputs.WirelesscontrollerWtpprofileRadio3GetArgs>? Radio3 { get; set; }

        /// <summary>
        /// Configuration options for radio 4. The structure of `radio_4` block is documented below.
        /// </summary>
        [Input("radio4")]
        public Input<Inputs.WirelesscontrollerWtpprofileRadio4GetArgs>? Radio4 { get; set; }

        /// <summary>
        /// Enable/disable automatically adding local subnetwork of FortiAP to split-tunneling ACL (default = disable). Valid values: `enable`, `disable`.
        /// </summary>
        [Input("splitTunnelingAclLocalApSubnet")]
        public Input<string>? SplitTunnelingAclLocalApSubnet { get; set; }

        /// <summary>
        /// Split tunneling ACL path is local/tunnel. Valid values: `tunnel`, `local`.
        /// </summary>
        [Input("splitTunnelingAclPath")]
        public Input<string>? SplitTunnelingAclPath { get; set; }

        [Input("splitTunnelingAcls")]
        private InputList<Inputs.WirelesscontrollerWtpprofileSplitTunnelingAclGetArgs>? _splitTunnelingAcls;

        /// <summary>
        /// Split tunneling ACL filter list. The structure of `split_tunneling_acl` block is documented below.
        /// </summary>
        public InputList<Inputs.WirelesscontrollerWtpprofileSplitTunnelingAclGetArgs> SplitTunnelingAcls
        {
            get => _splitTunnelingAcls ?? (_splitTunnelingAcls = new InputList<Inputs.WirelesscontrollerWtpprofileSplitTunnelingAclGetArgs>());
            set => _splitTunnelingAcls = value;
        }

        /// <summary>
        /// System log server configuration profile name.
        /// </summary>
        [Input("syslogProfile")]
        public Input<string>? SyslogProfile { get; set; }

        /// <summary>
        /// Downlink CAPWAP tunnel MTU (0, 576, or 1500 bytes, default = 0).
        /// </summary>
        [Input("tunMtuDownlink")]
        public Input<int>? TunMtuDownlink { get; set; }

        /// <summary>
        /// Uplink CAPWAP tunnel MTU (0, 576, or 1500 bytes, default = 0).
        /// </summary>
        [Input("tunMtuUplink")]
        public Input<int>? TunMtuUplink { 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>
        /// Set WAN port authentication mode (default = none). Valid values: `none`, `802.1x`.
        /// </summary>
        [Input("wanPortAuth")]
        public Input<string>? WanPortAuth { get; set; }

        /// <summary>
        /// WAN port 802.1x supplicant EAP methods (default = all). Valid values: `all`, `EAP-FAST`, `EAP-TLS`, `EAP-PEAP`.
        /// </summary>
        [Input("wanPortAuthMethods")]
        public Input<string>? WanPortAuthMethods { get; set; }

        /// <summary>
        /// Set WAN port 802.1x supplicant password.
        /// </summary>
        [Input("wanPortAuthPassword")]
        public Input<string>? WanPortAuthPassword { get; set; }

        /// <summary>
        /// Set WAN port 802.1x supplicant user name.
        /// </summary>
        [Input("wanPortAuthUsrname")]
        public Input<string>? WanPortAuthUsrname { get; set; }

        /// <summary>
        /// Enable/disable using a WAN port as a LAN port. Valid values: `wan-lan`, `wan-only`.
        /// </summary>
        [Input("wanPortMode")]
        public Input<string>? WanPortMode { get; set; }

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