VOL-3788:Introduced component specific attributes

Change-Id: I8ad4a40a799abd2e77882446821d6d4675885dc7
diff --git a/python/dmi/hw_pb2.py b/python/dmi/hw_pb2.py
index 2f1f173..3c7322b 100644
--- a/python/dmi/hw_pb2.py
+++ b/python/dmi/hw_pb2.py
@@ -21,7 +21,7 @@
   syntax='proto3',
   serialized_options=b'Z9github.com/opencord/device-management-interface/v3/go/dmi',
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x0c\x64mi/hw.proto\x12\x03\x64mi\x1a\x1fgoogle/protobuf/timestamp.proto\"\x14\n\x04Uuid\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"%\n\nHardwareID\x12\x17\n\x04uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"\x12\n\x03Uri\x12\x0b\n\x03uri\x18\x01 \x01(\t\"\xb5\x02\n\x0e\x43omponentState\x12\x36\n\x12state_last_changed\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\x0b\x61\x64min_state\x18\x02 \x01(\x0e\x32\x18.dmi.ComponentAdminState\x12+\n\noper_state\x18\x03 \x01(\x0e\x32\x17.dmi.ComponentOperState\x12-\n\x0busage_state\x18\x04 \x01(\x0e\x32\x18.dmi.ComponentUsageState\x12-\n\x0b\x61larm_state\x18\x05 \x01(\x0e\x32\x18.dmi.ComponentAlarmState\x12\x31\n\rstandby_state\x18\x06 \x01(\x0e\x32\x1a.dmi.ComponentStandbyState\"\x98\x02\n\x13\x43omponentSensorData\x12\r\n\x05value\x18\x01 \x01(\x05\x12\"\n\x04type\x18\x02 \x01(\x0e\x32\x14.dmi.SensorValueType\x12$\n\x05scale\x18\x03 \x01(\x0e\x32\x15.dmi.SensorValueScale\x12\x11\n\tprecision\x18\x04 \x01(\x05\x12!\n\x06status\x18\x05 \x01(\x0e\x32\x11.dmi.SensorStatus\x12\x15\n\runits_display\x18\x06 \x01(\t\x12-\n\ttimestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11value_update_rate\x18\x08 \x01(\r\x12\x11\n\tdata_type\x18\t \x01(\t\"\xf9\x03\n\tComponent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x63lass\x18\x02 \x01(\x0e\x32\x12.dmi.ComponentType\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0e\n\x06parent\x18\x04 \x01(\t\x12\x16\n\x0eparent_rel_pos\x18\x05 \x01(\x05\x12 \n\x08\x63hildren\x18\x06 \x03(\x0b\x32\x0e.dmi.Component\x12\x14\n\x0chardware_rev\x18\x07 \x01(\t\x12\x14\n\x0c\x66irmware_rev\x18\x08 \x01(\t\x12\x14\n\x0csoftware_rev\x18\t \x01(\t\x12\x12\n\nserial_num\x18\n \x01(\t\x12\x10\n\x08mfg_name\x18\x0b \x01(\t\x12\x12\n\nmodel_name\x18\x0c \x01(\t\x12\r\n\x05\x61lias\x18\r \x01(\t\x12\x10\n\x08\x61sset_id\x18\x0e \x01(\t\x12\x0e\n\x06is_fru\x18\x0f \x01(\x08\x12,\n\x08mfg_date\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\x03uri\x18\x11 \x01(\x0b\x32\x08.dmi.Uri\x12\x17\n\x04uuid\x18\x12 \x01(\x0b\x32\t.dmi.Uuid\x12\"\n\x05state\x18\x13 \x01(\x0b\x32\x13.dmi.ComponentState\x12-\n\x0bsensor_data\x18\x14 \x03(\x0b\x32\x18.dmi.ComponentSensorData\"Y\n\x08Hardware\x12/\n\x0blast_change\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x04root\x18\x02 \x01(\x0b\x32\x0e.dmi.Component\"\xe5\x01\n\x13ModifiableComponent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x63lass\x18\x02 \x01(\x0e\x32\x12.dmi.ComponentType\x12\x1e\n\x06parent\x18\x03 \x01(\x0b\x32\x0e.dmi.Component\x12\x16\n\x0eparent_rel_pos\x18\x04 \x01(\x05\x12\r\n\x05\x61lias\x18\x05 \x01(\t\x12\x10\n\x08\x61sset_id\x18\x06 \x01(\t\x12\x15\n\x03uri\x18\x07 \x01(\x0b\x32\x08.dmi.Uri\x12-\n\x0b\x61\x64min_state\x18\x08 \x01(\x0e\x32\x18.dmi.ComponentAdminState*\x81\x04\n\rComponentType\x12\x1c\n\x18\x43OMPONENT_TYPE_UNDEFINED\x10\x00\x12\x1a\n\x16\x43OMPONENT_TYPE_UNKNOWN\x10\x01\x12\x1a\n\x16\x43OMPONENT_TYPE_CHASSIS\x10\x02\x12\x1c\n\x18\x43OMPONENT_TYPE_BACKPLANE\x10\x03\x12\x1c\n\x18\x43OMPONENT_TYPE_CONTAINER\x10\x04\x12\x1f\n\x1b\x43OMPONENT_TYPE_POWER_SUPPLY\x10\x05\x12\x16\n\x12\x43OMPONENT_TYPE_FAN\x10\x06\x12\x19\n\x15\x43OMPONENT_TYPE_SENSOR\x10\x07\x12\x19\n\x15\x43OMPONENT_TYPE_MODULE\x10\x08\x12\x17\n\x13\x43OMPONENT_TYPE_PORT\x10\t\x12\x16\n\x12\x43OMPONENT_TYPE_CPU\x10\n\x12\x1a\n\x16\x43OMPONENT_TYPE_BATTERY\x10\x0b\x12\x1a\n\x16\x43OMPONENT_TYPE_STORAGE\x10\x0c\x12\x19\n\x15\x43OMPONENT_TYPE_MEMORY\x10\r\x12\x1e\n\x1a\x43OMPONENT_TYPE_TRANSCEIVER\x10\x0e\x12#\n\x1f\x43OMPONENT_TYPE_GPON_TRANSCEIVER\x10\x0f\x12&\n\"COMPONENT_TYPE_XGS_PON_TRANSCEIVER\x10\x10*\xb3\x01\n\x13\x43omponentAdminState\x12\x1e\n\x1a\x43OMP_ADMIN_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_ADMIN_STATE_UNKNOWN\x10\x01\x12\x1b\n\x17\x43OMP_ADMIN_STATE_LOCKED\x10\x02\x12\"\n\x1e\x43OMP_ADMIN_STATE_SHUTTING_DOWN\x10\x03\x12\x1d\n\x19\x43OMP_ADMIN_STATE_UNLOCKED\x10\x04*\xa8\x01\n\x12\x43omponentOperState\x12\x1d\n\x19\x43OMP_OPER_STATE_UNDEFINED\x10\x00\x12\x1b\n\x17\x43OMP_OPER_STATE_UNKNOWN\x10\x01\x12\x1c\n\x18\x43OMP_OPER_STATE_DISABLED\x10\x02\x12\x1b\n\x17\x43OMP_OPER_STATE_ENABLED\x10\x03\x12\x1b\n\x17\x43OMP_OPER_STATE_TESTING\x10\x04*\xa6\x01\n\x13\x43omponentUsageState\x12\x1e\n\x1a\x43OMP_USAGE_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_USAGE_STATE_UNKNOWN\x10\x01\x12\x19\n\x15\x43OMP_USAGE_STATE_IDLE\x10\x02\x12\x1b\n\x17\x43OMP_USAGE_STATE_ACTIVE\x10\x03\x12\x19\n\x15\x43OMP_USAGE_STATE_BUSY\x10\x04*\x8f\x02\n\x13\x43omponentAlarmState\x12\x1e\n\x1a\x43OMP_ALARM_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_ALARM_STATE_UNKNOWN\x10\x01\x12!\n\x1d\x43OMP_ALARM_STATE_UNDER_REPAIR\x10\x02\x12\x1d\n\x19\x43OMP_ALARM_STATE_CRITICAL\x10\x03\x12\x1a\n\x16\x43OMP_ALARM_STATE_MAJOR\x10\x04\x12\x1a\n\x16\x43OMP_ALARM_STATE_MINOR\x10\x05\x12\x1c\n\x18\x43OMP_ALARM_STATE_WARNING\x10\x06\x12\"\n\x1e\x43OMP_ALARM_STATE_INDETERMINATE\x10\x07*\xbc\x01\n\x15\x43omponentStandbyState\x12 \n\x1c\x43OMP_STANDBY_STATE_UNDEFINED\x10\x00\x12\x1e\n\x1a\x43OMP_STANDBY_STATE_UNKNOWN\x10\x01\x12\x1a\n\x16\x43OMP_STANDBY_STATE_HOT\x10\x02\x12\x1b\n\x17\x43OMP_STANDBY_STATE_COLD\x10\x03\x12(\n$COMP_STANDBY_STATE_PROVIDING_SERVICE\x10\x04*\xa1\x03\n\x0fSensorValueType\x12\x1f\n\x1bSENSOR_VALUE_TYPE_UNDEFINED\x10\x00\x12\x1b\n\x17SENSOR_VALUE_TYPE_OTHER\x10\x01\x12\x1d\n\x19SENSOR_VALUE_TYPE_UNKNOWN\x10\x02\x12\x1e\n\x1aSENSOR_VALUE_TYPE_VOLTS_AC\x10\x03\x12\x1e\n\x1aSENSOR_VALUE_TYPE_VOLTS_DC\x10\x04\x12\x1d\n\x19SENSOR_VALUE_TYPE_AMPERES\x10\x05\x12\x1b\n\x17SENSOR_VALUE_TYPE_WATTS\x10\x06\x12\x1b\n\x17SENSOR_VALUE_TYPE_HERTZ\x10\x07\x12\x1d\n\x19SENSOR_VALUE_TYPE_CELSIUS\x10\x08\x12 \n\x1cSENSOR_VALUE_TYPE_PERCENT_RH\x10\t\x12\x19\n\x15SENSOR_VALUE_TYPE_RPM\x10\n\x12\x19\n\x15SENSOR_VALUE_TYPE_CMM\x10\x0b\x12!\n\x1dSENSOR_VALUE_TYPE_TRUTH_VALUE\x10\x0c*\xa8\x04\n\x10SensorValueScale\x12 \n\x1cSENSOR_VALUE_SCALE_UNDEFINED\x10\x00\x12\x1c\n\x18SENSOR_VALUE_SCALE_YOCTO\x10\x01\x12\x1c\n\x18SENSOR_VALUE_SCALE_ZEPTO\x10\x02\x12\x1b\n\x17SENSOR_VALUE_SCALE_ATTO\x10\x03\x12\x1c\n\x18SENSOR_VALUE_SCALE_FEMTO\x10\x04\x12\x1b\n\x17SENSOR_VALUE_SCALE_PICO\x10\x05\x12\x1b\n\x17SENSOR_VALUE_SCALE_NANO\x10\x06\x12\x1c\n\x18SENSOR_VALUE_SCALE_MICRO\x10\x07\x12\x1c\n\x18SENSOR_VALUE_SCALE_MILLI\x10\x08\x12\x1c\n\x18SENSOR_VALUE_SCALE_UNITS\x10\t\x12\x1b\n\x17SENSOR_VALUE_SCALE_KILO\x10\n\x12\x1b\n\x17SENSOR_VALUE_SCALE_MEGA\x10\x0b\x12\x1b\n\x17SENSOR_VALUE_SCALE_GIGA\x10\x0c\x12\x1b\n\x17SENSOR_VALUE_SCALE_TERA\x10\r\x12\x1b\n\x17SENSOR_VALUE_SCALE_PETA\x10\x0e\x12\x1a\n\x16SENSOR_VALUE_SCALE_EXA\x10\x0f\x12\x1c\n\x18SENSOR_VALUE_SCALE_ZETTA\x10\x10\x12\x1c\n\x18SENSOR_VALUE_SCALE_YOTTA\x10\x11*\x82\x01\n\x0cSensorStatus\x12\x1b\n\x17SENSOR_STATUS_UNDEFINED\x10\x00\x12\x14\n\x10SENSOR_STATUS_OK\x10\x01\x12\x1d\n\x19SENSOR_STATUS_UNAVAILABLE\x10\x02\x12 \n\x1cSENSOR_STATUS_NONOPERATIONAL\x10\x03\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
+  serialized_pb=b'\n\x0c\x64mi/hw.proto\x12\x03\x64mi\x1a\x1fgoogle/protobuf/timestamp.proto\"\x14\n\x04Uuid\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"%\n\nHardwareID\x12\x17\n\x04uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"\x12\n\x03Uri\x12\x0b\n\x03uri\x18\x01 \x01(\t\"\xb5\x02\n\x0e\x43omponentState\x12\x36\n\x12state_last_changed\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\x0b\x61\x64min_state\x18\x02 \x01(\x0e\x32\x18.dmi.ComponentAdminState\x12+\n\noper_state\x18\x03 \x01(\x0e\x32\x17.dmi.ComponentOperState\x12-\n\x0busage_state\x18\x04 \x01(\x0e\x32\x18.dmi.ComponentUsageState\x12-\n\x0b\x61larm_state\x18\x05 \x01(\x0e\x32\x18.dmi.ComponentAlarmState\x12\x31\n\rstandby_state\x18\x06 \x01(\x0e\x32\x1a.dmi.ComponentStandbyState\"\x90\x02\n\x13\x43omponentSensorData\x12\r\n\x05value\x18\x01 \x01(\x05\x12 \n\x04type\x18\x02 \x01(\x0e\x32\x12.dmi.DataValueType\x12\x1e\n\x05scale\x18\x03 \x01(\x0e\x32\x0f.dmi.ValueScale\x12\x11\n\tprecision\x18\x04 \x01(\x05\x12!\n\x06status\x18\x05 \x01(\x0e\x32\x11.dmi.SensorStatus\x12\x15\n\runits_display\x18\x06 \x01(\t\x12-\n\ttimestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11value_update_rate\x18\x08 \x01(\r\x12\x11\n\tdata_type\x18\t \x01(\t\"\xed\x04\n\x17PortComponentAttributes\x12\x42\n\x0e\x63onnector_type\x18\x01 \x01(\x0e\x32*.dmi.PortComponentAttributes.ConnectorType\x12\x31\n\x05speed\x18\x02 \x01(\x0e\x32\".dmi.PortComponentAttributes.Speed\x12\x37\n\x08protocol\x18\x03 \x01(\x0e\x32%.dmi.PortComponentAttributes.Protocol\x12\x16\n\x0ephysical_label\x18\x04 \x01(\t\"e\n\rConnectorType\x12\x1c\n\x18\x43ONNECTOR_TYPE_UNDEFINED\x10\x00\x12\x08\n\x04RJ45\x10\x01\x12\x0c\n\x08\x46IBER_LC\x10\x02\x12\x0f\n\x0b\x46IBER_SC_PC\x10\x03\x12\r\n\tFIBER_MPO\x10\x04\"\xae\x01\n\x05Speed\x12\x13\n\x0fSPEED_UNDEFINED\x10\x00\x12\x0b\n\x07\x44YNAMIC\x10\x01\x12\r\n\tGIGABIT_1\x10\x02\x12\x0e\n\nGIGABIT_10\x10\x03\x12\x0e\n\nGIGABIT_25\x10\x04\x12\x0e\n\nGIGABIT_40\x10\x05\x12\x0f\n\x0bGIGABIT_100\x10\x06\x12\x0f\n\x0bGIGABIT_400\x10\x07\x12\x10\n\x0cMEGABIT_2500\x10\x08\x12\x10\n\x0cMEGABIT_1250\x10\t\"r\n\x08Protocol\x12\x16\n\x12PROTOCOL_UNDEFINED\x10\x00\x12\x0c\n\x08\x45THERNET\x10\x01\x12\x08\n\x04GPON\x10\x02\x12\t\n\x05XGPON\x10\x03\x12\n\n\x06XGSPON\x10\x04\x12\t\n\x05GFAST\x10\x05\x12\n\n\x06SERIAL\x10\x06\x12\x08\n\x04\x45PON\x10\x07\"6\n\x1c\x43ontainerComponentAttributes\x12\x16\n\x0ephysical_label\x18\x01 \x01(\t\"\xb3\x01\n\x16PsuComponentAttributes\x12G\n\x11supported_voltage\x18\x01 \x01(\x0e\x32,.dmi.PsuComponentAttributes.SupportedVoltage\"P\n\x10SupportedVoltage\x12\x1f\n\x1bSUPPORTED_VOLTAGE_UNDEFINED\x10\x00\x12\x07\n\x03V48\x10\x01\x12\x08\n\x04V230\x10\x02\x12\x08\n\x04V115\x10\x03\"\xef\x04\n\x1fTransceiverComponentsAttributes\x12\x44\n\x0b\x66orm_factor\x18\x01 \x01(\x0e\x32/.dmi.TransceiverComponentsAttributes.FormFactor\x12=\n\ntrans_type\x18\x02 \x01(\x0e\x32).dmi.TransceiverComponentsAttributes.Type\x12\x14\n\x0cmax_distance\x18\x03 \x01(\r\x12+\n\x12max_distance_scale\x18\x04 \x01(\x0e\x32\x0f.dmi.ValueScale\x12\x15\n\rrx_wavelength\x18\x05 \x03(\r\x12\x15\n\rtx_wavelength\x18\x06 \x03(\r\x12)\n\x10wavelength_scale\x18\x07 \x01(\x0e\x32\x0f.dmi.ValueScale\"\xc0\x01\n\nFormFactor\x12\x17\n\x13\x46ORM_FACTOR_UNKNOWN\x10\x00\x12\x08\n\x04QSFP\x10\x01\x12\r\n\tQSFP_PLUS\x10\x02\x12\n\n\x06QSFP28\x10\x03\x12\x07\n\x03SFP\x10\x04\x12\x0c\n\x08SFP_PLUS\x10\x05\x12\x07\n\x03XFP\x10\x06\x12\x08\n\x04\x43\x46P4\x10\x07\x12\x08\n\x04\x43\x46P2\x10\x08\x12\x08\n\x04\x43PAK\x10\t\x12\x06\n\x02X2\x10\n\x12\t\n\x05OTHER\x10\x0b\x12\x07\n\x03\x43\x46P\x10\x0c\x12\x0c\n\x08\x43\x46P2_ACO\x10\r\x12\x0c\n\x08\x43\x46P2_DCO\x10\x0e\"h\n\x04Type\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\x0c\n\x08\x45THERNET\x10\x01\x12\x08\n\x04GPON\x10\x02\x12\t\n\x05XGPON\x10\x03\x12\n\n\x06XGSPON\x10\x04\x12\x08\n\x04\x43PON\x10\x05\x12\x0b\n\x07NG_PON2\x10\x06\x12\x08\n\x04\x45PON\x10\x07\"\xe8\x05\n\tComponent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x63lass\x18\x02 \x01(\x0e\x32\x12.dmi.ComponentType\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0e\n\x06parent\x18\x04 \x01(\t\x12\x16\n\x0eparent_rel_pos\x18\x05 \x01(\x05\x12 \n\x08\x63hildren\x18\x06 \x03(\x0b\x32\x0e.dmi.Component\x12\x14\n\x0chardware_rev\x18\x07 \x01(\t\x12\x14\n\x0c\x66irmware_rev\x18\x08 \x01(\t\x12\x14\n\x0csoftware_rev\x18\t \x01(\t\x12\x12\n\nserial_num\x18\n \x01(\t\x12\x10\n\x08mfg_name\x18\x0b \x01(\t\x12\x12\n\nmodel_name\x18\x0c \x01(\t\x12\r\n\x05\x61lias\x18\r \x01(\t\x12\x10\n\x08\x61sset_id\x18\x0e \x01(\t\x12\x0e\n\x06is_fru\x18\x0f \x01(\x08\x12,\n\x08mfg_date\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\x03uri\x18\x11 \x01(\x0b\x32\x08.dmi.Uri\x12\x17\n\x04uuid\x18\x12 \x01(\x0b\x32\t.dmi.Uuid\x12\"\n\x05state\x18\x13 \x01(\x0b\x32\x13.dmi.ComponentState\x12-\n\x0bsensor_data\x18\x14 \x03(\x0b\x32\x18.dmi.ComponentSensorData\x12\x31\n\tport_attr\x18\x32 \x01(\x0b\x32\x1c.dmi.PortComponentAttributesH\x00\x12;\n\x0e\x63ontainer_attr\x18\x33 \x01(\x0b\x32!.dmi.ContainerComponentAttributesH\x00\x12/\n\x08psu_attr\x18\x34 \x01(\x0b\x32\x1b.dmi.PsuComponentAttributesH\x00\x12@\n\x10transceiver_attr\x18\x35 \x01(\x0b\x32$.dmi.TransceiverComponentsAttributesH\x00\x42\n\n\x08specific\"\x8a\x01\n\x08Hardware\x12/\n\x0blast_change\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x04root\x18\x02 \x01(\x0b\x32\x0e.dmi.Component\x12/\n\x0blast_booted\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xe5\x01\n\x13ModifiableComponent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x63lass\x18\x02 \x01(\x0e\x32\x12.dmi.ComponentType\x12\x1e\n\x06parent\x18\x03 \x01(\x0b\x32\x0e.dmi.Component\x12\x16\n\x0eparent_rel_pos\x18\x04 \x01(\x05\x12\r\n\x05\x61lias\x18\x05 \x01(\t\x12\x10\n\x08\x61sset_id\x18\x06 \x01(\t\x12\x15\n\x03uri\x18\x07 \x01(\x0b\x32\x08.dmi.Uri\x12-\n\x0b\x61\x64min_state\x18\x08 \x01(\x0e\x32\x18.dmi.ComponentAdminState*\xb4\x03\n\rComponentType\x12\x1c\n\x18\x43OMPONENT_TYPE_UNDEFINED\x10\x00\x12\x1a\n\x16\x43OMPONENT_TYPE_UNKNOWN\x10\x01\x12\x1a\n\x16\x43OMPONENT_TYPE_CHASSIS\x10\x02\x12\x1c\n\x18\x43OMPONENT_TYPE_BACKPLANE\x10\x03\x12\x1c\n\x18\x43OMPONENT_TYPE_CONTAINER\x10\x04\x12\x1f\n\x1b\x43OMPONENT_TYPE_POWER_SUPPLY\x10\x05\x12\x16\n\x12\x43OMPONENT_TYPE_FAN\x10\x06\x12\x19\n\x15\x43OMPONENT_TYPE_SENSOR\x10\x07\x12\x19\n\x15\x43OMPONENT_TYPE_MODULE\x10\x08\x12\x17\n\x13\x43OMPONENT_TYPE_PORT\x10\t\x12\x16\n\x12\x43OMPONENT_TYPE_CPU\x10\n\x12\x1a\n\x16\x43OMPONENT_TYPE_BATTERY\x10\x0b\x12\x1a\n\x16\x43OMPONENT_TYPE_STORAGE\x10\x0c\x12\x19\n\x15\x43OMPONENT_TYPE_MEMORY\x10\r\x12\x1e\n\x1a\x43OMPONENT_TYPE_TRANSCEIVER\x10\x0e*\xb3\x01\n\x13\x43omponentAdminState\x12\x1e\n\x1a\x43OMP_ADMIN_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_ADMIN_STATE_UNKNOWN\x10\x01\x12\x1b\n\x17\x43OMP_ADMIN_STATE_LOCKED\x10\x02\x12\"\n\x1e\x43OMP_ADMIN_STATE_SHUTTING_DOWN\x10\x03\x12\x1d\n\x19\x43OMP_ADMIN_STATE_UNLOCKED\x10\x04*\xa8\x01\n\x12\x43omponentOperState\x12\x1d\n\x19\x43OMP_OPER_STATE_UNDEFINED\x10\x00\x12\x1b\n\x17\x43OMP_OPER_STATE_UNKNOWN\x10\x01\x12\x1c\n\x18\x43OMP_OPER_STATE_DISABLED\x10\x02\x12\x1b\n\x17\x43OMP_OPER_STATE_ENABLED\x10\x03\x12\x1b\n\x17\x43OMP_OPER_STATE_TESTING\x10\x04*\xa6\x01\n\x13\x43omponentUsageState\x12\x1e\n\x1a\x43OMP_USAGE_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_USAGE_STATE_UNKNOWN\x10\x01\x12\x19\n\x15\x43OMP_USAGE_STATE_IDLE\x10\x02\x12\x1b\n\x17\x43OMP_USAGE_STATE_ACTIVE\x10\x03\x12\x19\n\x15\x43OMP_USAGE_STATE_BUSY\x10\x04*\x8f\x02\n\x13\x43omponentAlarmState\x12\x1e\n\x1a\x43OMP_ALARM_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_ALARM_STATE_UNKNOWN\x10\x01\x12!\n\x1d\x43OMP_ALARM_STATE_UNDER_REPAIR\x10\x02\x12\x1d\n\x19\x43OMP_ALARM_STATE_CRITICAL\x10\x03\x12\x1a\n\x16\x43OMP_ALARM_STATE_MAJOR\x10\x04\x12\x1a\n\x16\x43OMP_ALARM_STATE_MINOR\x10\x05\x12\x1c\n\x18\x43OMP_ALARM_STATE_WARNING\x10\x06\x12\"\n\x1e\x43OMP_ALARM_STATE_INDETERMINATE\x10\x07*\xbc\x01\n\x15\x43omponentStandbyState\x12 \n\x1c\x43OMP_STANDBY_STATE_UNDEFINED\x10\x00\x12\x1e\n\x1a\x43OMP_STANDBY_STATE_UNKNOWN\x10\x01\x12\x1a\n\x16\x43OMP_STANDBY_STATE_HOT\x10\x02\x12\x1b\n\x17\x43OMP_STANDBY_STATE_COLD\x10\x03\x12(\n$COMP_STANDBY_STATE_PROVIDING_SERVICE\x10\x04*\xc4\x02\n\rDataValueType\x12\x18\n\x14VALUE_TYPE_UNDEFINED\x10\x00\x12\x14\n\x10VALUE_TYPE_OTHER\x10\x01\x12\x16\n\x12VALUE_TYPE_UNKNOWN\x10\x02\x12\x17\n\x13VALUE_TYPE_VOLTS_AC\x10\x03\x12\x17\n\x13VALUE_TYPE_VOLTS_DC\x10\x04\x12\x16\n\x12VALUE_TYPE_AMPERES\x10\x05\x12\x14\n\x10VALUE_TYPE_WATTS\x10\x06\x12\x14\n\x10VALUE_TYPE_HERTZ\x10\x07\x12\x16\n\x12VALUE_TYPE_CELSIUS\x10\x08\x12\x19\n\x15VALUE_TYPE_PERCENT_RH\x10\t\x12\x12\n\x0eVALUE_TYPE_RPM\x10\n\x12\x12\n\x0eVALUE_TYPE_CMM\x10\x0b\x12\x1a\n\x16VALUE_TYPE_TRUTH_VALUE\x10\x0c*\xa4\x03\n\nValueScale\x12\x19\n\x15VALUE_SCALE_UNDEFINED\x10\x00\x12\x15\n\x11VALUE_SCALE_YOCTO\x10\x01\x12\x15\n\x11VALUE_SCALE_ZEPTO\x10\x02\x12\x14\n\x10VALUE_SCALE_ATTO\x10\x03\x12\x15\n\x11VALUE_SCALE_FEMTO\x10\x04\x12\x14\n\x10VALUE_SCALE_PICO\x10\x05\x12\x14\n\x10VALUE_SCALE_NANO\x10\x06\x12\x15\n\x11VALUE_SCALE_MICRO\x10\x07\x12\x15\n\x11VALUE_SCALE_MILLI\x10\x08\x12\x15\n\x11VALUE_SCALE_UNITS\x10\t\x12\x14\n\x10VALUE_SCALE_KILO\x10\n\x12\x14\n\x10VALUE_SCALE_MEGA\x10\x0b\x12\x14\n\x10VALUE_SCALE_GIGA\x10\x0c\x12\x14\n\x10VALUE_SCALE_TERA\x10\r\x12\x14\n\x10VALUE_SCALE_PETA\x10\x0e\x12\x13\n\x0fVALUE_SCALE_EXA\x10\x0f\x12\x15\n\x11VALUE_SCALE_ZETTA\x10\x10\x12\x15\n\x11VALUE_SCALE_YOTTA\x10\x11*\x82\x01\n\x0cSensorStatus\x12\x1b\n\x17SENSOR_STATUS_UNDEFINED\x10\x00\x12\x14\n\x10SENSOR_STATUS_OK\x10\x01\x12\x1d\n\x19SENSOR_STATUS_UNAVAILABLE\x10\x02\x12 \n\x1cSENSOR_STATUS_NONOPERATIONAL\x10\x03\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
   ,
   dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,])
 
@@ -107,21 +107,11 @@
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_GPON_TRANSCEIVER', index=15, number=15,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_XGS_PON_TRANSCEIVER', index=16, number=16,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=1562,
-  serialized_end=2075,
+  serialized_start=3331,
+  serialized_end=3767,
 )
 _sym_db.RegisterEnumDescriptor(_COMPONENTTYPE)
 
@@ -161,8 +151,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=2078,
-  serialized_end=2257,
+  serialized_start=3770,
+  serialized_end=3949,
 )
 _sym_db.RegisterEnumDescriptor(_COMPONENTADMINSTATE)
 
@@ -202,8 +192,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=2260,
-  serialized_end=2428,
+  serialized_start=3952,
+  serialized_end=4120,
 )
 _sym_db.RegisterEnumDescriptor(_COMPONENTOPERSTATE)
 
@@ -243,8 +233,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=2431,
-  serialized_end=2597,
+  serialized_start=4123,
+  serialized_end=4289,
 )
 _sym_db.RegisterEnumDescriptor(_COMPONENTUSAGESTATE)
 
@@ -299,8 +289,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=2600,
-  serialized_end=2871,
+  serialized_start=4292,
+  serialized_end=4563,
 )
 _sym_db.RegisterEnumDescriptor(_COMPONENTALARMSTATE)
 
@@ -340,199 +330,199 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=2874,
-  serialized_end=3062,
+  serialized_start=4566,
+  serialized_end=4754,
 )
 _sym_db.RegisterEnumDescriptor(_COMPONENTSTANDBYSTATE)
 
 ComponentStandbyState = enum_type_wrapper.EnumTypeWrapper(_COMPONENTSTANDBYSTATE)
-_SENSORVALUETYPE = _descriptor.EnumDescriptor(
-  name='SensorValueType',
-  full_name='dmi.SensorValueType',
+_DATAVALUETYPE = _descriptor.EnumDescriptor(
+  name='DataValueType',
+  full_name='dmi.DataValueType',
   filename=None,
   file=DESCRIPTOR,
   create_key=_descriptor._internal_create_key,
   values=[
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_UNDEFINED', index=0, number=0,
+      name='VALUE_TYPE_UNDEFINED', index=0, number=0,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_OTHER', index=1, number=1,
+      name='VALUE_TYPE_OTHER', index=1, number=1,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_UNKNOWN', index=2, number=2,
+      name='VALUE_TYPE_UNKNOWN', index=2, number=2,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_VOLTS_AC', index=3, number=3,
+      name='VALUE_TYPE_VOLTS_AC', index=3, number=3,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_VOLTS_DC', index=4, number=4,
+      name='VALUE_TYPE_VOLTS_DC', index=4, number=4,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_AMPERES', index=5, number=5,
+      name='VALUE_TYPE_AMPERES', index=5, number=5,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_WATTS', index=6, number=6,
+      name='VALUE_TYPE_WATTS', index=6, number=6,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_HERTZ', index=7, number=7,
+      name='VALUE_TYPE_HERTZ', index=7, number=7,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_CELSIUS', index=8, number=8,
+      name='VALUE_TYPE_CELSIUS', index=8, number=8,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_PERCENT_RH', index=9, number=9,
+      name='VALUE_TYPE_PERCENT_RH', index=9, number=9,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_RPM', index=10, number=10,
+      name='VALUE_TYPE_RPM', index=10, number=10,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_CMM', index=11, number=11,
+      name='VALUE_TYPE_CMM', index=11, number=11,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_TYPE_TRUTH_VALUE', index=12, number=12,
+      name='VALUE_TYPE_TRUTH_VALUE', index=12, number=12,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=3065,
-  serialized_end=3482,
+  serialized_start=4757,
+  serialized_end=5081,
 )
-_sym_db.RegisterEnumDescriptor(_SENSORVALUETYPE)
+_sym_db.RegisterEnumDescriptor(_DATAVALUETYPE)
 
-SensorValueType = enum_type_wrapper.EnumTypeWrapper(_SENSORVALUETYPE)
-_SENSORVALUESCALE = _descriptor.EnumDescriptor(
-  name='SensorValueScale',
-  full_name='dmi.SensorValueScale',
+DataValueType = enum_type_wrapper.EnumTypeWrapper(_DATAVALUETYPE)
+_VALUESCALE = _descriptor.EnumDescriptor(
+  name='ValueScale',
+  full_name='dmi.ValueScale',
   filename=None,
   file=DESCRIPTOR,
   create_key=_descriptor._internal_create_key,
   values=[
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_UNDEFINED', index=0, number=0,
+      name='VALUE_SCALE_UNDEFINED', index=0, number=0,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_YOCTO', index=1, number=1,
+      name='VALUE_SCALE_YOCTO', index=1, number=1,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_ZEPTO', index=2, number=2,
+      name='VALUE_SCALE_ZEPTO', index=2, number=2,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_ATTO', index=3, number=3,
+      name='VALUE_SCALE_ATTO', index=3, number=3,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_FEMTO', index=4, number=4,
+      name='VALUE_SCALE_FEMTO', index=4, number=4,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_PICO', index=5, number=5,
+      name='VALUE_SCALE_PICO', index=5, number=5,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_NANO', index=6, number=6,
+      name='VALUE_SCALE_NANO', index=6, number=6,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_MICRO', index=7, number=7,
+      name='VALUE_SCALE_MICRO', index=7, number=7,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_MILLI', index=8, number=8,
+      name='VALUE_SCALE_MILLI', index=8, number=8,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_UNITS', index=9, number=9,
+      name='VALUE_SCALE_UNITS', index=9, number=9,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_KILO', index=10, number=10,
+      name='VALUE_SCALE_KILO', index=10, number=10,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_MEGA', index=11, number=11,
+      name='VALUE_SCALE_MEGA', index=11, number=11,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_GIGA', index=12, number=12,
+      name='VALUE_SCALE_GIGA', index=12, number=12,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_TERA', index=13, number=13,
+      name='VALUE_SCALE_TERA', index=13, number=13,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_PETA', index=14, number=14,
+      name='VALUE_SCALE_PETA', index=14, number=14,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_EXA', index=15, number=15,
+      name='VALUE_SCALE_EXA', index=15, number=15,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_ZETTA', index=16, number=16,
+      name='VALUE_SCALE_ZETTA', index=16, number=16,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='SENSOR_VALUE_SCALE_YOTTA', index=17, number=17,
+      name='VALUE_SCALE_YOTTA', index=17, number=17,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=3485,
-  serialized_end=4037,
+  serialized_start=5084,
+  serialized_end=5504,
 )
-_sym_db.RegisterEnumDescriptor(_SENSORVALUESCALE)
+_sym_db.RegisterEnumDescriptor(_VALUESCALE)
 
-SensorValueScale = enum_type_wrapper.EnumTypeWrapper(_SENSORVALUESCALE)
+ValueScale = enum_type_wrapper.EnumTypeWrapper(_VALUESCALE)
 _SENSORSTATUS = _descriptor.EnumDescriptor(
   name='SensorStatus',
   full_name='dmi.SensorStatus',
@@ -563,8 +553,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=4040,
-  serialized_end=4170,
+  serialized_start=5507,
+  serialized_end=5637,
 )
 _sym_db.RegisterEnumDescriptor(_SENSORSTATUS)
 
@@ -584,8 +574,6 @@
 COMPONENT_TYPE_STORAGE = 12
 COMPONENT_TYPE_MEMORY = 13
 COMPONENT_TYPE_TRANSCEIVER = 14
-COMPONENT_TYPE_GPON_TRANSCEIVER = 15
-COMPONENT_TYPE_XGS_PON_TRANSCEIVER = 16
 COMP_ADMIN_STATE_UNDEFINED = 0
 COMP_ADMIN_STATE_UNKNOWN = 1
 COMP_ADMIN_STATE_LOCKED = 2
@@ -614,43 +602,383 @@
 COMP_STANDBY_STATE_HOT = 2
 COMP_STANDBY_STATE_COLD = 3
 COMP_STANDBY_STATE_PROVIDING_SERVICE = 4
-SENSOR_VALUE_TYPE_UNDEFINED = 0
-SENSOR_VALUE_TYPE_OTHER = 1
-SENSOR_VALUE_TYPE_UNKNOWN = 2
-SENSOR_VALUE_TYPE_VOLTS_AC = 3
-SENSOR_VALUE_TYPE_VOLTS_DC = 4
-SENSOR_VALUE_TYPE_AMPERES = 5
-SENSOR_VALUE_TYPE_WATTS = 6
-SENSOR_VALUE_TYPE_HERTZ = 7
-SENSOR_VALUE_TYPE_CELSIUS = 8
-SENSOR_VALUE_TYPE_PERCENT_RH = 9
-SENSOR_VALUE_TYPE_RPM = 10
-SENSOR_VALUE_TYPE_CMM = 11
-SENSOR_VALUE_TYPE_TRUTH_VALUE = 12
-SENSOR_VALUE_SCALE_UNDEFINED = 0
-SENSOR_VALUE_SCALE_YOCTO = 1
-SENSOR_VALUE_SCALE_ZEPTO = 2
-SENSOR_VALUE_SCALE_ATTO = 3
-SENSOR_VALUE_SCALE_FEMTO = 4
-SENSOR_VALUE_SCALE_PICO = 5
-SENSOR_VALUE_SCALE_NANO = 6
-SENSOR_VALUE_SCALE_MICRO = 7
-SENSOR_VALUE_SCALE_MILLI = 8
-SENSOR_VALUE_SCALE_UNITS = 9
-SENSOR_VALUE_SCALE_KILO = 10
-SENSOR_VALUE_SCALE_MEGA = 11
-SENSOR_VALUE_SCALE_GIGA = 12
-SENSOR_VALUE_SCALE_TERA = 13
-SENSOR_VALUE_SCALE_PETA = 14
-SENSOR_VALUE_SCALE_EXA = 15
-SENSOR_VALUE_SCALE_ZETTA = 16
-SENSOR_VALUE_SCALE_YOTTA = 17
+VALUE_TYPE_UNDEFINED = 0
+VALUE_TYPE_OTHER = 1
+VALUE_TYPE_UNKNOWN = 2
+VALUE_TYPE_VOLTS_AC = 3
+VALUE_TYPE_VOLTS_DC = 4
+VALUE_TYPE_AMPERES = 5
+VALUE_TYPE_WATTS = 6
+VALUE_TYPE_HERTZ = 7
+VALUE_TYPE_CELSIUS = 8
+VALUE_TYPE_PERCENT_RH = 9
+VALUE_TYPE_RPM = 10
+VALUE_TYPE_CMM = 11
+VALUE_TYPE_TRUTH_VALUE = 12
+VALUE_SCALE_UNDEFINED = 0
+VALUE_SCALE_YOCTO = 1
+VALUE_SCALE_ZEPTO = 2
+VALUE_SCALE_ATTO = 3
+VALUE_SCALE_FEMTO = 4
+VALUE_SCALE_PICO = 5
+VALUE_SCALE_NANO = 6
+VALUE_SCALE_MICRO = 7
+VALUE_SCALE_MILLI = 8
+VALUE_SCALE_UNITS = 9
+VALUE_SCALE_KILO = 10
+VALUE_SCALE_MEGA = 11
+VALUE_SCALE_GIGA = 12
+VALUE_SCALE_TERA = 13
+VALUE_SCALE_PETA = 14
+VALUE_SCALE_EXA = 15
+VALUE_SCALE_ZETTA = 16
+VALUE_SCALE_YOTTA = 17
 SENSOR_STATUS_UNDEFINED = 0
 SENSOR_STATUS_OK = 1
 SENSOR_STATUS_UNAVAILABLE = 2
 SENSOR_STATUS_NONOPERATIONAL = 3
 
 
+_PORTCOMPONENTATTRIBUTES_CONNECTORTYPE = _descriptor.EnumDescriptor(
+  name='ConnectorType',
+  full_name='dmi.PortComponentAttributes.ConnectorType',
+  filename=None,
+  file=DESCRIPTOR,
+  create_key=_descriptor._internal_create_key,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='CONNECTOR_TYPE_UNDEFINED', index=0, number=0,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='RJ45', index=1, number=1,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='FIBER_LC', index=2, number=2,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='FIBER_SC_PC', index=3, number=3,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='FIBER_MPO', index=4, number=4,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=950,
+  serialized_end=1051,
+)
+_sym_db.RegisterEnumDescriptor(_PORTCOMPONENTATTRIBUTES_CONNECTORTYPE)
+
+_PORTCOMPONENTATTRIBUTES_SPEED = _descriptor.EnumDescriptor(
+  name='Speed',
+  full_name='dmi.PortComponentAttributes.Speed',
+  filename=None,
+  file=DESCRIPTOR,
+  create_key=_descriptor._internal_create_key,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='SPEED_UNDEFINED', index=0, number=0,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='DYNAMIC', index=1, number=1,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='GIGABIT_1', index=2, number=2,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='GIGABIT_10', index=3, number=3,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='GIGABIT_25', index=4, number=4,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='GIGABIT_40', index=5, number=5,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='GIGABIT_100', index=6, number=6,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='GIGABIT_400', index=7, number=7,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='MEGABIT_2500', index=8, number=8,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='MEGABIT_1250', index=9, number=9,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=1054,
+  serialized_end=1228,
+)
+_sym_db.RegisterEnumDescriptor(_PORTCOMPONENTATTRIBUTES_SPEED)
+
+_PORTCOMPONENTATTRIBUTES_PROTOCOL = _descriptor.EnumDescriptor(
+  name='Protocol',
+  full_name='dmi.PortComponentAttributes.Protocol',
+  filename=None,
+  file=DESCRIPTOR,
+  create_key=_descriptor._internal_create_key,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='PROTOCOL_UNDEFINED', index=0, number=0,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='ETHERNET', index=1, number=1,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='GPON', index=2, number=2,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='XGPON', index=3, number=3,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='XGSPON', index=4, number=4,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='GFAST', index=5, number=5,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='SERIAL', index=6, number=6,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='EPON', index=7, number=7,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=1230,
+  serialized_end=1344,
+)
+_sym_db.RegisterEnumDescriptor(_PORTCOMPONENTATTRIBUTES_PROTOCOL)
+
+_PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE = _descriptor.EnumDescriptor(
+  name='SupportedVoltage',
+  full_name='dmi.PsuComponentAttributes.SupportedVoltage',
+  filename=None,
+  file=DESCRIPTOR,
+  create_key=_descriptor._internal_create_key,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='SUPPORTED_VOLTAGE_UNDEFINED', index=0, number=0,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='V48', index=1, number=1,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='V230', index=2, number=2,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='V115', index=3, number=3,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=1502,
+  serialized_end=1582,
+)
+_sym_db.RegisterEnumDescriptor(_PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE)
+
+_TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR = _descriptor.EnumDescriptor(
+  name='FormFactor',
+  full_name='dmi.TransceiverComponentsAttributes.FormFactor',
+  filename=None,
+  file=DESCRIPTOR,
+  create_key=_descriptor._internal_create_key,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='FORM_FACTOR_UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='QSFP', index=1, number=1,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='QSFP_PLUS', index=2, number=2,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='QSFP28', index=3, number=3,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='SFP', index=4, number=4,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='SFP_PLUS', index=5, number=5,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='XFP', index=6, number=6,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='CFP4', index=7, number=7,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='CFP2', index=8, number=8,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='CPAK', index=9, number=9,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='X2', index=10, number=10,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='OTHER', index=11, number=11,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='CFP', index=12, number=12,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='CFP2_ACO', index=13, number=13,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='CFP2_DCO', index=14, number=14,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=1910,
+  serialized_end=2102,
+)
+_sym_db.RegisterEnumDescriptor(_TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR)
+
+_TRANSCEIVERCOMPONENTSATTRIBUTES_TYPE = _descriptor.EnumDescriptor(
+  name='Type',
+  full_name='dmi.TransceiverComponentsAttributes.Type',
+  filename=None,
+  file=DESCRIPTOR,
+  create_key=_descriptor._internal_create_key,
+  values=[
+    _descriptor.EnumValueDescriptor(
+      name='TYPE_UNKNOWN', index=0, number=0,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='ETHERNET', index=1, number=1,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='GPON', index=2, number=2,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='XGPON', index=3, number=3,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='XGSPON', index=4, number=4,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='CPON', index=5, number=5,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='NG_PON2', index=6, number=6,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+    _descriptor.EnumValueDescriptor(
+      name='EPON', index=7, number=7,
+      serialized_options=None,
+      type=None,
+      create_key=_descriptor._internal_create_key),
+  ],
+  containing_type=None,
+  serialized_options=None,
+  serialized_start=2104,
+  serialized_end=2208,
+)
+_sym_db.RegisterEnumDescriptor(_TRANSCEIVERCOMPONENTSATTRIBUTES_TYPE)
+
 
 _UUID = _descriptor.Descriptor(
   name='Uuid',
@@ -899,7 +1227,204 @@
   oneofs=[
   ],
   serialized_start=448,
-  serialized_end=728,
+  serialized_end=720,
+)
+
+
+_PORTCOMPONENTATTRIBUTES = _descriptor.Descriptor(
+  name='PortComponentAttributes',
+  full_name='dmi.PortComponentAttributes',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='connector_type', full_name='dmi.PortComponentAttributes.connector_type', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='speed', full_name='dmi.PortComponentAttributes.speed', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='protocol', full_name='dmi.PortComponentAttributes.protocol', index=2,
+      number=3, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='physical_label', full_name='dmi.PortComponentAttributes.physical_label', index=3,
+      number=4, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _PORTCOMPONENTATTRIBUTES_CONNECTORTYPE,
+    _PORTCOMPONENTATTRIBUTES_SPEED,
+    _PORTCOMPONENTATTRIBUTES_PROTOCOL,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=723,
+  serialized_end=1344,
+)
+
+
+_CONTAINERCOMPONENTATTRIBUTES = _descriptor.Descriptor(
+  name='ContainerComponentAttributes',
+  full_name='dmi.ContainerComponentAttributes',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='physical_label', full_name='dmi.ContainerComponentAttributes.physical_label', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=b"".decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1346,
+  serialized_end=1400,
+)
+
+
+_PSUCOMPONENTATTRIBUTES = _descriptor.Descriptor(
+  name='PsuComponentAttributes',
+  full_name='dmi.PsuComponentAttributes',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='supported_voltage', full_name='dmi.PsuComponentAttributes.supported_voltage', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1403,
+  serialized_end=1582,
+)
+
+
+_TRANSCEIVERCOMPONENTSATTRIBUTES = _descriptor.Descriptor(
+  name='TransceiverComponentsAttributes',
+  full_name='dmi.TransceiverComponentsAttributes',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='form_factor', full_name='dmi.TransceiverComponentsAttributes.form_factor', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='trans_type', full_name='dmi.TransceiverComponentsAttributes.trans_type', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='max_distance', full_name='dmi.TransceiverComponentsAttributes.max_distance', index=2,
+      number=3, type=13, cpp_type=3, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='max_distance_scale', full_name='dmi.TransceiverComponentsAttributes.max_distance_scale', index=3,
+      number=4, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='rx_wavelength', full_name='dmi.TransceiverComponentsAttributes.rx_wavelength', index=4,
+      number=5, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='tx_wavelength', full_name='dmi.TransceiverComponentsAttributes.tx_wavelength', index=5,
+      number=6, type=13, cpp_type=3, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='wavelength_scale', full_name='dmi.TransceiverComponentsAttributes.wavelength_scale', index=6,
+      number=7, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+    _TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR,
+    _TRANSCEIVERCOMPONENTSATTRIBUTES_TYPE,
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=1585,
+  serialized_end=2208,
 )
 
 
@@ -1051,6 +1576,34 @@
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='port_attr', full_name='dmi.Component.port_attr', index=20,
+      number=50, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='container_attr', full_name='dmi.Component.container_attr', index=21,
+      number=51, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='psu_attr', full_name='dmi.Component.psu_attr', index=22,
+      number=52, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='transceiver_attr', full_name='dmi.Component.transceiver_attr', index=23,
+      number=53, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
   ],
   extensions=[
   ],
@@ -1062,9 +1615,14 @@
   syntax='proto3',
   extension_ranges=[],
   oneofs=[
+    _descriptor.OneofDescriptor(
+      name='specific', full_name='dmi.Component.specific',
+      index=0, containing_type=None,
+      create_key=_descriptor._internal_create_key,
+    fields=[]),
   ],
-  serialized_start=731,
-  serialized_end=1236,
+  serialized_start=2211,
+  serialized_end=2955,
 )
 
 
@@ -1090,6 +1648,13 @@
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='last_booted', full_name='dmi.Hardware.last_booted', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
   ],
   extensions=[
   ],
@@ -1102,8 +1667,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1238,
-  serialized_end=1327,
+  serialized_start=2958,
+  serialized_end=3096,
 )
 
 
@@ -1183,8 +1748,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1330,
-  serialized_end=1559,
+  serialized_start=3099,
+  serialized_end=3328,
 )
 
 _HARDWAREID.fields_by_name['uuid'].message_type = _UUID
@@ -1194,10 +1759,24 @@
 _COMPONENTSTATE.fields_by_name['usage_state'].enum_type = _COMPONENTUSAGESTATE
 _COMPONENTSTATE.fields_by_name['alarm_state'].enum_type = _COMPONENTALARMSTATE
 _COMPONENTSTATE.fields_by_name['standby_state'].enum_type = _COMPONENTSTANDBYSTATE
-_COMPONENTSENSORDATA.fields_by_name['type'].enum_type = _SENSORVALUETYPE
-_COMPONENTSENSORDATA.fields_by_name['scale'].enum_type = _SENSORVALUESCALE
+_COMPONENTSENSORDATA.fields_by_name['type'].enum_type = _DATAVALUETYPE
+_COMPONENTSENSORDATA.fields_by_name['scale'].enum_type = _VALUESCALE
 _COMPONENTSENSORDATA.fields_by_name['status'].enum_type = _SENSORSTATUS
 _COMPONENTSENSORDATA.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
+_PORTCOMPONENTATTRIBUTES.fields_by_name['connector_type'].enum_type = _PORTCOMPONENTATTRIBUTES_CONNECTORTYPE
+_PORTCOMPONENTATTRIBUTES.fields_by_name['speed'].enum_type = _PORTCOMPONENTATTRIBUTES_SPEED
+_PORTCOMPONENTATTRIBUTES.fields_by_name['protocol'].enum_type = _PORTCOMPONENTATTRIBUTES_PROTOCOL
+_PORTCOMPONENTATTRIBUTES_CONNECTORTYPE.containing_type = _PORTCOMPONENTATTRIBUTES
+_PORTCOMPONENTATTRIBUTES_SPEED.containing_type = _PORTCOMPONENTATTRIBUTES
+_PORTCOMPONENTATTRIBUTES_PROTOCOL.containing_type = _PORTCOMPONENTATTRIBUTES
+_PSUCOMPONENTATTRIBUTES.fields_by_name['supported_voltage'].enum_type = _PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE
+_PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE.containing_type = _PSUCOMPONENTATTRIBUTES
+_TRANSCEIVERCOMPONENTSATTRIBUTES.fields_by_name['form_factor'].enum_type = _TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR
+_TRANSCEIVERCOMPONENTSATTRIBUTES.fields_by_name['trans_type'].enum_type = _TRANSCEIVERCOMPONENTSATTRIBUTES_TYPE
+_TRANSCEIVERCOMPONENTSATTRIBUTES.fields_by_name['max_distance_scale'].enum_type = _VALUESCALE
+_TRANSCEIVERCOMPONENTSATTRIBUTES.fields_by_name['wavelength_scale'].enum_type = _VALUESCALE
+_TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR.containing_type = _TRANSCEIVERCOMPONENTSATTRIBUTES
+_TRANSCEIVERCOMPONENTSATTRIBUTES_TYPE.containing_type = _TRANSCEIVERCOMPONENTSATTRIBUTES
 _COMPONENT.fields_by_name['class'].enum_type = _COMPONENTTYPE
 _COMPONENT.fields_by_name['children'].message_type = _COMPONENT
 _COMPONENT.fields_by_name['mfg_date'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
@@ -1205,8 +1784,25 @@
 _COMPONENT.fields_by_name['uuid'].message_type = _UUID
 _COMPONENT.fields_by_name['state'].message_type = _COMPONENTSTATE
 _COMPONENT.fields_by_name['sensor_data'].message_type = _COMPONENTSENSORDATA
+_COMPONENT.fields_by_name['port_attr'].message_type = _PORTCOMPONENTATTRIBUTES
+_COMPONENT.fields_by_name['container_attr'].message_type = _CONTAINERCOMPONENTATTRIBUTES
+_COMPONENT.fields_by_name['psu_attr'].message_type = _PSUCOMPONENTATTRIBUTES
+_COMPONENT.fields_by_name['transceiver_attr'].message_type = _TRANSCEIVERCOMPONENTSATTRIBUTES
+_COMPONENT.oneofs_by_name['specific'].fields.append(
+  _COMPONENT.fields_by_name['port_attr'])
+_COMPONENT.fields_by_name['port_attr'].containing_oneof = _COMPONENT.oneofs_by_name['specific']
+_COMPONENT.oneofs_by_name['specific'].fields.append(
+  _COMPONENT.fields_by_name['container_attr'])
+_COMPONENT.fields_by_name['container_attr'].containing_oneof = _COMPONENT.oneofs_by_name['specific']
+_COMPONENT.oneofs_by_name['specific'].fields.append(
+  _COMPONENT.fields_by_name['psu_attr'])
+_COMPONENT.fields_by_name['psu_attr'].containing_oneof = _COMPONENT.oneofs_by_name['specific']
+_COMPONENT.oneofs_by_name['specific'].fields.append(
+  _COMPONENT.fields_by_name['transceiver_attr'])
+_COMPONENT.fields_by_name['transceiver_attr'].containing_oneof = _COMPONENT.oneofs_by_name['specific']
 _HARDWARE.fields_by_name['last_change'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
 _HARDWARE.fields_by_name['root'].message_type = _COMPONENT
+_HARDWARE.fields_by_name['last_booted'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
 _MODIFIABLECOMPONENT.fields_by_name['class'].enum_type = _COMPONENTTYPE
 _MODIFIABLECOMPONENT.fields_by_name['parent'].message_type = _COMPONENT
 _MODIFIABLECOMPONENT.fields_by_name['uri'].message_type = _URI
@@ -1216,6 +1812,10 @@
 DESCRIPTOR.message_types_by_name['Uri'] = _URI
 DESCRIPTOR.message_types_by_name['ComponentState'] = _COMPONENTSTATE
 DESCRIPTOR.message_types_by_name['ComponentSensorData'] = _COMPONENTSENSORDATA
+DESCRIPTOR.message_types_by_name['PortComponentAttributes'] = _PORTCOMPONENTATTRIBUTES
+DESCRIPTOR.message_types_by_name['ContainerComponentAttributes'] = _CONTAINERCOMPONENTATTRIBUTES
+DESCRIPTOR.message_types_by_name['PsuComponentAttributes'] = _PSUCOMPONENTATTRIBUTES
+DESCRIPTOR.message_types_by_name['TransceiverComponentsAttributes'] = _TRANSCEIVERCOMPONENTSATTRIBUTES
 DESCRIPTOR.message_types_by_name['Component'] = _COMPONENT
 DESCRIPTOR.message_types_by_name['Hardware'] = _HARDWARE
 DESCRIPTOR.message_types_by_name['ModifiableComponent'] = _MODIFIABLECOMPONENT
@@ -1225,8 +1825,8 @@
 DESCRIPTOR.enum_types_by_name['ComponentUsageState'] = _COMPONENTUSAGESTATE
 DESCRIPTOR.enum_types_by_name['ComponentAlarmState'] = _COMPONENTALARMSTATE
 DESCRIPTOR.enum_types_by_name['ComponentStandbyState'] = _COMPONENTSTANDBYSTATE
-DESCRIPTOR.enum_types_by_name['SensorValueType'] = _SENSORVALUETYPE
-DESCRIPTOR.enum_types_by_name['SensorValueScale'] = _SENSORVALUESCALE
+DESCRIPTOR.enum_types_by_name['DataValueType'] = _DATAVALUETYPE
+DESCRIPTOR.enum_types_by_name['ValueScale'] = _VALUESCALE
 DESCRIPTOR.enum_types_by_name['SensorStatus'] = _SENSORSTATUS
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
@@ -1265,6 +1865,34 @@
   })
 _sym_db.RegisterMessage(ComponentSensorData)
 
+PortComponentAttributes = _reflection.GeneratedProtocolMessageType('PortComponentAttributes', (_message.Message,), {
+  'DESCRIPTOR' : _PORTCOMPONENTATTRIBUTES,
+  '__module__' : 'dmi.hw_pb2'
+  # @@protoc_insertion_point(class_scope:dmi.PortComponentAttributes)
+  })
+_sym_db.RegisterMessage(PortComponentAttributes)
+
+ContainerComponentAttributes = _reflection.GeneratedProtocolMessageType('ContainerComponentAttributes', (_message.Message,), {
+  'DESCRIPTOR' : _CONTAINERCOMPONENTATTRIBUTES,
+  '__module__' : 'dmi.hw_pb2'
+  # @@protoc_insertion_point(class_scope:dmi.ContainerComponentAttributes)
+  })
+_sym_db.RegisterMessage(ContainerComponentAttributes)
+
+PsuComponentAttributes = _reflection.GeneratedProtocolMessageType('PsuComponentAttributes', (_message.Message,), {
+  'DESCRIPTOR' : _PSUCOMPONENTATTRIBUTES,
+  '__module__' : 'dmi.hw_pb2'
+  # @@protoc_insertion_point(class_scope:dmi.PsuComponentAttributes)
+  })
+_sym_db.RegisterMessage(PsuComponentAttributes)
+
+TransceiverComponentsAttributes = _reflection.GeneratedProtocolMessageType('TransceiverComponentsAttributes', (_message.Message,), {
+  'DESCRIPTOR' : _TRANSCEIVERCOMPONENTSATTRIBUTES,
+  '__module__' : 'dmi.hw_pb2'
+  # @@protoc_insertion_point(class_scope:dmi.TransceiverComponentsAttributes)
+  })
+_sym_db.RegisterMessage(TransceiverComponentsAttributes)
+
 Component = _reflection.GeneratedProtocolMessageType('Component', (_message.Message,), {
   'DESCRIPTOR' : _COMPONENT,
   '__module__' : 'dmi.hw_pb2'