"""Shared choices for the different models."""

from pydantic import ConstrainedInt
from pydantic_forms.types import strEnum


class Vendor(strEnum):
    """Enumerator for the different product vendors that are supported."""

    JUNIPER = "juniper"
    NOKIA = "nokia"


class PortNumber(ConstrainedInt):
    """Constrained integer for valid port numbers.

    The range from 49152 to 65535 is marked as ephemeral, and can therefore not be selected for permanent allocation.
    """

    gt = 0
    le = 49151


class ConnectionStrategy(strEnum):
    """An enumerator for the connection Strategies."""

    IN_BAND = "IN BAND"
    OUT_OF_BAND = "OUT OF BAND"