from enum import Enum


class FeeType(Enum):
    flat_fee = "flat_fee"
    usage_based_fee = "usage_based_fee"
    combination = "combination"
    no_charge = "no_charge"
    other = "other"


class UserCategory(Enum):
    universities = "universities"
    further_education = "further_education"
    secondary_schools = "secondary_schools"
    primary_schools = "primary_schools"
    institutes = "institutes"
    cultural = "cultural"
    hospitals = "hospitals"
    government = "government"
    iros = "iros"
    for_profit_orgs = "for_profit_orgs"


class ServiceCategory(Enum):
    network_services = "network_services"
    isp_support = "isp_support"
    security = "security"
    identity = "identity"
    collaboration = "collaboration"
    multimedia = "multimedia"
    storage_and_hosting = "storage_and_hosting"
    professional_services = "professional_services"


class ConnectivityCoverage(Enum):
    yes_incl_other = "yes_incl_other"
    yes_national_nren = "yes_national_nren"
    sometimes = "sometimes"
    no_policy = "no_policy"
    no_financial = "no_financial"
    no_other = "no_other"
    unsure = "unsure"


class CarryMechanism(Enum):
    nren_local_loops = "nren_local_loops"
    regional_nren_backbone = "regional_nren_backbone"
    commercial_provider_backbone = "commercial_provider_backbone"
    man = "man"
    other = "other"


class CommercialConnectivityCoverage(Enum):
    yes_incl_other = "yes_incl_other"
    yes_national_nren = "yes_national_nren"
    yes_if_sponsored = "yes_if_sponsored"
    no_but_direct_peering = "no_but_direct_peering"
    no_policy = "no_policy"
    no_financial = "no_financial"
    no_other = "no_other"


class CommarcialChargingLevel(Enum):
    higher_than_r_e_charges = "higher_than_r_e_charges"
    same_as_r_e_charges = "same_as_r_e_charges"
    no_charges_if_r_e_requested = "no_charges_if_r_e_requested"
    lower_than_r_e_charges = "lower_than_r_e_charges"


class ConnectionMethod(Enum):
    internet_exchange = "internet_exchange"
    open_exchange = "open_exchange"
    direct = "direct"
    geant = "geant"
    other = "other"


class YesNoPlanned(Enum):
    yes = "yes"
    no = "no"
    planned = "planned"


class MonitoringMethod(Enum):
    span_ports = "span_ports"
    taps = "taps"
    both = "both"