# coding=utf-8
# *** 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! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from . import _utilities

__all__ = [
    'DevicePortOverrideArgs',
    'RadiusProfileAcctServerArgs',
    'RadiusProfileAuthServerArgs',
    'WlanScheduleArgs',
]

@pulumi.input_type
class DevicePortOverrideArgs:
    def __init__(__self__, *,
                 number: pulumi.Input[int],
                 aggregate_num_ports: Optional[pulumi.Input[int]] = None,
                 name: Optional[pulumi.Input[str]] = None,
                 op_mode: Optional[pulumi.Input[str]] = None,
                 port_profile_id: Optional[pulumi.Input[str]] = None):
        """
        :param pulumi.Input[int] number: Switch port number.
        :param pulumi.Input[int] aggregate_num_ports: Number of ports in the aggregate.
        :param pulumi.Input[str] name: Human-readable name of the port.
        :param pulumi.Input[str] op_mode: Operating mode of the port, valid values are `switch`, `mirror`, and `aggregate`. Defaults to `switch`.
        :param pulumi.Input[str] port_profile_id: ID of the Port Profile used on this port.
        """
        pulumi.set(__self__, "number", number)
        if aggregate_num_ports is not None:
            pulumi.set(__self__, "aggregate_num_ports", aggregate_num_ports)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if op_mode is not None:
            pulumi.set(__self__, "op_mode", op_mode)
        if port_profile_id is not None:
            pulumi.set(__self__, "port_profile_id", port_profile_id)

    @property
    @pulumi.getter
    def number(self) -> pulumi.Input[int]:
        """
        Switch port number.
        """
        return pulumi.get(self, "number")

    @number.setter
    def number(self, value: pulumi.Input[int]):
        pulumi.set(self, "number", value)

    @property
    @pulumi.getter(name="aggregateNumPorts")
    def aggregate_num_ports(self) -> Optional[pulumi.Input[int]]:
        """
        Number of ports in the aggregate.
        """
        return pulumi.get(self, "aggregate_num_ports")

    @aggregate_num_ports.setter
    def aggregate_num_ports(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "aggregate_num_ports", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        Human-readable name of the port.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="opMode")
    def op_mode(self) -> Optional[pulumi.Input[str]]:
        """
        Operating mode of the port, valid values are `switch`, `mirror`, and `aggregate`. Defaults to `switch`.
        """
        return pulumi.get(self, "op_mode")

    @op_mode.setter
    def op_mode(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "op_mode", value)

    @property
    @pulumi.getter(name="portProfileId")
    def port_profile_id(self) -> Optional[pulumi.Input[str]]:
        """
        ID of the Port Profile used on this port.
        """
        return pulumi.get(self, "port_profile_id")

    @port_profile_id.setter
    def port_profile_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "port_profile_id", value)


@pulumi.input_type
class RadiusProfileAcctServerArgs:
    def __init__(__self__, *,
                 ip: pulumi.Input[str],
                 xsecret: pulumi.Input[str],
                 port: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[str] ip: IP address of accounting service server.
        :param pulumi.Input[str] xsecret: RADIUS secret.
        :param pulumi.Input[int] port: Port of accounting service. Defaults to `1813`.
        """
        pulumi.set(__self__, "ip", ip)
        pulumi.set(__self__, "xsecret", xsecret)
        if port is not None:
            pulumi.set(__self__, "port", port)

    @property
    @pulumi.getter
    def ip(self) -> pulumi.Input[str]:
        """
        IP address of accounting service server.
        """
        return pulumi.get(self, "ip")

    @ip.setter
    def ip(self, value: pulumi.Input[str]):
        pulumi.set(self, "ip", value)

    @property
    @pulumi.getter
    def xsecret(self) -> pulumi.Input[str]:
        """
        RADIUS secret.
        """
        return pulumi.get(self, "xsecret")

    @xsecret.setter
    def xsecret(self, value: pulumi.Input[str]):
        pulumi.set(self, "xsecret", value)

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[int]]:
        """
        Port of accounting service. Defaults to `1813`.
        """
        return pulumi.get(self, "port")

    @port.setter
    def port(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "port", value)


@pulumi.input_type
class RadiusProfileAuthServerArgs:
    def __init__(__self__, *,
                 ip: pulumi.Input[str],
                 xsecret: pulumi.Input[str],
                 port: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[str] ip: IP address of authentication service server.
        :param pulumi.Input[str] xsecret: RADIUS secret.
        :param pulumi.Input[int] port: Port of authentication service. Defaults to `1812`.
        """
        pulumi.set(__self__, "ip", ip)
        pulumi.set(__self__, "xsecret", xsecret)
        if port is not None:
            pulumi.set(__self__, "port", port)

    @property
    @pulumi.getter
    def ip(self) -> pulumi.Input[str]:
        """
        IP address of authentication service server.
        """
        return pulumi.get(self, "ip")

    @ip.setter
    def ip(self, value: pulumi.Input[str]):
        pulumi.set(self, "ip", value)

    @property
    @pulumi.getter
    def xsecret(self) -> pulumi.Input[str]:
        """
        RADIUS secret.
        """
        return pulumi.get(self, "xsecret")

    @xsecret.setter
    def xsecret(self, value: pulumi.Input[str]):
        pulumi.set(self, "xsecret", value)

    @property
    @pulumi.getter
    def port(self) -> Optional[pulumi.Input[int]]:
        """
        Port of authentication service. Defaults to `1812`.
        """
        return pulumi.get(self, "port")

    @port.setter
    def port(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "port", value)


@pulumi.input_type
class WlanScheduleArgs:
    def __init__(__self__, *,
                 day_of_week: pulumi.Input[str],
                 duration: pulumi.Input[int],
                 start_hour: pulumi.Input[int],
                 name: Optional[pulumi.Input[str]] = None,
                 start_minute: Optional[pulumi.Input[int]] = None):
        """
        :param pulumi.Input[str] day_of_week: Day of week for the block. Valid values are `sun`, `mon`, `tue`, `wed`, `thu`, `fri`, `sat`.
        :param pulumi.Input[int] duration: Length of the block in minutes.
        :param pulumi.Input[int] start_hour: Start hour for the block (0-23).
        :param pulumi.Input[str] name: Name of the block.
        :param pulumi.Input[int] start_minute: Start minute for the block (0-59). Defaults to `0`.
        """
        pulumi.set(__self__, "day_of_week", day_of_week)
        pulumi.set(__self__, "duration", duration)
        pulumi.set(__self__, "start_hour", start_hour)
        if name is not None:
            pulumi.set(__self__, "name", name)
        if start_minute is not None:
            pulumi.set(__self__, "start_minute", start_minute)

    @property
    @pulumi.getter(name="dayOfWeek")
    def day_of_week(self) -> pulumi.Input[str]:
        """
        Day of week for the block. Valid values are `sun`, `mon`, `tue`, `wed`, `thu`, `fri`, `sat`.
        """
        return pulumi.get(self, "day_of_week")

    @day_of_week.setter
    def day_of_week(self, value: pulumi.Input[str]):
        pulumi.set(self, "day_of_week", value)

    @property
    @pulumi.getter
    def duration(self) -> pulumi.Input[int]:
        """
        Length of the block in minutes.
        """
        return pulumi.get(self, "duration")

    @duration.setter
    def duration(self, value: pulumi.Input[int]):
        pulumi.set(self, "duration", value)

    @property
    @pulumi.getter(name="startHour")
    def start_hour(self) -> pulumi.Input[int]:
        """
        Start hour for the block (0-23).
        """
        return pulumi.get(self, "start_hour")

    @start_hour.setter
    def start_hour(self, value: pulumi.Input[int]):
        pulumi.set(self, "start_hour", value)

    @property
    @pulumi.getter
    def name(self) -> Optional[pulumi.Input[str]]:
        """
        Name of the block.
        """
        return pulumi.get(self, "name")

    @name.setter
    def name(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "name", value)

    @property
    @pulumi.getter(name="startMinute")
    def start_minute(self) -> Optional[pulumi.Input[int]]:
        """
        Start minute for the block (0-59). Defaults to `0`.
        """
        return pulumi.get(self, "start_minute")

    @start_minute.setter
    def start_minute(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "start_minute", value)


