""" openconfig_if_ethernet 

Model for managing Ethernet interfaces \-\- augments the OpenConfig
model for interface configuration and state.

"""
from collections import OrderedDict

from ydk.types import Entity as _Entity_
from ydk.types import EntityPath, Identity, Enum, YType, YLeaf, YLeafList, YList, LeafDataList, Bits, Empty, Decimal64
from ydk.types import Entity, EntityPath, Identity, Enum, YType, YLeaf, YLeafList, YList, LeafDataList, Bits, Empty, Decimal64
from ydk.filters import YFilter
from ydk.errors import YError, YModelError
from ydk.errors.error_handler import handle_type_error as _handle_type_error


class ETHERNETSPEED(Identity):
    """
    base type to specify available Ethernet link
    speeds
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:ETHERNET_SPEED"):
        super().__init__(ns, pref, tag)


class SPEED10MB(ETHERNETSPEED):
    """
    10 Mbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_10MB"):
        super().__init__(ns, pref, tag)


class SPEED100MB(ETHERNETSPEED):
    """
    100 Mbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_100MB"):
        super().__init__(ns, pref, tag)


class SPEED1GB(ETHERNETSPEED):
    """
    1 Gbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_1GB"):
        super().__init__(ns, pref, tag)


class SPEED2500MB(ETHERNETSPEED):
    """
    2.5 Gbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_2500MB"):
        super().__init__(ns, pref, tag)


class SPEED5GB(ETHERNETSPEED):
    """
    5 Gbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_5GB"):
        super().__init__(ns, pref, tag)


class SPEED10GB(ETHERNETSPEED):
    """
    10 Gbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_10GB"):
        super().__init__(ns, pref, tag)


class SPEED25GB(ETHERNETSPEED):
    """
    25 Gbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_25GB"):
        super().__init__(ns, pref, tag)


class SPEED40GB(ETHERNETSPEED):
    """
    40 Gbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_40GB"):
        super().__init__(ns, pref, tag)


class SPEED50GB(ETHERNETSPEED):
    """
    50 Gbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_50GB"):
        super().__init__(ns, pref, tag)


class SPEED100GB(ETHERNETSPEED):
    """
    100 Gbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_100GB"):
        super().__init__(ns, pref, tag)


class SPEED200GB(ETHERNETSPEED):
    """
    200 Gbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_200GB"):
        super().__init__(ns, pref, tag)


class SPEED400GB(ETHERNETSPEED):
    """
    400 Gbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_400GB"):
        super().__init__(ns, pref, tag)


class SPEED600GB(ETHERNETSPEED):
    """
    600 Gbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_600GB"):
        super().__init__(ns, pref, tag)


class SPEED800GB(ETHERNETSPEED):
    """
    800 Gbps Ethernet
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_800GB"):
        super().__init__(ns, pref, tag)


class SPEEDUNKNOWN(ETHERNETSPEED):
    """
    Interface speed is unknown.  Systems may report
    speed UNKNOWN when an interface is down or unpopuplated (e.g.,
    pluggable not present).
    
    """
    _prefix = 'oc-eth'
    _revision = '2020-05-06'

    def __init__(self, ns="http://openconfig.net/yang/interfaces/ethernet", pref="openconfig-if-ethernet", tag="openconfig-if-ethernet:SPEED_UNKNOWN"):
        super().__init__(ns, pref, tag)



