content: from django.utils.translation import gettext_lazy as _
  
  from utilities.choices import ChoiceSet
  
  
  #
  # Sites
  #
  
  class SiteStatusChoices(ChoiceSet):
      key = 'Site.status'
  
      STATUS_PLANNED = 'planned'
      STATUS_STAGING = 'staging'
      STATUS_ACTIVE = 'active'
      STATUS_DECOMMISSIONING = 'decommissioning'
      STATUS_RETIRED = 'retired'
  
      CHOICES = [
          (STATUS_PLANNED, _('Planned'), 'cyan'),
          (STATUS_STAGING, _('Staging'), 'blue'),
          (STATUS_ACTIVE, _('Active'), 'green'),
          (STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
          (STATUS_RETIRED, _('Retired'), 'red'),
      ]
  
  
  #
  # Locations
  #
  
  class LocationStatusChoices(ChoiceSet):
      key = 'Location.status'
  
      STATUS_PLANNED = 'planned'
      STATUS_STAGING = 'staging'
      STATUS_ACTIVE = 'active'
      STATUS_DECOMMISSIONING = 'decommissioning'
      STATUS_RETIRED = 'retired'
  
      CHOICES = [
          (STATUS_PLANNED, 'Planned', 'cyan'),
          (STATUS_STAGING, 'Staging', 'blue'),
          (STATUS_ACTIVE, 'Active', 'green'),
          (STATUS_DECOMMISSIONING, 'Decommissioning', 'yellow'),
          (STATUS_RETIRED, 'Retired', 'red'),
      ]
  
  
  #
  # Racks
  #
  
  class RackFormFactorChoices(ChoiceSet):
  
      TYPE_2POST = '2-post-frame'
      TYPE_4POST = '4-post-frame'
      TYPE_CABINET = '4-post-cabinet'
      TYPE_WALLFRAME = 'wall-frame'
      TYPE_WALLFRAME_VERTICAL = 'wall-frame-vertical'
      TYPE_WALLCABINET = 'wall-cabinet'
      TYPE_WALLCABINET_VERTICAL = 'wall-cabinet-vertical'
  
      CHOICES = (
          (TYPE_2POST, _('2-post frame')),
          (TYPE_4POST, _('4-post frame')),
          (TYPE_CABINET, _('4-post cabinet')),
          (TYPE_WALLFRAME, _('Wall-mounted frame')),
          (TYPE_WALLFRAME_VERTICAL, _('Wall-mounted frame (vertical)')),
          (TYPE_WALLCABINET, _('Wall-mounted cabinet')),
          (TYPE_WALLCABINET_VERTICAL, _('Wall-mounted cabinet (vertical)')),
      )
  
  
  class RackWidthChoices(ChoiceSet):
  
      WIDTH_10IN = 10
      WIDTH_19IN = 19
      WIDTH_21IN = 21
      WIDTH_23IN = 23
  
      CHOICES = (
          (WIDTH_10IN, _('{n} inches').format(n=10)),
          (WIDTH_19IN, _('{n} inches').format(n=19)),
          (WIDTH_21IN, _('{n} inches').format(n=21)),
          (WIDTH_23IN, _('{n} inches').format(n=23)),
      )
  
  
  class RackStatusChoices(ChoiceSet):
      key = 'Rack.status'
  
      STATUS_RESERVED = 'reserved'
      STATUS_AVAILABLE = 'available'
      STATUS_PLANNED = 'planned'
      STATUS_ACTIVE = 'active'
      STATUS_DEPRECATED = 'deprecated'
  
      CHOICES = [
          (STATUS_RESERVED, _('Reserved'), 'yellow'),
          (STATUS_AVAILABLE, _('Available'), 'green'),
          (STATUS_PLANNED, _('Planned'), 'cyan'),
          (STATUS_ACTIVE, _('Active'), 'blue'),
          (STATUS_DEPRECATED, _('Deprecated'), 'red'),
      ]
  
  
  class RackDimensionUnitChoices(ChoiceSet):
  
      UNIT_MILLIMETER = 'mm'
      UNIT_INCH = 'in'
  
      CHOICES = (
          (UNIT_MILLIMETER, _('Millimeters')),
          (UNIT_INCH, _('Inches')),
      )
  
  
  class RackElevationDetailRenderChoices(ChoiceSet):
  
      RENDER_JSON = 'json'
      RENDER_SVG = 'svg'
  
      CHOICES = (
          (RENDER_JSON, 'json'),
          (RENDER_SVG, 'svg')
      )
  
  
  class RackAirflowChoices(ChoiceSet):
      key = 'Rack.airflow'
  
      FRONT_TO_REAR = 'front-to-rear'
      REAR_TO_FRONT = 'rear-to-front'
  
      CHOICES = [
          (FRONT_TO_REAR, _('Front to rear')),
          (REAR_TO_FRONT, _('Rear to front')),
      ]
  
  
  #
  # Rack reservations
  #
  
  class RackReservationStatusChoices(ChoiceSet):
      key = 'RackReservation.status'
  
      STATUS_PENDING = 'pending'
      STATUS_ACTIVE = 'active'
      STATUS_STALE = 'stale'
  
      CHOICES = [
          (STATUS_PENDING, _('Pending'), 'cyan'),
          (STATUS_ACTIVE, _('Active'), 'green'),
          (STATUS_STALE, _('Stale'), 'orange'),
      ]
  
  
  #
  # DeviceTypes
  #
  
  class SubdeviceRoleChoices(ChoiceSet):
  
      ROLE_PARENT = 'parent'
      ROLE_CHILD = 'child'
  
      CHOICES = (
          (ROLE_PARENT, _('Parent')),
          (ROLE_CHILD, _('Child')),
      )
  
  
  #
  # Devices
  #
  
  class DeviceFaceChoices(ChoiceSet):
  
      FACE_FRONT = 'front'
      FACE_REAR = 'rear'
  
      CHOICES = (
          (FACE_FRONT, _('Front')),
          (FACE_REAR, _('Rear')),
      )
  
  
  class DeviceStatusChoices(ChoiceSet):
      key = 'Device.status'
  
      STATUS_OFFLINE = 'offline'
      STATUS_ACTIVE = 'active'
      STATUS_PLANNED = 'planned'
      STATUS_STAGED = 'staged'
      STATUS_FAILED = 'failed'
      STATUS_INVENTORY = 'inventory'
      STATUS_DECOMMISSIONING = 'decommissioning'
  
      CHOICES = [
          (STATUS_OFFLINE, _('Offline'), 'gray'),
          (STATUS_ACTIVE, _('Active'), 'green'),
          (STATUS_PLANNED, _('Planned'), 'cyan'),
          (STATUS_STAGED, _('Staged'), 'blue'),
          (STATUS_FAILED, _('Failed'), 'red'),
          (STATUS_INVENTORY, _('Inventory'), 'purple'),
          (STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
      ]
  
  
  class DeviceAirflowChoices(ChoiceSet):
      key = 'Device.airflow'
  
      AIRFLOW_FRONT_TO_REAR = 'front-to-rear'
      AIRFLOW_REAR_TO_FRONT = 'rear-to-front'
      AIRFLOW_LEFT_TO_RIGHT = 'left-to-right'
      AIRFLOW_RIGHT_TO_LEFT = 'right-to-left'
      AIRFLOW_SIDE_TO_REAR = 'side-to-rear'
      AIRFLOW_REAR_TO_SIDE = 'rear-to-side'
      AIRFLOW_BOTTOM_TO_TOP = 'bottom-to-top'
      AIRFLOW_TOP_TO_BOTTOM = 'top-to-bottom'
      AIRFLOW_PASSIVE = 'passive'
      AIRFLOW_MIXED = 'mixed'
  
      CHOICES = [
          (AIRFLOW_FRONT_TO_REAR, _('Front to rear')),
          (AIRFLOW_REAR_TO_FRONT, _('Rear to front')),
          (AIRFLOW_LEFT_TO_RIGHT, _('Left to right')),
          (AIRFLOW_RIGHT_TO_LEFT, _('Right to left')),
          (AIRFLOW_SIDE_TO_REAR, _('Side to rear')),
          (AIRFLOW_REAR_TO_SIDE, _('Rear to side')),
          (AIRFLOW_BOTTOM_TO_TOP, _('Bottom to top')),
          (AIRFLOW_TOP_TO_BOTTOM, _('Top to bottom')),
          (AIRFLOW_PASSIVE, _('Passive')),
          (AIRFLOW_MIXED, _('Mixed')),
      ]
  
  
  #
  # Modules
  #
  
  class ModuleStatusChoices(ChoiceSet):
      key = 'Module.status'
  
      STATUS_OFFLINE = 'offline'
      STATUS_ACTIVE = 'active'
      STATUS_PLANNED = 'planned'
      STATUS_STAGED = 'staged'
      STATUS_FAILED = 'failed'
      STATUS_DECOMMISSIONING = 'decommissioning'
  
      CHOICES = [
          (STATUS_OFFLINE, _('Offline'), 'gray'),
          (STATUS_ACTIVE, _('Active'), 'green'),
          (STATUS_PLANNED, _('Planned'), 'cyan'),
          (STATUS_STAGED, _('Staged'), 'blue'),
          (STATUS_FAILED, _('Failed'), 'red'),
          (STATUS_DECOMMISSIONING, _('Decommissioning'), 'yellow'),
      ]
  
  
  class ModuleAirflowChoices(ChoiceSet):
      key = 'Module.airflow'
  
      FRONT_TO_REAR = 'front-to-rear'
      REAR_TO_FRONT = 'rear-to-front'
      LEFT_TO_RIGHT = 'left-to-right'
      RIGHT_TO_LEFT = 'right-to-left'
      SIDE_TO_REAR = 'side-to-rear'
      PASSIVE = 'passive'
  
      CHOICES = [
          (FRONT_TO_REAR, _('Front to rear')),
          (REAR_TO_FRONT, _('Rear to front')),
          (LEFT_TO_RIGHT, _('Left to right')),
          (RIGHT_TO_LEFT, _('Right to left')),
          (SIDE_TO_REAR, _('Side to rear')),
          (PASSIVE, _('Passive')),
      ]
  
  
  #
  # ConsolePorts
  #
  
  class ConsolePortTypeChoices(ChoiceSet):
  
      TYPE_DE9 = 'de-9'
      TYPE_DB25 = 'db-25'
      TYPE_RJ11 = 'rj-11'
      TYPE_RJ12 = 'rj-12'
      TYPE_RJ45 = 'rj-45'
      TYPE_MINI_DIN_8 = 'mini-din-8'
      TYPE_USB_A = 'usb-a'
      TYPE_USB_B = 'usb-b'
      TYPE_USB_C = 'usb-c'
      TYPE_USB_MINI_A = 'usb-mini-a'
      TYPE_USB_MINI_B = 'usb-mini-b'
      TYPE_USB_MICRO_A = 'usb-micro-a'
      TYPE_USB_MICRO_B = 'usb-micro-b'
      TYPE_USB_MICRO_AB = 'usb-micro-ab'
      TYPE_OTHER = 'other'
  
      CHOICES = (
          ('Serial', (
              (TYPE_DE9, 'DE-9'),
              (TYPE_DB25, 'DB-25'),
              (TYPE_RJ11, 'RJ-11'),
              (TYPE_RJ12, 'RJ-12'),
              (TYPE_RJ45, 'RJ-45'),
              (TYPE_MINI_DIN_8, 'Mini-DIN 8'),
          )),
          ('USB', (
              (TYPE_USB_A, 'USB Type A'),
              (TYPE_USB_B, 'USB Type B'),
              (TYPE_USB_C, 'USB Type C'),
              (TYPE_USB_MINI_A, 'USB Mini A'),
              (TYPE_USB_MINI_B, 'USB Mini B'),
              (TYPE_USB_MICRO_A, 'USB Micro A'),
              (TYPE_USB_MICRO_B, 'USB Micro B'),
              (TYPE_USB_MICRO_AB, 'USB Micro AB'),
          )),
          ('Other', (
              (TYPE_OTHER, 'Other'),
          )),
      )
  
  
  class ConsolePortSpeedChoices(ChoiceSet):
  
      SPEED_1200 = 1200
      SPEED_2400 = 2400
      SPEED_4800 = 4800
      SPEED_9600 = 9600
      SPEED_19200 = 19200
      SPEED_38400 = 38400
      SPEED_57600 = 57600
      SPEED_115200 = 115200
  
      CHOICES = (
          (SPEED_1200, '1200 bps'),
          (SPEED_2400, '2400 bps'),
          (SPEED_4800, '4800 bps'),
          (SPEED_9600, '9600 bps'),
          (SPEED_19200, '19.2 kbps'),
          (SPEED_38400, '38.4 kbps'),
          (SPEED_57600, '57.6 kbps'),
          (SPEED_115200, '115.2 kbps'),
      )
  
  
  #
  # PowerPorts
  #
  
  class PowerPortTypeChoices(ChoiceSet):
  
      # IEC 60320
      TYPE_IEC_C6 = 'iec-60320-c6'
      TYPE_IEC_C8 = 'iec-60320-c8'
      TYPE_IEC_C14 = 'iec-60320-c14'
      TYPE_IEC_C16 = 'iec-60320-c16'
      TYPE_IEC_C18 = 'iec-60320-c18'
      TYPE_IEC_C20 = 'iec-60320-c20'
      TYPE_IEC_C22 = 'iec-60320-c22'
      # IEC 60309
      TYPE_IEC_PNE4H = 'iec-60309-p-n-e-4h'
      TYPE_IEC_PNE6H = 'iec-60309-p-n-e-6h'
      TYPE_IEC_PNE9H = 'iec-60309-p-n-e-9h'
      TYPE_IEC_2PE4H = 'iec-60309-2p-e-4h'
      TYPE_IEC_2PE6H = 'iec-60309-2p-e-6h'
      TYPE_IEC_2PE9H = 'iec-60309-2p-e-9h'
      TYPE_IEC_3PE4H = 'iec-60309-3p-e-4h'
      TYPE_IEC_3PE6H = 'iec-60309-3p-e-6h'
      TYPE_IEC_3PE9H = 'iec-60309-3p-e-9h'
      TYPE_IEC_3PNE4H = 'iec-60309-3p-n-e-4h'
      TYPE_IEC_3PNE6H = 'iec-60309-3p-n-e-6h'
      TYPE_IEC_3PNE9H = 'iec-60309-3p-n-e-9h'
      # IEC 60906-1
      TYPE_IEC_60906_1 = 'iec-60906-1'
      TYPE_NBR_14136_10A = 'nbr-14136-10a'
      TYPE_NBR_14136_20A = 'nbr-14136-20a'
      # NEMA non-locking
      TYPE_NEMA_115P = 'nema-1-15p'
      TYPE_NEMA_515P = 'nema-5-15p'
      TYPE_NEMA_520P = 'nema-5-20p'
      TYPE_NEMA_530P = 'nema-5-30p'
      TYPE_NEMA_550P = 'nema-5-50p'
      TYPE_NEMA_615P = 'nema-6-15p'
      TYPE_NEMA_620P = 'nema-6-20p'
      TYPE_NEMA_630P = 'nema-6-30p'
      TYPE_NEMA_650P = 'nema-6-50p'
      TYPE_NEMA_1030P = 'nema-10-30p'
      TYPE_NEMA_1050P = 'nema-10-50p'
      TYPE_NEMA_1420P = 'nema-14-20p'
      TYPE_NEMA_1430P = 'nema-14-30p'
      TYPE_NEMA_1450P = 'nema-14-50p'
      TYPE_NEMA_1460P = 'nema-14-60p'
      TYPE_NEMA_1515P = 'nema-15-15p'
      TYPE_NEMA_1520P = 'nema-15-20p'
      TYPE_NEMA_1530P = 'nema-15-30p'
      TYPE_NEMA_1550P = 'nema-15-50p'
      TYPE_NEMA_1560P = 'nema-15-60p'
      # NEMA locking
      TYPE_NEMA_L115P = 'nema-l1-15p'
      TYPE_NEMA_L515P = 'nema-l5-15p'
      TYPE_NEMA_L520P = 'nema-l5-20p'
      TYPE_NEMA_L530P = 'nema-l5-30p'
      TYPE_NEMA_L550P = 'nema-l5-50p'
      TYPE_NEMA_L615P = 'nema-l6-15p'
      TYPE_NEMA_L620P = 'nema-l6-20p'
      TYPE_NEMA_L630P = 'nema-l6-30p'
      TYPE_NEMA_L650P = 'nema-l6-50p'
      TYPE_NEMA_L1030P = 'nema-l10-30p'
      TYPE_NEMA_L1420P = 'nema-l14-20p'
      TYPE_NEMA_L1430P = 'nema-l14-30p'
      TYPE_NEMA_L1450P = 'nema-l14-50p'
      TYPE_NEMA_L1460P = 'nema-l14-60p'
      TYPE_NEMA_L1520P = 'nema-l15-20p'
      TYPE_NEMA_L1530P = 'nema-l15-30p'
      TYPE_NEMA_L1550P = 'nema-l15-50p'
      TYPE_NEMA_L1560P = 'nema-l15-60p'
      TYPE_NEMA_L2120P = 'nema-l21-20p'
      TYPE_NEMA_L2130P = 'nema-l21-30p'
      TYPE_NEMA_L2220P = 'nema-l22-20p'
      TYPE_NEMA_L2230P = 'nema-l22-30p'
      # California style
      TYPE_CS6361C = 'cs6361c'
      TYPE_CS6365C = 'cs6365c'
      TYPE_CS8165C = 'cs8165c'
      TYPE_CS8265C = 'cs8265c'
      TYPE_CS8365C = 'cs8365c'
      TYPE_CS8465C = 'cs8465c'
      # ITA/international
      TYPE_ITA_C = 'ita-c'
      TYPE_ITA_E = 'ita-e'
      TYPE_ITA_F = 'ita-f'
      TYPE_ITA_EF = 'ita-ef'
      TYPE_ITA_G = 'ita-g'
      TYPE_ITA_H = 'ita-h'
      TYPE_ITA_I = 'ita-i'
      TYPE_ITA_J = 'ita-j'
      TYPE_ITA_K = 'ita-k'
      TYPE_ITA_L = 'ita-l'
      TYPE_ITA_M = 'ita-m'
      TYPE_ITA_N = 'ita-n'
      TYPE_ITA_O = 'ita-o'
      # USB
      TYPE_USB_A = 'usb-a'
      TYPE_USB_B = 'usb-b'
      TYPE_USB_C = 'usb-c'
      TYPE_USB_MINI_A = 'usb-mini-a'
      TYPE_USB_MINI_B = 'usb-mini-b'
      TYPE_USB_MICRO_A = 'usb-micro-a'
      TYPE_USB_MICRO_B = 'usb-micro-b'
      TYPE_USB_MICRO_AB = 'usb-micro-ab'
      TYPE_USB_3_B = 'usb-3-b'
      TYPE_USB_3_MICROB = 'usb-3-micro-b'
      # Molex
      TYPE_MOLEX_MICRO_FIT_1X2 = 'molex-micro-fit-1x2'
      TYPE_MOLEX_MICRO_FIT_2X2 = 'molex-micro-fit-2x2'
      TYPE_MOLEX_MICRO_FIT_2X3 = 'molex-micro-fit-2x3'
      TYPE_MOLEX_MICRO_FIT_2X4 = 'molex-micro-fit-2x4'
      # Direct current (DC)
      TYPE_DC = 'dc-terminal'
      # Proprietary
      TYPE_SAF_D_GRID = 'saf-d-grid'
      TYPE_NEUTRIK_POWERCON_20A = 'neutrik-powercon-20'
      TYPE_NEUTRIK_POWERCON_32A = 'neutrik-powercon-32'
      TYPE_NEUTRIK_POWERCON_TRUE1 = 'neutrik-powercon-true1'
      TYPE_NEUTRIK_POWERCON_TRUE1_TOP = 'neutrik-powercon-true1-top'
      TYPE_UBIQUITI_SMARTPOWER = 'ubiquiti-smartpower'
      # Other
      TYPE_HARDWIRED = 'hardwired'
      TYPE_OTHER = 'other'
  
      CHOICES = (
          ('IEC 60320', (
              (TYPE_IEC_C6, 'C6'),
              (TYPE_IEC_C8, 'C8'),
              (TYPE_IEC_C14, 'C14'),
              (TYPE_IEC_C16, 'C16'),
              (TYPE_IEC_C18, 'C18'),
              (TYPE_IEC_C20, 'C20'),
              (TYPE_IEC_C22, 'C22'),
          )),
          ('IEC 60309', (
              (TYPE_IEC_PNE4H, 'P+N+E 4H'),
              (TYPE_IEC_PNE6H, 'P+N+E 6H'),
              (TYPE_IEC_PNE9H, 'P+N+E 9H'),
              (TYPE_IEC_2PE4H, '2P+E 4H'),
              (TYPE_IEC_2PE6H, '2P+E 6H'),
              (TYPE_IEC_2PE9H, '2P+E 9H'),
              (TYPE_IEC_3PE4H, '3P+E 4H'),
              (TYPE_IEC_3PE6H, '3P+E 6H'),
              (TYPE_IEC_3PE9H, '3P+E 9H'),
              (TYPE_IEC_3PNE4H, '3P+N+E 4H'),
              (TYPE_IEC_3PNE6H, '3P+N+E 6H'),
              (TYPE_IEC_3PNE9H, '3P+N+E 9H'),
          )),
          ('IEC 60906-1', (
              (TYPE_IEC_60906_1, 'IEC 60906-1'),
              (TYPE_NBR_14136_10A, '2P+T 10A (NBR 14136)'),
              (TYPE_NBR_14136_20A, '2P+T 20A (NBR 14136)'),
          )),
          (_('NEMA (Non-locking)'), (
              (TYPE_NEMA_115P, 'NEMA 1-15P'),
              (TYPE_NEMA_515P, 'NEMA 5-15P'),
              (TYPE_NEMA_520P, 'NEMA 5-20P'),
              (TYPE_NEMA_530P, 'NEMA 5-30P'),
              (TYPE_NEMA_550P, 'NEMA 5-50P'),
              (TYPE_NEMA_615P, 'NEMA 6-15P'),
              (TYPE_NEMA_620P, 'NEMA 6-20P'),
              (TYPE_NEMA_630P, 'NEMA 6-30P'),
              (TYPE_NEMA_650P, 'NEMA 6-50P'),
              (TYPE_NEMA_1030P, 'NEMA 10-30P'),
              (TYPE_NEMA_1050P, 'NEMA 10-50P'),
              (TYPE_NEMA_1420P, 'NEMA 14-20P'),
              (TYPE_NEMA_1430P, 'NEMA 14-30P'),
              (TYPE_NEMA_1450P, 'NEMA 14-50P'),
              (TYPE_NEMA_1460P, 'NEMA 14-60P'),
              (TYPE_NEMA_1515P, 'NEMA 15-15P'),
              (TYPE_NEMA_1520P, 'NEMA 15-20P'),
              (TYPE_NEMA_1530P, 'NEMA 15-30P'),
              (TYPE_NEMA_1550P, 'NEMA 15-50P'),
              (TYPE_NEMA_1560P, 'NEMA 15-60P'),
          )),
          (_('NEMA (Locking)'), (
              (TYPE_NEMA_L115P, 'NEMA L1-15P'),
              (TYPE_NEMA_L515P, 'NEMA L5-15P'),
              (TYPE_NEMA_L520P, 'NEMA L5-20P'),
              (TYPE_NEMA_L530P, 'NEMA L5-30P'),
              (TYPE_NEMA_L550P, 'NEMA L5-50P'),
              (TYPE_NEMA_L615P, 'NEMA L6-15P'),
              (TYPE_NEMA_L620P, 'NEMA L6-20P'),
              (TYPE_NEMA_L630P, 'NEMA L6-30P'),
              (TYPE_NEMA_L650P, 'NEMA L6-50P'),
              (TYPE_NEMA_L1030P, 'NEMA L10-30P'),
              (TYPE_NEMA_L1420P, 'NEMA L14-20P'),
              (TYPE_NEMA_L1430P, 'NEMA L14-30P'),
              (TYPE_NEMA_L1450P, 'NEMA L14-50P'),
              (TYPE_NEMA_L1460P, 'NEMA L14-60P'),
              (TYPE_NEMA_L1520P, 'NEMA L15-20P'),
              (TYPE_NEMA_L1530P, 'NEMA L15-30P'),
              (TYPE_NEMA_L1550P, 'NEMA L15-50P'),
              (TYPE_NEMA_L1560P, 'NEMA L15-60P'),
              (TYPE_NEMA_L2120P, 'NEMA L21-20P'),
              (TYPE_NEMA_L2130P, 'NEMA L21-30P'),
              (TYPE_NEMA_L2220P, 'NEMA L22-20P'),
              (TYPE_NEMA_L2230P, 'NEMA L22-30P'),
          )),
          (_('California Style'), (
              (TYPE_CS6361C, 'CS6361C'),
              (TYPE_CS6365C, 'CS6365C'),
              (TYPE_CS8165C, 'CS8165C'),
              (TYPE_CS8265C, 'CS8265C'),
              (TYPE_CS8365C, 'CS8365C'),
              (TYPE_CS8465C, 'CS8465C'),
          )),
          (_('International/ITA'), (
              (TYPE_ITA_C, 'ITA Type C (CEE 7/16)'),
              (TYPE_ITA_E, 'ITA Type E (CEE 7/6)'),
              (TYPE_ITA_F, 'ITA Type F (CEE 7/4)'),
              (TYPE_ITA_EF, 'ITA Type E/F (CEE 7/7)'),
              (TYPE_ITA_G, 'ITA Type G (BS 1363)'),
              (TYPE_ITA_H, 'ITA Type H'),
              (TYPE_ITA_I, 'ITA Type I'),
              (TYPE_ITA_J, 'ITA Type J'),
              (TYPE_ITA_K, 'ITA Type K'),
              (TYPE_ITA_L, 'ITA Type L (CEI 23-50)'),
              (TYPE_ITA_M, 'ITA Type M (BS 546)'),
              (TYPE_ITA_N, 'ITA Type N'),
              (TYPE_ITA_O, 'ITA Type O'),
          )),
          ('USB', (
              (TYPE_USB_A, 'USB Type A'),
              (TYPE_USB_B, 'USB Type B'),
              (TYPE_USB_C, 'USB Type C'),
              (TYPE_USB_MINI_A, 'USB Mini A'),
              (TYPE_USB_MINI_B, 'USB Mini B'),
              (TYPE_USB_MICRO_A, 'USB Micro A'),
              (TYPE_USB_MICRO_B, 'USB Micro B'),
              (TYPE_USB_MICRO_AB, 'USB Micro AB'),
              (TYPE_USB_3_B, 'USB 3.0 Type B'),
              (TYPE_USB_3_MICROB, 'USB 3.0 Micro B'),
          )),
          ('Molex', (
              (TYPE_MOLEX_MICRO_FIT_1X2, 'Molex Micro-Fit 1x2'),
              (TYPE_MOLEX_MICRO_FIT_2X2, 'Molex Micro-Fit 2x2'),
              (TYPE_MOLEX_MICRO_FIT_2X3, 'Molex Micro-Fit 2x3'),
              (TYPE_MOLEX_MICRO_FIT_2X4, 'Molex Micro-Fit 2x4'),
          )),
          ('DC', (
              (TYPE_DC, 'DC Terminal'),
          )),
          (_('Proprietary'), (
              (TYPE_SAF_D_GRID, 'Saf-D-Grid'),
              (TYPE_NEUTRIK_POWERCON_20A, 'Neutrik powerCON (20A)'),
              (TYPE_NEUTRIK_POWERCON_32A, 'Neutrik powerCON (32A)'),
              (TYPE_NEUTRIK_POWERCON_TRUE1, 'Neutrik powerCON TRUE1'),
              (TYPE_NEUTRIK_POWERCON_TRUE1_TOP, 'Neutrik powerCON TRUE1 TOP'),
              (TYPE_UBIQUITI_SMARTPOWER, 'Ubiquiti SmartPower'),
          )),
          (_('Other'), (
              (TYPE_HARDWIRED, 'Hardwired'),
              (TYPE_OTHER, 'Other'),
          )),
      )
  
  
  #
  # PowerOutlets
  #
  
  class PowerOutletTypeChoices(ChoiceSet):
  
      # IEC 60320
      TYPE_IEC_C5 = 'iec-60320-c5'
      TYPE_IEC_C7 = 'iec-60320-c7'
      TYPE_IEC_C13 = 'iec-60320-c13'
      TYPE_IEC_C15 = 'iec-60320-c15'
      TYPE_IEC_C17 = 'iec-60320-c17'
      TYPE_IEC_C19 = 'iec-60320-c19'
      TYPE_IEC_C21 = 'iec-60320-c21'
      # IEC 60309
      TYPE_IEC_PNE4H = 'iec-60309-p-n-e-4h'
      TYPE_IEC_PNE6H = 'iec-60309-p-n-e-6h'
      TYPE_IEC_PNE9H = 'iec-60309-p-n-e-9h'
      TYPE_IEC_2PE4H = 'iec-60309-2p-e-4h'
      TYPE_IEC_2PE6H = 'iec-60309-2p-e-6h'
      TYPE_IEC_2PE9H = 'iec-60309-2p-e-9h'
      TYPE_IEC_3PE4H = 'iec-60309-3p-e-4h'
      TYPE_IEC_3PE6H = 'iec-60309-3p-e-6h'
      TYPE_IEC_3PE9H = 'iec-60309-3p-e-9h'
      TYPE_IEC_3PNE4H = 'iec-60309-3p-n-e-4h'
      TYPE_IEC_3PNE6H = 'iec-60309-3p-n-e-6h'
      TYPE_IEC_3PNE9H = 'iec-60309-3p-n-e-9h'
      # IEC 60906-1
      TYPE_IEC_60906_1 = 'iec-60906-1'
      TYPE_NBR_14136_10A = 'nbr-14136-10a'
      TYPE_NBR_14136_20A = 'nbr-14136-20a'
      # NEMA non-locking
      TYPE_NEMA_115R = 'nema-1-15r'
      TYPE_NEMA_515R = 'nema-5-15r'
      TYPE_NEMA_520R = 'nema-5-20r'
      TYPE_NEMA_530R = 'nema-5-30r'
      TYPE_NEMA_550R = 'nema-5-50r'
      TYPE_NEMA_615R = 'nema-6-15r'
      TYPE_NEMA_620R = 'nema-6-20r'
      TYPE_NEMA_630R = 'nema-6-30r'
      TYPE_NEMA_650R = 'nema-6-50r'
      TYPE_NEMA_1030R = 'nema-10-30r'
      TYPE_NEMA_1050R = 'nema-10-50r'
      TYPE_NEMA_1420R = 'nema-14-20r'
      TYPE_NEMA_1430R = 'nema-14-30r'
      TYPE_NEMA_1450R = 'nema-14-50r'
      TYPE_NEMA_1460R = 'nema-14-60r'
      TYPE_NEMA_1515R = 'nema-15-15r'
      TYPE_NEMA_1520R = 'nema-15-20r'
      TYPE_NEMA_1530R = 'nema-15-30r'
      TYPE_NEMA_1550R = 'nema-15-50r'
      TYPE_NEMA_1560R = 'nema-15-60r'
      # NEMA locking
      TYPE_NEMA_L115R = 'nema-l1-15r'
      TYPE_NEMA_L515R = 'nema-l5-15r'
      TYPE_NEMA_L520R = 'nema-l5-20r'
      TYPE_NEMA_L530R = 'nema-l5-30r'
      TYPE_NEMA_L550R = 'nema-l5-50r'
      TYPE_NEMA_L615R = 'nema-l6-15r'
      TYPE_NEMA_L620R = 'nema-l6-20r'
      TYPE_NEMA_L630R = 'nema-l6-30r'
      TYPE_NEMA_L650R = 'nema-l6-50r'
      TYPE_NEMA_L1030R = 'nema-l10-30r'
      TYPE_NEMA_L1420R = 'nema-l14-20r'
      TYPE_NEMA_L1430R = 'nema-l14-30r'
      TYPE_NEMA_L1450R = 'nema-l14-50r'
      TYPE_NEMA_L1460R = 'nema-l14-60r'
      TYPE_NEMA_L1520R = 'nema-l15-20r'
      TYPE_NEMA_L1530R = 'nema-l15-30r'
      TYPE_NEMA_L1550R = 'nema-l15-50r'
      TYPE_NEMA_L1560R = 'nema-l15-60r'
      TYPE_NEMA_L2120R = 'nema-l21-20r'
      TYPE_NEMA_L2130R = 'nema-l21-30r'
      TYPE_NEMA_L2220R = 'nema-l22-20r'
      TYPE_NEMA_L2230R = 'nema-l22-30r'
      # California style
      TYPE_CS6360C = 'CS6360C'
      TYPE_CS6364C = 'CS6364C'
      TYPE_CS8164C = 'CS8164C'
      TYPE_CS8264C = 'CS8264C'
      TYPE_CS8364C = 'CS8364C'
      TYPE_CS8464C = 'CS8464C'
      # ITA/international
      TYPE_ITA_E = 'ita-e'
      TYPE_ITA_F = 'ita-f'
      TYPE_ITA_G = 'ita-g'
      TYPE_ITA_H = 'ita-h'
      TYPE_ITA_I = 'ita-i'
      TYPE_ITA_J = 'ita-j'
      TYPE_ITA_K = 'ita-k'
      TYPE_ITA_L = 'ita-l'
      TYPE_ITA_M = 'ita-m'
      TYPE_ITA_N = 'ita-n'
      TYPE_ITA_O = 'ita-o'
      TYPE_ITA_MULTISTANDARD = 'ita-multistandard'
      # USB
      TYPE_USB_A = 'usb-a'
      TYPE_USB_MICROB = 'usb-micro-b'
      TYPE_USB_C = 'usb-c'
      # Molex
      TYPE_MOLEX_MICRO_FIT_1X2 = 'molex-micro-fit-1x2'
      TYPE_MOLEX_MICRO_FIT_2X2 = 'molex-micro-fit-2x2'
      TYPE_MOLEX_MICRO_FIT_2X3 = 'molex-micro-fit-2x3'
      TYPE_MOLEX_MICRO_FIT_2X4 = 'molex-micro-fit-2x4'
      # Direct current (DC)
      TYPE_DC = 'dc-terminal'
      # Proprietary
      TYPE_EATON_C39 = 'eaton-c39'
      TYPE_HDOT_CX = 'hdot-cx'
      TYPE_SAF_D_GRID = 'saf-d-grid'
      TYPE_NEUTRIK_POWERCON_20A = 'neutrik-powercon-20a'
      TYPE_NEUTRIK_POWERCON_32A = 'neutrik-powercon-32a'
      TYPE_NEUTRIK_POWERCON_TRUE1 = 'neutrik-powercon-true1'
      TYPE_NEUTRIK_POWERCON_TRUE1_TOP = 'neutrik-powercon-true1-top'
      TYPE_UBIQUITI_SMARTPOWER = 'ubiquiti-smartpower'
      # Other
      TYPE_HARDWIRED = 'hardwired'
      TYPE_OTHER = 'other'
  
      CHOICES = (
          ('IEC 60320', (
              (TYPE_IEC_C5, 'C5'),
              (TYPE_IEC_C7, 'C7'),
              (TYPE_IEC_C13, 'C13'),
              (TYPE_IEC_C15, 'C15'),
              (TYPE_IEC_C17, 'C17'),
              (TYPE_IEC_C19, 'C19'),
              (TYPE_IEC_C21, 'C21'),
          )),
          ('IEC 60309', (
              (TYPE_IEC_PNE4H, 'P+N+E 4H'),
              (TYPE_IEC_PNE6H, 'P+N+E 6H'),
              (TYPE_IEC_PNE9H, 'P+N+E 9H'),
              (TYPE_IEC_2PE4H, '2P+E 4H'),
              (TYPE_IEC_2PE6H, '2P+E 6H'),
              (TYPE_IEC_2PE9H, '2P+E 9H'),
              (TYPE_IEC_3PE4H, '3P+E 4H'),
              (TYPE_IEC_3PE6H, '3P+E 6H'),
              (TYPE_IEC_3PE9H, '3P+E 9H'),
              (TYPE_IEC_3PNE4H, '3P+N+E 4H'),
              (TYPE_IEC_3PNE6H, '3P+N+E 6H'),
              (TYPE_IEC_3PNE9H, '3P+N+E 9H'),
          )),
          ('IEC 60906-1', (
              (TYPE_IEC_60906_1, 'IEC 60906-1'),
              (TYPE_NBR_14136_10A, '2P+T 10A (NBR 14136)'),
              (TYPE_NBR_14136_20A, '2P+T 20A (NBR 14136)'),
          )),
          (_('NEMA (Non-locking)'), (
              (TYPE_NEMA_115R, 'NEMA 1-15R'),
              (TYPE_NEMA_515R, 'NEMA 5-15R'),
              (TYPE_NEMA_520R, 'NEMA 5-20R'),
              (TYPE_NEMA_530R, 'NEMA 5-30R'),
              (TYPE_NEMA_550R, 'NEMA 5-50R'),
              (TYPE_NEMA_615R, 'NEMA 6-15R'),
              (TYPE_NEMA_620R, 'NEMA 6-20R'),
              (TYPE_NEMA_630R, 'NEMA 6-30R'),
              (TYPE_NEMA_650R, 'NEMA 6-50R'),
              (TYPE_NEMA_1030R, 'NEMA 10-30R'),
              (TYPE_NEMA_1050R, 'NEMA 10-50R'),
              (TYPE_NEMA_1420R, 'NEMA 14-20R'),
              (TYPE_NEMA_1430R, 'NEMA 14-30R'),
              (TYPE_NEMA_1450R, 'NEMA 14-50R'),
              (TYPE_NEMA_1460R, 'NEMA 14-60R'),
              (TYPE_NEMA_1515R, 'NEMA 15-15R'),
              (TYPE_NEMA_1520R, 'NEMA 15-20R'),
              (TYPE_NEMA_1530R, 'NEMA 15-30R'),
              (TYPE_NEMA_1550R, 'NEMA 15-50R'),
              (TYPE_NEMA_1560R, 'NEMA 15-60R'),
          )),
          (_('NEMA (Locking)'), (
              (TYPE_NEMA_L115R, 'NEMA L1-15R'),
              (TYPE_NEMA_L515R, 'NEMA L5-15R'),
              (TYPE_NEMA_L520R, 'NEMA L5-20R'),
              (TYPE_NEMA_L530R, 'NEMA L5-30R'),
              (TYPE_NEMA_L550R, 'NEMA L5-50R'),
              (TYPE_NEMA_L615R, 'NEMA L6-15R'),
              (TYPE_NEMA_L620R, 'NEMA L6-20R'),
              (TYPE_NEMA_L630R, 'NEMA L6-30R'),
              (TYPE_NEMA_L650R, 'NEMA L6-50R'),
              (TYPE_NEMA_L1030R, 'NEMA L10-30R'),
              (TYPE_NEMA_L1420R, 'NEMA L14-20R'),
              (TYPE_NEMA_L1430R, 'NEMA L14-30R'),
              (TYPE_NEMA_L1450R, 'NEMA L14-50R'),
              (TYPE_NEMA_L1460R, 'NEMA L14-60R'),
              (TYPE_NEMA_L1520R, 'NEMA L15-20R'),
              (TYPE_NEMA_L1530R, 'NEMA L15-30R'),
              (TYPE_NEMA_L1550R, 'NEMA L15-50R'),
              (TYPE_NEMA_L1560R, 'NEMA L15-60R'),
              (TYPE_NEMA_L2120R, 'NEMA L21-20R'),
              (TYPE_NEMA_L2130R, 'NEMA L21-30R'),
              (TYPE_NEMA_L2220R, 'NEMA L22-20R'),
              (TYPE_NEMA_L2230R, 'NEMA L22-30R'),
          )),
          (_('California Style'), (
              (TYPE_CS6360C, 'CS6360C'),
              (TYPE_CS6364C, 'CS6364C'),
              (TYPE_CS8164C, 'CS8164C'),
              (TYPE_CS8264C, 'CS8264C'),
              (TYPE_CS8364C, 'CS8364C'),
              (TYPE_CS8464C, 'CS8464C'),
          )),
          (_('ITA/International'), (
              (TYPE_ITA_E, 'ITA Type E (CEE 7/5)'),
              (TYPE_ITA_F, 'ITA Type F (CEE 7/3)'),
              (TYPE_ITA_G, 'ITA Type G (BS 1363)'),
              (TYPE_ITA_H, 'ITA Type H'),
              (TYPE_ITA_I, 'ITA Type I'),
              (TYPE_ITA_J, 'ITA Type J'),
              (TYPE_ITA_K, 'ITA Type K'),
              (TYPE_ITA_L, 'ITA Type L (CEI 23-50)'),
              (TYPE_ITA_M, 'ITA Type M (BS 546)'),
              (TYPE_ITA_N, 'ITA Type N'),
              (TYPE_ITA_O, 'ITA Type O'),
              (TYPE_ITA_MULTISTANDARD, 'ITA Multistandard'),
          )),
          ('USB', (
              (TYPE_USB_A, 'USB Type A'),
              (TYPE_USB_MICROB, 'USB Micro B'),
              (TYPE_USB_C, 'USB Type C'),
          )),
          ('Molex', (
              (TYPE_MOLEX_MICRO_FIT_1X2, 'Molex Micro-Fit 1x2'),
              (TYPE_MOLEX_MICRO_FIT_2X2, 'Molex Micro-Fit 2x2'),
              (TYPE_MOLEX_MICRO_FIT_2X3, 'Molex Micro-Fit 2x3'),
              (TYPE_MOLEX_MICRO_FIT_2X4, 'Molex Micro-Fit 2x4'),
          )),
          ('DC', (
              (TYPE_DC, 'DC Terminal'),
          )),
          (_('Proprietary'), (
              (TYPE_EATON_C39, 'Eaton C39'),
              (TYPE_HDOT_CX, 'HDOT Cx'),
              (TYPE_SAF_D_GRID, 'Saf-D-Grid'),
              (TYPE_NEUTRIK_POWERCON_20A, 'Neutrik powerCON (20A)'),
              (TYPE_NEUTRIK_POWERCON_32A, 'Neutrik powerCON (32A)'),
              (TYPE_NEUTRIK_POWERCON_TRUE1, 'Neutrik powerCON TRUE1'),
              (TYPE_NEUTRIK_POWERCON_TRUE1_TOP, 'Neutrik powerCON TRUE1 TOP'),
              (TYPE_UBIQUITI_SMARTPOWER, 'Ubiquiti SmartPower'),
          )),
          (_('Other'), (
              (TYPE_HARDWIRED, 'Hardwired'),
              (TYPE_OTHER, 'Other'),
          )),
      )
  
  
  class PowerOutletFeedLegChoices(ChoiceSet):
  
      FEED_LEG_A = 'A'
      FEED_LEG_B = 'B'
      FEED_LEG_C = 'C'
  
      CHOICES = (
          (FEED_LEG_A, 'A'),
          (FEED_LEG_B, 'B'),
          (FEED_LEG_C, 'C'),
      )
  
  
  #
  # Interfaces
  #
  
  class InterfaceKindChoices(ChoiceSet):
      KIND_PHYSICAL = 'physical'
      KIND_VIRTUAL = 'virtual'
      KIND_WIRELESS = 'wireless'
  
      CHOICES = (
          (KIND_PHYSICAL, _('Physical')),
          (KIND_VIRTUAL, _('Virtual')),
          (KIND_WIRELESS, _('Wireless')),
      )
  
  
  class InterfaceTypeChoices(ChoiceSet):
  
      # Virtual
      TYPE_VIRTUAL = 'virtual'
      TYPE_BRIDGE = 'bridge'
      TYPE_LAG = 'lag'
  
      # FastEthernet
      TYPE_100ME_FX = '100base-fx'
      TYPE_100ME_LFX = '100base-lfx'
      TYPE_100ME_FIXED = '100base-tx'  # TODO: Rename to _TX
      TYPE_100ME_T1 = '100base-t1'
  
      # GigabitEthernet
      TYPE_1GE_BX10_D = '1000base-bx10-d'
      TYPE_1GE_BX10_U = '1000base-bx10-u'
      TYPE_1GE_CWDM = '1000base-cwdm'
      TYPE_1GE_CX = '1000base-cx'
      TYPE_1GE_DWDM = '1000base-dwdm'
      TYPE_1GE_EX = '1000base-ex'
      TYPE_1GE_SX_FIXED = '1000base-sx'  # TODO: Drop _FIXED suffix
      TYPE_1GE_LSX = '1000base-lsx'
      TYPE_1GE_LX_FIXED = '1000base-lx'  # TODO: Drop _FIXED suffix
      TYPE_1GE_LX10 = '1000base-lx10'
      TYPE_1GE_FIXED = '1000base-t'  # TODO: Rename to _T
      TYPE_1GE_TX_FIXED = '1000base-tx'  # TODO: Drop _FIXED suffix
      TYPE_1GE_ZX = '1000base-zx'
  
      # 2.5/5 Gbps Ethernet
      TYPE_2GE_FIXED = '2.5gbase-t'  # TODO: Rename to _T
      TYPE_5GE_FIXED = '5gbase-t'  # TODO: Rename to _T
  
      # 10 Gbps Ethernet
      TYPE_10GE_BR_D = '10gbase-br-d'
      TYPE_10GE_BR_U = '10gbase-br-u'
      TYPE_10GE_CX4 = '10gbase-cx4'
      TYPE_10GE_ER = '10gbase-er'
      TYPE_10GE_LR = '10gbase-lr'
      TYPE_10GE_LRM = '10gbase-lrm'
      TYPE_10GE_LX4 = '10gbase-lx4'
      TYPE_10GE_SR = '10gbase-sr'
      TYPE_10GE_FIXED = '10gbase-t'
      TYPE_10GE_ZR = '10gbase-zr'
  
      # 25 Gbps Ethernet
      TYPE_25GE_CR = '25gbase-cr'
      TYPE_25GE_ER = '25gbase-er'
      TYPE_25GE_LR = '25gbase-lr'
      TYPE_25GE_SR = '25gbase-sr'
      TYPE_25GE_T = '25gbase-t'
  
      # 40 Gbps Ethernet
      TYPE_40GE_CR4 = '40gbase-cr4'
      TYPE_40GE_ER4 = '40gbase-er4'
      TYPE_40GE_FR4 = '40gbase-fr4'
      TYPE_40GE_LR4 = '40gbase-lr4'
      TYPE_40GE_SR4 = '40gbase-sr4'
  
      # 50 Gbps Ethernet
      TYPE_50GE_CR = '50gbase-cr'
      TYPE_50GE_ER = '50gbase-er'
      TYPE_50GE_FR = '50gbase-fr'
      TYPE_50GE_LR = '50gbase-lr'
      TYPE_50GE_SR = '50gbase-sr'
  
      # 100 Gbps Ethernet
      TYPE_100GE_CR1 = '100gbase-cr1'
      TYPE_100GE_CR2 = '100gbase-cr2'
      TYPE_100GE_CR4 = '100gbase-cr4'
      TYPE_100GE_CR10 = '100gbase-cr10'
      TYPE_100GE_CWDM4 = '100gbase-cwdm4'
      TYPE_100GE_DR = '100gbase-dr'
      TYPE_100GE_FR1 = '100gbase-fr1'
      TYPE_100GE_ER4 = '100gbase-er4'
      TYPE_100GE_LR1 = '100gbase-lr1'
      TYPE_100GE_LR4 = '100gbase-lr4'
      TYPE_100GE_SR1 = '100gbase-sr1'
      TYPE_100GE_SR1_2 = '100gbase-sr1.2'
      TYPE_100GE_SR2 = '100gbase-sr2'
      TYPE_100GE_SR4 = '100gbase-sr4'
      TYPE_100GE_SR10 = '100gbase-sr10'
      TYPE_100GE_ZR = '100gbase-zr'
  
      # 200 Gbps Ethernet
      TYPE_200GE_CR2 = '200gbase-cr2'
      TYPE_200GE_CR4 = '200gbase-cr4'
      TYPE_200GE_SR2 = '200gbase-sr2'
      TYPE_200GE_SR4 = '200gbase-sr4'
      TYPE_200GE_DR4 = '200gbase-dr4'
      TYPE_200GE_FR4 = '200gbase-fr4'
      TYPE_200GE_LR4 = '200gbase-lr4'
      TYPE_200GE_ER4 = '200gbase-er4'
      TYPE_200GE_VR2 = '200gbase-vr2'
  
      # 400 Gbps Ethernet
      TYPE_400GE_CR4 = '400gbase-cr4'
      TYPE_400GE_DR4 = '400gbase-dr4'
      TYPE_400GE_ER8 = '400gbase-er8'
      TYPE_400GE_FR4 = '400gbase-fr4'
      TYPE_400GE_FR8 = '400gbase-fr8'
      TYPE_400GE_LR4 = '400gbase-lr4'
      TYPE_400GE_LR8 = '400gbase-lr8'
      TYPE_400GE_SR4 = '400gbase-sr4'
      TYPE_400GE_SR4_2 = '400gbase-sr4_2'
      TYPE_400GE_SR8 = '400gbase-sr8'
      TYPE_400GE_SR16 = '400gbase-sr16'
      TYPE_400GE_VR4 = '400gbase-vr4'
      TYPE_400GE_ZR = '400gbase-zr'
  
      # 800 Gbps Ethernet
      TYPE_800GE_CR8 = '800gbase-cr8'
      TYPE_800GE_DR8 = '800gbase-dr8'
      TYPE_800GE_SR8 = '800gbase-sr8'
      TYPE_800GE_VR8 = '800gbase-vr8'
  
      # Ethernet (modular)
      TYPE_100ME_SFP = '100base-x-sfp'
      TYPE_1GE_GBIC = '1000base-x-gbic'
      TYPE_1GE_SFP = '1000base-x-sfp'
      TYPE_10GE_SFP_PLUS = '10gbase-x-sfpp'
      TYPE_10GE_XFP = '10gbase-x-xfp'
      TYPE_10GE_XENPAK = '10gbase-x-xenpak'
      TYPE_10GE_X2 = '10gbase-x-x2'
      TYPE_25GE_SFP28 = '25gbase-x-sfp28'
      TYPE_50GE_SFP56 = '50gbase-x-sfp56'
      TYPE_40GE_QSFP_PLUS = '40gbase-x-qsfpp'
      TYPE_50GE_QSFP28 = '50gbase-x-sfp28'
      TYPE_100GE_CFP = '100gbase-x-cfp'
      TYPE_100GE_CFP2 = '100gbase-x-cfp2'
      TYPE_100GE_CFP4 = '100gbase-x-cfp4'
      TYPE_100GE_CXP = '100gbase-x-cxp'
      TYPE_100GE_CPAK = '100gbase-x-cpak'
      TYPE_100GE_DSFP = '100gbase-x-dsfp'
      TYPE_100GE_SFP_DD = '100gbase-x-sfpdd'
      TYPE_100GE_QSFP28 = '100gbase-x-qsfp28'
      TYPE_100GE_QSFP_DD = '100gbase-x-qsfpdd'
      TYPE_200GE_CFP2 = '200gbase-x-cfp2'
      TYPE_200GE_QSFP56 = '200gbase-x-qsfp56'
      TYPE_200GE_QSFP_DD = '200gbase-x-qsfpdd'
      TYPE_400GE_CFP2 = '400gbase-x-cfp2'
      TYPE_400GE_QSFP112 = '400gbase-x-qsfp112'
      TYPE_400GE_QSFP_DD = '400gbase-x-qsfpdd'
      TYPE_400GE_OSFP = '400gbase-x-osfp'
      TYPE_400GE_OSFP_RHS = '400gbase-x-osfp-rhs'
      TYPE_400GE_CDFP = '400gbase-x-cdfp'
      TYPE_400GE_CFP8 = '400gbase-x-cfp8'
      TYPE_800GE_QSFP_DD = '800gbase-x-qsfpdd'
      TYPE_800GE_OSFP = '800gbase-x-osfp'
  
      # Backplane Ethernet
      TYPE_1GE_KX = '1000base-kx'
      TYPE_2GE_KX = '2.5gbase-kx'
      TYPE_5GE_KR = '5gbase-kr'
  