diff --git a/proto/monitoring.proto b/proto/monitoring.proto
index 6e6dedc95c8279c923c073b8ab5b7239b9a5eadd..8b83afa47b49c130d37dcbcc1024f079ebc2a2fe 100644
--- a/proto/monitoring.proto
+++ b/proto/monitoring.proto
@@ -19,22 +19,18 @@ import "context.proto";
 import "kpi_sample_types.proto";
 
 service MonitoringService {
-  rpc CreateKpi             (KpiDescriptor      ) returns (KpiId               ) {}
-  rpc EditKpiDescriptor     (EditedKpiDescriptor) returns (context.Empty       ) {}
+  rpc SetKpi                (KpiDescriptor      ) returns (KpiId               ) {}
   rpc DeleteKpi             (KpiId              ) returns (context.Empty       ) {}
   rpc GetKpiDescriptor      (KpiId              ) returns (KpiDescriptor       ) {}
   rpc GetKpiDescriptorList  (context.Empty      ) returns (KpiDescriptorList   ) {}
-  rpc CreateBundleKpi       (BundleKpiDescriptor) returns (KpiId               ) {}
   rpc IncludeKpi            (Kpi                ) returns (context.Empty       ) {}
   rpc MonitorKpi            (MonitorKpiRequest  ) returns (context.Empty       ) {}
   rpc QueryKpiData          (KpiQuery           ) returns (KpiList             ) {}
-  rpc SubscribeKpi          (SubsDescriptor     ) returns (stream KpiList      ) {}
+  rpc SetKpiSubscription    (SubsDescriptor     ) returns (stream KpiList      ) {}
   rpc GetSubsDescriptor     (SubscriptionID     ) returns (SubsDescriptor      ) {}
   rpc GetSubscriptions      (context.Empty      ) returns (SubsIDList          ) {}
   rpc DeleteSubscription    (SubscriptionID     ) returns (context.Empty       ) {}
-  rpc EditKpiSubscription   (SubsDescriptor     ) returns (context.Empty       ) {}
-  rpc CreateKpiAlarm        (AlarmDescriptor    ) returns (AlarmID             ) {}
-  rpc EditKpiAlarm          (AlarmDescriptor    ) returns (context.Empty       ) {}
+  rpc SetKpiAlarm           (AlarmDescriptor    ) returns (AlarmID             ) {}
   rpc GetAlarms             (context.Empty      ) returns (AlarmIDList         ) {}
   rpc GetAlarmDescriptor    (AlarmID            ) returns (AlarmDescriptor     ) {}
   rpc GetAlarmResponseStream(AlarmSubscription  ) returns (stream AlarmResponse) {}
@@ -44,25 +40,6 @@ service MonitoringService {
 }
 
 message KpiDescriptor {
-  string                         kpi_description = 1;
-  kpi_sample_types.KpiSampleType kpi_sample_type = 2;
-  context.DeviceId               device_id       = 3;
-  context.EndPointId             endpoint_id     = 4;
-  context.ServiceId              service_id      = 5;
-  context.SliceId                slice_id        = 6;
-}
-
-message BundleKpiDescriptor {
-  string                         kpi_description = 1;
-  repeated KpiId                 kpi_id_list     = 2;
-  kpi_sample_types.KpiSampleType kpi_sample_type = 3;
-  context.DeviceId               device_id       = 4;
-  context.EndPointId             endpoint_id     = 5;
-  context.ServiceId              service_id      = 6;
-  context.SliceId                slice_id        = 7;
-}
-
-message EditedKpiDescriptor {
   KpiId                          kpi_id          = 1;
   string                         kpi_description = 2;
   repeated KpiId                 kpi_id_list     = 3;
@@ -101,9 +78,11 @@ message Kpi {
 }
 
 message KpiValueRange {
-  KpiValue kpiMinValue = 1;
-  KpiValue kpiMaxValue = 2;
-  bool inRange         = 3;  // by default False
+  KpiValue  kpiMinValue     = 1;
+  KpiValue  kpiMaxValue     = 2;
+  bool      inRange         = 3;  // by default True
+  bool      includeMinValue = 4;  // False is outside the interval
+  bool      includeMaxValue = 5;  // False is outside the interval
 }
 
 message KpiValue {
@@ -118,6 +97,7 @@ message KpiValue {
   }
 }
 
+
 message KpiList {
   repeated Kpi kpi_list = 1;
 }
@@ -127,11 +107,12 @@ message KpiDescriptorList {
 }
 
 message SubsDescriptor{
-  KpiId             kpi_id              = 1;
-  float             sampling_duration_s = 2;
-  float             sampling_interval_s = 3;
-  context.Timestamp start_timestamp     = 4;  // used when you want something like "get the samples since X date/time"
-  context.Timestamp end_timestamp       = 5;  // used when you want something like "get the samples until X date/time"
+  SubscriptionID    subs_id             = 1;
+  KpiId             kpi_id              = 2;
+  float             sampling_duration_s = 3;
+  float             sampling_interval_s = 4;
+  context.Timestamp start_timestamp     = 5;  // used when you want something like "get the samples since X date/time"
+  context.Timestamp end_timestamp       = 6;  // used when you want something like "get the samples until X date/time"
   // Pending add field to reflect Available Device Protocols
 }
 
@@ -149,11 +130,12 @@ message SubsIDList {
 }
 
 message AlarmDescriptor {
-  string            alarm_description = 1;
-  string            name              = 2;
-  KpiId             kpi_id            = 3;
-  KpiValueRange     kpi_value_range   = 4;
-  context.Timestamp timestamp         = 5;
+  AlarmID                     alarm_id              = 1;
+  string                      alarm_description     = 2;
+  string                      name                  = 3;
+  repeated KpiId              kpi_id                = 4;
+  repeated KpiValueRange      kpi_value_range       = 5;
+  context.Timestamp           timestamp             = 6;
 }
 
 message AlarmID{
diff --git a/src/monitoring/client/MonitoringClient.py b/src/monitoring/client/MonitoringClient.py
index 3e7c8372165865acf84f990d58356d5b81b9ddc1..f65072f19013b820312aa56b7f0062f9c95f712c 100644
--- a/src/monitoring/client/MonitoringClient.py
+++ b/src/monitoring/client/MonitoringClient.py
@@ -20,8 +20,8 @@ from common.Settings import get_service_host, get_service_port_grpc
 from common.tools.client.RetryDecorator import retry, delay_exponential
 from common.tools.grpc.Tools import grpc_message_to_json_string
 from common.proto.context_pb2 import Empty
-from common.proto.monitoring_pb2 import Kpi, KpiDescriptor, KpiId, MonitorKpiRequest, EditedKpiDescriptor, \
-    KpiDescriptorList, BundleKpiDescriptor, KpiQuery, KpiList, SubsDescriptor, SubscriptionID, SubsIDList, \
+from common.proto.monitoring_pb2 import Kpi, KpiDescriptor, KpiId, MonitorKpiRequest, \
+    KpiDescriptorList, KpiQuery, KpiList, SubsDescriptor, SubscriptionID, SubsIDList, \
     AlarmDescriptor, AlarmID, AlarmIDList, AlarmResponse, AlarmSubscription
 from common.proto.monitoring_pb2_grpc import MonitoringServiceStub
 
@@ -51,17 +51,10 @@ class MonitoringClient:
         self.stub = None
 
     @RETRY_DECORATOR
-    def CreateKpi(self, request : KpiDescriptor) -> KpiId:
-        LOGGER.debug('CreateKpi: {:s}'.format(grpc_message_to_json_string(request)))
-        response = self.stub.CreateKpi(request)
-        LOGGER.debug('CreateKpi result: {:s}'.format(grpc_message_to_json_string(response)))
-        return response
-
-    @RETRY_DECORATOR
-    def EditKpiDescriptor(self, request : EditedKpiDescriptor) -> Empty:
-        LOGGER.debug('EditKpiDescriptor: {:s}'.format(grpc_message_to_json_string(request)))
-        response = self.stub.EditKpiDescriptor(request)
-        LOGGER.info('EditKpiDescriptor result: {:s}'.format(grpc_message_to_json_string(response)))
+    def SetKpi(self, request : KpiDescriptor) -> KpiId:
+        LOGGER.debug('SetKpi: {:s}'.format(grpc_message_to_json_string(request)))
+        response = self.stub.SetKpi(request)
+        LOGGER.debug('SetKpi result: {:s}'.format(grpc_message_to_json_string(response)))
         return response
 
     @RETRY_DECORATOR
@@ -85,13 +78,6 @@ class MonitoringClient:
         LOGGER.debug('GetKpiDescriptorList result: {:s}'.format(grpc_message_to_json_string(response)))
         return response
 
-    @RETRY_DECORATOR
-    def CreateBundleKpi(self, request : BundleKpiDescriptor) -> KpiId:
-        LOGGER.debug('CreateBundleKpi: {:s}'.format(grpc_message_to_json_string(request)))
-        response = self.stub.CreateBundleKpi(request)
-        LOGGER.debug('CreateBundleKpi result: {:s}'.format(grpc_message_to_json_string(response)))
-        return response
-
     @RETRY_DECORATOR
     def IncludeKpi(self, request : Kpi) -> Empty:
         LOGGER.debug('IncludeKpi: {:s}'.format(grpc_message_to_json_string(request)))
@@ -142,24 +128,10 @@ class MonitoringClient:
         return response
 
     @RETRY_DECORATOR
-    def EditKpiSubscription(self, request : SubsDescriptor) -> Empty:
-        LOGGER.debug('EditKpiSubscription: {:s}'.format(grpc_message_to_json_string(request)))
-        response = self.stub.GetSubscriptions(request)
-        LOGGER.debug('EditKpiSubscription result: {:s}'.format(grpc_message_to_json_string(response)))
-        return response
-
-    @RETRY_DECORATOR
-    def CreateKpiAlarm(self, request : AlarmDescriptor) -> AlarmID:
-        LOGGER.debug('CreateKpiAlarm: {:s}'.format(grpc_message_to_json_string(request)))
-        response = self.stub.CreateKpiAlarm(request)
-        LOGGER.debug('CreateKpiAlarm result: {:s}'.format(grpc_message_to_json_string(response)))
-        return response
-
-    @RETRY_DECORATOR
-    def EditKpiAlarm(self, request : AlarmDescriptor) -> Empty:
-        LOGGER.debug('EditKpiAlarm: {:s}'.format(grpc_message_to_json_string(request)))
-        response = self.stub.EditKpiAlarm(request)
-        LOGGER.debug('EditKpiAlarm result: {:s}'.format(grpc_message_to_json_string(response)))
+    def SetKpiAlarm(self, request : AlarmDescriptor) -> AlarmID:
+        LOGGER.debug('SetKpiAlarm: {:s}'.format(grpc_message_to_json_string(request)))
+        response = self.stub.SetKpiAlarm(request)
+        LOGGER.debug('SetKpiAlarm result: {:s}'.format(grpc_message_to_json_string(response)))
         return response
 
     @RETRY_DECORATOR
diff --git a/src/monitoring/service/MonitoringServiceServicerImpl.py b/src/monitoring/service/MonitoringServiceServicerImpl.py
index 051e8be4dfe9169dcbd0ec7fc0845eca55c613eb..d9f8b1e100bada795f8d6c91a796f458da8d212f 100644
--- a/src/monitoring/service/MonitoringServiceServicerImpl.py
+++ b/src/monitoring/service/MonitoringServiceServicerImpl.py
@@ -23,8 +23,8 @@ from common.proto.device_pb2 import MonitoringSettings
 from common.proto.kpi_sample_types_pb2 import KpiSampleType
 from common.proto.monitoring_pb2_grpc import MonitoringServiceServicer
 from common.proto.monitoring_pb2 import AlarmResponse, AlarmDescriptor, AlarmIDList, SubsIDList, KpiId, \
-    KpiDescriptor, KpiList, KpiQuery, SubsDescriptor, SubscriptionID, AlarmID, EditedKpiDescriptor, KpiDescriptorList, \
-    BundleKpiDescriptor, MonitorKpiRequest, Kpi, AlarmSubscription
+    KpiDescriptor, KpiList, KpiQuery, SubsDescriptor, SubscriptionID, AlarmID, KpiDescriptorList, \
+    MonitorKpiRequest, Kpi, AlarmSubscription
 from common.rpc_method_wrapper.ServiceExceptions import ServiceException
 from common.tools.timestamp.Converters import timestamp_float_to_string
 
@@ -57,15 +57,15 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer):
         self.sql_db = SqliteTools.SQLite('monitoring.db')
         self.deviceClient = DeviceClient(host=DEVICESERVICE_SERVICE_HOST, port=DEVICESERVICE_SERVICE_PORT_GRPC)  # instantiate the client
 
-        # Create metrics_db client
+        # Set metrics_db client
         self.metrics_db = MetricsDBTools.MetricsDB(METRICSDB_HOSTNAME,METRICSDB_ILP_PORT,METRICSDB_REST_PORT,METRICSDB_TABLE)
 
-    # CreateKpi (CreateKpiRequest) returns (KpiId) {}
-    def CreateKpi(
+    # SetKpi (SetKpiRequest) returns (KpiId) {}
+    def SetKpi(
         self, request : KpiDescriptor, grpc_context : grpc.ServicerContext
     ) -> KpiId:
         # CREATEKPI_COUNTER_STARTED.inc()
-        LOGGER.info('CreateKpi')
+        LOGGER.info('SetKpi')
         try:
             # Here the code to create a sqlite query to crete a KPI and return a KpiID
             kpi_id = KpiId()
@@ -84,26 +84,14 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer):
             # CREATEKPI_COUNTER_COMPLETED.inc()
             return kpi_id
         except ServiceException as e:
-            LOGGER.exception('CreateKpi exception')
+            LOGGER.exception('SetKpi exception')
             # CREATEKPI_COUNTER_FAILED.inc()
             grpc_context.abort(e.code, e.details)
         except Exception as e:  # pragma: no cover
-            LOGGER.exception('CreateKpi exception')
+            LOGGER.exception('SetKpi exception')
             # CREATEKPI_COUNTER_FAILED.inc()
             grpc_context.abort(grpc.StatusCode.INTERNAL, str(e))
 
-    def EditKpiDescriptor ( self, request : EditedKpiDescriptor, grpc_context : grpc.ServicerContext) -> Empty:
-
-        LOGGER.info('EditKpiDescriptor')
-        try:
-             # TBC
-            return Empty()
-        except ServiceException as e:
-            LOGGER.exception('EditKpiDescriptor exception')
-            grpc_context.abort(e.code, e.details)
-        except Exception as e:  # pragma: no cover
-            LOGGER.exception('EditKpiDescriptor exception')
-
     def DeleteKpi ( self, request : KpiId, grpc_context : grpc.ServicerContext) -> Empty:
 
         LOGGER.info('DeleteKpi')
@@ -128,25 +116,12 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer):
         except Exception as e:  # pragma: no cover
             LOGGER.exception('GetKpiDescriptorList exception')
 
-    def CreateBundleKpi ( self, request : BundleKpiDescriptor, grpc_context : grpc.ServicerContext) -> KpiId:
-
-        LOGGER.info('CreateBundleKpi')
-        try:
-             # TBC
-            return KpiId()
-        except ServiceException as e:
-            LOGGER.exception('CreateBundleKpi exception')
-            grpc_context.abort(e.code, e.details)
-        except Exception as e:  # pragma: no cover
-            LOGGER.exception('CreateBundleKpi exception')
-
-
     # rpc MonitorKpi (MonitorKpiRequest) returns (context.Empty) {}
     def MonitorKpi ( self, request : MonitorKpiRequest, grpc_context : grpc.ServicerContext) -> Empty:
 
         LOGGER.info('MonitorKpi')
         try:
-            # Creates the request to send to the device service
+            # Sets the request to send to the device service
             monitor_device_request = MonitoringSettings()
 
             kpiDescriptor = self.GetKpiDescriptor(request.kpi_id, grpc_context)
@@ -300,41 +275,18 @@ class MonitoringServiceServicerImpl(MonitoringServiceServicer):
         except Exception as e:  # pragma: no cover
             LOGGER.exception('DeleteSubscription exception')
 
-    def EditKpiSubscription ( self, request : SubsDescriptor, grpc_context : grpc.ServicerContext) -> Empty:
+    def SetKpiAlarm ( self, request : AlarmDescriptor, grpc_context : grpc.ServicerContext) -> AlarmResponse:
 
-        LOGGER.info('EditKpiSubscription')
-        try:
-             # TBC
-            return Empty()
-        except ServiceException as e:
-            LOGGER.exception('EditKpiSubscription exception')
-            grpc_context.abort(e.code, e.details)
-        except Exception as e:  # pragma: no cover
-            LOGGER.exception('EditKpiSubscription exception')
-
-    def CreateKpiAlarm ( self, request : AlarmDescriptor, grpc_context : grpc.ServicerContext) -> AlarmResponse:
-
-        LOGGER.info('CreateKpiAlarm')
+        LOGGER.info('SetKpiAlarm')
         try:
              # TBC
             return AlarmResponse()
         except ServiceException as e:
-            LOGGER.exception('CreateKpiAlarm exception')
+            LOGGER.exception('SetKpiAlarm exception')
             grpc_context.abort(e.code, e.details)
         except Exception as e:  # pragma: no cover
-            LOGGER.exception('CreateKpiAlarm exception')
+            LOGGER.exception('SetKpiAlarm exception')
 
-    def EditKpiAlarm ( self, request : AlarmDescriptor, grpc_context : grpc.ServicerContext) -> Empty:
-
-        LOGGER.info('EditKpiAlarm')
-        try:
-             # TBC
-            return Empty()
-        except ServiceException as e:
-            LOGGER.exception('EditKpiAlarm exception')
-            grpc_context.abort(e.code, e.details)
-        except Exception as e:  # pragma: no cover
-            LOGGER.exception('EditKpiAlarm exception')
 
     def GetAlarms ( self, request : Empty, grpc_context : grpc.ServicerContext) -> AlarmIDList: