diff --git a/python/dmi/hw_management_service_pb2_grpc.py b/python/dmi/hw_management_service_pb2_grpc.py
index 89a08ad..3e78fa1 100644
--- a/python/dmi/hw_management_service_pb2_grpc.py
+++ b/python/dmi/hw_management_service_pb2_grpc.py
@@ -86,6 +86,11 @@
                 request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                 response_deserializer=dmi_dot_hw__management__service__pb2.Heartbeat.FromString,
                 )
+        self.RebootDevice = channel.unary_unary(
+                '/dmi.NativeHWManagementService/RebootDevice',
+                request_serializer=dmi_dot_hw__management__service__pb2.RebootDeviceRequest.SerializeToString,
+                response_deserializer=dmi_dot_hw__management__service__pb2.RebootDeviceResponse.FromString,
+                )
 
 
 class NativeHWManagementServiceServicer(object):
@@ -204,6 +209,13 @@
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
+    def RebootDevice(self, request, context):
+        """Performs the reboot of the device
+        """
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
 
 def add_NativeHWManagementServiceServicer_to_server(servicer, server):
     rpc_method_handlers = {
@@ -277,6 +289,11 @@
                     request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                     response_serializer=dmi_dot_hw__management__service__pb2.Heartbeat.SerializeToString,
             ),
+            'RebootDevice': grpc.unary_unary_rpc_method_handler(
+                    servicer.RebootDevice,
+                    request_deserializer=dmi_dot_hw__management__service__pb2.RebootDeviceRequest.FromString,
+                    response_serializer=dmi_dot_hw__management__service__pb2.RebootDeviceResponse.SerializeToString,
+            ),
     }
     generic_handler = grpc.method_handlers_generic_handler(
             'dmi.NativeHWManagementService', rpc_method_handlers)
@@ -524,3 +541,20 @@
             dmi_dot_hw__management__service__pb2.Heartbeat.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+    @staticmethod
+    def RebootDevice(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_unary(request, target, '/dmi.NativeHWManagementService/RebootDevice',
+            dmi_dot_hw__management__service__pb2.RebootDeviceRequest.SerializeToString,
+            dmi_dot_hw__management__service__pb2.RebootDeviceResponse.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
