VOL-3157: Initial version of the protos
Change-Id: I8ffda169132f80a51632c52dd8ac142efef26ef7
diff --git a/protos/dmi/hw_management_service.proto b/protos/dmi/hw_management_service.proto
new file mode 100644
index 0000000..5b780e7
--- /dev/null
+++ b/protos/dmi/hw_management_service.proto
@@ -0,0 +1,57 @@
+syntax = "proto3";
+
+option go_package = "github.com/opencord/device-management-interface/v3/go/dmi";
+package dmi;
+
+import "dmi/commons.proto";
+import "dmi/hw.proto";
+
+// Protos for the management of a hardware and it's components
+
+message PhysicalInventoryRequest {
+ Uuid device_uuid = 1;
+}
+
+message PhysicalInventoryResponse {
+ Status status = 1;
+ Reason reason = 2;
+ Hardware inventory = 3;
+}
+
+message HWComponentInfoGetRequest {
+ Uuid device_uuid = 1;
+ Uuid component_uuid = 2;
+ string component_name = 3;
+}
+
+message HWComponentInfoSetRequest {
+ Uuid device_uuid = 1;
+ Uuid component_uuid = 2;
+ string component_name = 3;
+ ModifiableComponent changes = 4;
+}
+
+message HWComponentInfoSetResponse {
+ Status status = 1;
+ Reason reason = 2;
+}
+
+message StartManagingDeviceResponse {
+ Status status = 1;
+ Reason reason = 2;
+ Uuid device_uuid = 3;
+}
+
+service NativeHWManagementService {
+ // Initializes context for a device and sets up required states
+ rpc StartManagingDevice(Hardware) returns(stream StartManagingDeviceResponse);
+
+ // Get the HW inventory details of the Device
+ rpc GetPhysicalInventory(PhysicalInventoryRequest) returns(stream PhysicalInventoryResponse);
+
+ // Get the details of a particular HW component
+ rpc GetHWComponentInfo(HWComponentInfoGetRequest) returns(stream Component);
+
+ // Sets the permissible attributes of a HW component
+ rpc SetHWComponentInfo(HWComponentInfoSetRequest) returns(HWComponentInfoSetResponse);
+}