// *** 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 USB LTE/WIMAX devices. Applies to FortiOS Version `7.0.4`.
    /// 
    /// ## Import
    /// 
    /// System LteModem can be imported using any of these accepted formats
    /// 
    /// ```sh
    ///  $ pulumi import fortios:index/systemLtemodem:SystemLtemodem labelname SystemLteModem
    /// ```
    /// 
    ///  If you do not want to import arguments of block$ export "FORTIOS_IMPORT_TABLE"="false"
    /// 
    /// ```sh
    ///  $ pulumi import fortios:index/systemLtemodem:SystemLtemodem labelname SystemLteModem
    /// ```
    /// 
    ///  $ unset "FORTIOS_IMPORT_TABLE"
    /// </summary>
    [FortiosResourceType("fortios:index/systemLtemodem:SystemLtemodem")]
    public partial class SystemLtemodem : global::Pulumi.CustomResource
    {
        /// <summary>
        /// Login APN string for PDP-IP packet data calls.
        /// </summary>
        [Output("apn")]
        public Output<string> Apn { get; private set; } = null!;

        /// <summary>
        /// Authentication type for PDP-IP packet data calls. Valid values: `none`, `pap`, `chap`.
        /// </summary>
        [Output("authtype")]
        public Output<string> Authtype { get; private set; } = null!;

        /// <summary>
        /// Extra initialization string for USB LTE/WIMAX devices.
        /// </summary>
        [Output("extraInit")]
        public Output<string> ExtraInit { get; private set; } = null!;

        /// <summary>
        /// Hold down timer (10 - 60 sec).
        /// </summary>
        [Output("holddownTimer")]
        public Output<int> HolddownTimer { get; private set; } = null!;

        /// <summary>
        /// The interface that the modem is acting as a redundant interface for.
        /// </summary>
        [Output("interface")]
        public Output<string> Interface { get; private set; } = null!;

        /// <summary>
        /// Modem operation mode. Valid values: `standalone`, `redundant`.
        /// </summary>
        [Output("mode")]
        public Output<string> Mode { get; private set; } = null!;

        /// <summary>
        /// Modem port index (0 - 20).
        /// </summary>
        [Output("modemPort")]
        public Output<int> ModemPort { get; private set; } = null!;

        /// <summary>
        /// Authentication password for PDP-IP packet data calls.
        /// </summary>
        [Output("passwd")]
        public Output<string?> Passwd { get; private set; } = null!;

        /// <summary>
        /// Enable/disable USB LTE/WIMAX device. Valid values: `enable`, `disable`.
        /// </summary>
        [Output("status")]
        public Output<string> Status { get; private set; } = null!;

        /// <summary>
        /// Authentication username for PDP-IP packet data calls.
        /// </summary>
        [Output("username")]
        public Output<string> Username { 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>
        /// Create a SystemLtemodem 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 SystemLtemodem(string name, SystemLtemodemArgs? args = null, CustomResourceOptions? options = null)
            : base("fortios:index/systemLtemodem:SystemLtemodem", name, args ?? new SystemLtemodemArgs(), MakeResourceOptions(options, ""))
        {
        }

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

    public sealed class SystemLtemodemArgs : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// Login APN string for PDP-IP packet data calls.
        /// </summary>
        [Input("apn")]
        public Input<string>? Apn { get; set; }

        /// <summary>
        /// Authentication type for PDP-IP packet data calls. Valid values: `none`, `pap`, `chap`.
        /// </summary>
        [Input("authtype")]
        public Input<string>? Authtype { get; set; }

        /// <summary>
        /// Extra initialization string for USB LTE/WIMAX devices.
        /// </summary>
        [Input("extraInit")]
        public Input<string>? ExtraInit { get; set; }

        /// <summary>
        /// Hold down timer (10 - 60 sec).
        /// </summary>
        [Input("holddownTimer")]
        public Input<int>? HolddownTimer { get; set; }

        /// <summary>
        /// The interface that the modem is acting as a redundant interface for.
        /// </summary>
        [Input("interface")]
        public Input<string>? Interface { get; set; }

        /// <summary>
        /// Modem operation mode. Valid values: `standalone`, `redundant`.
        /// </summary>
        [Input("mode")]
        public Input<string>? Mode { get; set; }

        /// <summary>
        /// Modem port index (0 - 20).
        /// </summary>
        [Input("modemPort")]
        public Input<int>? ModemPort { get; set; }

        /// <summary>
        /// Authentication password for PDP-IP packet data calls.
        /// </summary>
        [Input("passwd")]
        public Input<string>? Passwd { get; set; }

        /// <summary>
        /// Enable/disable USB LTE/WIMAX device. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("status")]
        public Input<string>? Status { get; set; }

        /// <summary>
        /// Authentication username for PDP-IP packet data calls.
        /// </summary>
        [Input("username")]
        public Input<string>? Username { 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; }

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

    public sealed class SystemLtemodemState : global::Pulumi.ResourceArgs
    {
        /// <summary>
        /// Login APN string for PDP-IP packet data calls.
        /// </summary>
        [Input("apn")]
        public Input<string>? Apn { get; set; }

        /// <summary>
        /// Authentication type for PDP-IP packet data calls. Valid values: `none`, `pap`, `chap`.
        /// </summary>
        [Input("authtype")]
        public Input<string>? Authtype { get; set; }

        /// <summary>
        /// Extra initialization string for USB LTE/WIMAX devices.
        /// </summary>
        [Input("extraInit")]
        public Input<string>? ExtraInit { get; set; }

        /// <summary>
        /// Hold down timer (10 - 60 sec).
        /// </summary>
        [Input("holddownTimer")]
        public Input<int>? HolddownTimer { get; set; }

        /// <summary>
        /// The interface that the modem is acting as a redundant interface for.
        /// </summary>
        [Input("interface")]
        public Input<string>? Interface { get; set; }

        /// <summary>
        /// Modem operation mode. Valid values: `standalone`, `redundant`.
        /// </summary>
        [Input("mode")]
        public Input<string>? Mode { get; set; }

        /// <summary>
        /// Modem port index (0 - 20).
        /// </summary>
        [Input("modemPort")]
        public Input<int>? ModemPort { get; set; }

        /// <summary>
        /// Authentication password for PDP-IP packet data calls.
        /// </summary>
        [Input("passwd")]
        public Input<string>? Passwd { get; set; }

        /// <summary>
        /// Enable/disable USB LTE/WIMAX device. Valid values: `enable`, `disable`.
        /// </summary>
        [Input("status")]
        public Input<string>? Status { get; set; }

        /// <summary>
        /// Authentication username for PDP-IP packet data calls.
        /// </summary>
        [Input("username")]
        public Input<string>? Username { 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; }

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