diff --git a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py
index 4489152a7b0a67c834de6574f7524492951bd883..9f2662409406c2e68feecf51a9989de0e18130d1 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentDatabase/radb.py
@@ -466,6 +466,33 @@ class RADatabase:
 
         return list(self._executeQuery(query, qargs, fetch=_FETCH_ALL))
 
+    def updateResourceAvailability(self, resource_id, active=None, available_capacity=None, total_capacity=None, commit=True):
+        if active is not None:
+            query = '''UPDATE resource_monitoring.resource_availability
+            SET (available) = (%s)
+            WHERE resource_id = %s;'''
+
+            self._executeQuery(query, (active, resource_id))
+
+        if available_capacity is not None and total_capacity is not None:
+            query = '''UPDATE resource_monitoring.resource_capacity
+            SET (available, total) = (%s, %s)
+            WHERE resource_id = %s;'''
+            self._executeQuery(query, (available_capacity, total_capacity, resource_id))
+        elif available_capacity is not None:
+            query = '''UPDATE resource_monitoring.resource_capacity
+            SET (available) = (%s)
+            WHERE resource_id = %s;'''
+            self._executeQuery(query, (available_capacity, resource_id))
+        elif total_capacity is not None:
+            query = '''UPDATE resource_monitoring.resource_capacity
+            SET (total) = (%s)
+            WHERE resource_id = %s;'''
+            self._executeQuery(query, (total_capacity, resource_id))
+
+        if commit:
+            self.commit()
+
     def getResourceGroups(self):
         query = '''SELECT rg.*, rgt.name as type
         from virtual_instrument.resource_group rg
diff --git a/SAS/ResourceAssignment/ResourceAssignmentService/rpc.py b/SAS/ResourceAssignment/ResourceAssignmentService/rpc.py
index a01530f817549e1cc0cb6eec4dd2ed9f5a739468..095636febd5ffffa6a4b13ec5e817885b6864f9e 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentService/rpc.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentService/rpc.py
@@ -118,6 +118,13 @@ class RARPC(RPCWrapper):
     def getResources(self, resource_types=None, include_availability=False):
         return self.rpc('GetResources', resource_types=resource_types, include_availability=include_availability)
 
+    def updateResourceAvailability(self, resource_id, active=None, available_capacity=None, total_capacity=None):
+        return self.rpc('UpdateResourceAvailability',
+                        resource_id=resource_id,
+                        active=active,
+                        available_capacity=available_capacity,
+                        total_capacity=total_capacity)
+
     def getTask(self, id=None, mom_id=None, otdb_id=None):
         '''get a task for either the given (task)id, or for the given mom_id, or for the given otdb_id'''
         task = self.rpc('GetTask', id=id, mom_id=mom_id, otdb_id=otdb_id)
diff --git a/SAS/ResourceAssignment/ResourceAssignmentService/service.py b/SAS/ResourceAssignment/ResourceAssignmentService/service.py
index cc86971c6eee204d063bed07660771fa38b7611e..397d1e72a52878568ab791bc287eb56f50eb7886 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentService/service.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentService/service.py
@@ -54,6 +54,7 @@ class RADBHandler(MessageHandlerInterface):
             'GetResourceGroupMemberships': self._getResourceGroupMemberships,
             'GetResourceTypes': self._getResourceTypes,
             'GetResources': self._getResources,
+            'UpdateResourceAvailability': self._updateResourceAvailability,
             'GetTasks': self._getTasks,
             'GetTask': self._getTask,
             'InsertTask': self._insertTask,
@@ -194,6 +195,12 @@ class RADBHandler(MessageHandlerInterface):
         return self.radb.getResources(resource_types=kwargs.get('resource_types'),
                                       include_availability=kwargs.get('include_availability', False))
 
+    def _updateResourceAvailability(self, **kwargs):
+        return self.radb.updateResourceAvailability(resource_id=kwargs['resource_id'],
+                                                    active=kwargs.get('active'),
+                                                    available_capacity=kwargs.get('available_capacity'),
+                                                    total_capacity=kwargs.get('total_capacity'))
+
     def _getTasks(self):
         return self.radb.getTasks()