diff --git a/python/dmi/sw_management_service_pb2.py b/python/dmi/sw_management_service_pb2.py
new file mode 100644
index 0000000..d9637b6
--- /dev/null
+++ b/python/dmi/sw_management_service_pb2.py
@@ -0,0 +1,182 @@
+# -*- coding: utf-8 -*-
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: dmi/sw_management_service.proto
+
+import sys
+_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import symbol_database as _symbol_database
+# @@protoc_insertion_point(imports)
+
+_sym_db = _symbol_database.Default()
+
+
+from dmi import hw_pb2 as dmi_dot_hw__pb2
+from dmi import sw_image_pb2 as dmi_dot_sw__image__pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='dmi/sw_management_service.proto',
+  package='dmi',
+  syntax='proto3',
+  serialized_options=_b('Z9github.com/opencord/device-management-interface/v3/go/dmi'),
+  serialized_pb=_b('\n\x1f\x64mi/sw_management_service.proto\x12\x03\x64mi\x1a\x0c\x64mi/hw.proto\x1a\x12\x64mi/sw_image.proto\"u\n\x1aSoftwareVersionInformation\x12*\n\x0f\x61\x63tive_versions\x18\x01 \x03(\x0b\x32\x11.dmi.ImageVersion\x12+\n\x10standby_versions\x18\x02 \x03(\x0b\x32\x11.dmi.ImageVersion\"a\n\x14\x44ownloadImageRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12)\n\nimage_info\x18\x02 \x01(\x0b\x32\x15.dmi.ImageInformation2\x9c\x02\n\x1fNativeSoftwareManagementService\x12\x46\n\x12GetSoftwareVersion\x12\x0f.dmi.HardwareID\x1a\x1f.dmi.SoftwareVersionInformation\x12>\n\rDownloadImage\x12\x19.dmi.DownloadImageRequest\x1a\x10.dmi.ImageStatus0\x01\x12\x34\n\rActivateImage\x12\x0f.dmi.HardwareID\x1a\x10.dmi.ImageStatus0\x01\x12;\n\x14RevertToStandbyImage\x12\x0f.dmi.HardwareID\x1a\x10.dmi.ImageStatus0\x01\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3')
+  ,
+  dependencies=[dmi_dot_hw__pb2.DESCRIPTOR,dmi_dot_sw__image__pb2.DESCRIPTOR,])
+
+
+
+
+_SOFTWAREVERSIONINFORMATION = _descriptor.Descriptor(
+  name='SoftwareVersionInformation',
+  full_name='dmi.SoftwareVersionInformation',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='active_versions', full_name='dmi.SoftwareVersionInformation.active_versions', index=0,
+      number=1, type=11, cpp_type=10, 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),
+    _descriptor.FieldDescriptor(
+      name='standby_versions', full_name='dmi.SoftwareVersionInformation.standby_versions', index=1,
+      number=2, type=11, cpp_type=10, 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),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=74,
+  serialized_end=191,
+)
+
+
+_DOWNLOADIMAGEREQUEST = _descriptor.Descriptor(
+  name='DownloadImageRequest',
+  full_name='dmi.DownloadImageRequest',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='device_uuid', full_name='dmi.DownloadImageRequest.device_uuid', index=0,
+      number=1, 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),
+    _descriptor.FieldDescriptor(
+      name='image_info', full_name='dmi.DownloadImageRequest.image_info', index=1,
+      number=2, 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),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=193,
+  serialized_end=290,
+)
+
+_SOFTWAREVERSIONINFORMATION.fields_by_name['active_versions'].message_type = dmi_dot_sw__image__pb2._IMAGEVERSION
+_SOFTWAREVERSIONINFORMATION.fields_by_name['standby_versions'].message_type = dmi_dot_sw__image__pb2._IMAGEVERSION
+_DOWNLOADIMAGEREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
+_DOWNLOADIMAGEREQUEST.fields_by_name['image_info'].message_type = dmi_dot_sw__image__pb2._IMAGEINFORMATION
+DESCRIPTOR.message_types_by_name['SoftwareVersionInformation'] = _SOFTWAREVERSIONINFORMATION
+DESCRIPTOR.message_types_by_name['DownloadImageRequest'] = _DOWNLOADIMAGEREQUEST
+_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+
+SoftwareVersionInformation = _reflection.GeneratedProtocolMessageType('SoftwareVersionInformation', (_message.Message,), dict(
+  DESCRIPTOR = _SOFTWAREVERSIONINFORMATION,
+  __module__ = 'dmi.sw_management_service_pb2'
+  # @@protoc_insertion_point(class_scope:dmi.SoftwareVersionInformation)
+  ))
+_sym_db.RegisterMessage(SoftwareVersionInformation)
+
+DownloadImageRequest = _reflection.GeneratedProtocolMessageType('DownloadImageRequest', (_message.Message,), dict(
+  DESCRIPTOR = _DOWNLOADIMAGEREQUEST,
+  __module__ = 'dmi.sw_management_service_pb2'
+  # @@protoc_insertion_point(class_scope:dmi.DownloadImageRequest)
+  ))
+_sym_db.RegisterMessage(DownloadImageRequest)
+
+
+DESCRIPTOR._options = None
+
+_NATIVESOFTWAREMANAGEMENTSERVICE = _descriptor.ServiceDescriptor(
+  name='NativeSoftwareManagementService',
+  full_name='dmi.NativeSoftwareManagementService',
+  file=DESCRIPTOR,
+  index=0,
+  serialized_options=None,
+  serialized_start=293,
+  serialized_end=577,
+  methods=[
+  _descriptor.MethodDescriptor(
+    name='GetSoftwareVersion',
+    full_name='dmi.NativeSoftwareManagementService.GetSoftwareVersion',
+    index=0,
+    containing_service=None,
+    input_type=dmi_dot_hw__pb2._HARDWAREID,
+    output_type=_SOFTWAREVERSIONINFORMATION,
+    serialized_options=None,
+  ),
+  _descriptor.MethodDescriptor(
+    name='DownloadImage',
+    full_name='dmi.NativeSoftwareManagementService.DownloadImage',
+    index=1,
+    containing_service=None,
+    input_type=_DOWNLOADIMAGEREQUEST,
+    output_type=dmi_dot_sw__image__pb2._IMAGESTATUS,
+    serialized_options=None,
+  ),
+  _descriptor.MethodDescriptor(
+    name='ActivateImage',
+    full_name='dmi.NativeSoftwareManagementService.ActivateImage',
+    index=2,
+    containing_service=None,
+    input_type=dmi_dot_hw__pb2._HARDWAREID,
+    output_type=dmi_dot_sw__image__pb2._IMAGESTATUS,
+    serialized_options=None,
+  ),
+  _descriptor.MethodDescriptor(
+    name='RevertToStandbyImage',
+    full_name='dmi.NativeSoftwareManagementService.RevertToStandbyImage',
+    index=3,
+    containing_service=None,
+    input_type=dmi_dot_hw__pb2._HARDWAREID,
+    output_type=dmi_dot_sw__image__pb2._IMAGESTATUS,
+    serialized_options=None,
+  ),
+])
+_sym_db.RegisterServiceDescriptor(_NATIVESOFTWAREMANAGEMENTSERVICE)
+
+DESCRIPTOR.services_by_name['NativeSoftwareManagementService'] = _NATIVESOFTWAREMANAGEMENTSERVICE
+
+# @@protoc_insertion_point(module_scope)
