def RemoveManagedObject(self, inMo=None, classId=None, params=None, dumpXml=None):
		"""
		Removes Managed Object in UCS.
		
		- inMo, if provided, it acts as the target object for the present operation. It should be None unless a user wants to provide an 
		  inMo. It can be a single MO or a list containing multiple managed objects.
		- classId of the managed object/s to be removed.
		- params contains semicolon (;) separated list of key/value pairs(key=value), that are used as filters for selecting specific managed 
		  objects. The key should be a valid property of the managed object to be modified.
		"""
		from UcsBase import UcsUtils, ManagedObject, WriteUcsWarning, WriteObject, UcsException, UcsValidationException
		from Ucs import ClassFactory, Pair, ConfigMap

		if params != None:
			keys = params.keys()
		else:
			keys = []

		configMap = ConfigMap()
		if ((inMo != None) and (isinstance(inMo, list)) and (len(inMo) > 0)):
			for mo in inMo:
				pair = Pair()
				pair.setattr("Key", mo.getattr("Dn"))
				obj = ManagedObject(mo.classId)
				obj.setattr("Status", Status().DELETED)
				pair.AddChild(obj)

				configMap.AddChild(pair)

		elif (classId != None):
			pair = Pair()
			metaClassId = UcsUtils.FindClassIdInMoMetaIgnoreCase(classId)
			if metaClassId != None:
				classId = metaClassId
			for prop in keys:
				if (prop.lower() == "dn"):
					pair.setattr("Key", params[prop])
			if (pair.getattr("Key") == None):
				raise UcsValidationException('[Error]: RemoveManagedObject [Description]: Dn missing in propertyMap')
			# raise Exception('[Error]: RemoveManagedObject [Description]: Dn missing in propertyMap')

			obj = ManagedObject(classId)
			obj.setattr("Status", Status().DELETED)
			pair.AddChild(obj)
			configMap.AddChild(pair)

		if configMap.GetChildCount() == 0:
			raise UcsValidationException(
				'[Warning]: RemoveManagedObject [Description]: (inMO) or (ClassId and Dn) missing')
		# raise Exception('[Warning]: RemoveManagedObject [Description]: (inMO) or (ClassId and Dn) missing')

		ccm = self.ConfigConfMos(configMap, False, dumpXml)
		if ccm.errorCode == 0:
			moList = []
			for child in ccm.OutConfigs.GetChild():
				if (isinstance(child, Pair) == True):
					for mo in child.GetChild():
						moList.append(mo)
				elif (isinstance(child, ManagedObject) == True):
					moList.append(child)
			# WriteObject(moList)
			return moList
		else:
			raise UcsException(ccm.errorCode, ccm.errorDescr)