diff --git a/deploy_in_kubernetes.sh b/deploy_in_kubernetes.sh
index a1b4551dd939e7b1a727307cc177d379e6938182..b6e0c8c1c6590317e1de669e652707a7b4682194 100755
--- a/deploy_in_kubernetes.sh
+++ b/deploy_in_kubernetes.sh
@@ -110,10 +110,12 @@ for COMPONENT in $COMPONENTS; do
     fi
 
     echo "  Deploying '$COMPONENT' component to Kubernetes..."
-    DEPLOY_LOG="$TMP_LOGS_FOLDER/push_${COMPONENT}.log"
+    DEPLOY_LOG="$TMP_LOGS_FOLDER/deploy_${COMPONENT}.log"
     kubectl --namespace $K8S_NAMESPACE apply -f "$MANIFEST" > "$DEPLOY_LOG"
-    kubectl --namespace $K8S_NAMESPACE scale deployment --replicas=0 ${COMPONENT}service >> "$DEPLOY_LOG"
-    kubectl --namespace $K8S_NAMESPACE scale deployment --replicas=1 ${COMPONENT}service >> "$DEPLOY_LOG"
+
+    COMPONENT_OBJNAME=$(echo "${COMPONENT}" | sed "s/\_/-/")
+    kubectl --namespace $K8S_NAMESPACE scale deployment --replicas=0 ${COMPONENT_OBJNAME}service >> "$DEPLOY_LOG"
+    kubectl --namespace $K8S_NAMESPACE scale deployment --replicas=1 ${COMPONENT_OBJNAME}service >> "$DEPLOY_LOG"
     printf "\n"
 done
 
diff --git a/src/compute/.gitlab-ci.yml b/src/compute/.gitlab-ci.yml
index 9cbc2b03f9b3d553fea75bde3fdc9fc03d95d229..52b36e8196822c35503f3e644a0d57691fc5f5f0 100644
--- a/src/compute/.gitlab-ci.yml
+++ b/src/compute/.gitlab-ci.yml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Build, tag and push the Docker image to the GitLab registry
+# Build, tag, and push the Docker image to the GitLab Docker registry
 build compute:
   variables:
     IMAGE_NAME: 'compute' # name of the microservice
diff --git a/src/context/.gitlab-ci.yml b/src/context/.gitlab-ci.yml
index 8f112e690cd51b4bec1c8a9652ddfc3e489fddd1..0da2b582edf879f793341887adef9cef5ad4fff2 100644
--- a/src/context/.gitlab-ci.yml
+++ b/src/context/.gitlab-ci.yml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Build, tag and push the Docker image to the GitLab registry
+# Build, tag, and push the Docker image to the GitLab Docker registry
 build context:
   variables:
     IMAGE_NAME: 'context' # name of the microservice
diff --git a/src/device/.gitlab-ci.yml b/src/device/.gitlab-ci.yml
index cb6750d6b215c84a139a6630ae19762e7813fc0c..3da19e7a38c9659fb8c86afd7beaefc7e08a6d7c 100644
--- a/src/device/.gitlab-ci.yml
+++ b/src/device/.gitlab-ci.yml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Build, tag and push the Docker image to the GitLab registry
+# Build, tag, and push the Docker image to the GitLab Docker registry
 build device:
   variables:
     IMAGE_NAME: 'device' # name of the microservice
diff --git a/src/interdomain/.gitlab-ci.yml b/src/interdomain/.gitlab-ci.yml
index 6aa2849f75ff225fc78d8693003bb8348b89adbf..23bad6cf3b604b6134325b72316d036a9e53b6fc 100644
--- a/src/interdomain/.gitlab-ci.yml
+++ b/src/interdomain/.gitlab-ci.yml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Build, tag and push the Docker image to the GitLab registry
+# Build, tag, and push the Docker image to the GitLab Docker registry
 build interdomain:
   variables:
     IMAGE_NAME: 'interdomain' # name of the microservice
diff --git a/src/l3_attackmitigator/.gitlab-ci.yml b/src/l3_attackmitigator/.gitlab-ci.yml
index 28d5ad4cf109cd438da2625a08689b327688ea37..bcad35c74b3ca2f427b54831f313db855657c821 100644
--- a/src/l3_attackmitigator/.gitlab-ci.yml
+++ b/src/l3_attackmitigator/.gitlab-ci.yml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Build, tag, and push the Docker images to the GitLab Docker registry
+# Build, tag, and push the Docker image to the GitLab Docker registry
 build l3_attackmitigator:
   variables:
     IMAGE_NAME: 'l3_attackmitigator' # name of the microservice
@@ -21,22 +21,24 @@ build l3_attackmitigator:
   before_script:
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
   script:
-    - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile ./src/
+    - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile .
     - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
     - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
   after_script:
     - docker images --filter="dangling=true" --quiet | xargs -r docker rmi
   rules:
     - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
-    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' 
+    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"'
     - changes:
+      - src/common/**/*.py
+      - proto/*.proto
       - src/$IMAGE_NAME/**/*.{py,in,yml}
       - src/$IMAGE_NAME/Dockerfile
       - src/$IMAGE_NAME/tests/*.py
       - manifests/${IMAGE_NAME}service.yaml
       - .gitlab-ci.yml
 
-# Pull, execute, and run unitary tests for the Docker image from the GitLab registry
+# Apply unit test to the component
 unit test l3_attackmitigator:
   variables:
     IMAGE_NAME: 'l3_attackmitigator' # name of the microservice
@@ -46,7 +48,7 @@ unit test l3_attackmitigator:
     - build l3_attackmitigator
   before_script:
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
-    - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi  
+    - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi
     - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi
   script:
     - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
@@ -62,8 +64,10 @@ unit test l3_attackmitigator:
     - docker network rm teraflowbridge
   rules:
     - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
-    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' 
+    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"'
     - changes:
+      - src/common/**/*.py
+      - proto/*.proto
       - src/$IMAGE_NAME/**/*.{py,in,yml}
       - src/$IMAGE_NAME/Dockerfile
       - src/$IMAGE_NAME/tests/*.py
diff --git a/src/l3_attackmitigator/Dockerfile b/src/l3_attackmitigator/Dockerfile
index 2ed76a70b6ca0e2a140cb926b3343aab7fed37a5..2b814f0eed8fbfba96a759212ae5ff0e2172c14f 100644
--- a/src/l3_attackmitigator/Dockerfile
+++ b/src/l3_attackmitigator/Dockerfile
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM python:3-slim
+FROM python:3.9-slim
 
 # Install dependencies
 RUN apt-get --yes --quiet --quiet update && \
@@ -28,22 +28,41 @@ RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \
     chmod +x /bin/grpc_health_probe
 
 # Get generic Python packages
-RUN python3 -m pip install --upgrade pip setuptools wheel pip-tools
+RUN python3 -m pip install --upgrade pip
+RUN python3 -m pip install --upgrade setuptools wheel
+RUN python3 -m pip install --upgrade pip-tools
 
-# Set working directory
+# Get common Python packages
+# Note: this step enables sharing the previous Docker build steps among all the Python components
 WORKDIR /var/teraflow
+COPY common_requirements.in common_requirements.in
+RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in
+RUN python3 -m pip install -r common_requirements.txt
 
-# Create module sub-folders
-RUN mkdir -p /var/teraflow/l3_attackmitigator
+# Add common files into working directory
+WORKDIR /var/teraflow/common
+COPY src/common/. ./
+RUN rm -rf proto
+
+# Create proto sub-folder, copy .proto files, and generate Python code
+RUN mkdir -p /var/teraflow/common/proto
+WORKDIR /var/teraflow/common/proto
+RUN touch __init__.py
+COPY proto/*.proto ./
+RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto
+RUN rm *.proto
+RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \;
 
-# Get Python packages per module
-COPY l3_attackmitigator/requirements.in l3_attackmitigator/requirements.in
-RUN pip-compile --output-file=l3_attackmitigator/requirements.txt l3_attackmitigator/requirements.in
-RUN python3 -m pip install -r l3_attackmitigator/requirements.in
+# Create component sub-folders, get specific Python packages
+RUN mkdir -p /var/teraflow/l3_attackmitigator
+WORKDIR /var/teraflow/l3_attackmitigator
+COPY src/l3_attackmitigator/requirements.in requirements.in
+RUN pip-compile --quiet --output-file=requirements.txt requirements.in
+RUN python3 -m pip install -r requirements.txt
 
-# Add files into working directory
-COPY common/. common
-COPY l3_attackmitigator/. l3_attackmitigator
+# Add component files into working directory
+WORKDIR /var/teraflow
+COPY src/l3_attackmitigator/. l3_attackmitigator
 
-# Start service service
+# Start the service
 ENTRYPOINT ["python", "-m", "l3_attackmitigator.service"]
diff --git a/src/l3_attackmitigator/client/l3_attackmitigatorClient.py b/src/l3_attackmitigator/client/l3_attackmitigatorClient.py
index ba061c15d7f27383aefec63a92b15557d803fb80..77e09a2f718fb7d0748666842117f60652bebdea 100644
--- a/src/l3_attackmitigator/client/l3_attackmitigatorClient.py
+++ b/src/l3_attackmitigator/client/l3_attackmitigatorClient.py
@@ -14,10 +14,10 @@
 
 import grpc, logging
 from common.tools.client.RetryDecorator import retry, delay_exponential
-from l3_attackmitigator.proto.l3_attackmitigator_pb2_grpc import (
+from common.proto.l3_attackmitigator_pb2_grpc import (
     L3AttackmitigatorStub,
 )
-from l3_attackmitigator.proto.l3_attackmitigator_pb2 import (
+from common.proto.l3_attackmitigator_pb2 import (
     Output,
     EmptyMitigator
 )
diff --git a/src/l3_attackmitigator/genproto.sh b/src/l3_attackmitigator/genproto.sh
deleted file mode 100755
index c69f7d0250f287259a68b6663bd7b46b8137f6dd..0000000000000000000000000000000000000000
--- a/src/l3_attackmitigator/genproto.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash -eu
-#
-# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Make folder containing the script the root folder for its execution
-cd $(dirname $0)
-
-rm -rf proto/*.py
-rm -rf proto/__pycache__
-tee proto/__init__.py << EOF > /dev/null
-# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-EOF
-
-python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto context.proto
-python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto kpi_sample_types.proto
-python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto l3_attackmitigator.proto
-
-rm proto/context_pb2_grpc.py
-rm proto/kpi_sample_types_pb2_grpc.py
-
-sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/context_pb2.py
-sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/kpi_sample_types_pb2.py
-sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_attackmitigator_pb2.py
-sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_attackmitigator_pb2_grpc.py
diff --git a/src/l3_attackmitigator/proto/__init__.py b/src/l3_attackmitigator/proto/__init__.py
deleted file mode 100644
index 70a33251242c51f49140e596b8208a19dd5245f7..0000000000000000000000000000000000000000
--- a/src/l3_attackmitigator/proto/__init__.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
diff --git a/src/l3_attackmitigator/proto/context_pb2.py b/src/l3_attackmitigator/proto/context_pb2.py
deleted file mode 100644
index 50d501d3ac053ad644554331af26e3c40cd426a1..0000000000000000000000000000000000000000
--- a/src/l3_attackmitigator/proto/context_pb2.py
+++ /dev/null
@@ -1,3071 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: context.proto
-"""Generated protocol buffer code."""
-from google.protobuf.internal import enum_type_wrapper
-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 . import kpi_sample_types_pb2 as kpi__sample__types__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='context.proto',
-  package='context',
-  syntax='proto3',
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\rcontext.proto\x12\x07\x63ontext\x1a\x16kpi_sample_types.proto\"\x07\n\x05\x45mpty\"\x14\n\x04Uuid\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"F\n\x05\x45vent\x12\x11\n\ttimestamp\x18\x01 \x01(\x01\x12*\n\nevent_type\x18\x02 \x01(\x0e\x32\x16.context.EventTypeEnum\"0\n\tContextId\x12#\n\x0c\x63ontext_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\xb6\x01\n\x07\x43ontext\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12)\n\x0ctopology_ids\x18\x02 \x03(\x0b\x32\x13.context.TopologyId\x12\'\n\x0bservice_ids\x18\x03 \x03(\x0b\x32\x12.context.ServiceId\x12/\n\ncontroller\x18\x04 \x01(\x0b\x32\x1b.context.TeraFlowController\"8\n\rContextIdList\x12\'\n\x0b\x63ontext_ids\x18\x01 \x03(\x0b\x32\x12.context.ContextId\"1\n\x0b\x43ontextList\x12\"\n\x08\x63ontexts\x18\x01 \x03(\x0b\x32\x10.context.Context\"U\n\x0c\x43ontextEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12&\n\ncontext_id\x18\x02 \x01(\x0b\x32\x12.context.ContextId\"Z\n\nTopologyId\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12$\n\rtopology_uuid\x18\x02 \x01(\x0b\x32\r.context.Uuid\"~\n\x08Topology\x12(\n\x0btopology_id\x18\x01 \x01(\x0b\x32\x13.context.TopologyId\x12%\n\ndevice_ids\x18\x02 \x03(\x0b\x32\x11.context.DeviceId\x12!\n\x08link_ids\x18\x03 \x03(\x0b\x32\x0f.context.LinkId\";\n\x0eTopologyIdList\x12)\n\x0ctopology_ids\x18\x01 \x03(\x0b\x32\x13.context.TopologyId\"5\n\x0cTopologyList\x12%\n\ntopologies\x18\x01 \x03(\x0b\x32\x11.context.Topology\"X\n\rTopologyEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12(\n\x0btopology_id\x18\x02 \x01(\x0b\x32\x13.context.TopologyId\".\n\x08\x44\x65viceId\x12\"\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\x9a\x02\n\x06\x44\x65vice\x12$\n\tdevice_id\x18\x01 \x01(\x0b\x32\x11.context.DeviceId\x12\x13\n\x0b\x64\x65vice_type\x18\x02 \x01(\t\x12,\n\rdevice_config\x18\x03 \x01(\x0b\x32\x15.context.DeviceConfig\x12G\n\x19\x64\x65vice_operational_status\x18\x04 \x01(\x0e\x32$.context.DeviceOperationalStatusEnum\x12\x31\n\x0e\x64\x65vice_drivers\x18\x05 \x03(\x0e\x32\x19.context.DeviceDriverEnum\x12+\n\x10\x64\x65vice_endpoints\x18\x06 \x03(\x0b\x32\x11.context.EndPoint\"9\n\x0c\x44\x65viceConfig\x12)\n\x0c\x63onfig_rules\x18\x01 \x03(\x0b\x32\x13.context.ConfigRule\"5\n\x0c\x44\x65viceIdList\x12%\n\ndevice_ids\x18\x01 \x03(\x0b\x32\x11.context.DeviceId\".\n\nDeviceList\x12 \n\x07\x64\x65vices\x18\x01 \x03(\x0b\x32\x0f.context.Device\"R\n\x0b\x44\x65viceEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\"*\n\x06LinkId\x12 \n\tlink_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"X\n\x04Link\x12 \n\x07link_id\x18\x01 \x01(\x0b\x32\x0f.context.LinkId\x12.\n\x11link_endpoint_ids\x18\x02 \x03(\x0b\x32\x13.context.EndPointId\"/\n\nLinkIdList\x12!\n\x08link_ids\x18\x01 \x03(\x0b\x32\x0f.context.LinkId\"(\n\x08LinkList\x12\x1c\n\x05links\x18\x01 \x03(\x0b\x32\r.context.Link\"L\n\tLinkEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12 \n\x07link_id\x18\x02 \x01(\x0b\x32\x0f.context.LinkId\"X\n\tServiceId\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12#\n\x0cservice_uuid\x18\x02 \x01(\x0b\x32\r.context.Uuid\"\xa6\x02\n\x07Service\x12&\n\nservice_id\x18\x01 \x01(\x0b\x32\x12.context.ServiceId\x12.\n\x0cservice_type\x18\x02 \x01(\x0e\x32\x18.context.ServiceTypeEnum\x12\x31\n\x14service_endpoint_ids\x18\x03 \x03(\x0b\x32\x13.context.EndPointId\x12\x30\n\x13service_constraints\x18\x04 \x03(\x0b\x32\x13.context.Constraint\x12.\n\x0eservice_status\x18\x05 \x01(\x0b\x32\x16.context.ServiceStatus\x12.\n\x0eservice_config\x18\x06 \x01(\x0b\x32\x16.context.ServiceConfig\"C\n\rServiceStatus\x12\x32\n\x0eservice_status\x18\x01 \x01(\x0e\x32\x1a.context.ServiceStatusEnum\":\n\rServiceConfig\x12)\n\x0c\x63onfig_rules\x18\x01 \x03(\x0b\x32\x13.context.ConfigRule\"8\n\rServiceIdList\x12\'\n\x0bservice_ids\x18\x01 \x03(\x0b\x32\x12.context.ServiceId\"1\n\x0bServiceList\x12\"\n\x08services\x18\x01 \x03(\x0b\x32\x10.context.Service\"U\n\x0cServiceEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12&\n\nservice_id\x18\x02 \x01(\x0b\x32\x12.context.ServiceId\"T\n\x07SliceId\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12!\n\nslice_uuid\x18\x02 \x01(\x0b\x32\r.context.Uuid\"\x95\x02\n\x05Slice\x12\"\n\x08slice_id\x18\x01 \x01(\x0b\x32\x10.context.SliceId\x12/\n\x12slice_endpoint_ids\x18\x02 \x03(\x0b\x32\x13.context.EndPointId\x12.\n\x11slice_constraints\x18\x03 \x03(\x0b\x32\x13.context.Constraint\x12-\n\x11slice_service_ids\x18\x04 \x03(\x0b\x32\x12.context.ServiceId\x12,\n\x12slice_subslice_ids\x18\x05 \x03(\x0b\x32\x10.context.SliceId\x12*\n\x0cslice_status\x18\x06 \x01(\x0b\x32\x14.context.SliceStatus\"=\n\x0bSliceStatus\x12.\n\x0cslice_status\x18\x01 \x01(\x0e\x32\x18.context.SliceStatusEnum\"2\n\x0bSliceIdList\x12#\n\tslice_ids\x18\x01 \x03(\x0b\x32\x10.context.SliceId\"+\n\tSliceList\x12\x1e\n\x06slices\x18\x01 \x03(\x0b\x32\x0e.context.Slice\"O\n\nSliceEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12\"\n\x08slice_id\x18\x02 \x01(\x0b\x32\x10.context.SliceId\"6\n\x0c\x43onnectionId\x12&\n\x0f\x63onnection_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\xc4\x01\n\nConnection\x12,\n\rconnection_id\x18\x01 \x01(\x0b\x32\x15.context.ConnectionId\x12&\n\nservice_id\x18\x02 \x01(\x0b\x32\x12.context.ServiceId\x12\x33\n\x16path_hops_endpoint_ids\x18\x03 \x03(\x0b\x32\x13.context.EndPointId\x12+\n\x0fsub_service_ids\x18\x04 \x03(\x0b\x32\x12.context.ServiceId\"A\n\x10\x43onnectionIdList\x12-\n\x0e\x63onnection_ids\x18\x01 \x03(\x0b\x32\x15.context.ConnectionId\":\n\x0e\x43onnectionList\x12(\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32\x13.context.Connection\"^\n\x0f\x43onnectionEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12,\n\rconnection_id\x18\x02 \x01(\x0b\x32\x15.context.ConnectionId\"\x82\x01\n\nEndPointId\x12(\n\x0btopology_id\x18\x01 \x01(\x0b\x32\x13.context.TopologyId\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\x12$\n\rendpoint_uuid\x18\x03 \x01(\x0b\x32\r.context.Uuid\"\x86\x01\n\x08\x45ndPoint\x12(\n\x0b\x65ndpoint_id\x18\x01 \x01(\x0b\x32\x13.context.EndPointId\x12\x15\n\rendpoint_type\x18\x02 \x01(\t\x12\x39\n\x10kpi_sample_types\x18\x03 \x03(\x0e\x32\x1f.kpi_sample_types.KpiSampleType\"e\n\nConfigRule\x12)\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\x19.context.ConfigActionEnum\x12\x14\n\x0cresource_key\x18\x02 \x01(\t\x12\x16\n\x0eresource_value\x18\x03 \x01(\t\"?\n\nConstraint\x12\x17\n\x0f\x63onstraint_type\x18\x01 \x01(\t\x12\x18\n\x10\x63onstraint_value\x18\x02 \x01(\t\"^\n\x12TeraFlowController\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12\x12\n\nip_address\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\"U\n\x14\x41uthenticationResult\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12\x15\n\rauthenticated\x18\x02 \x01(\x08*j\n\rEventTypeEnum\x12\x17\n\x13\x45VENTTYPE_UNDEFINED\x10\x00\x12\x14\n\x10\x45VENTTYPE_CREATE\x10\x01\x12\x14\n\x10\x45VENTTYPE_UPDATE\x10\x02\x12\x14\n\x10\x45VENTTYPE_REMOVE\x10\x03*\xc5\x01\n\x10\x44\x65viceDriverEnum\x12\x1a\n\x16\x44\x45VICEDRIVER_UNDEFINED\x10\x00\x12\x1b\n\x17\x44\x45VICEDRIVER_OPENCONFIG\x10\x01\x12\x1e\n\x1a\x44\x45VICEDRIVER_TRANSPORT_API\x10\x02\x12\x13\n\x0f\x44\x45VICEDRIVER_P4\x10\x03\x12&\n\"DEVICEDRIVER_IETF_NETWORK_TOPOLOGY\x10\x04\x12\x1b\n\x17\x44\x45VICEDRIVER_ONF_TR_352\x10\x05*\x8f\x01\n\x1b\x44\x65viceOperationalStatusEnum\x12%\n!DEVICEOPERATIONALSTATUS_UNDEFINED\x10\x00\x12$\n DEVICEOPERATIONALSTATUS_DISABLED\x10\x01\x12#\n\x1f\x44\x45VICEOPERATIONALSTATUS_ENABLED\x10\x02*\x81\x01\n\x0fServiceTypeEnum\x12\x17\n\x13SERVICETYPE_UNKNOWN\x10\x00\x12\x14\n\x10SERVICETYPE_L3NM\x10\x01\x12\x14\n\x10SERVICETYPE_L2NM\x10\x02\x12)\n%SERVICETYPE_TAPI_CONNECTIVITY_SERVICE\x10\x03*\x88\x01\n\x11ServiceStatusEnum\x12\x1b\n\x17SERVICESTATUS_UNDEFINED\x10\x00\x12\x19\n\x15SERVICESTATUS_PLANNED\x10\x01\x12\x18\n\x14SERVICESTATUS_ACTIVE\x10\x02\x12!\n\x1dSERVICESTATUS_PENDING_REMOVAL\x10\x03*\x8b\x01\n\x0fSliceStatusEnum\x12\x19\n\x15SLICESTATUS_UNDEFINED\x10\x00\x12\x17\n\x13SLICESTATUS_PLANNED\x10\x01\x12\x14\n\x10SLICESTATUS_INIT\x10\x02\x12\x16\n\x12SLICESTATUS_ACTIVE\x10\x03\x12\x16\n\x12SLICESTATUS_DEINIT\x10\x04*]\n\x10\x43onfigActionEnum\x12\x1a\n\x16\x43ONFIGACTION_UNDEFINED\x10\x00\x12\x14\n\x10\x43ONFIGACTION_SET\x10\x01\x12\x17\n\x13\x43ONFIGACTION_DELETE\x10\x02\x32\xef\x12\n\x0e\x43ontextService\x12:\n\x0eListContextIds\x12\x0e.context.Empty\x1a\x16.context.ContextIdList\"\x00\x12\x36\n\x0cListContexts\x12\x0e.context.Empty\x1a\x14.context.ContextList\"\x00\x12\x34\n\nGetContext\x12\x12.context.ContextId\x1a\x10.context.Context\"\x00\x12\x34\n\nSetContext\x12\x10.context.Context\x1a\x12.context.ContextId\"\x00\x12\x35\n\rRemoveContext\x12\x12.context.ContextId\x1a\x0e.context.Empty\"\x00\x12=\n\x10GetContextEvents\x12\x0e.context.Empty\x1a\x15.context.ContextEvent\"\x00\x30\x01\x12@\n\x0fListTopologyIds\x12\x12.context.ContextId\x1a\x17.context.TopologyIdList\"\x00\x12=\n\x0eListTopologies\x12\x12.context.ContextId\x1a\x15.context.TopologyList\"\x00\x12\x37\n\x0bGetTopology\x12\x13.context.TopologyId\x1a\x11.context.Topology\"\x00\x12\x37\n\x0bSetTopology\x12\x11.context.Topology\x1a\x13.context.TopologyId\"\x00\x12\x37\n\x0eRemoveTopology\x12\x13.context.TopologyId\x1a\x0e.context.Empty\"\x00\x12?\n\x11GetTopologyEvents\x12\x0e.context.Empty\x1a\x16.context.TopologyEvent\"\x00\x30\x01\x12\x38\n\rListDeviceIds\x12\x0e.context.Empty\x1a\x15.context.DeviceIdList\"\x00\x12\x34\n\x0bListDevices\x12\x0e.context.Empty\x1a\x13.context.DeviceList\"\x00\x12\x31\n\tGetDevice\x12\x11.context.DeviceId\x1a\x0f.context.Device\"\x00\x12\x31\n\tSetDevice\x12\x0f.context.Device\x1a\x11.context.DeviceId\"\x00\x12\x33\n\x0cRemoveDevice\x12\x11.context.DeviceId\x1a\x0e.context.Empty\"\x00\x12;\n\x0fGetDeviceEvents\x12\x0e.context.Empty\x1a\x14.context.DeviceEvent\"\x00\x30\x01\x12\x34\n\x0bListLinkIds\x12\x0e.context.Empty\x1a\x13.context.LinkIdList\"\x00\x12\x30\n\tListLinks\x12\x0e.context.Empty\x1a\x11.context.LinkList\"\x00\x12+\n\x07GetLink\x12\x0f.context.LinkId\x1a\r.context.Link\"\x00\x12+\n\x07SetLink\x12\r.context.Link\x1a\x0f.context.LinkId\"\x00\x12/\n\nRemoveLink\x12\x0f.context.LinkId\x1a\x0e.context.Empty\"\x00\x12\x37\n\rGetLinkEvents\x12\x0e.context.Empty\x1a\x12.context.LinkEvent\"\x00\x30\x01\x12>\n\x0eListServiceIds\x12\x12.context.ContextId\x1a\x16.context.ServiceIdList\"\x00\x12:\n\x0cListServices\x12\x12.context.ContextId\x1a\x14.context.ServiceList\"\x00\x12\x34\n\nGetService\x12\x12.context.ServiceId\x1a\x10.context.Service\"\x00\x12\x34\n\nSetService\x12\x10.context.Service\x1a\x12.context.ServiceId\"\x00\x12\x35\n\rRemoveService\x12\x12.context.ServiceId\x1a\x0e.context.Empty\"\x00\x12=\n\x10GetServiceEvents\x12\x0e.context.Empty\x1a\x15.context.ServiceEvent\"\x00\x30\x01\x12:\n\x0cListSliceIds\x12\x12.context.ContextId\x1a\x14.context.SliceIdList\"\x00\x12\x36\n\nListSlices\x12\x12.context.ContextId\x1a\x12.context.SliceList\"\x00\x12.\n\x08GetSlice\x12\x10.context.SliceId\x1a\x0e.context.Slice\"\x00\x12.\n\x08SetSlice\x12\x0e.context.Slice\x1a\x10.context.SliceId\"\x00\x12\x31\n\x0bRemoveSlice\x12\x10.context.SliceId\x1a\x0e.context.Empty\"\x00\x12\x39\n\x0eGetSliceEvents\x12\x0e.context.Empty\x1a\x13.context.SliceEvent\"\x00\x30\x01\x12\x44\n\x11ListConnectionIds\x12\x12.context.ServiceId\x1a\x19.context.ConnectionIdList\"\x00\x12@\n\x0fListConnections\x12\x12.context.ServiceId\x1a\x17.context.ConnectionList\"\x00\x12=\n\rGetConnection\x12\x15.context.ConnectionId\x1a\x13.context.Connection\"\x00\x12=\n\rSetConnection\x12\x13.context.Connection\x1a\x15.context.ConnectionId\"\x00\x12;\n\x10RemoveConnection\x12\x15.context.ConnectionId\x1a\x0e.context.Empty\"\x00\x12\x43\n\x13GetConnectionEvents\x12\x0e.context.Empty\x1a\x18.context.ConnectionEvent\"\x00\x30\x01\x62\x06proto3'
-  ,
-  dependencies=[kpi__sample__types__pb2.DESCRIPTOR,])
-
-_EVENTTYPEENUM = _descriptor.EnumDescriptor(
-  name='EventTypeEnum',
-  full_name='context.EventTypeEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='EVENTTYPE_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENTTYPE_CREATE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENTTYPE_UPDATE', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENTTYPE_REMOVE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4310,
-  serialized_end=4416,
-)
-_sym_db.RegisterEnumDescriptor(_EVENTTYPEENUM)
-
-EventTypeEnum = enum_type_wrapper.EnumTypeWrapper(_EVENTTYPEENUM)
-_DEVICEDRIVERENUM = _descriptor.EnumDescriptor(
-  name='DeviceDriverEnum',
-  full_name='context.DeviceDriverEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEDRIVER_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEDRIVER_OPENCONFIG', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEDRIVER_TRANSPORT_API', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEDRIVER_P4', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEDRIVER_IETF_NETWORK_TOPOLOGY', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEDRIVER_ONF_TR_352', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4419,
-  serialized_end=4616,
-)
-_sym_db.RegisterEnumDescriptor(_DEVICEDRIVERENUM)
-
-DeviceDriverEnum = enum_type_wrapper.EnumTypeWrapper(_DEVICEDRIVERENUM)
-_DEVICEOPERATIONALSTATUSENUM = _descriptor.EnumDescriptor(
-  name='DeviceOperationalStatusEnum',
-  full_name='context.DeviceOperationalStatusEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEOPERATIONALSTATUS_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEOPERATIONALSTATUS_DISABLED', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEOPERATIONALSTATUS_ENABLED', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4619,
-  serialized_end=4762,
-)
-_sym_db.RegisterEnumDescriptor(_DEVICEOPERATIONALSTATUSENUM)
-
-DeviceOperationalStatusEnum = enum_type_wrapper.EnumTypeWrapper(_DEVICEOPERATIONALSTATUSENUM)
-_SERVICETYPEENUM = _descriptor.EnumDescriptor(
-  name='ServiceTypeEnum',
-  full_name='context.ServiceTypeEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='SERVICETYPE_UNKNOWN', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERVICETYPE_L3NM', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERVICETYPE_L2NM', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERVICETYPE_TAPI_CONNECTIVITY_SERVICE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4765,
-  serialized_end=4894,
-)
-_sym_db.RegisterEnumDescriptor(_SERVICETYPEENUM)
-
-ServiceTypeEnum = enum_type_wrapper.EnumTypeWrapper(_SERVICETYPEENUM)
-_SERVICESTATUSENUM = _descriptor.EnumDescriptor(
-  name='ServiceStatusEnum',
-  full_name='context.ServiceStatusEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='SERVICESTATUS_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERVICESTATUS_PLANNED', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERVICESTATUS_ACTIVE', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERVICESTATUS_PENDING_REMOVAL', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4897,
-  serialized_end=5033,
-)
-_sym_db.RegisterEnumDescriptor(_SERVICESTATUSENUM)
-
-ServiceStatusEnum = enum_type_wrapper.EnumTypeWrapper(_SERVICESTATUSENUM)
-_SLICESTATUSENUM = _descriptor.EnumDescriptor(
-  name='SliceStatusEnum',
-  full_name='context.SliceStatusEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='SLICESTATUS_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SLICESTATUS_PLANNED', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SLICESTATUS_INIT', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SLICESTATUS_ACTIVE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SLICESTATUS_DEINIT', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=5036,
-  serialized_end=5175,
-)
-_sym_db.RegisterEnumDescriptor(_SLICESTATUSENUM)
-
-SliceStatusEnum = enum_type_wrapper.EnumTypeWrapper(_SLICESTATUSENUM)
-_CONFIGACTIONENUM = _descriptor.EnumDescriptor(
-  name='ConfigActionEnum',
-  full_name='context.ConfigActionEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='CONFIGACTION_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='CONFIGACTION_SET', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='CONFIGACTION_DELETE', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=5177,
-  serialized_end=5270,
-)
-_sym_db.RegisterEnumDescriptor(_CONFIGACTIONENUM)
-
-ConfigActionEnum = enum_type_wrapper.EnumTypeWrapper(_CONFIGACTIONENUM)
-EVENTTYPE_UNDEFINED = 0
-EVENTTYPE_CREATE = 1
-EVENTTYPE_UPDATE = 2
-EVENTTYPE_REMOVE = 3
-DEVICEDRIVER_UNDEFINED = 0
-DEVICEDRIVER_OPENCONFIG = 1
-DEVICEDRIVER_TRANSPORT_API = 2
-DEVICEDRIVER_P4 = 3
-DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4
-DEVICEDRIVER_ONF_TR_352 = 5
-DEVICEOPERATIONALSTATUS_UNDEFINED = 0
-DEVICEOPERATIONALSTATUS_DISABLED = 1
-DEVICEOPERATIONALSTATUS_ENABLED = 2
-SERVICETYPE_UNKNOWN = 0
-SERVICETYPE_L3NM = 1
-SERVICETYPE_L2NM = 2
-SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3
-SERVICESTATUS_UNDEFINED = 0
-SERVICESTATUS_PLANNED = 1
-SERVICESTATUS_ACTIVE = 2
-SERVICESTATUS_PENDING_REMOVAL = 3
-SLICESTATUS_UNDEFINED = 0
-SLICESTATUS_PLANNED = 1
-SLICESTATUS_INIT = 2
-SLICESTATUS_ACTIVE = 3
-SLICESTATUS_DEINIT = 4
-CONFIGACTION_UNDEFINED = 0
-CONFIGACTION_SET = 1
-CONFIGACTION_DELETE = 2
-
-
-
-_EMPTY = _descriptor.Descriptor(
-  name='Empty',
-  full_name='context.Empty',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=50,
-  serialized_end=57,
-)
-
-
-_UUID = _descriptor.Descriptor(
-  name='Uuid',
-  full_name='context.Uuid',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='uuid', full_name='context.Uuid.uuid', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=59,
-  serialized_end=79,
-)
-
-
-_EVENT = _descriptor.Descriptor(
-  name='Event',
-  full_name='context.Event',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='timestamp', full_name='context.Event.timestamp', index=0,
-      number=1, type=1, cpp_type=5, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='event_type', full_name='context.Event.event_type', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=81,
-  serialized_end=151,
-)
-
-
-_CONTEXTID = _descriptor.Descriptor(
-  name='ContextId',
-  full_name='context.ContextId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_uuid', full_name='context.ContextId.context_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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=153,
-  serialized_end=201,
-)
-
-
-_CONTEXT = _descriptor.Descriptor(
-  name='Context',
-  full_name='context.Context',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.Context.context_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='topology_ids', full_name='context.Context.topology_ids', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_ids', full_name='context.Context.service_ids', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='controller', full_name='context.Context.controller', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=204,
-  serialized_end=386,
-)
-
-
-_CONTEXTIDLIST = _descriptor.Descriptor(
-  name='ContextIdList',
-  full_name='context.ContextIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_ids', full_name='context.ContextIdList.context_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=388,
-  serialized_end=444,
-)
-
-
-_CONTEXTLIST = _descriptor.Descriptor(
-  name='ContextList',
-  full_name='context.ContextList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='contexts', full_name='context.ContextList.contexts', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=446,
-  serialized_end=495,
-)
-
-
-_CONTEXTEVENT = _descriptor.Descriptor(
-  name='ContextEvent',
-  full_name='context.ContextEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.ContextEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.ContextEvent.context_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=497,
-  serialized_end=582,
-)
-
-
-_TOPOLOGYID = _descriptor.Descriptor(
-  name='TopologyId',
-  full_name='context.TopologyId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.TopologyId.context_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='topology_uuid', full_name='context.TopologyId.topology_uuid', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=584,
-  serialized_end=674,
-)
-
-
-_TOPOLOGY = _descriptor.Descriptor(
-  name='Topology',
-  full_name='context.Topology',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='topology_id', full_name='context.Topology.topology_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_ids', full_name='context.Topology.device_ids', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='link_ids', full_name='context.Topology.link_ids', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=676,
-  serialized_end=802,
-)
-
-
-_TOPOLOGYIDLIST = _descriptor.Descriptor(
-  name='TopologyIdList',
-  full_name='context.TopologyIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='topology_ids', full_name='context.TopologyIdList.topology_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=804,
-  serialized_end=863,
-)
-
-
-_TOPOLOGYLIST = _descriptor.Descriptor(
-  name='TopologyList',
-  full_name='context.TopologyList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='topologies', full_name='context.TopologyList.topologies', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=865,
-  serialized_end=918,
-)
-
-
-_TOPOLOGYEVENT = _descriptor.Descriptor(
-  name='TopologyEvent',
-  full_name='context.TopologyEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.TopologyEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='topology_id', full_name='context.TopologyEvent.topology_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=920,
-  serialized_end=1008,
-)
-
-
-_DEVICEID = _descriptor.Descriptor(
-  name='DeviceId',
-  full_name='context.DeviceId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='context.DeviceId.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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1010,
-  serialized_end=1056,
-)
-
-
-_DEVICE = _descriptor.Descriptor(
-  name='Device',
-  full_name='context.Device',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_id', full_name='context.Device.device_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_type', full_name='context.Device.device_type', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_config', full_name='context.Device.device_config', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_operational_status', full_name='context.Device.device_operational_status', index=3,
-      number=4, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_drivers', full_name='context.Device.device_drivers', index=4,
-      number=5, type=14, cpp_type=8, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_endpoints', full_name='context.Device.device_endpoints', index=5,
-      number=6, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1059,
-  serialized_end=1341,
-)
-
-
-_DEVICECONFIG = _descriptor.Descriptor(
-  name='DeviceConfig',
-  full_name='context.DeviceConfig',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='config_rules', full_name='context.DeviceConfig.config_rules', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1343,
-  serialized_end=1400,
-)
-
-
-_DEVICEIDLIST = _descriptor.Descriptor(
-  name='DeviceIdList',
-  full_name='context.DeviceIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_ids', full_name='context.DeviceIdList.device_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1402,
-  serialized_end=1455,
-)
-
-
-_DEVICELIST = _descriptor.Descriptor(
-  name='DeviceList',
-  full_name='context.DeviceList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='devices', full_name='context.DeviceList.devices', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1457,
-  serialized_end=1503,
-)
-
-
-_DEVICEEVENT = _descriptor.Descriptor(
-  name='DeviceEvent',
-  full_name='context.DeviceEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.DeviceEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_id', full_name='context.DeviceEvent.device_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1505,
-  serialized_end=1587,
-)
-
-
-_LINKID = _descriptor.Descriptor(
-  name='LinkId',
-  full_name='context.LinkId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='link_uuid', full_name='context.LinkId.link_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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1589,
-  serialized_end=1631,
-)
-
-
-_LINK = _descriptor.Descriptor(
-  name='Link',
-  full_name='context.Link',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='link_id', full_name='context.Link.link_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='link_endpoint_ids', full_name='context.Link.link_endpoint_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1633,
-  serialized_end=1721,
-)
-
-
-_LINKIDLIST = _descriptor.Descriptor(
-  name='LinkIdList',
-  full_name='context.LinkIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='link_ids', full_name='context.LinkIdList.link_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1723,
-  serialized_end=1770,
-)
-
-
-_LINKLIST = _descriptor.Descriptor(
-  name='LinkList',
-  full_name='context.LinkList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='links', full_name='context.LinkList.links', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1772,
-  serialized_end=1812,
-)
-
-
-_LINKEVENT = _descriptor.Descriptor(
-  name='LinkEvent',
-  full_name='context.LinkEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.LinkEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='link_id', full_name='context.LinkEvent.link_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1814,
-  serialized_end=1890,
-)
-
-
-_SERVICEID = _descriptor.Descriptor(
-  name='ServiceId',
-  full_name='context.ServiceId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.ServiceId.context_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_uuid', full_name='context.ServiceId.service_uuid', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1892,
-  serialized_end=1980,
-)
-
-
-_SERVICE = _descriptor.Descriptor(
-  name='Service',
-  full_name='context.Service',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='service_id', full_name='context.Service.service_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_type', full_name='context.Service.service_type', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_endpoint_ids', full_name='context.Service.service_endpoint_ids', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_constraints', full_name='context.Service.service_constraints', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_status', full_name='context.Service.service_status', index=4,
-      number=5, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_config', full_name='context.Service.service_config', index=5,
-      number=6, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1983,
-  serialized_end=2277,
-)
-
-
-_SERVICESTATUS = _descriptor.Descriptor(
-  name='ServiceStatus',
-  full_name='context.ServiceStatus',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='service_status', full_name='context.ServiceStatus.service_status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2279,
-  serialized_end=2346,
-)
-
-
-_SERVICECONFIG = _descriptor.Descriptor(
-  name='ServiceConfig',
-  full_name='context.ServiceConfig',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='config_rules', full_name='context.ServiceConfig.config_rules', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2348,
-  serialized_end=2406,
-)
-
-
-_SERVICEIDLIST = _descriptor.Descriptor(
-  name='ServiceIdList',
-  full_name='context.ServiceIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='service_ids', full_name='context.ServiceIdList.service_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2408,
-  serialized_end=2464,
-)
-
-
-_SERVICELIST = _descriptor.Descriptor(
-  name='ServiceList',
-  full_name='context.ServiceList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='services', full_name='context.ServiceList.services', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2466,
-  serialized_end=2515,
-)
-
-
-_SERVICEEVENT = _descriptor.Descriptor(
-  name='ServiceEvent',
-  full_name='context.ServiceEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.ServiceEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_id', full_name='context.ServiceEvent.service_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2517,
-  serialized_end=2602,
-)
-
-
-_SLICEID = _descriptor.Descriptor(
-  name='SliceId',
-  full_name='context.SliceId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.SliceId.context_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_uuid', full_name='context.SliceId.slice_uuid', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2604,
-  serialized_end=2688,
-)
-
-
-_SLICE = _descriptor.Descriptor(
-  name='Slice',
-  full_name='context.Slice',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='slice_id', full_name='context.Slice.slice_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_endpoint_ids', full_name='context.Slice.slice_endpoint_ids', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_constraints', full_name='context.Slice.slice_constraints', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_service_ids', full_name='context.Slice.slice_service_ids', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_subslice_ids', full_name='context.Slice.slice_subslice_ids', index=4,
-      number=5, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_status', full_name='context.Slice.slice_status', index=5,
-      number=6, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2691,
-  serialized_end=2968,
-)
-
-
-_SLICESTATUS = _descriptor.Descriptor(
-  name='SliceStatus',
-  full_name='context.SliceStatus',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='slice_status', full_name='context.SliceStatus.slice_status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2970,
-  serialized_end=3031,
-)
-
-
-_SLICEIDLIST = _descriptor.Descriptor(
-  name='SliceIdList',
-  full_name='context.SliceIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='slice_ids', full_name='context.SliceIdList.slice_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3033,
-  serialized_end=3083,
-)
-
-
-_SLICELIST = _descriptor.Descriptor(
-  name='SliceList',
-  full_name='context.SliceList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='slices', full_name='context.SliceList.slices', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3085,
-  serialized_end=3128,
-)
-
-
-_SLICEEVENT = _descriptor.Descriptor(
-  name='SliceEvent',
-  full_name='context.SliceEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.SliceEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_id', full_name='context.SliceEvent.slice_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3130,
-  serialized_end=3209,
-)
-
-
-_CONNECTIONID = _descriptor.Descriptor(
-  name='ConnectionId',
-  full_name='context.ConnectionId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='connection_uuid', full_name='context.ConnectionId.connection_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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3211,
-  serialized_end=3265,
-)
-
-
-_CONNECTION = _descriptor.Descriptor(
-  name='Connection',
-  full_name='context.Connection',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='connection_id', full_name='context.Connection.connection_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_id', full_name='context.Connection.service_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='path_hops_endpoint_ids', full_name='context.Connection.path_hops_endpoint_ids', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sub_service_ids', full_name='context.Connection.sub_service_ids', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3268,
-  serialized_end=3464,
-)
-
-
-_CONNECTIONIDLIST = _descriptor.Descriptor(
-  name='ConnectionIdList',
-  full_name='context.ConnectionIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='connection_ids', full_name='context.ConnectionIdList.connection_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3466,
-  serialized_end=3531,
-)
-
-
-_CONNECTIONLIST = _descriptor.Descriptor(
-  name='ConnectionList',
-  full_name='context.ConnectionList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='connections', full_name='context.ConnectionList.connections', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3533,
-  serialized_end=3591,
-)
-
-
-_CONNECTIONEVENT = _descriptor.Descriptor(
-  name='ConnectionEvent',
-  full_name='context.ConnectionEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.ConnectionEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='connection_id', full_name='context.ConnectionEvent.connection_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3593,
-  serialized_end=3687,
-)
-
-
-_ENDPOINTID = _descriptor.Descriptor(
-  name='EndPointId',
-  full_name='context.EndPointId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='topology_id', full_name='context.EndPointId.topology_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_id', full_name='context.EndPointId.device_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='endpoint_uuid', full_name='context.EndPointId.endpoint_uuid', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3690,
-  serialized_end=3820,
-)
-
-
-_ENDPOINT = _descriptor.Descriptor(
-  name='EndPoint',
-  full_name='context.EndPoint',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='endpoint_id', full_name='context.EndPoint.endpoint_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='endpoint_type', full_name='context.EndPoint.endpoint_type', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='kpi_sample_types', full_name='context.EndPoint.kpi_sample_types', index=2,
-      number=3, type=14, cpp_type=8, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3823,
-  serialized_end=3957,
-)
-
-
-_CONFIGRULE = _descriptor.Descriptor(
-  name='ConfigRule',
-  full_name='context.ConfigRule',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='action', full_name='context.ConfigRule.action', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='resource_key', full_name='context.ConfigRule.resource_key', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='resource_value', full_name='context.ConfigRule.resource_value', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3959,
-  serialized_end=4060,
-)
-
-
-_CONSTRAINT = _descriptor.Descriptor(
-  name='Constraint',
-  full_name='context.Constraint',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='constraint_type', full_name='context.Constraint.constraint_type', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='constraint_value', full_name='context.Constraint.constraint_value', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4062,
-  serialized_end=4125,
-)
-
-
-_TERAFLOWCONTROLLER = _descriptor.Descriptor(
-  name='TeraFlowController',
-  full_name='context.TeraFlowController',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.TeraFlowController.context_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ip_address', full_name='context.TeraFlowController.ip_address', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='port', full_name='context.TeraFlowController.port', index=2,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4127,
-  serialized_end=4221,
-)
-
-
-_AUTHENTICATIONRESULT = _descriptor.Descriptor(
-  name='AuthenticationResult',
-  full_name='context.AuthenticationResult',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.AuthenticationResult.context_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='authenticated', full_name='context.AuthenticationResult.authenticated', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4223,
-  serialized_end=4308,
-)
-
-_EVENT.fields_by_name['event_type'].enum_type = _EVENTTYPEENUM
-_CONTEXTID.fields_by_name['context_uuid'].message_type = _UUID
-_CONTEXT.fields_by_name['context_id'].message_type = _CONTEXTID
-_CONTEXT.fields_by_name['topology_ids'].message_type = _TOPOLOGYID
-_CONTEXT.fields_by_name['service_ids'].message_type = _SERVICEID
-_CONTEXT.fields_by_name['controller'].message_type = _TERAFLOWCONTROLLER
-_CONTEXTIDLIST.fields_by_name['context_ids'].message_type = _CONTEXTID
-_CONTEXTLIST.fields_by_name['contexts'].message_type = _CONTEXT
-_CONTEXTEVENT.fields_by_name['event'].message_type = _EVENT
-_CONTEXTEVENT.fields_by_name['context_id'].message_type = _CONTEXTID
-_TOPOLOGYID.fields_by_name['context_id'].message_type = _CONTEXTID
-_TOPOLOGYID.fields_by_name['topology_uuid'].message_type = _UUID
-_TOPOLOGY.fields_by_name['topology_id'].message_type = _TOPOLOGYID
-_TOPOLOGY.fields_by_name['device_ids'].message_type = _DEVICEID
-_TOPOLOGY.fields_by_name['link_ids'].message_type = _LINKID
-_TOPOLOGYIDLIST.fields_by_name['topology_ids'].message_type = _TOPOLOGYID
-_TOPOLOGYLIST.fields_by_name['topologies'].message_type = _TOPOLOGY
-_TOPOLOGYEVENT.fields_by_name['event'].message_type = _EVENT
-_TOPOLOGYEVENT.fields_by_name['topology_id'].message_type = _TOPOLOGYID
-_DEVICEID.fields_by_name['device_uuid'].message_type = _UUID
-_DEVICE.fields_by_name['device_id'].message_type = _DEVICEID
-_DEVICE.fields_by_name['device_config'].message_type = _DEVICECONFIG
-_DEVICE.fields_by_name['device_operational_status'].enum_type = _DEVICEOPERATIONALSTATUSENUM
-_DEVICE.fields_by_name['device_drivers'].enum_type = _DEVICEDRIVERENUM
-_DEVICE.fields_by_name['device_endpoints'].message_type = _ENDPOINT
-_DEVICECONFIG.fields_by_name['config_rules'].message_type = _CONFIGRULE
-_DEVICEIDLIST.fields_by_name['device_ids'].message_type = _DEVICEID
-_DEVICELIST.fields_by_name['devices'].message_type = _DEVICE
-_DEVICEEVENT.fields_by_name['event'].message_type = _EVENT
-_DEVICEEVENT.fields_by_name['device_id'].message_type = _DEVICEID
-_LINKID.fields_by_name['link_uuid'].message_type = _UUID
-_LINK.fields_by_name['link_id'].message_type = _LINKID
-_LINK.fields_by_name['link_endpoint_ids'].message_type = _ENDPOINTID
-_LINKIDLIST.fields_by_name['link_ids'].message_type = _LINKID
-_LINKLIST.fields_by_name['links'].message_type = _LINK
-_LINKEVENT.fields_by_name['event'].message_type = _EVENT
-_LINKEVENT.fields_by_name['link_id'].message_type = _LINKID
-_SERVICEID.fields_by_name['context_id'].message_type = _CONTEXTID
-_SERVICEID.fields_by_name['service_uuid'].message_type = _UUID
-_SERVICE.fields_by_name['service_id'].message_type = _SERVICEID
-_SERVICE.fields_by_name['service_type'].enum_type = _SERVICETYPEENUM
-_SERVICE.fields_by_name['service_endpoint_ids'].message_type = _ENDPOINTID
-_SERVICE.fields_by_name['service_constraints'].message_type = _CONSTRAINT
-_SERVICE.fields_by_name['service_status'].message_type = _SERVICESTATUS
-_SERVICE.fields_by_name['service_config'].message_type = _SERVICECONFIG
-_SERVICESTATUS.fields_by_name['service_status'].enum_type = _SERVICESTATUSENUM
-_SERVICECONFIG.fields_by_name['config_rules'].message_type = _CONFIGRULE
-_SERVICEIDLIST.fields_by_name['service_ids'].message_type = _SERVICEID
-_SERVICELIST.fields_by_name['services'].message_type = _SERVICE
-_SERVICEEVENT.fields_by_name['event'].message_type = _EVENT
-_SERVICEEVENT.fields_by_name['service_id'].message_type = _SERVICEID
-_SLICEID.fields_by_name['context_id'].message_type = _CONTEXTID
-_SLICEID.fields_by_name['slice_uuid'].message_type = _UUID
-_SLICE.fields_by_name['slice_id'].message_type = _SLICEID
-_SLICE.fields_by_name['slice_endpoint_ids'].message_type = _ENDPOINTID
-_SLICE.fields_by_name['slice_constraints'].message_type = _CONSTRAINT
-_SLICE.fields_by_name['slice_service_ids'].message_type = _SERVICEID
-_SLICE.fields_by_name['slice_subslice_ids'].message_type = _SLICEID
-_SLICE.fields_by_name['slice_status'].message_type = _SLICESTATUS
-_SLICESTATUS.fields_by_name['slice_status'].enum_type = _SLICESTATUSENUM
-_SLICEIDLIST.fields_by_name['slice_ids'].message_type = _SLICEID
-_SLICELIST.fields_by_name['slices'].message_type = _SLICE
-_SLICEEVENT.fields_by_name['event'].message_type = _EVENT
-_SLICEEVENT.fields_by_name['slice_id'].message_type = _SLICEID
-_CONNECTIONID.fields_by_name['connection_uuid'].message_type = _UUID
-_CONNECTION.fields_by_name['connection_id'].message_type = _CONNECTIONID
-_CONNECTION.fields_by_name['service_id'].message_type = _SERVICEID
-_CONNECTION.fields_by_name['path_hops_endpoint_ids'].message_type = _ENDPOINTID
-_CONNECTION.fields_by_name['sub_service_ids'].message_type = _SERVICEID
-_CONNECTIONIDLIST.fields_by_name['connection_ids'].message_type = _CONNECTIONID
-_CONNECTIONLIST.fields_by_name['connections'].message_type = _CONNECTION
-_CONNECTIONEVENT.fields_by_name['event'].message_type = _EVENT
-_CONNECTIONEVENT.fields_by_name['connection_id'].message_type = _CONNECTIONID
-_ENDPOINTID.fields_by_name['topology_id'].message_type = _TOPOLOGYID
-_ENDPOINTID.fields_by_name['device_id'].message_type = _DEVICEID
-_ENDPOINTID.fields_by_name['endpoint_uuid'].message_type = _UUID
-_ENDPOINT.fields_by_name['endpoint_id'].message_type = _ENDPOINTID
-_ENDPOINT.fields_by_name['kpi_sample_types'].enum_type = kpi__sample__types__pb2._KPISAMPLETYPE
-_CONFIGRULE.fields_by_name['action'].enum_type = _CONFIGACTIONENUM
-_TERAFLOWCONTROLLER.fields_by_name['context_id'].message_type = _CONTEXTID
-_AUTHENTICATIONRESULT.fields_by_name['context_id'].message_type = _CONTEXTID
-DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY
-DESCRIPTOR.message_types_by_name['Uuid'] = _UUID
-DESCRIPTOR.message_types_by_name['Event'] = _EVENT
-DESCRIPTOR.message_types_by_name['ContextId'] = _CONTEXTID
-DESCRIPTOR.message_types_by_name['Context'] = _CONTEXT
-DESCRIPTOR.message_types_by_name['ContextIdList'] = _CONTEXTIDLIST
-DESCRIPTOR.message_types_by_name['ContextList'] = _CONTEXTLIST
-DESCRIPTOR.message_types_by_name['ContextEvent'] = _CONTEXTEVENT
-DESCRIPTOR.message_types_by_name['TopologyId'] = _TOPOLOGYID
-DESCRIPTOR.message_types_by_name['Topology'] = _TOPOLOGY
-DESCRIPTOR.message_types_by_name['TopologyIdList'] = _TOPOLOGYIDLIST
-DESCRIPTOR.message_types_by_name['TopologyList'] = _TOPOLOGYLIST
-DESCRIPTOR.message_types_by_name['TopologyEvent'] = _TOPOLOGYEVENT
-DESCRIPTOR.message_types_by_name['DeviceId'] = _DEVICEID
-DESCRIPTOR.message_types_by_name['Device'] = _DEVICE
-DESCRIPTOR.message_types_by_name['DeviceConfig'] = _DEVICECONFIG
-DESCRIPTOR.message_types_by_name['DeviceIdList'] = _DEVICEIDLIST
-DESCRIPTOR.message_types_by_name['DeviceList'] = _DEVICELIST
-DESCRIPTOR.message_types_by_name['DeviceEvent'] = _DEVICEEVENT
-DESCRIPTOR.message_types_by_name['LinkId'] = _LINKID
-DESCRIPTOR.message_types_by_name['Link'] = _LINK
-DESCRIPTOR.message_types_by_name['LinkIdList'] = _LINKIDLIST
-DESCRIPTOR.message_types_by_name['LinkList'] = _LINKLIST
-DESCRIPTOR.message_types_by_name['LinkEvent'] = _LINKEVENT
-DESCRIPTOR.message_types_by_name['ServiceId'] = _SERVICEID
-DESCRIPTOR.message_types_by_name['Service'] = _SERVICE
-DESCRIPTOR.message_types_by_name['ServiceStatus'] = _SERVICESTATUS
-DESCRIPTOR.message_types_by_name['ServiceConfig'] = _SERVICECONFIG
-DESCRIPTOR.message_types_by_name['ServiceIdList'] = _SERVICEIDLIST
-DESCRIPTOR.message_types_by_name['ServiceList'] = _SERVICELIST
-DESCRIPTOR.message_types_by_name['ServiceEvent'] = _SERVICEEVENT
-DESCRIPTOR.message_types_by_name['SliceId'] = _SLICEID
-DESCRIPTOR.message_types_by_name['Slice'] = _SLICE
-DESCRIPTOR.message_types_by_name['SliceStatus'] = _SLICESTATUS
-DESCRIPTOR.message_types_by_name['SliceIdList'] = _SLICEIDLIST
-DESCRIPTOR.message_types_by_name['SliceList'] = _SLICELIST
-DESCRIPTOR.message_types_by_name['SliceEvent'] = _SLICEEVENT
-DESCRIPTOR.message_types_by_name['ConnectionId'] = _CONNECTIONID
-DESCRIPTOR.message_types_by_name['Connection'] = _CONNECTION
-DESCRIPTOR.message_types_by_name['ConnectionIdList'] = _CONNECTIONIDLIST
-DESCRIPTOR.message_types_by_name['ConnectionList'] = _CONNECTIONLIST
-DESCRIPTOR.message_types_by_name['ConnectionEvent'] = _CONNECTIONEVENT
-DESCRIPTOR.message_types_by_name['EndPointId'] = _ENDPOINTID
-DESCRIPTOR.message_types_by_name['EndPoint'] = _ENDPOINT
-DESCRIPTOR.message_types_by_name['ConfigRule'] = _CONFIGRULE
-DESCRIPTOR.message_types_by_name['Constraint'] = _CONSTRAINT
-DESCRIPTOR.message_types_by_name['TeraFlowController'] = _TERAFLOWCONTROLLER
-DESCRIPTOR.message_types_by_name['AuthenticationResult'] = _AUTHENTICATIONRESULT
-DESCRIPTOR.enum_types_by_name['EventTypeEnum'] = _EVENTTYPEENUM
-DESCRIPTOR.enum_types_by_name['DeviceDriverEnum'] = _DEVICEDRIVERENUM
-DESCRIPTOR.enum_types_by_name['DeviceOperationalStatusEnum'] = _DEVICEOPERATIONALSTATUSENUM
-DESCRIPTOR.enum_types_by_name['ServiceTypeEnum'] = _SERVICETYPEENUM
-DESCRIPTOR.enum_types_by_name['ServiceStatusEnum'] = _SERVICESTATUSENUM
-DESCRIPTOR.enum_types_by_name['SliceStatusEnum'] = _SLICESTATUSENUM
-DESCRIPTOR.enum_types_by_name['ConfigActionEnum'] = _CONFIGACTIONENUM
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), {
-  'DESCRIPTOR' : _EMPTY,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Empty)
-  })
-_sym_db.RegisterMessage(Empty)
-
-Uuid = _reflection.GeneratedProtocolMessageType('Uuid', (_message.Message,), {
-  'DESCRIPTOR' : _UUID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Uuid)
-  })
-_sym_db.RegisterMessage(Uuid)
-
-Event = _reflection.GeneratedProtocolMessageType('Event', (_message.Message,), {
-  'DESCRIPTOR' : _EVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Event)
-  })
-_sym_db.RegisterMessage(Event)
-
-ContextId = _reflection.GeneratedProtocolMessageType('ContextId', (_message.Message,), {
-  'DESCRIPTOR' : _CONTEXTID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ContextId)
-  })
-_sym_db.RegisterMessage(ContextId)
-
-Context = _reflection.GeneratedProtocolMessageType('Context', (_message.Message,), {
-  'DESCRIPTOR' : _CONTEXT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Context)
-  })
-_sym_db.RegisterMessage(Context)
-
-ContextIdList = _reflection.GeneratedProtocolMessageType('ContextIdList', (_message.Message,), {
-  'DESCRIPTOR' : _CONTEXTIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ContextIdList)
-  })
-_sym_db.RegisterMessage(ContextIdList)
-
-ContextList = _reflection.GeneratedProtocolMessageType('ContextList', (_message.Message,), {
-  'DESCRIPTOR' : _CONTEXTLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ContextList)
-  })
-_sym_db.RegisterMessage(ContextList)
-
-ContextEvent = _reflection.GeneratedProtocolMessageType('ContextEvent', (_message.Message,), {
-  'DESCRIPTOR' : _CONTEXTEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ContextEvent)
-  })
-_sym_db.RegisterMessage(ContextEvent)
-
-TopologyId = _reflection.GeneratedProtocolMessageType('TopologyId', (_message.Message,), {
-  'DESCRIPTOR' : _TOPOLOGYID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.TopologyId)
-  })
-_sym_db.RegisterMessage(TopologyId)
-
-Topology = _reflection.GeneratedProtocolMessageType('Topology', (_message.Message,), {
-  'DESCRIPTOR' : _TOPOLOGY,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Topology)
-  })
-_sym_db.RegisterMessage(Topology)
-
-TopologyIdList = _reflection.GeneratedProtocolMessageType('TopologyIdList', (_message.Message,), {
-  'DESCRIPTOR' : _TOPOLOGYIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.TopologyIdList)
-  })
-_sym_db.RegisterMessage(TopologyIdList)
-
-TopologyList = _reflection.GeneratedProtocolMessageType('TopologyList', (_message.Message,), {
-  'DESCRIPTOR' : _TOPOLOGYLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.TopologyList)
-  })
-_sym_db.RegisterMessage(TopologyList)
-
-TopologyEvent = _reflection.GeneratedProtocolMessageType('TopologyEvent', (_message.Message,), {
-  'DESCRIPTOR' : _TOPOLOGYEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.TopologyEvent)
-  })
-_sym_db.RegisterMessage(TopologyEvent)
-
-DeviceId = _reflection.GeneratedProtocolMessageType('DeviceId', (_message.Message,), {
-  'DESCRIPTOR' : _DEVICEID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.DeviceId)
-  })
-_sym_db.RegisterMessage(DeviceId)
-
-Device = _reflection.GeneratedProtocolMessageType('Device', (_message.Message,), {
-  'DESCRIPTOR' : _DEVICE,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Device)
-  })
-_sym_db.RegisterMessage(Device)
-
-DeviceConfig = _reflection.GeneratedProtocolMessageType('DeviceConfig', (_message.Message,), {
-  'DESCRIPTOR' : _DEVICECONFIG,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.DeviceConfig)
-  })
-_sym_db.RegisterMessage(DeviceConfig)
-
-DeviceIdList = _reflection.GeneratedProtocolMessageType('DeviceIdList', (_message.Message,), {
-  'DESCRIPTOR' : _DEVICEIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.DeviceIdList)
-  })
-_sym_db.RegisterMessage(DeviceIdList)
-
-DeviceList = _reflection.GeneratedProtocolMessageType('DeviceList', (_message.Message,), {
-  'DESCRIPTOR' : _DEVICELIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.DeviceList)
-  })
-_sym_db.RegisterMessage(DeviceList)
-
-DeviceEvent = _reflection.GeneratedProtocolMessageType('DeviceEvent', (_message.Message,), {
-  'DESCRIPTOR' : _DEVICEEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.DeviceEvent)
-  })
-_sym_db.RegisterMessage(DeviceEvent)
-
-LinkId = _reflection.GeneratedProtocolMessageType('LinkId', (_message.Message,), {
-  'DESCRIPTOR' : _LINKID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.LinkId)
-  })
-_sym_db.RegisterMessage(LinkId)
-
-Link = _reflection.GeneratedProtocolMessageType('Link', (_message.Message,), {
-  'DESCRIPTOR' : _LINK,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Link)
-  })
-_sym_db.RegisterMessage(Link)
-
-LinkIdList = _reflection.GeneratedProtocolMessageType('LinkIdList', (_message.Message,), {
-  'DESCRIPTOR' : _LINKIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.LinkIdList)
-  })
-_sym_db.RegisterMessage(LinkIdList)
-
-LinkList = _reflection.GeneratedProtocolMessageType('LinkList', (_message.Message,), {
-  'DESCRIPTOR' : _LINKLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.LinkList)
-  })
-_sym_db.RegisterMessage(LinkList)
-
-LinkEvent = _reflection.GeneratedProtocolMessageType('LinkEvent', (_message.Message,), {
-  'DESCRIPTOR' : _LINKEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.LinkEvent)
-  })
-_sym_db.RegisterMessage(LinkEvent)
-
-ServiceId = _reflection.GeneratedProtocolMessageType('ServiceId', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICEID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ServiceId)
-  })
-_sym_db.RegisterMessage(ServiceId)
-
-Service = _reflection.GeneratedProtocolMessageType('Service', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICE,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Service)
-  })
-_sym_db.RegisterMessage(Service)
-
-ServiceStatus = _reflection.GeneratedProtocolMessageType('ServiceStatus', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICESTATUS,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ServiceStatus)
-  })
-_sym_db.RegisterMessage(ServiceStatus)
-
-ServiceConfig = _reflection.GeneratedProtocolMessageType('ServiceConfig', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICECONFIG,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ServiceConfig)
-  })
-_sym_db.RegisterMessage(ServiceConfig)
-
-ServiceIdList = _reflection.GeneratedProtocolMessageType('ServiceIdList', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICEIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ServiceIdList)
-  })
-_sym_db.RegisterMessage(ServiceIdList)
-
-ServiceList = _reflection.GeneratedProtocolMessageType('ServiceList', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICELIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ServiceList)
-  })
-_sym_db.RegisterMessage(ServiceList)
-
-ServiceEvent = _reflection.GeneratedProtocolMessageType('ServiceEvent', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICEEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ServiceEvent)
-  })
-_sym_db.RegisterMessage(ServiceEvent)
-
-SliceId = _reflection.GeneratedProtocolMessageType('SliceId', (_message.Message,), {
-  'DESCRIPTOR' : _SLICEID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.SliceId)
-  })
-_sym_db.RegisterMessage(SliceId)
-
-Slice = _reflection.GeneratedProtocolMessageType('Slice', (_message.Message,), {
-  'DESCRIPTOR' : _SLICE,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Slice)
-  })
-_sym_db.RegisterMessage(Slice)
-
-SliceStatus = _reflection.GeneratedProtocolMessageType('SliceStatus', (_message.Message,), {
-  'DESCRIPTOR' : _SLICESTATUS,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.SliceStatus)
-  })
-_sym_db.RegisterMessage(SliceStatus)
-
-SliceIdList = _reflection.GeneratedProtocolMessageType('SliceIdList', (_message.Message,), {
-  'DESCRIPTOR' : _SLICEIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.SliceIdList)
-  })
-_sym_db.RegisterMessage(SliceIdList)
-
-SliceList = _reflection.GeneratedProtocolMessageType('SliceList', (_message.Message,), {
-  'DESCRIPTOR' : _SLICELIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.SliceList)
-  })
-_sym_db.RegisterMessage(SliceList)
-
-SliceEvent = _reflection.GeneratedProtocolMessageType('SliceEvent', (_message.Message,), {
-  'DESCRIPTOR' : _SLICEEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.SliceEvent)
-  })
-_sym_db.RegisterMessage(SliceEvent)
-
-ConnectionId = _reflection.GeneratedProtocolMessageType('ConnectionId', (_message.Message,), {
-  'DESCRIPTOR' : _CONNECTIONID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ConnectionId)
-  })
-_sym_db.RegisterMessage(ConnectionId)
-
-Connection = _reflection.GeneratedProtocolMessageType('Connection', (_message.Message,), {
-  'DESCRIPTOR' : _CONNECTION,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Connection)
-  })
-_sym_db.RegisterMessage(Connection)
-
-ConnectionIdList = _reflection.GeneratedProtocolMessageType('ConnectionIdList', (_message.Message,), {
-  'DESCRIPTOR' : _CONNECTIONIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ConnectionIdList)
-  })
-_sym_db.RegisterMessage(ConnectionIdList)
-
-ConnectionList = _reflection.GeneratedProtocolMessageType('ConnectionList', (_message.Message,), {
-  'DESCRIPTOR' : _CONNECTIONLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ConnectionList)
-  })
-_sym_db.RegisterMessage(ConnectionList)
-
-ConnectionEvent = _reflection.GeneratedProtocolMessageType('ConnectionEvent', (_message.Message,), {
-  'DESCRIPTOR' : _CONNECTIONEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ConnectionEvent)
-  })
-_sym_db.RegisterMessage(ConnectionEvent)
-
-EndPointId = _reflection.GeneratedProtocolMessageType('EndPointId', (_message.Message,), {
-  'DESCRIPTOR' : _ENDPOINTID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.EndPointId)
-  })
-_sym_db.RegisterMessage(EndPointId)
-
-EndPoint = _reflection.GeneratedProtocolMessageType('EndPoint', (_message.Message,), {
-  'DESCRIPTOR' : _ENDPOINT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.EndPoint)
-  })
-_sym_db.RegisterMessage(EndPoint)
-
-ConfigRule = _reflection.GeneratedProtocolMessageType('ConfigRule', (_message.Message,), {
-  'DESCRIPTOR' : _CONFIGRULE,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ConfigRule)
-  })
-_sym_db.RegisterMessage(ConfigRule)
-
-Constraint = _reflection.GeneratedProtocolMessageType('Constraint', (_message.Message,), {
-  'DESCRIPTOR' : _CONSTRAINT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Constraint)
-  })
-_sym_db.RegisterMessage(Constraint)
-
-TeraFlowController = _reflection.GeneratedProtocolMessageType('TeraFlowController', (_message.Message,), {
-  'DESCRIPTOR' : _TERAFLOWCONTROLLER,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.TeraFlowController)
-  })
-_sym_db.RegisterMessage(TeraFlowController)
-
-AuthenticationResult = _reflection.GeneratedProtocolMessageType('AuthenticationResult', (_message.Message,), {
-  'DESCRIPTOR' : _AUTHENTICATIONRESULT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.AuthenticationResult)
-  })
-_sym_db.RegisterMessage(AuthenticationResult)
-
-
-
-_CONTEXTSERVICE = _descriptor.ServiceDescriptor(
-  name='ContextService',
-  full_name='context.ContextService',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=5273,
-  serialized_end=7688,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='ListContextIds',
-    full_name='context.ContextService.ListContextIds',
-    index=0,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_CONTEXTIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListContexts',
-    full_name='context.ContextService.ListContexts',
-    index=1,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_CONTEXTLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetContext',
-    full_name='context.ContextService.GetContext',
-    index=2,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_CONTEXT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetContext',
-    full_name='context.ContextService.SetContext',
-    index=3,
-    containing_service=None,
-    input_type=_CONTEXT,
-    output_type=_CONTEXTID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveContext',
-    full_name='context.ContextService.RemoveContext',
-    index=4,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetContextEvents',
-    full_name='context.ContextService.GetContextEvents',
-    index=5,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_CONTEXTEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListTopologyIds',
-    full_name='context.ContextService.ListTopologyIds',
-    index=6,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_TOPOLOGYIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListTopologies',
-    full_name='context.ContextService.ListTopologies',
-    index=7,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_TOPOLOGYLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetTopology',
-    full_name='context.ContextService.GetTopology',
-    index=8,
-    containing_service=None,
-    input_type=_TOPOLOGYID,
-    output_type=_TOPOLOGY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetTopology',
-    full_name='context.ContextService.SetTopology',
-    index=9,
-    containing_service=None,
-    input_type=_TOPOLOGY,
-    output_type=_TOPOLOGYID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveTopology',
-    full_name='context.ContextService.RemoveTopology',
-    index=10,
-    containing_service=None,
-    input_type=_TOPOLOGYID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetTopologyEvents',
-    full_name='context.ContextService.GetTopologyEvents',
-    index=11,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_TOPOLOGYEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListDeviceIds',
-    full_name='context.ContextService.ListDeviceIds',
-    index=12,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_DEVICEIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListDevices',
-    full_name='context.ContextService.ListDevices',
-    index=13,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_DEVICELIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetDevice',
-    full_name='context.ContextService.GetDevice',
-    index=14,
-    containing_service=None,
-    input_type=_DEVICEID,
-    output_type=_DEVICE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetDevice',
-    full_name='context.ContextService.SetDevice',
-    index=15,
-    containing_service=None,
-    input_type=_DEVICE,
-    output_type=_DEVICEID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveDevice',
-    full_name='context.ContextService.RemoveDevice',
-    index=16,
-    containing_service=None,
-    input_type=_DEVICEID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetDeviceEvents',
-    full_name='context.ContextService.GetDeviceEvents',
-    index=17,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_DEVICEEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListLinkIds',
-    full_name='context.ContextService.ListLinkIds',
-    index=18,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_LINKIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListLinks',
-    full_name='context.ContextService.ListLinks',
-    index=19,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_LINKLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetLink',
-    full_name='context.ContextService.GetLink',
-    index=20,
-    containing_service=None,
-    input_type=_LINKID,
-    output_type=_LINK,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetLink',
-    full_name='context.ContextService.SetLink',
-    index=21,
-    containing_service=None,
-    input_type=_LINK,
-    output_type=_LINKID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveLink',
-    full_name='context.ContextService.RemoveLink',
-    index=22,
-    containing_service=None,
-    input_type=_LINKID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetLinkEvents',
-    full_name='context.ContextService.GetLinkEvents',
-    index=23,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_LINKEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListServiceIds',
-    full_name='context.ContextService.ListServiceIds',
-    index=24,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_SERVICEIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListServices',
-    full_name='context.ContextService.ListServices',
-    index=25,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_SERVICELIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetService',
-    full_name='context.ContextService.GetService',
-    index=26,
-    containing_service=None,
-    input_type=_SERVICEID,
-    output_type=_SERVICE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetService',
-    full_name='context.ContextService.SetService',
-    index=27,
-    containing_service=None,
-    input_type=_SERVICE,
-    output_type=_SERVICEID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveService',
-    full_name='context.ContextService.RemoveService',
-    index=28,
-    containing_service=None,
-    input_type=_SERVICEID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetServiceEvents',
-    full_name='context.ContextService.GetServiceEvents',
-    index=29,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_SERVICEEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListSliceIds',
-    full_name='context.ContextService.ListSliceIds',
-    index=30,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_SLICEIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListSlices',
-    full_name='context.ContextService.ListSlices',
-    index=31,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_SLICELIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetSlice',
-    full_name='context.ContextService.GetSlice',
-    index=32,
-    containing_service=None,
-    input_type=_SLICEID,
-    output_type=_SLICE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetSlice',
-    full_name='context.ContextService.SetSlice',
-    index=33,
-    containing_service=None,
-    input_type=_SLICE,
-    output_type=_SLICEID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveSlice',
-    full_name='context.ContextService.RemoveSlice',
-    index=34,
-    containing_service=None,
-    input_type=_SLICEID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetSliceEvents',
-    full_name='context.ContextService.GetSliceEvents',
-    index=35,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_SLICEEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListConnectionIds',
-    full_name='context.ContextService.ListConnectionIds',
-    index=36,
-    containing_service=None,
-    input_type=_SERVICEID,
-    output_type=_CONNECTIONIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListConnections',
-    full_name='context.ContextService.ListConnections',
-    index=37,
-    containing_service=None,
-    input_type=_SERVICEID,
-    output_type=_CONNECTIONLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetConnection',
-    full_name='context.ContextService.GetConnection',
-    index=38,
-    containing_service=None,
-    input_type=_CONNECTIONID,
-    output_type=_CONNECTION,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetConnection',
-    full_name='context.ContextService.SetConnection',
-    index=39,
-    containing_service=None,
-    input_type=_CONNECTION,
-    output_type=_CONNECTIONID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveConnection',
-    full_name='context.ContextService.RemoveConnection',
-    index=40,
-    containing_service=None,
-    input_type=_CONNECTIONID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetConnectionEvents',
-    full_name='context.ContextService.GetConnectionEvents',
-    index=41,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_CONNECTIONEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_CONTEXTSERVICE)
-
-DESCRIPTOR.services_by_name['ContextService'] = _CONTEXTSERVICE
-
-# @@protoc_insertion_point(module_scope)
diff --git a/src/l3_attackmitigator/proto/kpi_sample_types_pb2.py b/src/l3_attackmitigator/proto/kpi_sample_types_pb2.py
deleted file mode 100644
index ea7fd2f82757d4c3db02d7e2c7817e2787b0b490..0000000000000000000000000000000000000000
--- a/src/l3_attackmitigator/proto/kpi_sample_types_pb2.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: kpi_sample_types.proto
-"""Generated protocol buffer code."""
-from google.protobuf.internal import enum_type_wrapper
-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()
-
-
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='kpi_sample_types.proto',
-  package='kpi_sample_types',
-  syntax='proto3',
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x16kpi_sample_types.proto\x12\x10kpi_sample_types*\xbe\x01\n\rKpiSampleType\x12\x19\n\x15KPISAMPLETYPE_UNKNOWN\x10\x00\x12%\n!KPISAMPLETYPE_PACKETS_TRANSMITTED\x10\x65\x12\"\n\x1eKPISAMPLETYPE_PACKETS_RECEIVED\x10\x66\x12$\n\x1fKPISAMPLETYPE_BYTES_TRANSMITTED\x10\xc9\x01\x12!\n\x1cKPISAMPLETYPE_BYTES_RECEIVED\x10\xca\x01\x62\x06proto3'
-)
-
-_KPISAMPLETYPE = _descriptor.EnumDescriptor(
-  name='KpiSampleType',
-  full_name='kpi_sample_types.KpiSampleType',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='KPISAMPLETYPE_UNKNOWN', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='KPISAMPLETYPE_PACKETS_TRANSMITTED', index=1, number=101,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='KPISAMPLETYPE_PACKETS_RECEIVED', index=2, number=102,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='KPISAMPLETYPE_BYTES_TRANSMITTED', index=3, number=201,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='KPISAMPLETYPE_BYTES_RECEIVED', index=4, number=202,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=45,
-  serialized_end=235,
-)
-_sym_db.RegisterEnumDescriptor(_KPISAMPLETYPE)
-
-KpiSampleType = enum_type_wrapper.EnumTypeWrapper(_KPISAMPLETYPE)
-KPISAMPLETYPE_UNKNOWN = 0
-KPISAMPLETYPE_PACKETS_TRANSMITTED = 101
-KPISAMPLETYPE_PACKETS_RECEIVED = 102
-KPISAMPLETYPE_BYTES_TRANSMITTED = 201
-KPISAMPLETYPE_BYTES_RECEIVED = 202
-
-
-DESCRIPTOR.enum_types_by_name['KpiSampleType'] = _KPISAMPLETYPE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-
-# @@protoc_insertion_point(module_scope)
diff --git a/src/l3_attackmitigator/proto/l3_attackmitigator_pb2.py b/src/l3_attackmitigator/proto/l3_attackmitigator_pb2.py
deleted file mode 100644
index e148d0a2cfda7b7ea00b40218dcfe3dcb70f1f8f..0000000000000000000000000000000000000000
--- a/src/l3_attackmitigator/proto/l3_attackmitigator_pb2.py
+++ /dev/null
@@ -1,178 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: l3_attackmitigator.proto
-"""Generated protocol buffer code."""
-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 . import context_pb2 as context__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='l3_attackmitigator.proto',
-  package='',
-  syntax='proto3',
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x18l3_attackmitigator.proto\x1a\rcontext.proto\"\xd5\x01\n\x17L3AttackmitigatorOutput\x12\x12\n\nconfidence\x18\x01 \x01(\x02\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x0c\n\x04ip_o\x18\x03 \x01(\t\x12\x10\n\x08tag_name\x18\x04 \x01(\t\x12\x0b\n\x03tag\x18\x05 \x01(\x05\x12\x0f\n\x07\x66low_id\x18\x06 \x01(\t\x12\x10\n\x08protocol\x18\x07 \x01(\t\x12\x0e\n\x06port_d\x18\x08 \x01(\t\x12\r\n\x05ml_id\x18\t \x01(\t\x12\x12\n\ntime_start\x18\n \x01(\x02\x12\x10\n\x08time_end\x18\x0b \x01(\x02\x32\x80\x01\n\x11L3Attackmitigator\x12\x38\n\nSendOutput\x12\x18.L3AttackmitigatorOutput\x1a\x0e.context.Empty\"\x00\x12\x31\n\rGetMitigation\x12\x0e.context.Empty\x1a\x0e.context.Empty\"\x00\x62\x06proto3'
-  ,
-  dependencies=[context__pb2.DESCRIPTOR,])
-
-
-
-
-_L3ATTACKMITIGATOROUTPUT = _descriptor.Descriptor(
-  name='L3AttackmitigatorOutput',
-  full_name='L3AttackmitigatorOutput',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='confidence', full_name='L3AttackmitigatorOutput.confidence', index=0,
-      number=1, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='timestamp', full_name='L3AttackmitigatorOutput.timestamp', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ip_o', full_name='L3AttackmitigatorOutput.ip_o', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='tag_name', full_name='L3AttackmitigatorOutput.tag_name', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='tag', full_name='L3AttackmitigatorOutput.tag', index=4,
-      number=5, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='flow_id', full_name='L3AttackmitigatorOutput.flow_id', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='protocol', full_name='L3AttackmitigatorOutput.protocol', index=6,
-      number=7, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='port_d', full_name='L3AttackmitigatorOutput.port_d', index=7,
-      number=8, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ml_id', full_name='L3AttackmitigatorOutput.ml_id', index=8,
-      number=9, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='time_start', full_name='L3AttackmitigatorOutput.time_start', index=9,
-      number=10, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='time_end', full_name='L3AttackmitigatorOutput.time_end', index=10,
-      number=11, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=44,
-  serialized_end=257,
-)
-
-DESCRIPTOR.message_types_by_name['L3AttackmitigatorOutput'] = _L3ATTACKMITIGATOROUTPUT
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-L3AttackmitigatorOutput = _reflection.GeneratedProtocolMessageType('L3AttackmitigatorOutput', (_message.Message,), {
-  'DESCRIPTOR' : _L3ATTACKMITIGATOROUTPUT,
-  '__module__' : 'l3_attackmitigator_pb2'
-  # @@protoc_insertion_point(class_scope:L3AttackmitigatorOutput)
-  })
-_sym_db.RegisterMessage(L3AttackmitigatorOutput)
-
-
-
-_L3ATTACKMITIGATOR = _descriptor.ServiceDescriptor(
-  name='L3Attackmitigator',
-  full_name='L3Attackmitigator',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=260,
-  serialized_end=388,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='SendOutput',
-    full_name='L3Attackmitigator.SendOutput',
-    index=0,
-    containing_service=None,
-    input_type=_L3ATTACKMITIGATOROUTPUT,
-    output_type=context__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetMitigation',
-    full_name='L3Attackmitigator.GetMitigation',
-    index=1,
-    containing_service=None,
-    input_type=context__pb2._EMPTY,
-    output_type=context__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_L3ATTACKMITIGATOR)
-
-DESCRIPTOR.services_by_name['L3Attackmitigator'] = _L3ATTACKMITIGATOR
-
-# @@protoc_insertion_point(module_scope)
diff --git a/src/l3_attackmitigator/proto/l3_attackmitigator_pb2_grpc.py b/src/l3_attackmitigator/proto/l3_attackmitigator_pb2_grpc.py
deleted file mode 100644
index 25d4afdbad81390589992b48374eb2226a31647e..0000000000000000000000000000000000000000
--- a/src/l3_attackmitigator/proto/l3_attackmitigator_pb2_grpc.py
+++ /dev/null
@@ -1,102 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-from . import context_pb2 as context__pb2
-from . import l3_attackmitigator_pb2 as l3__attackmitigator__pb2
-
-
-class L3AttackmitigatorStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.SendOutput = channel.unary_unary(
-                '/L3Attackmitigator/SendOutput',
-                request_serializer=l3__attackmitigator__pb2.L3AttackmitigatorOutput.SerializeToString,
-                response_deserializer=context__pb2.Empty.FromString,
-                )
-        self.GetMitigation = channel.unary_unary(
-                '/L3Attackmitigator/GetMitigation',
-                request_serializer=context__pb2.Empty.SerializeToString,
-                response_deserializer=context__pb2.Empty.FromString,
-                )
-
-
-class L3AttackmitigatorServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def SendOutput(self, request, context):
-        """Sends a greeting
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetMitigation(self, request, context):
-        """Sends another greeting
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_L3AttackmitigatorServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'SendOutput': grpc.unary_unary_rpc_method_handler(
-                    servicer.SendOutput,
-                    request_deserializer=l3__attackmitigator__pb2.L3AttackmitigatorOutput.FromString,
-                    response_serializer=context__pb2.Empty.SerializeToString,
-            ),
-            'GetMitigation': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetMitigation,
-                    request_deserializer=context__pb2.Empty.FromString,
-                    response_serializer=context__pb2.Empty.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'L3Attackmitigator', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class L3Attackmitigator(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def SendOutput(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, '/L3Attackmitigator/SendOutput',
-            l3__attackmitigator__pb2.L3AttackmitigatorOutput.SerializeToString,
-            context__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetMitigation(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, '/L3Attackmitigator/GetMitigation',
-            context__pb2.Empty.SerializeToString,
-            context__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/src/l3_attackmitigator/requirements.in b/src/l3_attackmitigator/requirements.in
index ede9c839d93cc377e93c525bc1e85243576faa00..772ae923931c8b09917e75a600ce2b5a0d2d4ecf 100644
--- a/src/l3_attackmitigator/requirements.in
+++ b/src/l3_attackmitigator/requirements.in
@@ -1,9 +1 @@
-grpcio-health-checking
-grpcio
-grpcio-tools
-prometheus-client
-pytest
-pytest-benchmark
-numpy
-scikit-learn
-coverage
\ No newline at end of file
+# no extra dependency
diff --git a/src/l3_attackmitigator/service/l3_attackmitigatorService.py b/src/l3_attackmitigator/service/l3_attackmitigatorService.py
index ae52d6285c74e121f6062c42de69597d05c37b45..2ce7f93169430d586ba33a03f03918966c8dcc7b 100644
--- a/src/l3_attackmitigator/service/l3_attackmitigatorService.py
+++ b/src/l3_attackmitigator/service/l3_attackmitigatorService.py
@@ -18,7 +18,7 @@ from concurrent import futures
 from grpc_health.v1.health import HealthServicer, OVERALL_HEALTH
 from grpc_health.v1.health_pb2 import HealthCheckResponse
 from grpc_health.v1.health_pb2_grpc import add_HealthServicer_to_server
-from l3_attackmitigator.proto.l3_attackmitigator_pb2_grpc import (
+from common.proto.l3_attackmitigator_pb2_grpc import (
     add_L3AttackmitigatorServicer_to_server,
 )
 from l3_attackmitigator.service.l3_attackmitigatorServiceServicerImpl import (
diff --git a/src/l3_attackmitigator/service/l3_attackmitigatorServiceServicerImpl.py b/src/l3_attackmitigator/service/l3_attackmitigatorServiceServicerImpl.py
index 6e74cd455b8a166802f2a1f781451a0aa5e743ca..8664704524ecef779235af3ca3dc765af7af4898 100644
--- a/src/l3_attackmitigator/service/l3_attackmitigatorServiceServicerImpl.py
+++ b/src/l3_attackmitigator/service/l3_attackmitigatorServiceServicerImpl.py
@@ -14,10 +14,10 @@
 
 from __future__ import print_function
 import logging
-from l3_attackmitigator.proto.l3_attackmitigator_pb2 import (
+from common.proto.l3_attackmitigator_pb2 import (
     EmptyMitigator
 )
-from l3_attackmitigator.proto.l3_attackmitigator_pb2_grpc import (
+from common.proto.l3_attackmitigator_pb2_grpc import (
     L3AttackmitigatorServicer,
 )
 
diff --git a/src/l3_attackmitigator/tests/test_unitary.py b/src/l3_attackmitigator/tests/test_unitary.py
index 7a33cbd8a29c8d64ca468ac366d38bdc7199aacd..14d43edaff85da0e2597c55557dde74dbaae32aa 100644
--- a/src/l3_attackmitigator/tests/test_unitary.py
+++ b/src/l3_attackmitigator/tests/test_unitary.py
@@ -17,7 +17,7 @@ import pytest
 from l3_attackmitigator.Config import GRPC_SERVICE_PORT, GRPC_MAX_WORKERS, GRPC_GRACE_PERIOD
 from l3_attackmitigator.client.l3_attackmitigatorClient import l3_attackmitigatorClient
 from l3_attackmitigator.service.l3_attackmitigatorService import l3_attackmitigatorService
-from l3_attackmitigator.proto.l3_attackmitigator_pb2 import (
+from common.proto.l3_attackmitigator_pb2 import (
     Output,
 )
 
diff --git a/src/l3_centralizedattackdetector/.gitlab-ci.yml b/src/l3_centralizedattackdetector/.gitlab-ci.yml
index ca95af8816ce01b433d462a5d09d8ef14776734f..073b7925c7f7c39e1a44766fc21167236875877d 100644
--- a/src/l3_centralizedattackdetector/.gitlab-ci.yml
+++ b/src/l3_centralizedattackdetector/.gitlab-ci.yml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Build, tag, and push the Docker images to the GitLab Docker registry
+# Build, tag, and push the Docker image to the GitLab Docker registry
 build l3_centralizedattackdetector:
   variables:
     IMAGE_NAME: 'l3_centralizedattackdetector' # name of the microservice
@@ -21,22 +21,24 @@ build l3_centralizedattackdetector:
   before_script:
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
   script:
-    - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile ./src/
+    - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile .
     - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
     - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
   after_script:
     - docker images --filter="dangling=true" --quiet | xargs -r docker rmi
   rules:
     - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
-    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' 
+    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"'
     - changes:
+      - src/common/**/*.py
+      - proto/*.proto
       - src/$IMAGE_NAME/**/*.{py,in,yml}
       - src/$IMAGE_NAME/Dockerfile
       - src/$IMAGE_NAME/tests/*.py
       - manifests/${IMAGE_NAME}service.yaml
       - .gitlab-ci.yml
 
-# Pull, execute, and run unitary tests for the Docker image from the GitLab registry
+# Apply unit test to the component
 unit test l3_centralizedattackdetector:
   variables:
     IMAGE_NAME: 'l3_centralizedattackdetector' # name of the microservice
@@ -46,7 +48,7 @@ unit test l3_centralizedattackdetector:
     - build l3_centralizedattackdetector
   before_script:
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
-    - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi  
+    - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi
     - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi
   script:
     - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
@@ -62,8 +64,10 @@ unit test l3_centralizedattackdetector:
     - docker network rm teraflowbridge
   rules:
     - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
-    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' 
+    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"'
     - changes:
+      - src/common/**/*.py
+      - proto/*.proto
       - src/$IMAGE_NAME/**/*.{py,in,yml}
       - src/$IMAGE_NAME/Dockerfile
       - src/$IMAGE_NAME/tests/*.py
diff --git a/src/l3_centralizedattackdetector/Dockerfile b/src/l3_centralizedattackdetector/Dockerfile
index 6a52cda86e9de16213bc058a0ffeeba04f85f6f9..3db5c2b4d7e4020b727d0d3f9b106f9c4af2e6b6 100644
--- a/src/l3_centralizedattackdetector/Dockerfile
+++ b/src/l3_centralizedattackdetector/Dockerfile
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM python:3-slim
+FROM python:3.9-slim
 
 # Install dependencies
 RUN apt-get --yes --quiet --quiet update && \
@@ -28,22 +28,41 @@ RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \
     chmod +x /bin/grpc_health_probe
 
 # Get generic Python packages
-RUN python3 -m pip install --upgrade pip setuptools wheel pip-tools
+RUN python3 -m pip install --upgrade pip
+RUN python3 -m pip install --upgrade setuptools wheel
+RUN python3 -m pip install --upgrade pip-tools
 
-# Set working directory
+# Get common Python packages
+# Note: this step enables sharing the previous Docker build steps among all the Python components
 WORKDIR /var/teraflow
+COPY common_requirements.in common_requirements.in
+RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in
+RUN python3 -m pip install -r common_requirements.txt
 
-# Create module sub-folders
-RUN mkdir -p /var/teraflow/l3_centralizedattackdetector
+# Add common files into working directory
+WORKDIR /var/teraflow/common
+COPY src/common/. ./
+RUN rm -rf proto
+
+# Create proto sub-folder, copy .proto files, and generate Python code
+RUN mkdir -p /var/teraflow/common/proto
+WORKDIR /var/teraflow/common/proto
+RUN touch __init__.py
+COPY proto/*.proto ./
+RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto
+RUN rm *.proto
+RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \;
 
-# Get Python packages per module
-COPY l3_centralizedattackdetector/requirements.in l3_centralizedattackdetector/requirements.in
-RUN pip-compile --output-file=l3_centralizedattackdetector/requirements.txt l3_centralizedattackdetector/requirements.in
-RUN python3 -m pip install -r l3_centralizedattackdetector/requirements.in
+# Create component sub-folders, get specific Python packages
+RUN mkdir -p /var/teraflow/l3_centralizedattackdetector
+WORKDIR /var/teraflow/l3_centralizedattackdetector
+COPY src/l3_centralizedattackdetector/requirements.in requirements.in
+RUN pip-compile --quiet --output-file=requirements.txt requirements.in
+RUN python3 -m pip install -r requirements.txt
 
-# Add files into working directory
-COPY common/. common
-COPY l3_centralizedattackdetector/. l3_centralizedattackdetector
+# Add component files into working directory
+WORKDIR /var/teraflow
+COPY src/l3_centralizedattackdetector/. l3_centralizedattackdetector
 
-# Start service service
+# Start the service
 ENTRYPOINT ["python", "-m", "l3_centralizedattackdetector.service"]
diff --git a/src/l3_centralizedattackdetector/client/l3_centralizedattackdetectorClient.py b/src/l3_centralizedattackdetector/client/l3_centralizedattackdetectorClient.py
index b5181d63e02bcb77ec92e8c53374b38cb4bc72d3..3a159503c1c2d6b7387122430f1d36b77cd3ff78 100644
--- a/src/l3_centralizedattackdetector/client/l3_centralizedattackdetectorClient.py
+++ b/src/l3_centralizedattackdetector/client/l3_centralizedattackdetectorClient.py
@@ -14,10 +14,10 @@
 
 import grpc, logging
 from common.tools.client.RetryDecorator import retry, delay_exponential
-from l3_centralizedattackdetector.proto.l3_centralizedattackdetector_pb2_grpc import (
+from common.proto.l3_centralizedattackdetector_pb2_grpc import (
     L3CentralizedattackdetectorStub,
 )
-from l3_centralizedattackdetector.proto.l3_centralizedattackdetector_pb2 import (
+from common.proto.l3_centralizedattackdetector_pb2 import (
     Empty,
     ModelInput,
     ModelOutput
diff --git a/src/l3_centralizedattackdetector/genproto.sh b/src/l3_centralizedattackdetector/genproto.sh
deleted file mode 100755
index 54b16a486f893938a4970c5c28f80505dec5fc40..0000000000000000000000000000000000000000
--- a/src/l3_centralizedattackdetector/genproto.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/bash -eu
-#
-# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Make folder containing the script the root folder for its execution
-cd $(dirname $0)
-
-rm -rf proto/*.py
-rm -rf proto/__pycache__
-tee proto/__init__.py << EOF > /dev/null
-# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-EOF
-
-python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto context.proto
-python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto kpi_sample_types.proto
-python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto l3_attackmitigator.proto
-python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto l3_centralizedattackdetector.proto
-
-rm proto/context_pb2_grpc.py
-rm proto/kpi_sample_types_pb2_grpc.py
-rm proto/l3_attackmitigator_pb2_grpc.py
-
-sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/context_pb2.py
-sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/kpi_sample_types_pb2.py
-sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_centralizedattackdetector_pb2.py
-sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_centralizedattackdetector_pb2_grpc.py
-sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_attackmitigator_pb2.py
diff --git a/src/l3_centralizedattackdetector/proto/__init__.py b/src/l3_centralizedattackdetector/proto/__init__.py
deleted file mode 100644
index 70a33251242c51f49140e596b8208a19dd5245f7..0000000000000000000000000000000000000000
--- a/src/l3_centralizedattackdetector/proto/__init__.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
diff --git a/src/l3_centralizedattackdetector/proto/context_pb2.py b/src/l3_centralizedattackdetector/proto/context_pb2.py
deleted file mode 100644
index 50d501d3ac053ad644554331af26e3c40cd426a1..0000000000000000000000000000000000000000
--- a/src/l3_centralizedattackdetector/proto/context_pb2.py
+++ /dev/null
@@ -1,3071 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: context.proto
-"""Generated protocol buffer code."""
-from google.protobuf.internal import enum_type_wrapper
-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 . import kpi_sample_types_pb2 as kpi__sample__types__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='context.proto',
-  package='context',
-  syntax='proto3',
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\rcontext.proto\x12\x07\x63ontext\x1a\x16kpi_sample_types.proto\"\x07\n\x05\x45mpty\"\x14\n\x04Uuid\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"F\n\x05\x45vent\x12\x11\n\ttimestamp\x18\x01 \x01(\x01\x12*\n\nevent_type\x18\x02 \x01(\x0e\x32\x16.context.EventTypeEnum\"0\n\tContextId\x12#\n\x0c\x63ontext_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\xb6\x01\n\x07\x43ontext\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12)\n\x0ctopology_ids\x18\x02 \x03(\x0b\x32\x13.context.TopologyId\x12\'\n\x0bservice_ids\x18\x03 \x03(\x0b\x32\x12.context.ServiceId\x12/\n\ncontroller\x18\x04 \x01(\x0b\x32\x1b.context.TeraFlowController\"8\n\rContextIdList\x12\'\n\x0b\x63ontext_ids\x18\x01 \x03(\x0b\x32\x12.context.ContextId\"1\n\x0b\x43ontextList\x12\"\n\x08\x63ontexts\x18\x01 \x03(\x0b\x32\x10.context.Context\"U\n\x0c\x43ontextEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12&\n\ncontext_id\x18\x02 \x01(\x0b\x32\x12.context.ContextId\"Z\n\nTopologyId\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12$\n\rtopology_uuid\x18\x02 \x01(\x0b\x32\r.context.Uuid\"~\n\x08Topology\x12(\n\x0btopology_id\x18\x01 \x01(\x0b\x32\x13.context.TopologyId\x12%\n\ndevice_ids\x18\x02 \x03(\x0b\x32\x11.context.DeviceId\x12!\n\x08link_ids\x18\x03 \x03(\x0b\x32\x0f.context.LinkId\";\n\x0eTopologyIdList\x12)\n\x0ctopology_ids\x18\x01 \x03(\x0b\x32\x13.context.TopologyId\"5\n\x0cTopologyList\x12%\n\ntopologies\x18\x01 \x03(\x0b\x32\x11.context.Topology\"X\n\rTopologyEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12(\n\x0btopology_id\x18\x02 \x01(\x0b\x32\x13.context.TopologyId\".\n\x08\x44\x65viceId\x12\"\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\x9a\x02\n\x06\x44\x65vice\x12$\n\tdevice_id\x18\x01 \x01(\x0b\x32\x11.context.DeviceId\x12\x13\n\x0b\x64\x65vice_type\x18\x02 \x01(\t\x12,\n\rdevice_config\x18\x03 \x01(\x0b\x32\x15.context.DeviceConfig\x12G\n\x19\x64\x65vice_operational_status\x18\x04 \x01(\x0e\x32$.context.DeviceOperationalStatusEnum\x12\x31\n\x0e\x64\x65vice_drivers\x18\x05 \x03(\x0e\x32\x19.context.DeviceDriverEnum\x12+\n\x10\x64\x65vice_endpoints\x18\x06 \x03(\x0b\x32\x11.context.EndPoint\"9\n\x0c\x44\x65viceConfig\x12)\n\x0c\x63onfig_rules\x18\x01 \x03(\x0b\x32\x13.context.ConfigRule\"5\n\x0c\x44\x65viceIdList\x12%\n\ndevice_ids\x18\x01 \x03(\x0b\x32\x11.context.DeviceId\".\n\nDeviceList\x12 \n\x07\x64\x65vices\x18\x01 \x03(\x0b\x32\x0f.context.Device\"R\n\x0b\x44\x65viceEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\"*\n\x06LinkId\x12 \n\tlink_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"X\n\x04Link\x12 \n\x07link_id\x18\x01 \x01(\x0b\x32\x0f.context.LinkId\x12.\n\x11link_endpoint_ids\x18\x02 \x03(\x0b\x32\x13.context.EndPointId\"/\n\nLinkIdList\x12!\n\x08link_ids\x18\x01 \x03(\x0b\x32\x0f.context.LinkId\"(\n\x08LinkList\x12\x1c\n\x05links\x18\x01 \x03(\x0b\x32\r.context.Link\"L\n\tLinkEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12 \n\x07link_id\x18\x02 \x01(\x0b\x32\x0f.context.LinkId\"X\n\tServiceId\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12#\n\x0cservice_uuid\x18\x02 \x01(\x0b\x32\r.context.Uuid\"\xa6\x02\n\x07Service\x12&\n\nservice_id\x18\x01 \x01(\x0b\x32\x12.context.ServiceId\x12.\n\x0cservice_type\x18\x02 \x01(\x0e\x32\x18.context.ServiceTypeEnum\x12\x31\n\x14service_endpoint_ids\x18\x03 \x03(\x0b\x32\x13.context.EndPointId\x12\x30\n\x13service_constraints\x18\x04 \x03(\x0b\x32\x13.context.Constraint\x12.\n\x0eservice_status\x18\x05 \x01(\x0b\x32\x16.context.ServiceStatus\x12.\n\x0eservice_config\x18\x06 \x01(\x0b\x32\x16.context.ServiceConfig\"C\n\rServiceStatus\x12\x32\n\x0eservice_status\x18\x01 \x01(\x0e\x32\x1a.context.ServiceStatusEnum\":\n\rServiceConfig\x12)\n\x0c\x63onfig_rules\x18\x01 \x03(\x0b\x32\x13.context.ConfigRule\"8\n\rServiceIdList\x12\'\n\x0bservice_ids\x18\x01 \x03(\x0b\x32\x12.context.ServiceId\"1\n\x0bServiceList\x12\"\n\x08services\x18\x01 \x03(\x0b\x32\x10.context.Service\"U\n\x0cServiceEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12&\n\nservice_id\x18\x02 \x01(\x0b\x32\x12.context.ServiceId\"T\n\x07SliceId\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12!\n\nslice_uuid\x18\x02 \x01(\x0b\x32\r.context.Uuid\"\x95\x02\n\x05Slice\x12\"\n\x08slice_id\x18\x01 \x01(\x0b\x32\x10.context.SliceId\x12/\n\x12slice_endpoint_ids\x18\x02 \x03(\x0b\x32\x13.context.EndPointId\x12.\n\x11slice_constraints\x18\x03 \x03(\x0b\x32\x13.context.Constraint\x12-\n\x11slice_service_ids\x18\x04 \x03(\x0b\x32\x12.context.ServiceId\x12,\n\x12slice_subslice_ids\x18\x05 \x03(\x0b\x32\x10.context.SliceId\x12*\n\x0cslice_status\x18\x06 \x01(\x0b\x32\x14.context.SliceStatus\"=\n\x0bSliceStatus\x12.\n\x0cslice_status\x18\x01 \x01(\x0e\x32\x18.context.SliceStatusEnum\"2\n\x0bSliceIdList\x12#\n\tslice_ids\x18\x01 \x03(\x0b\x32\x10.context.SliceId\"+\n\tSliceList\x12\x1e\n\x06slices\x18\x01 \x03(\x0b\x32\x0e.context.Slice\"O\n\nSliceEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12\"\n\x08slice_id\x18\x02 \x01(\x0b\x32\x10.context.SliceId\"6\n\x0c\x43onnectionId\x12&\n\x0f\x63onnection_uuid\x18\x01 \x01(\x0b\x32\r.context.Uuid\"\xc4\x01\n\nConnection\x12,\n\rconnection_id\x18\x01 \x01(\x0b\x32\x15.context.ConnectionId\x12&\n\nservice_id\x18\x02 \x01(\x0b\x32\x12.context.ServiceId\x12\x33\n\x16path_hops_endpoint_ids\x18\x03 \x03(\x0b\x32\x13.context.EndPointId\x12+\n\x0fsub_service_ids\x18\x04 \x03(\x0b\x32\x12.context.ServiceId\"A\n\x10\x43onnectionIdList\x12-\n\x0e\x63onnection_ids\x18\x01 \x03(\x0b\x32\x15.context.ConnectionId\":\n\x0e\x43onnectionList\x12(\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32\x13.context.Connection\"^\n\x0f\x43onnectionEvent\x12\x1d\n\x05\x65vent\x18\x01 \x01(\x0b\x32\x0e.context.Event\x12,\n\rconnection_id\x18\x02 \x01(\x0b\x32\x15.context.ConnectionId\"\x82\x01\n\nEndPointId\x12(\n\x0btopology_id\x18\x01 \x01(\x0b\x32\x13.context.TopologyId\x12$\n\tdevice_id\x18\x02 \x01(\x0b\x32\x11.context.DeviceId\x12$\n\rendpoint_uuid\x18\x03 \x01(\x0b\x32\r.context.Uuid\"\x86\x01\n\x08\x45ndPoint\x12(\n\x0b\x65ndpoint_id\x18\x01 \x01(\x0b\x32\x13.context.EndPointId\x12\x15\n\rendpoint_type\x18\x02 \x01(\t\x12\x39\n\x10kpi_sample_types\x18\x03 \x03(\x0e\x32\x1f.kpi_sample_types.KpiSampleType\"e\n\nConfigRule\x12)\n\x06\x61\x63tion\x18\x01 \x01(\x0e\x32\x19.context.ConfigActionEnum\x12\x14\n\x0cresource_key\x18\x02 \x01(\t\x12\x16\n\x0eresource_value\x18\x03 \x01(\t\"?\n\nConstraint\x12\x17\n\x0f\x63onstraint_type\x18\x01 \x01(\t\x12\x18\n\x10\x63onstraint_value\x18\x02 \x01(\t\"^\n\x12TeraFlowController\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12\x12\n\nip_address\x18\x02 \x01(\t\x12\x0c\n\x04port\x18\x03 \x01(\r\"U\n\x14\x41uthenticationResult\x12&\n\ncontext_id\x18\x01 \x01(\x0b\x32\x12.context.ContextId\x12\x15\n\rauthenticated\x18\x02 \x01(\x08*j\n\rEventTypeEnum\x12\x17\n\x13\x45VENTTYPE_UNDEFINED\x10\x00\x12\x14\n\x10\x45VENTTYPE_CREATE\x10\x01\x12\x14\n\x10\x45VENTTYPE_UPDATE\x10\x02\x12\x14\n\x10\x45VENTTYPE_REMOVE\x10\x03*\xc5\x01\n\x10\x44\x65viceDriverEnum\x12\x1a\n\x16\x44\x45VICEDRIVER_UNDEFINED\x10\x00\x12\x1b\n\x17\x44\x45VICEDRIVER_OPENCONFIG\x10\x01\x12\x1e\n\x1a\x44\x45VICEDRIVER_TRANSPORT_API\x10\x02\x12\x13\n\x0f\x44\x45VICEDRIVER_P4\x10\x03\x12&\n\"DEVICEDRIVER_IETF_NETWORK_TOPOLOGY\x10\x04\x12\x1b\n\x17\x44\x45VICEDRIVER_ONF_TR_352\x10\x05*\x8f\x01\n\x1b\x44\x65viceOperationalStatusEnum\x12%\n!DEVICEOPERATIONALSTATUS_UNDEFINED\x10\x00\x12$\n DEVICEOPERATIONALSTATUS_DISABLED\x10\x01\x12#\n\x1f\x44\x45VICEOPERATIONALSTATUS_ENABLED\x10\x02*\x81\x01\n\x0fServiceTypeEnum\x12\x17\n\x13SERVICETYPE_UNKNOWN\x10\x00\x12\x14\n\x10SERVICETYPE_L3NM\x10\x01\x12\x14\n\x10SERVICETYPE_L2NM\x10\x02\x12)\n%SERVICETYPE_TAPI_CONNECTIVITY_SERVICE\x10\x03*\x88\x01\n\x11ServiceStatusEnum\x12\x1b\n\x17SERVICESTATUS_UNDEFINED\x10\x00\x12\x19\n\x15SERVICESTATUS_PLANNED\x10\x01\x12\x18\n\x14SERVICESTATUS_ACTIVE\x10\x02\x12!\n\x1dSERVICESTATUS_PENDING_REMOVAL\x10\x03*\x8b\x01\n\x0fSliceStatusEnum\x12\x19\n\x15SLICESTATUS_UNDEFINED\x10\x00\x12\x17\n\x13SLICESTATUS_PLANNED\x10\x01\x12\x14\n\x10SLICESTATUS_INIT\x10\x02\x12\x16\n\x12SLICESTATUS_ACTIVE\x10\x03\x12\x16\n\x12SLICESTATUS_DEINIT\x10\x04*]\n\x10\x43onfigActionEnum\x12\x1a\n\x16\x43ONFIGACTION_UNDEFINED\x10\x00\x12\x14\n\x10\x43ONFIGACTION_SET\x10\x01\x12\x17\n\x13\x43ONFIGACTION_DELETE\x10\x02\x32\xef\x12\n\x0e\x43ontextService\x12:\n\x0eListContextIds\x12\x0e.context.Empty\x1a\x16.context.ContextIdList\"\x00\x12\x36\n\x0cListContexts\x12\x0e.context.Empty\x1a\x14.context.ContextList\"\x00\x12\x34\n\nGetContext\x12\x12.context.ContextId\x1a\x10.context.Context\"\x00\x12\x34\n\nSetContext\x12\x10.context.Context\x1a\x12.context.ContextId\"\x00\x12\x35\n\rRemoveContext\x12\x12.context.ContextId\x1a\x0e.context.Empty\"\x00\x12=\n\x10GetContextEvents\x12\x0e.context.Empty\x1a\x15.context.ContextEvent\"\x00\x30\x01\x12@\n\x0fListTopologyIds\x12\x12.context.ContextId\x1a\x17.context.TopologyIdList\"\x00\x12=\n\x0eListTopologies\x12\x12.context.ContextId\x1a\x15.context.TopologyList\"\x00\x12\x37\n\x0bGetTopology\x12\x13.context.TopologyId\x1a\x11.context.Topology\"\x00\x12\x37\n\x0bSetTopology\x12\x11.context.Topology\x1a\x13.context.TopologyId\"\x00\x12\x37\n\x0eRemoveTopology\x12\x13.context.TopologyId\x1a\x0e.context.Empty\"\x00\x12?\n\x11GetTopologyEvents\x12\x0e.context.Empty\x1a\x16.context.TopologyEvent\"\x00\x30\x01\x12\x38\n\rListDeviceIds\x12\x0e.context.Empty\x1a\x15.context.DeviceIdList\"\x00\x12\x34\n\x0bListDevices\x12\x0e.context.Empty\x1a\x13.context.DeviceList\"\x00\x12\x31\n\tGetDevice\x12\x11.context.DeviceId\x1a\x0f.context.Device\"\x00\x12\x31\n\tSetDevice\x12\x0f.context.Device\x1a\x11.context.DeviceId\"\x00\x12\x33\n\x0cRemoveDevice\x12\x11.context.DeviceId\x1a\x0e.context.Empty\"\x00\x12;\n\x0fGetDeviceEvents\x12\x0e.context.Empty\x1a\x14.context.DeviceEvent\"\x00\x30\x01\x12\x34\n\x0bListLinkIds\x12\x0e.context.Empty\x1a\x13.context.LinkIdList\"\x00\x12\x30\n\tListLinks\x12\x0e.context.Empty\x1a\x11.context.LinkList\"\x00\x12+\n\x07GetLink\x12\x0f.context.LinkId\x1a\r.context.Link\"\x00\x12+\n\x07SetLink\x12\r.context.Link\x1a\x0f.context.LinkId\"\x00\x12/\n\nRemoveLink\x12\x0f.context.LinkId\x1a\x0e.context.Empty\"\x00\x12\x37\n\rGetLinkEvents\x12\x0e.context.Empty\x1a\x12.context.LinkEvent\"\x00\x30\x01\x12>\n\x0eListServiceIds\x12\x12.context.ContextId\x1a\x16.context.ServiceIdList\"\x00\x12:\n\x0cListServices\x12\x12.context.ContextId\x1a\x14.context.ServiceList\"\x00\x12\x34\n\nGetService\x12\x12.context.ServiceId\x1a\x10.context.Service\"\x00\x12\x34\n\nSetService\x12\x10.context.Service\x1a\x12.context.ServiceId\"\x00\x12\x35\n\rRemoveService\x12\x12.context.ServiceId\x1a\x0e.context.Empty\"\x00\x12=\n\x10GetServiceEvents\x12\x0e.context.Empty\x1a\x15.context.ServiceEvent\"\x00\x30\x01\x12:\n\x0cListSliceIds\x12\x12.context.ContextId\x1a\x14.context.SliceIdList\"\x00\x12\x36\n\nListSlices\x12\x12.context.ContextId\x1a\x12.context.SliceList\"\x00\x12.\n\x08GetSlice\x12\x10.context.SliceId\x1a\x0e.context.Slice\"\x00\x12.\n\x08SetSlice\x12\x0e.context.Slice\x1a\x10.context.SliceId\"\x00\x12\x31\n\x0bRemoveSlice\x12\x10.context.SliceId\x1a\x0e.context.Empty\"\x00\x12\x39\n\x0eGetSliceEvents\x12\x0e.context.Empty\x1a\x13.context.SliceEvent\"\x00\x30\x01\x12\x44\n\x11ListConnectionIds\x12\x12.context.ServiceId\x1a\x19.context.ConnectionIdList\"\x00\x12@\n\x0fListConnections\x12\x12.context.ServiceId\x1a\x17.context.ConnectionList\"\x00\x12=\n\rGetConnection\x12\x15.context.ConnectionId\x1a\x13.context.Connection\"\x00\x12=\n\rSetConnection\x12\x13.context.Connection\x1a\x15.context.ConnectionId\"\x00\x12;\n\x10RemoveConnection\x12\x15.context.ConnectionId\x1a\x0e.context.Empty\"\x00\x12\x43\n\x13GetConnectionEvents\x12\x0e.context.Empty\x1a\x18.context.ConnectionEvent\"\x00\x30\x01\x62\x06proto3'
-  ,
-  dependencies=[kpi__sample__types__pb2.DESCRIPTOR,])
-
-_EVENTTYPEENUM = _descriptor.EnumDescriptor(
-  name='EventTypeEnum',
-  full_name='context.EventTypeEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='EVENTTYPE_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENTTYPE_CREATE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENTTYPE_UPDATE', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENTTYPE_REMOVE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4310,
-  serialized_end=4416,
-)
-_sym_db.RegisterEnumDescriptor(_EVENTTYPEENUM)
-
-EventTypeEnum = enum_type_wrapper.EnumTypeWrapper(_EVENTTYPEENUM)
-_DEVICEDRIVERENUM = _descriptor.EnumDescriptor(
-  name='DeviceDriverEnum',
-  full_name='context.DeviceDriverEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEDRIVER_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEDRIVER_OPENCONFIG', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEDRIVER_TRANSPORT_API', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEDRIVER_P4', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEDRIVER_IETF_NETWORK_TOPOLOGY', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEDRIVER_ONF_TR_352', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4419,
-  serialized_end=4616,
-)
-_sym_db.RegisterEnumDescriptor(_DEVICEDRIVERENUM)
-
-DeviceDriverEnum = enum_type_wrapper.EnumTypeWrapper(_DEVICEDRIVERENUM)
-_DEVICEOPERATIONALSTATUSENUM = _descriptor.EnumDescriptor(
-  name='DeviceOperationalStatusEnum',
-  full_name='context.DeviceOperationalStatusEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEOPERATIONALSTATUS_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEOPERATIONALSTATUS_DISABLED', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICEOPERATIONALSTATUS_ENABLED', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4619,
-  serialized_end=4762,
-)
-_sym_db.RegisterEnumDescriptor(_DEVICEOPERATIONALSTATUSENUM)
-
-DeviceOperationalStatusEnum = enum_type_wrapper.EnumTypeWrapper(_DEVICEOPERATIONALSTATUSENUM)
-_SERVICETYPEENUM = _descriptor.EnumDescriptor(
-  name='ServiceTypeEnum',
-  full_name='context.ServiceTypeEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='SERVICETYPE_UNKNOWN', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERVICETYPE_L3NM', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERVICETYPE_L2NM', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERVICETYPE_TAPI_CONNECTIVITY_SERVICE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4765,
-  serialized_end=4894,
-)
-_sym_db.RegisterEnumDescriptor(_SERVICETYPEENUM)
-
-ServiceTypeEnum = enum_type_wrapper.EnumTypeWrapper(_SERVICETYPEENUM)
-_SERVICESTATUSENUM = _descriptor.EnumDescriptor(
-  name='ServiceStatusEnum',
-  full_name='context.ServiceStatusEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='SERVICESTATUS_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERVICESTATUS_PLANNED', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERVICESTATUS_ACTIVE', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERVICESTATUS_PENDING_REMOVAL', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4897,
-  serialized_end=5033,
-)
-_sym_db.RegisterEnumDescriptor(_SERVICESTATUSENUM)
-
-ServiceStatusEnum = enum_type_wrapper.EnumTypeWrapper(_SERVICESTATUSENUM)
-_SLICESTATUSENUM = _descriptor.EnumDescriptor(
-  name='SliceStatusEnum',
-  full_name='context.SliceStatusEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='SLICESTATUS_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SLICESTATUS_PLANNED', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SLICESTATUS_INIT', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SLICESTATUS_ACTIVE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SLICESTATUS_DEINIT', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=5036,
-  serialized_end=5175,
-)
-_sym_db.RegisterEnumDescriptor(_SLICESTATUSENUM)
-
-SliceStatusEnum = enum_type_wrapper.EnumTypeWrapper(_SLICESTATUSENUM)
-_CONFIGACTIONENUM = _descriptor.EnumDescriptor(
-  name='ConfigActionEnum',
-  full_name='context.ConfigActionEnum',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='CONFIGACTION_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='CONFIGACTION_SET', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='CONFIGACTION_DELETE', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=5177,
-  serialized_end=5270,
-)
-_sym_db.RegisterEnumDescriptor(_CONFIGACTIONENUM)
-
-ConfigActionEnum = enum_type_wrapper.EnumTypeWrapper(_CONFIGACTIONENUM)
-EVENTTYPE_UNDEFINED = 0
-EVENTTYPE_CREATE = 1
-EVENTTYPE_UPDATE = 2
-EVENTTYPE_REMOVE = 3
-DEVICEDRIVER_UNDEFINED = 0
-DEVICEDRIVER_OPENCONFIG = 1
-DEVICEDRIVER_TRANSPORT_API = 2
-DEVICEDRIVER_P4 = 3
-DEVICEDRIVER_IETF_NETWORK_TOPOLOGY = 4
-DEVICEDRIVER_ONF_TR_352 = 5
-DEVICEOPERATIONALSTATUS_UNDEFINED = 0
-DEVICEOPERATIONALSTATUS_DISABLED = 1
-DEVICEOPERATIONALSTATUS_ENABLED = 2
-SERVICETYPE_UNKNOWN = 0
-SERVICETYPE_L3NM = 1
-SERVICETYPE_L2NM = 2
-SERVICETYPE_TAPI_CONNECTIVITY_SERVICE = 3
-SERVICESTATUS_UNDEFINED = 0
-SERVICESTATUS_PLANNED = 1
-SERVICESTATUS_ACTIVE = 2
-SERVICESTATUS_PENDING_REMOVAL = 3
-SLICESTATUS_UNDEFINED = 0
-SLICESTATUS_PLANNED = 1
-SLICESTATUS_INIT = 2
-SLICESTATUS_ACTIVE = 3
-SLICESTATUS_DEINIT = 4
-CONFIGACTION_UNDEFINED = 0
-CONFIGACTION_SET = 1
-CONFIGACTION_DELETE = 2
-
-
-
-_EMPTY = _descriptor.Descriptor(
-  name='Empty',
-  full_name='context.Empty',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=50,
-  serialized_end=57,
-)
-
-
-_UUID = _descriptor.Descriptor(
-  name='Uuid',
-  full_name='context.Uuid',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='uuid', full_name='context.Uuid.uuid', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=59,
-  serialized_end=79,
-)
-
-
-_EVENT = _descriptor.Descriptor(
-  name='Event',
-  full_name='context.Event',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='timestamp', full_name='context.Event.timestamp', index=0,
-      number=1, type=1, cpp_type=5, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='event_type', full_name='context.Event.event_type', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=81,
-  serialized_end=151,
-)
-
-
-_CONTEXTID = _descriptor.Descriptor(
-  name='ContextId',
-  full_name='context.ContextId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_uuid', full_name='context.ContextId.context_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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=153,
-  serialized_end=201,
-)
-
-
-_CONTEXT = _descriptor.Descriptor(
-  name='Context',
-  full_name='context.Context',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.Context.context_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='topology_ids', full_name='context.Context.topology_ids', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_ids', full_name='context.Context.service_ids', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='controller', full_name='context.Context.controller', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=204,
-  serialized_end=386,
-)
-
-
-_CONTEXTIDLIST = _descriptor.Descriptor(
-  name='ContextIdList',
-  full_name='context.ContextIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_ids', full_name='context.ContextIdList.context_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=388,
-  serialized_end=444,
-)
-
-
-_CONTEXTLIST = _descriptor.Descriptor(
-  name='ContextList',
-  full_name='context.ContextList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='contexts', full_name='context.ContextList.contexts', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=446,
-  serialized_end=495,
-)
-
-
-_CONTEXTEVENT = _descriptor.Descriptor(
-  name='ContextEvent',
-  full_name='context.ContextEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.ContextEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.ContextEvent.context_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=497,
-  serialized_end=582,
-)
-
-
-_TOPOLOGYID = _descriptor.Descriptor(
-  name='TopologyId',
-  full_name='context.TopologyId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.TopologyId.context_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='topology_uuid', full_name='context.TopologyId.topology_uuid', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=584,
-  serialized_end=674,
-)
-
-
-_TOPOLOGY = _descriptor.Descriptor(
-  name='Topology',
-  full_name='context.Topology',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='topology_id', full_name='context.Topology.topology_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_ids', full_name='context.Topology.device_ids', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='link_ids', full_name='context.Topology.link_ids', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=676,
-  serialized_end=802,
-)
-
-
-_TOPOLOGYIDLIST = _descriptor.Descriptor(
-  name='TopologyIdList',
-  full_name='context.TopologyIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='topology_ids', full_name='context.TopologyIdList.topology_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=804,
-  serialized_end=863,
-)
-
-
-_TOPOLOGYLIST = _descriptor.Descriptor(
-  name='TopologyList',
-  full_name='context.TopologyList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='topologies', full_name='context.TopologyList.topologies', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=865,
-  serialized_end=918,
-)
-
-
-_TOPOLOGYEVENT = _descriptor.Descriptor(
-  name='TopologyEvent',
-  full_name='context.TopologyEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.TopologyEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='topology_id', full_name='context.TopologyEvent.topology_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=920,
-  serialized_end=1008,
-)
-
-
-_DEVICEID = _descriptor.Descriptor(
-  name='DeviceId',
-  full_name='context.DeviceId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='context.DeviceId.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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1010,
-  serialized_end=1056,
-)
-
-
-_DEVICE = _descriptor.Descriptor(
-  name='Device',
-  full_name='context.Device',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_id', full_name='context.Device.device_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_type', full_name='context.Device.device_type', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_config', full_name='context.Device.device_config', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_operational_status', full_name='context.Device.device_operational_status', index=3,
-      number=4, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_drivers', full_name='context.Device.device_drivers', index=4,
-      number=5, type=14, cpp_type=8, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_endpoints', full_name='context.Device.device_endpoints', index=5,
-      number=6, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1059,
-  serialized_end=1341,
-)
-
-
-_DEVICECONFIG = _descriptor.Descriptor(
-  name='DeviceConfig',
-  full_name='context.DeviceConfig',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='config_rules', full_name='context.DeviceConfig.config_rules', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1343,
-  serialized_end=1400,
-)
-
-
-_DEVICEIDLIST = _descriptor.Descriptor(
-  name='DeviceIdList',
-  full_name='context.DeviceIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_ids', full_name='context.DeviceIdList.device_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1402,
-  serialized_end=1455,
-)
-
-
-_DEVICELIST = _descriptor.Descriptor(
-  name='DeviceList',
-  full_name='context.DeviceList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='devices', full_name='context.DeviceList.devices', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1457,
-  serialized_end=1503,
-)
-
-
-_DEVICEEVENT = _descriptor.Descriptor(
-  name='DeviceEvent',
-  full_name='context.DeviceEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.DeviceEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_id', full_name='context.DeviceEvent.device_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1505,
-  serialized_end=1587,
-)
-
-
-_LINKID = _descriptor.Descriptor(
-  name='LinkId',
-  full_name='context.LinkId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='link_uuid', full_name='context.LinkId.link_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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1589,
-  serialized_end=1631,
-)
-
-
-_LINK = _descriptor.Descriptor(
-  name='Link',
-  full_name='context.Link',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='link_id', full_name='context.Link.link_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='link_endpoint_ids', full_name='context.Link.link_endpoint_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1633,
-  serialized_end=1721,
-)
-
-
-_LINKIDLIST = _descriptor.Descriptor(
-  name='LinkIdList',
-  full_name='context.LinkIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='link_ids', full_name='context.LinkIdList.link_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1723,
-  serialized_end=1770,
-)
-
-
-_LINKLIST = _descriptor.Descriptor(
-  name='LinkList',
-  full_name='context.LinkList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='links', full_name='context.LinkList.links', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1772,
-  serialized_end=1812,
-)
-
-
-_LINKEVENT = _descriptor.Descriptor(
-  name='LinkEvent',
-  full_name='context.LinkEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.LinkEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='link_id', full_name='context.LinkEvent.link_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1814,
-  serialized_end=1890,
-)
-
-
-_SERVICEID = _descriptor.Descriptor(
-  name='ServiceId',
-  full_name='context.ServiceId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.ServiceId.context_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_uuid', full_name='context.ServiceId.service_uuid', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1892,
-  serialized_end=1980,
-)
-
-
-_SERVICE = _descriptor.Descriptor(
-  name='Service',
-  full_name='context.Service',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='service_id', full_name='context.Service.service_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_type', full_name='context.Service.service_type', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_endpoint_ids', full_name='context.Service.service_endpoint_ids', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_constraints', full_name='context.Service.service_constraints', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_status', full_name='context.Service.service_status', index=4,
-      number=5, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_config', full_name='context.Service.service_config', index=5,
-      number=6, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1983,
-  serialized_end=2277,
-)
-
-
-_SERVICESTATUS = _descriptor.Descriptor(
-  name='ServiceStatus',
-  full_name='context.ServiceStatus',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='service_status', full_name='context.ServiceStatus.service_status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2279,
-  serialized_end=2346,
-)
-
-
-_SERVICECONFIG = _descriptor.Descriptor(
-  name='ServiceConfig',
-  full_name='context.ServiceConfig',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='config_rules', full_name='context.ServiceConfig.config_rules', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2348,
-  serialized_end=2406,
-)
-
-
-_SERVICEIDLIST = _descriptor.Descriptor(
-  name='ServiceIdList',
-  full_name='context.ServiceIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='service_ids', full_name='context.ServiceIdList.service_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2408,
-  serialized_end=2464,
-)
-
-
-_SERVICELIST = _descriptor.Descriptor(
-  name='ServiceList',
-  full_name='context.ServiceList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='services', full_name='context.ServiceList.services', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2466,
-  serialized_end=2515,
-)
-
-
-_SERVICEEVENT = _descriptor.Descriptor(
-  name='ServiceEvent',
-  full_name='context.ServiceEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.ServiceEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_id', full_name='context.ServiceEvent.service_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2517,
-  serialized_end=2602,
-)
-
-
-_SLICEID = _descriptor.Descriptor(
-  name='SliceId',
-  full_name='context.SliceId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.SliceId.context_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_uuid', full_name='context.SliceId.slice_uuid', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2604,
-  serialized_end=2688,
-)
-
-
-_SLICE = _descriptor.Descriptor(
-  name='Slice',
-  full_name='context.Slice',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='slice_id', full_name='context.Slice.slice_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_endpoint_ids', full_name='context.Slice.slice_endpoint_ids', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_constraints', full_name='context.Slice.slice_constraints', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_service_ids', full_name='context.Slice.slice_service_ids', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_subslice_ids', full_name='context.Slice.slice_subslice_ids', index=4,
-      number=5, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_status', full_name='context.Slice.slice_status', index=5,
-      number=6, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2691,
-  serialized_end=2968,
-)
-
-
-_SLICESTATUS = _descriptor.Descriptor(
-  name='SliceStatus',
-  full_name='context.SliceStatus',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='slice_status', full_name='context.SliceStatus.slice_status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2970,
-  serialized_end=3031,
-)
-
-
-_SLICEIDLIST = _descriptor.Descriptor(
-  name='SliceIdList',
-  full_name='context.SliceIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='slice_ids', full_name='context.SliceIdList.slice_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3033,
-  serialized_end=3083,
-)
-
-
-_SLICELIST = _descriptor.Descriptor(
-  name='SliceList',
-  full_name='context.SliceList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='slices', full_name='context.SliceList.slices', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3085,
-  serialized_end=3128,
-)
-
-
-_SLICEEVENT = _descriptor.Descriptor(
-  name='SliceEvent',
-  full_name='context.SliceEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.SliceEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='slice_id', full_name='context.SliceEvent.slice_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3130,
-  serialized_end=3209,
-)
-
-
-_CONNECTIONID = _descriptor.Descriptor(
-  name='ConnectionId',
-  full_name='context.ConnectionId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='connection_uuid', full_name='context.ConnectionId.connection_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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3211,
-  serialized_end=3265,
-)
-
-
-_CONNECTION = _descriptor.Descriptor(
-  name='Connection',
-  full_name='context.Connection',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='connection_id', full_name='context.Connection.connection_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='service_id', full_name='context.Connection.service_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='path_hops_endpoint_ids', full_name='context.Connection.path_hops_endpoint_ids', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sub_service_ids', full_name='context.Connection.sub_service_ids', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3268,
-  serialized_end=3464,
-)
-
-
-_CONNECTIONIDLIST = _descriptor.Descriptor(
-  name='ConnectionIdList',
-  full_name='context.ConnectionIdList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='connection_ids', full_name='context.ConnectionIdList.connection_ids', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3466,
-  serialized_end=3531,
-)
-
-
-_CONNECTIONLIST = _descriptor.Descriptor(
-  name='ConnectionList',
-  full_name='context.ConnectionList',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='connections', full_name='context.ConnectionList.connections', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3533,
-  serialized_end=3591,
-)
-
-
-_CONNECTIONEVENT = _descriptor.Descriptor(
-  name='ConnectionEvent',
-  full_name='context.ConnectionEvent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event', full_name='context.ConnectionEvent.event', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='connection_id', full_name='context.ConnectionEvent.connection_id', 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3593,
-  serialized_end=3687,
-)
-
-
-_ENDPOINTID = _descriptor.Descriptor(
-  name='EndPointId',
-  full_name='context.EndPointId',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='topology_id', full_name='context.EndPointId.topology_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_id', full_name='context.EndPointId.device_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='endpoint_uuid', full_name='context.EndPointId.endpoint_uuid', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3690,
-  serialized_end=3820,
-)
-
-
-_ENDPOINT = _descriptor.Descriptor(
-  name='EndPoint',
-  full_name='context.EndPoint',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='endpoint_id', full_name='context.EndPoint.endpoint_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='endpoint_type', full_name='context.EndPoint.endpoint_type', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='kpi_sample_types', full_name='context.EndPoint.kpi_sample_types', index=2,
-      number=3, type=14, cpp_type=8, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3823,
-  serialized_end=3957,
-)
-
-
-_CONFIGRULE = _descriptor.Descriptor(
-  name='ConfigRule',
-  full_name='context.ConfigRule',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='action', full_name='context.ConfigRule.action', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='resource_key', full_name='context.ConfigRule.resource_key', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='resource_value', full_name='context.ConfigRule.resource_value', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3959,
-  serialized_end=4060,
-)
-
-
-_CONSTRAINT = _descriptor.Descriptor(
-  name='Constraint',
-  full_name='context.Constraint',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='constraint_type', full_name='context.Constraint.constraint_type', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='constraint_value', full_name='context.Constraint.constraint_value', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4062,
-  serialized_end=4125,
-)
-
-
-_TERAFLOWCONTROLLER = _descriptor.Descriptor(
-  name='TeraFlowController',
-  full_name='context.TeraFlowController',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.TeraFlowController.context_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ip_address', full_name='context.TeraFlowController.ip_address', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='port', full_name='context.TeraFlowController.port', index=2,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4127,
-  serialized_end=4221,
-)
-
-
-_AUTHENTICATIONRESULT = _descriptor.Descriptor(
-  name='AuthenticationResult',
-  full_name='context.AuthenticationResult',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='context_id', full_name='context.AuthenticationResult.context_id', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='authenticated', full_name='context.AuthenticationResult.authenticated', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4223,
-  serialized_end=4308,
-)
-
-_EVENT.fields_by_name['event_type'].enum_type = _EVENTTYPEENUM
-_CONTEXTID.fields_by_name['context_uuid'].message_type = _UUID
-_CONTEXT.fields_by_name['context_id'].message_type = _CONTEXTID
-_CONTEXT.fields_by_name['topology_ids'].message_type = _TOPOLOGYID
-_CONTEXT.fields_by_name['service_ids'].message_type = _SERVICEID
-_CONTEXT.fields_by_name['controller'].message_type = _TERAFLOWCONTROLLER
-_CONTEXTIDLIST.fields_by_name['context_ids'].message_type = _CONTEXTID
-_CONTEXTLIST.fields_by_name['contexts'].message_type = _CONTEXT
-_CONTEXTEVENT.fields_by_name['event'].message_type = _EVENT
-_CONTEXTEVENT.fields_by_name['context_id'].message_type = _CONTEXTID
-_TOPOLOGYID.fields_by_name['context_id'].message_type = _CONTEXTID
-_TOPOLOGYID.fields_by_name['topology_uuid'].message_type = _UUID
-_TOPOLOGY.fields_by_name['topology_id'].message_type = _TOPOLOGYID
-_TOPOLOGY.fields_by_name['device_ids'].message_type = _DEVICEID
-_TOPOLOGY.fields_by_name['link_ids'].message_type = _LINKID
-_TOPOLOGYIDLIST.fields_by_name['topology_ids'].message_type = _TOPOLOGYID
-_TOPOLOGYLIST.fields_by_name['topologies'].message_type = _TOPOLOGY
-_TOPOLOGYEVENT.fields_by_name['event'].message_type = _EVENT
-_TOPOLOGYEVENT.fields_by_name['topology_id'].message_type = _TOPOLOGYID
-_DEVICEID.fields_by_name['device_uuid'].message_type = _UUID
-_DEVICE.fields_by_name['device_id'].message_type = _DEVICEID
-_DEVICE.fields_by_name['device_config'].message_type = _DEVICECONFIG
-_DEVICE.fields_by_name['device_operational_status'].enum_type = _DEVICEOPERATIONALSTATUSENUM
-_DEVICE.fields_by_name['device_drivers'].enum_type = _DEVICEDRIVERENUM
-_DEVICE.fields_by_name['device_endpoints'].message_type = _ENDPOINT
-_DEVICECONFIG.fields_by_name['config_rules'].message_type = _CONFIGRULE
-_DEVICEIDLIST.fields_by_name['device_ids'].message_type = _DEVICEID
-_DEVICELIST.fields_by_name['devices'].message_type = _DEVICE
-_DEVICEEVENT.fields_by_name['event'].message_type = _EVENT
-_DEVICEEVENT.fields_by_name['device_id'].message_type = _DEVICEID
-_LINKID.fields_by_name['link_uuid'].message_type = _UUID
-_LINK.fields_by_name['link_id'].message_type = _LINKID
-_LINK.fields_by_name['link_endpoint_ids'].message_type = _ENDPOINTID
-_LINKIDLIST.fields_by_name['link_ids'].message_type = _LINKID
-_LINKLIST.fields_by_name['links'].message_type = _LINK
-_LINKEVENT.fields_by_name['event'].message_type = _EVENT
-_LINKEVENT.fields_by_name['link_id'].message_type = _LINKID
-_SERVICEID.fields_by_name['context_id'].message_type = _CONTEXTID
-_SERVICEID.fields_by_name['service_uuid'].message_type = _UUID
-_SERVICE.fields_by_name['service_id'].message_type = _SERVICEID
-_SERVICE.fields_by_name['service_type'].enum_type = _SERVICETYPEENUM
-_SERVICE.fields_by_name['service_endpoint_ids'].message_type = _ENDPOINTID
-_SERVICE.fields_by_name['service_constraints'].message_type = _CONSTRAINT
-_SERVICE.fields_by_name['service_status'].message_type = _SERVICESTATUS
-_SERVICE.fields_by_name['service_config'].message_type = _SERVICECONFIG
-_SERVICESTATUS.fields_by_name['service_status'].enum_type = _SERVICESTATUSENUM
-_SERVICECONFIG.fields_by_name['config_rules'].message_type = _CONFIGRULE
-_SERVICEIDLIST.fields_by_name['service_ids'].message_type = _SERVICEID
-_SERVICELIST.fields_by_name['services'].message_type = _SERVICE
-_SERVICEEVENT.fields_by_name['event'].message_type = _EVENT
-_SERVICEEVENT.fields_by_name['service_id'].message_type = _SERVICEID
-_SLICEID.fields_by_name['context_id'].message_type = _CONTEXTID
-_SLICEID.fields_by_name['slice_uuid'].message_type = _UUID
-_SLICE.fields_by_name['slice_id'].message_type = _SLICEID
-_SLICE.fields_by_name['slice_endpoint_ids'].message_type = _ENDPOINTID
-_SLICE.fields_by_name['slice_constraints'].message_type = _CONSTRAINT
-_SLICE.fields_by_name['slice_service_ids'].message_type = _SERVICEID
-_SLICE.fields_by_name['slice_subslice_ids'].message_type = _SLICEID
-_SLICE.fields_by_name['slice_status'].message_type = _SLICESTATUS
-_SLICESTATUS.fields_by_name['slice_status'].enum_type = _SLICESTATUSENUM
-_SLICEIDLIST.fields_by_name['slice_ids'].message_type = _SLICEID
-_SLICELIST.fields_by_name['slices'].message_type = _SLICE
-_SLICEEVENT.fields_by_name['event'].message_type = _EVENT
-_SLICEEVENT.fields_by_name['slice_id'].message_type = _SLICEID
-_CONNECTIONID.fields_by_name['connection_uuid'].message_type = _UUID
-_CONNECTION.fields_by_name['connection_id'].message_type = _CONNECTIONID
-_CONNECTION.fields_by_name['service_id'].message_type = _SERVICEID
-_CONNECTION.fields_by_name['path_hops_endpoint_ids'].message_type = _ENDPOINTID
-_CONNECTION.fields_by_name['sub_service_ids'].message_type = _SERVICEID
-_CONNECTIONIDLIST.fields_by_name['connection_ids'].message_type = _CONNECTIONID
-_CONNECTIONLIST.fields_by_name['connections'].message_type = _CONNECTION
-_CONNECTIONEVENT.fields_by_name['event'].message_type = _EVENT
-_CONNECTIONEVENT.fields_by_name['connection_id'].message_type = _CONNECTIONID
-_ENDPOINTID.fields_by_name['topology_id'].message_type = _TOPOLOGYID
-_ENDPOINTID.fields_by_name['device_id'].message_type = _DEVICEID
-_ENDPOINTID.fields_by_name['endpoint_uuid'].message_type = _UUID
-_ENDPOINT.fields_by_name['endpoint_id'].message_type = _ENDPOINTID
-_ENDPOINT.fields_by_name['kpi_sample_types'].enum_type = kpi__sample__types__pb2._KPISAMPLETYPE
-_CONFIGRULE.fields_by_name['action'].enum_type = _CONFIGACTIONENUM
-_TERAFLOWCONTROLLER.fields_by_name['context_id'].message_type = _CONTEXTID
-_AUTHENTICATIONRESULT.fields_by_name['context_id'].message_type = _CONTEXTID
-DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY
-DESCRIPTOR.message_types_by_name['Uuid'] = _UUID
-DESCRIPTOR.message_types_by_name['Event'] = _EVENT
-DESCRIPTOR.message_types_by_name['ContextId'] = _CONTEXTID
-DESCRIPTOR.message_types_by_name['Context'] = _CONTEXT
-DESCRIPTOR.message_types_by_name['ContextIdList'] = _CONTEXTIDLIST
-DESCRIPTOR.message_types_by_name['ContextList'] = _CONTEXTLIST
-DESCRIPTOR.message_types_by_name['ContextEvent'] = _CONTEXTEVENT
-DESCRIPTOR.message_types_by_name['TopologyId'] = _TOPOLOGYID
-DESCRIPTOR.message_types_by_name['Topology'] = _TOPOLOGY
-DESCRIPTOR.message_types_by_name['TopologyIdList'] = _TOPOLOGYIDLIST
-DESCRIPTOR.message_types_by_name['TopologyList'] = _TOPOLOGYLIST
-DESCRIPTOR.message_types_by_name['TopologyEvent'] = _TOPOLOGYEVENT
-DESCRIPTOR.message_types_by_name['DeviceId'] = _DEVICEID
-DESCRIPTOR.message_types_by_name['Device'] = _DEVICE
-DESCRIPTOR.message_types_by_name['DeviceConfig'] = _DEVICECONFIG
-DESCRIPTOR.message_types_by_name['DeviceIdList'] = _DEVICEIDLIST
-DESCRIPTOR.message_types_by_name['DeviceList'] = _DEVICELIST
-DESCRIPTOR.message_types_by_name['DeviceEvent'] = _DEVICEEVENT
-DESCRIPTOR.message_types_by_name['LinkId'] = _LINKID
-DESCRIPTOR.message_types_by_name['Link'] = _LINK
-DESCRIPTOR.message_types_by_name['LinkIdList'] = _LINKIDLIST
-DESCRIPTOR.message_types_by_name['LinkList'] = _LINKLIST
-DESCRIPTOR.message_types_by_name['LinkEvent'] = _LINKEVENT
-DESCRIPTOR.message_types_by_name['ServiceId'] = _SERVICEID
-DESCRIPTOR.message_types_by_name['Service'] = _SERVICE
-DESCRIPTOR.message_types_by_name['ServiceStatus'] = _SERVICESTATUS
-DESCRIPTOR.message_types_by_name['ServiceConfig'] = _SERVICECONFIG
-DESCRIPTOR.message_types_by_name['ServiceIdList'] = _SERVICEIDLIST
-DESCRIPTOR.message_types_by_name['ServiceList'] = _SERVICELIST
-DESCRIPTOR.message_types_by_name['ServiceEvent'] = _SERVICEEVENT
-DESCRIPTOR.message_types_by_name['SliceId'] = _SLICEID
-DESCRIPTOR.message_types_by_name['Slice'] = _SLICE
-DESCRIPTOR.message_types_by_name['SliceStatus'] = _SLICESTATUS
-DESCRIPTOR.message_types_by_name['SliceIdList'] = _SLICEIDLIST
-DESCRIPTOR.message_types_by_name['SliceList'] = _SLICELIST
-DESCRIPTOR.message_types_by_name['SliceEvent'] = _SLICEEVENT
-DESCRIPTOR.message_types_by_name['ConnectionId'] = _CONNECTIONID
-DESCRIPTOR.message_types_by_name['Connection'] = _CONNECTION
-DESCRIPTOR.message_types_by_name['ConnectionIdList'] = _CONNECTIONIDLIST
-DESCRIPTOR.message_types_by_name['ConnectionList'] = _CONNECTIONLIST
-DESCRIPTOR.message_types_by_name['ConnectionEvent'] = _CONNECTIONEVENT
-DESCRIPTOR.message_types_by_name['EndPointId'] = _ENDPOINTID
-DESCRIPTOR.message_types_by_name['EndPoint'] = _ENDPOINT
-DESCRIPTOR.message_types_by_name['ConfigRule'] = _CONFIGRULE
-DESCRIPTOR.message_types_by_name['Constraint'] = _CONSTRAINT
-DESCRIPTOR.message_types_by_name['TeraFlowController'] = _TERAFLOWCONTROLLER
-DESCRIPTOR.message_types_by_name['AuthenticationResult'] = _AUTHENTICATIONRESULT
-DESCRIPTOR.enum_types_by_name['EventTypeEnum'] = _EVENTTYPEENUM
-DESCRIPTOR.enum_types_by_name['DeviceDriverEnum'] = _DEVICEDRIVERENUM
-DESCRIPTOR.enum_types_by_name['DeviceOperationalStatusEnum'] = _DEVICEOPERATIONALSTATUSENUM
-DESCRIPTOR.enum_types_by_name['ServiceTypeEnum'] = _SERVICETYPEENUM
-DESCRIPTOR.enum_types_by_name['ServiceStatusEnum'] = _SERVICESTATUSENUM
-DESCRIPTOR.enum_types_by_name['SliceStatusEnum'] = _SLICESTATUSENUM
-DESCRIPTOR.enum_types_by_name['ConfigActionEnum'] = _CONFIGACTIONENUM
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), {
-  'DESCRIPTOR' : _EMPTY,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Empty)
-  })
-_sym_db.RegisterMessage(Empty)
-
-Uuid = _reflection.GeneratedProtocolMessageType('Uuid', (_message.Message,), {
-  'DESCRIPTOR' : _UUID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Uuid)
-  })
-_sym_db.RegisterMessage(Uuid)
-
-Event = _reflection.GeneratedProtocolMessageType('Event', (_message.Message,), {
-  'DESCRIPTOR' : _EVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Event)
-  })
-_sym_db.RegisterMessage(Event)
-
-ContextId = _reflection.GeneratedProtocolMessageType('ContextId', (_message.Message,), {
-  'DESCRIPTOR' : _CONTEXTID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ContextId)
-  })
-_sym_db.RegisterMessage(ContextId)
-
-Context = _reflection.GeneratedProtocolMessageType('Context', (_message.Message,), {
-  'DESCRIPTOR' : _CONTEXT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Context)
-  })
-_sym_db.RegisterMessage(Context)
-
-ContextIdList = _reflection.GeneratedProtocolMessageType('ContextIdList', (_message.Message,), {
-  'DESCRIPTOR' : _CONTEXTIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ContextIdList)
-  })
-_sym_db.RegisterMessage(ContextIdList)
-
-ContextList = _reflection.GeneratedProtocolMessageType('ContextList', (_message.Message,), {
-  'DESCRIPTOR' : _CONTEXTLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ContextList)
-  })
-_sym_db.RegisterMessage(ContextList)
-
-ContextEvent = _reflection.GeneratedProtocolMessageType('ContextEvent', (_message.Message,), {
-  'DESCRIPTOR' : _CONTEXTEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ContextEvent)
-  })
-_sym_db.RegisterMessage(ContextEvent)
-
-TopologyId = _reflection.GeneratedProtocolMessageType('TopologyId', (_message.Message,), {
-  'DESCRIPTOR' : _TOPOLOGYID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.TopologyId)
-  })
-_sym_db.RegisterMessage(TopologyId)
-
-Topology = _reflection.GeneratedProtocolMessageType('Topology', (_message.Message,), {
-  'DESCRIPTOR' : _TOPOLOGY,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Topology)
-  })
-_sym_db.RegisterMessage(Topology)
-
-TopologyIdList = _reflection.GeneratedProtocolMessageType('TopologyIdList', (_message.Message,), {
-  'DESCRIPTOR' : _TOPOLOGYIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.TopologyIdList)
-  })
-_sym_db.RegisterMessage(TopologyIdList)
-
-TopologyList = _reflection.GeneratedProtocolMessageType('TopologyList', (_message.Message,), {
-  'DESCRIPTOR' : _TOPOLOGYLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.TopologyList)
-  })
-_sym_db.RegisterMessage(TopologyList)
-
-TopologyEvent = _reflection.GeneratedProtocolMessageType('TopologyEvent', (_message.Message,), {
-  'DESCRIPTOR' : _TOPOLOGYEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.TopologyEvent)
-  })
-_sym_db.RegisterMessage(TopologyEvent)
-
-DeviceId = _reflection.GeneratedProtocolMessageType('DeviceId', (_message.Message,), {
-  'DESCRIPTOR' : _DEVICEID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.DeviceId)
-  })
-_sym_db.RegisterMessage(DeviceId)
-
-Device = _reflection.GeneratedProtocolMessageType('Device', (_message.Message,), {
-  'DESCRIPTOR' : _DEVICE,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Device)
-  })
-_sym_db.RegisterMessage(Device)
-
-DeviceConfig = _reflection.GeneratedProtocolMessageType('DeviceConfig', (_message.Message,), {
-  'DESCRIPTOR' : _DEVICECONFIG,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.DeviceConfig)
-  })
-_sym_db.RegisterMessage(DeviceConfig)
-
-DeviceIdList = _reflection.GeneratedProtocolMessageType('DeviceIdList', (_message.Message,), {
-  'DESCRIPTOR' : _DEVICEIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.DeviceIdList)
-  })
-_sym_db.RegisterMessage(DeviceIdList)
-
-DeviceList = _reflection.GeneratedProtocolMessageType('DeviceList', (_message.Message,), {
-  'DESCRIPTOR' : _DEVICELIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.DeviceList)
-  })
-_sym_db.RegisterMessage(DeviceList)
-
-DeviceEvent = _reflection.GeneratedProtocolMessageType('DeviceEvent', (_message.Message,), {
-  'DESCRIPTOR' : _DEVICEEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.DeviceEvent)
-  })
-_sym_db.RegisterMessage(DeviceEvent)
-
-LinkId = _reflection.GeneratedProtocolMessageType('LinkId', (_message.Message,), {
-  'DESCRIPTOR' : _LINKID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.LinkId)
-  })
-_sym_db.RegisterMessage(LinkId)
-
-Link = _reflection.GeneratedProtocolMessageType('Link', (_message.Message,), {
-  'DESCRIPTOR' : _LINK,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Link)
-  })
-_sym_db.RegisterMessage(Link)
-
-LinkIdList = _reflection.GeneratedProtocolMessageType('LinkIdList', (_message.Message,), {
-  'DESCRIPTOR' : _LINKIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.LinkIdList)
-  })
-_sym_db.RegisterMessage(LinkIdList)
-
-LinkList = _reflection.GeneratedProtocolMessageType('LinkList', (_message.Message,), {
-  'DESCRIPTOR' : _LINKLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.LinkList)
-  })
-_sym_db.RegisterMessage(LinkList)
-
-LinkEvent = _reflection.GeneratedProtocolMessageType('LinkEvent', (_message.Message,), {
-  'DESCRIPTOR' : _LINKEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.LinkEvent)
-  })
-_sym_db.RegisterMessage(LinkEvent)
-
-ServiceId = _reflection.GeneratedProtocolMessageType('ServiceId', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICEID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ServiceId)
-  })
-_sym_db.RegisterMessage(ServiceId)
-
-Service = _reflection.GeneratedProtocolMessageType('Service', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICE,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Service)
-  })
-_sym_db.RegisterMessage(Service)
-
-ServiceStatus = _reflection.GeneratedProtocolMessageType('ServiceStatus', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICESTATUS,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ServiceStatus)
-  })
-_sym_db.RegisterMessage(ServiceStatus)
-
-ServiceConfig = _reflection.GeneratedProtocolMessageType('ServiceConfig', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICECONFIG,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ServiceConfig)
-  })
-_sym_db.RegisterMessage(ServiceConfig)
-
-ServiceIdList = _reflection.GeneratedProtocolMessageType('ServiceIdList', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICEIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ServiceIdList)
-  })
-_sym_db.RegisterMessage(ServiceIdList)
-
-ServiceList = _reflection.GeneratedProtocolMessageType('ServiceList', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICELIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ServiceList)
-  })
-_sym_db.RegisterMessage(ServiceList)
-
-ServiceEvent = _reflection.GeneratedProtocolMessageType('ServiceEvent', (_message.Message,), {
-  'DESCRIPTOR' : _SERVICEEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ServiceEvent)
-  })
-_sym_db.RegisterMessage(ServiceEvent)
-
-SliceId = _reflection.GeneratedProtocolMessageType('SliceId', (_message.Message,), {
-  'DESCRIPTOR' : _SLICEID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.SliceId)
-  })
-_sym_db.RegisterMessage(SliceId)
-
-Slice = _reflection.GeneratedProtocolMessageType('Slice', (_message.Message,), {
-  'DESCRIPTOR' : _SLICE,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Slice)
-  })
-_sym_db.RegisterMessage(Slice)
-
-SliceStatus = _reflection.GeneratedProtocolMessageType('SliceStatus', (_message.Message,), {
-  'DESCRIPTOR' : _SLICESTATUS,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.SliceStatus)
-  })
-_sym_db.RegisterMessage(SliceStatus)
-
-SliceIdList = _reflection.GeneratedProtocolMessageType('SliceIdList', (_message.Message,), {
-  'DESCRIPTOR' : _SLICEIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.SliceIdList)
-  })
-_sym_db.RegisterMessage(SliceIdList)
-
-SliceList = _reflection.GeneratedProtocolMessageType('SliceList', (_message.Message,), {
-  'DESCRIPTOR' : _SLICELIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.SliceList)
-  })
-_sym_db.RegisterMessage(SliceList)
-
-SliceEvent = _reflection.GeneratedProtocolMessageType('SliceEvent', (_message.Message,), {
-  'DESCRIPTOR' : _SLICEEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.SliceEvent)
-  })
-_sym_db.RegisterMessage(SliceEvent)
-
-ConnectionId = _reflection.GeneratedProtocolMessageType('ConnectionId', (_message.Message,), {
-  'DESCRIPTOR' : _CONNECTIONID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ConnectionId)
-  })
-_sym_db.RegisterMessage(ConnectionId)
-
-Connection = _reflection.GeneratedProtocolMessageType('Connection', (_message.Message,), {
-  'DESCRIPTOR' : _CONNECTION,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Connection)
-  })
-_sym_db.RegisterMessage(Connection)
-
-ConnectionIdList = _reflection.GeneratedProtocolMessageType('ConnectionIdList', (_message.Message,), {
-  'DESCRIPTOR' : _CONNECTIONIDLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ConnectionIdList)
-  })
-_sym_db.RegisterMessage(ConnectionIdList)
-
-ConnectionList = _reflection.GeneratedProtocolMessageType('ConnectionList', (_message.Message,), {
-  'DESCRIPTOR' : _CONNECTIONLIST,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ConnectionList)
-  })
-_sym_db.RegisterMessage(ConnectionList)
-
-ConnectionEvent = _reflection.GeneratedProtocolMessageType('ConnectionEvent', (_message.Message,), {
-  'DESCRIPTOR' : _CONNECTIONEVENT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ConnectionEvent)
-  })
-_sym_db.RegisterMessage(ConnectionEvent)
-
-EndPointId = _reflection.GeneratedProtocolMessageType('EndPointId', (_message.Message,), {
-  'DESCRIPTOR' : _ENDPOINTID,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.EndPointId)
-  })
-_sym_db.RegisterMessage(EndPointId)
-
-EndPoint = _reflection.GeneratedProtocolMessageType('EndPoint', (_message.Message,), {
-  'DESCRIPTOR' : _ENDPOINT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.EndPoint)
-  })
-_sym_db.RegisterMessage(EndPoint)
-
-ConfigRule = _reflection.GeneratedProtocolMessageType('ConfigRule', (_message.Message,), {
-  'DESCRIPTOR' : _CONFIGRULE,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.ConfigRule)
-  })
-_sym_db.RegisterMessage(ConfigRule)
-
-Constraint = _reflection.GeneratedProtocolMessageType('Constraint', (_message.Message,), {
-  'DESCRIPTOR' : _CONSTRAINT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.Constraint)
-  })
-_sym_db.RegisterMessage(Constraint)
-
-TeraFlowController = _reflection.GeneratedProtocolMessageType('TeraFlowController', (_message.Message,), {
-  'DESCRIPTOR' : _TERAFLOWCONTROLLER,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.TeraFlowController)
-  })
-_sym_db.RegisterMessage(TeraFlowController)
-
-AuthenticationResult = _reflection.GeneratedProtocolMessageType('AuthenticationResult', (_message.Message,), {
-  'DESCRIPTOR' : _AUTHENTICATIONRESULT,
-  '__module__' : 'context_pb2'
-  # @@protoc_insertion_point(class_scope:context.AuthenticationResult)
-  })
-_sym_db.RegisterMessage(AuthenticationResult)
-
-
-
-_CONTEXTSERVICE = _descriptor.ServiceDescriptor(
-  name='ContextService',
-  full_name='context.ContextService',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=5273,
-  serialized_end=7688,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='ListContextIds',
-    full_name='context.ContextService.ListContextIds',
-    index=0,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_CONTEXTIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListContexts',
-    full_name='context.ContextService.ListContexts',
-    index=1,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_CONTEXTLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetContext',
-    full_name='context.ContextService.GetContext',
-    index=2,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_CONTEXT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetContext',
-    full_name='context.ContextService.SetContext',
-    index=3,
-    containing_service=None,
-    input_type=_CONTEXT,
-    output_type=_CONTEXTID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveContext',
-    full_name='context.ContextService.RemoveContext',
-    index=4,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetContextEvents',
-    full_name='context.ContextService.GetContextEvents',
-    index=5,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_CONTEXTEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListTopologyIds',
-    full_name='context.ContextService.ListTopologyIds',
-    index=6,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_TOPOLOGYIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListTopologies',
-    full_name='context.ContextService.ListTopologies',
-    index=7,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_TOPOLOGYLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetTopology',
-    full_name='context.ContextService.GetTopology',
-    index=8,
-    containing_service=None,
-    input_type=_TOPOLOGYID,
-    output_type=_TOPOLOGY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetTopology',
-    full_name='context.ContextService.SetTopology',
-    index=9,
-    containing_service=None,
-    input_type=_TOPOLOGY,
-    output_type=_TOPOLOGYID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveTopology',
-    full_name='context.ContextService.RemoveTopology',
-    index=10,
-    containing_service=None,
-    input_type=_TOPOLOGYID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetTopologyEvents',
-    full_name='context.ContextService.GetTopologyEvents',
-    index=11,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_TOPOLOGYEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListDeviceIds',
-    full_name='context.ContextService.ListDeviceIds',
-    index=12,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_DEVICEIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListDevices',
-    full_name='context.ContextService.ListDevices',
-    index=13,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_DEVICELIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetDevice',
-    full_name='context.ContextService.GetDevice',
-    index=14,
-    containing_service=None,
-    input_type=_DEVICEID,
-    output_type=_DEVICE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetDevice',
-    full_name='context.ContextService.SetDevice',
-    index=15,
-    containing_service=None,
-    input_type=_DEVICE,
-    output_type=_DEVICEID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveDevice',
-    full_name='context.ContextService.RemoveDevice',
-    index=16,
-    containing_service=None,
-    input_type=_DEVICEID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetDeviceEvents',
-    full_name='context.ContextService.GetDeviceEvents',
-    index=17,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_DEVICEEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListLinkIds',
-    full_name='context.ContextService.ListLinkIds',
-    index=18,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_LINKIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListLinks',
-    full_name='context.ContextService.ListLinks',
-    index=19,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_LINKLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetLink',
-    full_name='context.ContextService.GetLink',
-    index=20,
-    containing_service=None,
-    input_type=_LINKID,
-    output_type=_LINK,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetLink',
-    full_name='context.ContextService.SetLink',
-    index=21,
-    containing_service=None,
-    input_type=_LINK,
-    output_type=_LINKID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveLink',
-    full_name='context.ContextService.RemoveLink',
-    index=22,
-    containing_service=None,
-    input_type=_LINKID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetLinkEvents',
-    full_name='context.ContextService.GetLinkEvents',
-    index=23,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_LINKEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListServiceIds',
-    full_name='context.ContextService.ListServiceIds',
-    index=24,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_SERVICEIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListServices',
-    full_name='context.ContextService.ListServices',
-    index=25,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_SERVICELIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetService',
-    full_name='context.ContextService.GetService',
-    index=26,
-    containing_service=None,
-    input_type=_SERVICEID,
-    output_type=_SERVICE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetService',
-    full_name='context.ContextService.SetService',
-    index=27,
-    containing_service=None,
-    input_type=_SERVICE,
-    output_type=_SERVICEID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveService',
-    full_name='context.ContextService.RemoveService',
-    index=28,
-    containing_service=None,
-    input_type=_SERVICEID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetServiceEvents',
-    full_name='context.ContextService.GetServiceEvents',
-    index=29,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_SERVICEEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListSliceIds',
-    full_name='context.ContextService.ListSliceIds',
-    index=30,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_SLICEIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListSlices',
-    full_name='context.ContextService.ListSlices',
-    index=31,
-    containing_service=None,
-    input_type=_CONTEXTID,
-    output_type=_SLICELIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetSlice',
-    full_name='context.ContextService.GetSlice',
-    index=32,
-    containing_service=None,
-    input_type=_SLICEID,
-    output_type=_SLICE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetSlice',
-    full_name='context.ContextService.SetSlice',
-    index=33,
-    containing_service=None,
-    input_type=_SLICE,
-    output_type=_SLICEID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveSlice',
-    full_name='context.ContextService.RemoveSlice',
-    index=34,
-    containing_service=None,
-    input_type=_SLICEID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetSliceEvents',
-    full_name='context.ContextService.GetSliceEvents',
-    index=35,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_SLICEEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListConnectionIds',
-    full_name='context.ContextService.ListConnectionIds',
-    index=36,
-    containing_service=None,
-    input_type=_SERVICEID,
-    output_type=_CONNECTIONIDLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListConnections',
-    full_name='context.ContextService.ListConnections',
-    index=37,
-    containing_service=None,
-    input_type=_SERVICEID,
-    output_type=_CONNECTIONLIST,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetConnection',
-    full_name='context.ContextService.GetConnection',
-    index=38,
-    containing_service=None,
-    input_type=_CONNECTIONID,
-    output_type=_CONNECTION,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetConnection',
-    full_name='context.ContextService.SetConnection',
-    index=39,
-    containing_service=None,
-    input_type=_CONNECTION,
-    output_type=_CONNECTIONID,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RemoveConnection',
-    full_name='context.ContextService.RemoveConnection',
-    index=40,
-    containing_service=None,
-    input_type=_CONNECTIONID,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetConnectionEvents',
-    full_name='context.ContextService.GetConnectionEvents',
-    index=41,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_CONNECTIONEVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_CONTEXTSERVICE)
-
-DESCRIPTOR.services_by_name['ContextService'] = _CONTEXTSERVICE
-
-# @@protoc_insertion_point(module_scope)
diff --git a/src/l3_centralizedattackdetector/proto/kpi_sample_types_pb2.py b/src/l3_centralizedattackdetector/proto/kpi_sample_types_pb2.py
deleted file mode 100644
index ea7fd2f82757d4c3db02d7e2c7817e2787b0b490..0000000000000000000000000000000000000000
--- a/src/l3_centralizedattackdetector/proto/kpi_sample_types_pb2.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: kpi_sample_types.proto
-"""Generated protocol buffer code."""
-from google.protobuf.internal import enum_type_wrapper
-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()
-
-
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='kpi_sample_types.proto',
-  package='kpi_sample_types',
-  syntax='proto3',
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x16kpi_sample_types.proto\x12\x10kpi_sample_types*\xbe\x01\n\rKpiSampleType\x12\x19\n\x15KPISAMPLETYPE_UNKNOWN\x10\x00\x12%\n!KPISAMPLETYPE_PACKETS_TRANSMITTED\x10\x65\x12\"\n\x1eKPISAMPLETYPE_PACKETS_RECEIVED\x10\x66\x12$\n\x1fKPISAMPLETYPE_BYTES_TRANSMITTED\x10\xc9\x01\x12!\n\x1cKPISAMPLETYPE_BYTES_RECEIVED\x10\xca\x01\x62\x06proto3'
-)
-
-_KPISAMPLETYPE = _descriptor.EnumDescriptor(
-  name='KpiSampleType',
-  full_name='kpi_sample_types.KpiSampleType',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='KPISAMPLETYPE_UNKNOWN', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='KPISAMPLETYPE_PACKETS_TRANSMITTED', index=1, number=101,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='KPISAMPLETYPE_PACKETS_RECEIVED', index=2, number=102,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='KPISAMPLETYPE_BYTES_TRANSMITTED', index=3, number=201,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='KPISAMPLETYPE_BYTES_RECEIVED', index=4, number=202,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=45,
-  serialized_end=235,
-)
-_sym_db.RegisterEnumDescriptor(_KPISAMPLETYPE)
-
-KpiSampleType = enum_type_wrapper.EnumTypeWrapper(_KPISAMPLETYPE)
-KPISAMPLETYPE_UNKNOWN = 0
-KPISAMPLETYPE_PACKETS_TRANSMITTED = 101
-KPISAMPLETYPE_PACKETS_RECEIVED = 102
-KPISAMPLETYPE_BYTES_TRANSMITTED = 201
-KPISAMPLETYPE_BYTES_RECEIVED = 202
-
-
-DESCRIPTOR.enum_types_by_name['KpiSampleType'] = _KPISAMPLETYPE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-
-# @@protoc_insertion_point(module_scope)
diff --git a/src/l3_centralizedattackdetector/proto/l3_attackmitigator_pb2.py b/src/l3_centralizedattackdetector/proto/l3_attackmitigator_pb2.py
deleted file mode 100644
index e148d0a2cfda7b7ea00b40218dcfe3dcb70f1f8f..0000000000000000000000000000000000000000
--- a/src/l3_centralizedattackdetector/proto/l3_attackmitigator_pb2.py
+++ /dev/null
@@ -1,178 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: l3_attackmitigator.proto
-"""Generated protocol buffer code."""
-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 . import context_pb2 as context__pb2
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='l3_attackmitigator.proto',
-  package='',
-  syntax='proto3',
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x18l3_attackmitigator.proto\x1a\rcontext.proto\"\xd5\x01\n\x17L3AttackmitigatorOutput\x12\x12\n\nconfidence\x18\x01 \x01(\x02\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x0c\n\x04ip_o\x18\x03 \x01(\t\x12\x10\n\x08tag_name\x18\x04 \x01(\t\x12\x0b\n\x03tag\x18\x05 \x01(\x05\x12\x0f\n\x07\x66low_id\x18\x06 \x01(\t\x12\x10\n\x08protocol\x18\x07 \x01(\t\x12\x0e\n\x06port_d\x18\x08 \x01(\t\x12\r\n\x05ml_id\x18\t \x01(\t\x12\x12\n\ntime_start\x18\n \x01(\x02\x12\x10\n\x08time_end\x18\x0b \x01(\x02\x32\x80\x01\n\x11L3Attackmitigator\x12\x38\n\nSendOutput\x12\x18.L3AttackmitigatorOutput\x1a\x0e.context.Empty\"\x00\x12\x31\n\rGetMitigation\x12\x0e.context.Empty\x1a\x0e.context.Empty\"\x00\x62\x06proto3'
-  ,
-  dependencies=[context__pb2.DESCRIPTOR,])
-
-
-
-
-_L3ATTACKMITIGATOROUTPUT = _descriptor.Descriptor(
-  name='L3AttackmitigatorOutput',
-  full_name='L3AttackmitigatorOutput',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='confidence', full_name='L3AttackmitigatorOutput.confidence', index=0,
-      number=1, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='timestamp', full_name='L3AttackmitigatorOutput.timestamp', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ip_o', full_name='L3AttackmitigatorOutput.ip_o', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='tag_name', full_name='L3AttackmitigatorOutput.tag_name', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='tag', full_name='L3AttackmitigatorOutput.tag', index=4,
-      number=5, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='flow_id', full_name='L3AttackmitigatorOutput.flow_id', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='protocol', full_name='L3AttackmitigatorOutput.protocol', index=6,
-      number=7, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='port_d', full_name='L3AttackmitigatorOutput.port_d', index=7,
-      number=8, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ml_id', full_name='L3AttackmitigatorOutput.ml_id', index=8,
-      number=9, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='time_start', full_name='L3AttackmitigatorOutput.time_start', index=9,
-      number=10, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='time_end', full_name='L3AttackmitigatorOutput.time_end', index=10,
-      number=11, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=44,
-  serialized_end=257,
-)
-
-DESCRIPTOR.message_types_by_name['L3AttackmitigatorOutput'] = _L3ATTACKMITIGATOROUTPUT
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-L3AttackmitigatorOutput = _reflection.GeneratedProtocolMessageType('L3AttackmitigatorOutput', (_message.Message,), {
-  'DESCRIPTOR' : _L3ATTACKMITIGATOROUTPUT,
-  '__module__' : 'l3_attackmitigator_pb2'
-  # @@protoc_insertion_point(class_scope:L3AttackmitigatorOutput)
-  })
-_sym_db.RegisterMessage(L3AttackmitigatorOutput)
-
-
-
-_L3ATTACKMITIGATOR = _descriptor.ServiceDescriptor(
-  name='L3Attackmitigator',
-  full_name='L3Attackmitigator',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=260,
-  serialized_end=388,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='SendOutput',
-    full_name='L3Attackmitigator.SendOutput',
-    index=0,
-    containing_service=None,
-    input_type=_L3ATTACKMITIGATOROUTPUT,
-    output_type=context__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetMitigation',
-    full_name='L3Attackmitigator.GetMitigation',
-    index=1,
-    containing_service=None,
-    input_type=context__pb2._EMPTY,
-    output_type=context__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_L3ATTACKMITIGATOR)
-
-DESCRIPTOR.services_by_name['L3Attackmitigator'] = _L3ATTACKMITIGATOR
-
-# @@protoc_insertion_point(module_scope)
diff --git a/src/l3_centralizedattackdetector/proto/l3_centralizedattackdetector_pb2.py b/src/l3_centralizedattackdetector/proto/l3_centralizedattackdetector_pb2.py
deleted file mode 100644
index 517fdb84b06c2c15b62a5616f33887ba337abf18..0000000000000000000000000000000000000000
--- a/src/l3_centralizedattackdetector/proto/l3_centralizedattackdetector_pb2.py
+++ /dev/null
@@ -1,361 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: l3_centralizedattackdetector.proto
-"""Generated protocol buffer code."""
-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()
-
-
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='l3_centralizedattackdetector.proto',
-  package='',
-  syntax='proto3',
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\"l3_centralizedattackdetector.proto\"\xcb\x03\n\"L3CentralizedattackdetectorMetrics\x12 \n\x18n_packets_server_seconds\x18\x01 \x01(\x02\x12 \n\x18n_packets_client_seconds\x18\x02 \x01(\x02\x12\x1d\n\x15n_bits_server_seconds\x18\x03 \x01(\x02\x12\x1d\n\x15n_bits_client_seconds\x18\x04 \x01(\x02\x12&\n\x1en_bits_server_n_packets_server\x18\x05 \x01(\x02\x12&\n\x1en_bits_client_n_packets_client\x18\x06 \x01(\x02\x12)\n!n_packets_server_n_packets_client\x18\x07 \x01(\x02\x12#\n\x1bn_bits_server_n_bits_client\x18\x08 \x01(\x02\x12\x0c\n\x04ip_o\x18\t \x01(\t\x12\x0e\n\x06port_o\x18\n \x01(\t\x12\x0c\n\x04ip_d\x18\x0b \x01(\t\x12\x0e\n\x06port_d\x18\x0c \x01(\t\x12\x0f\n\x07\x66low_id\x18\r \x01(\t\x12\x10\n\x08protocol\x18\x0e \x01(\t\x12\x12\n\ntime_start\x18\x0f \x01(\x02\x12\x10\n\x08time_end\x18\x10 \x01(\x02\"\x18\n\x05\x45mpty\x12\x0f\n\x07message\x18\x01 \x01(\t\"\xe4\x01\n&L3CentralizedattackdetectorModelOutput\x12\x12\n\nconfidence\x18\x01 \x01(\x02\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x0c\n\x04ip_o\x18\x03 \x01(\t\x12\x10\n\x08tag_name\x18\x04 \x01(\t\x12\x0b\n\x03tag\x18\x05 \x01(\x05\x12\x0f\n\x07\x66low_id\x18\x06 \x01(\t\x12\x10\n\x08protocol\x18\x07 \x01(\t\x12\x0e\n\x06port_d\x18\x08 \x01(\t\x12\r\n\x05ml_id\x18\t \x01(\t\x12\x12\n\ntime_start\x18\n \x01(\x02\x12\x10\n\x08time_end\x18\x0b \x01(\x02\x32\x99\x01\n\x1bL3Centralizedattackdetector\x12:\n\tSendInput\x12#.L3CentralizedattackdetectorMetrics\x1a\x06.Empty\"\x00\x12>\n\tGetOutput\x12\x06.Empty\x1a\'.L3CentralizedattackdetectorModelOutput\"\x00\x62\x06proto3'
-)
-
-
-
-
-_L3CENTRALIZEDATTACKDETECTORMETRICS = _descriptor.Descriptor(
-  name='L3CentralizedattackdetectorMetrics',
-  full_name='L3CentralizedattackdetectorMetrics',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='n_packets_server_seconds', full_name='L3CentralizedattackdetectorMetrics.n_packets_server_seconds', index=0,
-      number=1, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_packets_client_seconds', full_name='L3CentralizedattackdetectorMetrics.n_packets_client_seconds', index=1,
-      number=2, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_bits_server_seconds', full_name='L3CentralizedattackdetectorMetrics.n_bits_server_seconds', index=2,
-      number=3, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_bits_client_seconds', full_name='L3CentralizedattackdetectorMetrics.n_bits_client_seconds', index=3,
-      number=4, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_bits_server_n_packets_server', full_name='L3CentralizedattackdetectorMetrics.n_bits_server_n_packets_server', index=4,
-      number=5, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_bits_client_n_packets_client', full_name='L3CentralizedattackdetectorMetrics.n_bits_client_n_packets_client', index=5,
-      number=6, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_packets_server_n_packets_client', full_name='L3CentralizedattackdetectorMetrics.n_packets_server_n_packets_client', index=6,
-      number=7, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_bits_server_n_bits_client', full_name='L3CentralizedattackdetectorMetrics.n_bits_server_n_bits_client', index=7,
-      number=8, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ip_o', full_name='L3CentralizedattackdetectorMetrics.ip_o', index=8,
-      number=9, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='port_o', full_name='L3CentralizedattackdetectorMetrics.port_o', index=9,
-      number=10, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ip_d', full_name='L3CentralizedattackdetectorMetrics.ip_d', index=10,
-      number=11, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='port_d', full_name='L3CentralizedattackdetectorMetrics.port_d', index=11,
-      number=12, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='flow_id', full_name='L3CentralizedattackdetectorMetrics.flow_id', index=12,
-      number=13, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='protocol', full_name='L3CentralizedattackdetectorMetrics.protocol', index=13,
-      number=14, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='time_start', full_name='L3CentralizedattackdetectorMetrics.time_start', index=14,
-      number=15, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='time_end', full_name='L3CentralizedattackdetectorMetrics.time_end', index=15,
-      number=16, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=39,
-  serialized_end=498,
-)
-
-
-_EMPTY = _descriptor.Descriptor(
-  name='Empty',
-  full_name='Empty',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='message', full_name='Empty.message', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=500,
-  serialized_end=524,
-)
-
-
-_L3CENTRALIZEDATTACKDETECTORMODELOUTPUT = _descriptor.Descriptor(
-  name='L3CentralizedattackdetectorModelOutput',
-  full_name='L3CentralizedattackdetectorModelOutput',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='confidence', full_name='L3CentralizedattackdetectorModelOutput.confidence', index=0,
-      number=1, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='timestamp', full_name='L3CentralizedattackdetectorModelOutput.timestamp', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ip_o', full_name='L3CentralizedattackdetectorModelOutput.ip_o', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='tag_name', full_name='L3CentralizedattackdetectorModelOutput.tag_name', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='tag', full_name='L3CentralizedattackdetectorModelOutput.tag', index=4,
-      number=5, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='flow_id', full_name='L3CentralizedattackdetectorModelOutput.flow_id', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='protocol', full_name='L3CentralizedattackdetectorModelOutput.protocol', index=6,
-      number=7, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='port_d', full_name='L3CentralizedattackdetectorModelOutput.port_d', index=7,
-      number=8, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ml_id', full_name='L3CentralizedattackdetectorModelOutput.ml_id', index=8,
-      number=9, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='time_start', full_name='L3CentralizedattackdetectorModelOutput.time_start', index=9,
-      number=10, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='time_end', full_name='L3CentralizedattackdetectorModelOutput.time_end', index=10,
-      number=11, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=527,
-  serialized_end=755,
-)
-
-DESCRIPTOR.message_types_by_name['L3CentralizedattackdetectorMetrics'] = _L3CENTRALIZEDATTACKDETECTORMETRICS
-DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY
-DESCRIPTOR.message_types_by_name['L3CentralizedattackdetectorModelOutput'] = _L3CENTRALIZEDATTACKDETECTORMODELOUTPUT
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-L3CentralizedattackdetectorMetrics = _reflection.GeneratedProtocolMessageType('L3CentralizedattackdetectorMetrics', (_message.Message,), {
-  'DESCRIPTOR' : _L3CENTRALIZEDATTACKDETECTORMETRICS,
-  '__module__' : 'l3_centralizedattackdetector_pb2'
-  # @@protoc_insertion_point(class_scope:L3CentralizedattackdetectorMetrics)
-  })
-_sym_db.RegisterMessage(L3CentralizedattackdetectorMetrics)
-
-Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), {
-  'DESCRIPTOR' : _EMPTY,
-  '__module__' : 'l3_centralizedattackdetector_pb2'
-  # @@protoc_insertion_point(class_scope:Empty)
-  })
-_sym_db.RegisterMessage(Empty)
-
-L3CentralizedattackdetectorModelOutput = _reflection.GeneratedProtocolMessageType('L3CentralizedattackdetectorModelOutput', (_message.Message,), {
-  'DESCRIPTOR' : _L3CENTRALIZEDATTACKDETECTORMODELOUTPUT,
-  '__module__' : 'l3_centralizedattackdetector_pb2'
-  # @@protoc_insertion_point(class_scope:L3CentralizedattackdetectorModelOutput)
-  })
-_sym_db.RegisterMessage(L3CentralizedattackdetectorModelOutput)
-
-
-
-_L3CENTRALIZEDATTACKDETECTOR = _descriptor.ServiceDescriptor(
-  name='L3Centralizedattackdetector',
-  full_name='L3Centralizedattackdetector',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=758,
-  serialized_end=911,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='SendInput',
-    full_name='L3Centralizedattackdetector.SendInput',
-    index=0,
-    containing_service=None,
-    input_type=_L3CENTRALIZEDATTACKDETECTORMETRICS,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetOutput',
-    full_name='L3Centralizedattackdetector.GetOutput',
-    index=1,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_L3CENTRALIZEDATTACKDETECTORMODELOUTPUT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_L3CENTRALIZEDATTACKDETECTOR)
-
-DESCRIPTOR.services_by_name['L3Centralizedattackdetector'] = _L3CENTRALIZEDATTACKDETECTOR
-
-# @@protoc_insertion_point(module_scope)
diff --git a/src/l3_centralizedattackdetector/proto/l3_centralizedattackdetector_pb2_grpc.py b/src/l3_centralizedattackdetector/proto/l3_centralizedattackdetector_pb2_grpc.py
deleted file mode 100644
index 29136b4da95c9fc2ad7d4827521b26e872186dcf..0000000000000000000000000000000000000000
--- a/src/l3_centralizedattackdetector/proto/l3_centralizedattackdetector_pb2_grpc.py
+++ /dev/null
@@ -1,101 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-from . import l3_centralizedattackdetector_pb2 as l3__centralizedattackdetector__pb2
-
-
-class L3CentralizedattackdetectorStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.SendInput = channel.unary_unary(
-                '/L3Centralizedattackdetector/SendInput',
-                request_serializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorMetrics.SerializeToString,
-                response_deserializer=l3__centralizedattackdetector__pb2.Empty.FromString,
-                )
-        self.GetOutput = channel.unary_unary(
-                '/L3Centralizedattackdetector/GetOutput',
-                request_serializer=l3__centralizedattackdetector__pb2.Empty.SerializeToString,
-                response_deserializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorModelOutput.FromString,
-                )
-
-
-class L3CentralizedattackdetectorServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def SendInput(self, request, context):
-        """Sends a greeting
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetOutput(self, request, context):
-        """Sends another greeting
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_L3CentralizedattackdetectorServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'SendInput': grpc.unary_unary_rpc_method_handler(
-                    servicer.SendInput,
-                    request_deserializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorMetrics.FromString,
-                    response_serializer=l3__centralizedattackdetector__pb2.Empty.SerializeToString,
-            ),
-            'GetOutput': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetOutput,
-                    request_deserializer=l3__centralizedattackdetector__pb2.Empty.FromString,
-                    response_serializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorModelOutput.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'L3Centralizedattackdetector', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class L3Centralizedattackdetector(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def SendInput(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, '/L3Centralizedattackdetector/SendInput',
-            l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorMetrics.SerializeToString,
-            l3__centralizedattackdetector__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetOutput(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, '/L3Centralizedattackdetector/GetOutput',
-            l3__centralizedattackdetector__pb2.Empty.SerializeToString,
-            l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorModelOutput.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/src/l3_centralizedattackdetector/requirements.in b/src/l3_centralizedattackdetector/requirements.in
index e14d501b5a23d29e4950a56f28ee08fc54568d4d..9e25a1c28fb6c472e92bbb175eaa1c030fffe760 100644
--- a/src/l3_centralizedattackdetector/requirements.in
+++ b/src/l3_centralizedattackdetector/requirements.in
@@ -1,10 +1,3 @@
-grpcio-health-checking
-grpcio
-grpcio-tools
-prometheus-client
-pytest
-pytest-benchmark
-numpy
-scikit-learn
-onnxruntime
-coverage
\ No newline at end of file
+numpy==1.23.*
+onnxruntime==1.12.*
+scikit-learn==1.1.*
diff --git a/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorService.py b/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorService.py
index 0eb101f0e36fc59e5c6e8b1346609693259e0ccf..bad8cee7eadc26ceaf4dddd8a8452b3b8636e1d9 100644
--- a/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorService.py
+++ b/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorService.py
@@ -18,7 +18,7 @@ from concurrent import futures
 from grpc_health.v1.health import HealthServicer, OVERALL_HEALTH
 from grpc_health.v1.health_pb2 import HealthCheckResponse
 from grpc_health.v1.health_pb2_grpc import add_HealthServicer_to_server
-from l3_centralizedattackdetector.proto.l3_centralizedattackdetector_pb2_grpc import (
+from common.proto.l3_centralizedattackdetector_pb2_grpc import (
     add_L3CentralizedattackdetectorServicer_to_server,
 )
 from l3_centralizedattackdetector.service.l3_centralizedattackdetectorServiceServicerImpl import (
diff --git a/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorServiceServicerImpl.py b/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorServiceServicerImpl.py
index 18006f5a60de4c6f5596d03e3b9482dc4040014d..ad05b0ee62e87ce9028dc043b693c1b4cae008b3 100644
--- a/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorServiceServicerImpl.py
+++ b/src/l3_centralizedattackdetector/service/l3_centralizedattackdetectorServiceServicerImpl.py
@@ -19,17 +19,17 @@ import grpc
 import numpy as np
 import onnxruntime as rt
 import logging
-from l3_centralizedattackdetector.proto.l3_centralizedattackdetector_pb2 import (
+from common.proto.l3_centralizedattackdetector_pb2 import (
     Empty,
 )
-from l3_centralizedattackdetector.proto.l3_centralizedattackdetector_pb2_grpc import (
+from common.proto.l3_centralizedattackdetector_pb2_grpc import (
     L3CentralizedattackdetectorServicer,
 )
 
-from l3_centralizedattackdetector.proto.l3_attackmitigator_pb2 import (
-    Output,
+from common.proto.l3_attackmitigator_pb2 import (
+    L3AttackmitigatorOutput,
 )
-from l3_centralizedattackdetector.proto.l3_attackmitigator_pb2_grpc import (
+from common.proto.l3_attackmitigator_pb2_grpc import (
     L3AttackmitigatorStub,
 )
 
@@ -88,7 +88,7 @@ class l3_centralizedattackdetectorServiceServicerImpl(L3Centralizedattackdetecto
             output_message["tag_name"] = "Normal"
             output_message["tag"] = 0
 
-        return Output(**output_message)
+        return L3AttackmitigatorOutput(**output_message)
 
     def SendInput(self, request, context):
         # PERFORM INFERENCE WITH SENT INPUTS
diff --git a/src/l3_centralizedattackdetector/tests/test_unitary.py b/src/l3_centralizedattackdetector/tests/test_unitary.py
index c63975cc896373f4d33a7dc8dc4c6d15692c8fe6..a939b9efa11c9ceeb96ccb6d04c9ec929ab55cda 100644
--- a/src/l3_centralizedattackdetector/tests/test_unitary.py
+++ b/src/l3_centralizedattackdetector/tests/test_unitary.py
@@ -17,7 +17,7 @@ import pytest
 from l3_centralizedattackdetector.Config import GRPC_SERVICE_PORT, GRPC_MAX_WORKERS, GRPC_GRACE_PERIOD
 from l3_centralizedattackdetector.client.l3_centralizedattackdetectorClient import l3_centralizedattackdetectorClient
 from l3_centralizedattackdetector.service.l3_centralizedattackdetectorService import l3_centralizedattackdetectorService
-from l3_centralizedattackdetector.proto.l3_centralizedattackdetector_pb2 import (
+from common.proto.l3_centralizedattackdetector_pb2 import (
     ModelInput,
 )
 
diff --git a/src/l3_distributedattackdetector/.gitlab-ci.yml b/src/l3_distributedattackdetector/.gitlab-ci.yml
index 7ced7a62c19c717e2c4091f08c73579a79ad383b..c373d223715f77a833fdb3ea1c090e61f2e2c303 100644
--- a/src/l3_distributedattackdetector/.gitlab-ci.yml
+++ b/src/l3_distributedattackdetector/.gitlab-ci.yml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Build, tag, and push the Docker images to the GitLab Docker registry
+# Build, tag, and push the Docker image to the GitLab Docker registry
 build l3_distributedattackdetector:
   variables:
     IMAGE_NAME: 'l3_distributedattackdetector' # name of the microservice
@@ -21,22 +21,24 @@ build l3_distributedattackdetector:
   before_script:
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
   script:
-    - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile ./src/
+    - docker build -t "$IMAGE_NAME:$IMAGE_TAG" -f ./src/$IMAGE_NAME/Dockerfile .
     - docker tag "$IMAGE_NAME:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
     - docker push "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
   after_script:
     - docker images --filter="dangling=true" --quiet | xargs -r docker rmi
   rules:
     - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
-    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' 
+    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"'
     - changes:
+      - src/common/**/*.py
+      - proto/*.proto
       - src/$IMAGE_NAME/**/*.{py,in,yml}
       - src/$IMAGE_NAME/Dockerfile
       - src/$IMAGE_NAME/tests/*.py
       - manifests/${IMAGE_NAME}service.yaml
       - .gitlab-ci.yml
 
-# Pull, execute, and run unitary tests for the Docker image from the GitLab registry
+# Apply unit test to the component
 unit test l3_distributedattackdetector:
   variables:
     IMAGE_NAME: 'l3_distributedattackdetector' # name of the microservice
@@ -46,7 +48,7 @@ unit test l3_distributedattackdetector:
     - build l3_distributedattackdetector
   before_script:
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
-    - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi  
+    - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi
     - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi
   script:
     - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
@@ -62,8 +64,10 @@ unit test l3_distributedattackdetector:
     - docker network rm teraflowbridge
   rules:
     - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
-    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"' 
+    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"'
     - changes:
+      - src/common/**/*.py
+      - proto/*.proto
       - src/$IMAGE_NAME/**/*.{py,in,yml}
       - src/$IMAGE_NAME/Dockerfile
       - src/$IMAGE_NAME/tests/*.py
diff --git a/src/l3_distributedattackdetector/Dockerfile b/src/l3_distributedattackdetector/Dockerfile
index b0f1714e80055a328e90f070e9f957f8ec99708b..4bdbcf03cebc6f89603cde6d8ea41e28d6bd157c 100644
--- a/src/l3_distributedattackdetector/Dockerfile
+++ b/src/l3_distributedattackdetector/Dockerfile
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-FROM python:3-slim
+FROM python:3.9-slim
 
 # Install dependencies
 RUN apt-get --yes --quiet --quiet update && \
@@ -28,23 +28,42 @@ RUN GRPC_HEALTH_PROBE_VERSION=v0.2.0 && \
     chmod +x /bin/grpc_health_probe
 
 # Get generic Python packages
-RUN python3 -m pip install --upgrade pip setuptools wheel pip-tools
+RUN python3 -m pip install --upgrade pip
+RUN python3 -m pip install --upgrade setuptools wheel
+RUN python3 -m pip install --upgrade pip-tools
 
-# Set working directory
+# Get common Python packages
+# Note: this step enables sharing the previous Docker build steps among all the Python components
 WORKDIR /var/teraflow
+COPY common_requirements.in common_requirements.in
+RUN pip-compile --quiet --output-file=common_requirements.txt common_requirements.in
+RUN python3 -m pip install -r common_requirements.txt
 
-# Create module sub-folders
-RUN mkdir -p /var/teraflow/l3_distributedattackdetector
+# Add common files into working directory
+WORKDIR /var/teraflow/common
+COPY src/common/. ./
+RUN rm -rf proto
+
+# Create proto sub-folder, copy .proto files, and generate Python code
+RUN mkdir -p /var/teraflow/common/proto
+WORKDIR /var/teraflow/common/proto
+RUN touch __init__.py
+COPY proto/*.proto ./
+RUN python3 -m grpc_tools.protoc -I=. --python_out=. --grpc_python_out=. *.proto
+RUN rm *.proto
+RUN find . -type f -exec sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' {} \;
 
-# Get Python packages per module
-COPY l3_distributedattackdetector/requirements.in l3_distributedattackdetector/requirements.in
-RUN pip-compile --output-file=l3_distributedattackdetector/requirements.txt l3_distributedattackdetector/requirements.in
-RUN python3 -m pip install -r l3_distributedattackdetector/requirements.in
+# Create component sub-folders, get specific Python packages
+RUN mkdir -p /var/teraflow/l3_distributedattackdetector
+WORKDIR /var/teraflow/l3_distributedattackdetector
+COPY src/l3_distributedattackdetector/requirements.in requirements.in
+RUN pip-compile --quiet --output-file=requirements.txt requirements.in
+RUN python3 -m pip install -r requirements.txt
 
-# Add files into working directory
-COPY common/. common
-COPY l3_distributedattackdetector/. l3_distributedattackdetector
+# Add component files into working directory
+WORKDIR /var/teraflow
+COPY src/l3_distributedattackdetector/. l3_distributedattackdetector
 
-# Start service service
+# Start the service
 RUN nohup bash -c "service/tstat -l -i lo -s service/piped &" && sleep 5 
 ENTRYPOINT ["python", "-m", "l3_distributedattackdetector.service"]
diff --git a/src/l3_distributedattackdetector/genproto.sh b/src/l3_distributedattackdetector/genproto.sh
deleted file mode 100755
index c1f54c0dc1cdb6ef2681504ec0783f5479084fa8..0000000000000000000000000000000000000000
--- a/src/l3_distributedattackdetector/genproto.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash -eu
-#
-# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Make folder containing the script the root folder for its execution
-cd $(dirname $0)
-
-rm -rf proto/*.py
-rm -rf proto/__pycache__
-tee proto/__init__.py << EOF > /dev/null
-# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-EOF
-
-python -m grpc_tools.protoc -I../../proto --python_out=proto --grpc_python_out=proto l3_centralizedattackdetector.proto
-
-sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_centralizedattackdetector_pb2.py
-sed -i -E 's/(import\ .*)_pb2/from . \1_pb2/g' proto/l3_centralizedattackdetector_pb2_grpc.py
diff --git a/src/l3_distributedattackdetector/proto/__init__.py b/src/l3_distributedattackdetector/proto/__init__.py
deleted file mode 100644
index 70a33251242c51f49140e596b8208a19dd5245f7..0000000000000000000000000000000000000000
--- a/src/l3_distributedattackdetector/proto/__init__.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2021-2023 H2020 TeraFlow (https://www.teraflow-h2020.eu/)
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
diff --git a/src/l3_distributedattackdetector/proto/l3_centralizedattackdetector_pb2.py b/src/l3_distributedattackdetector/proto/l3_centralizedattackdetector_pb2.py
deleted file mode 100644
index 517fdb84b06c2c15b62a5616f33887ba337abf18..0000000000000000000000000000000000000000
--- a/src/l3_distributedattackdetector/proto/l3_centralizedattackdetector_pb2.py
+++ /dev/null
@@ -1,361 +0,0 @@
-# -*- coding: utf-8 -*-
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: l3_centralizedattackdetector.proto
-"""Generated protocol buffer code."""
-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()
-
-
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='l3_centralizedattackdetector.proto',
-  package='',
-  syntax='proto3',
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\"l3_centralizedattackdetector.proto\"\xcb\x03\n\"L3CentralizedattackdetectorMetrics\x12 \n\x18n_packets_server_seconds\x18\x01 \x01(\x02\x12 \n\x18n_packets_client_seconds\x18\x02 \x01(\x02\x12\x1d\n\x15n_bits_server_seconds\x18\x03 \x01(\x02\x12\x1d\n\x15n_bits_client_seconds\x18\x04 \x01(\x02\x12&\n\x1en_bits_server_n_packets_server\x18\x05 \x01(\x02\x12&\n\x1en_bits_client_n_packets_client\x18\x06 \x01(\x02\x12)\n!n_packets_server_n_packets_client\x18\x07 \x01(\x02\x12#\n\x1bn_bits_server_n_bits_client\x18\x08 \x01(\x02\x12\x0c\n\x04ip_o\x18\t \x01(\t\x12\x0e\n\x06port_o\x18\n \x01(\t\x12\x0c\n\x04ip_d\x18\x0b \x01(\t\x12\x0e\n\x06port_d\x18\x0c \x01(\t\x12\x0f\n\x07\x66low_id\x18\r \x01(\t\x12\x10\n\x08protocol\x18\x0e \x01(\t\x12\x12\n\ntime_start\x18\x0f \x01(\x02\x12\x10\n\x08time_end\x18\x10 \x01(\x02\"\x18\n\x05\x45mpty\x12\x0f\n\x07message\x18\x01 \x01(\t\"\xe4\x01\n&L3CentralizedattackdetectorModelOutput\x12\x12\n\nconfidence\x18\x01 \x01(\x02\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x0c\n\x04ip_o\x18\x03 \x01(\t\x12\x10\n\x08tag_name\x18\x04 \x01(\t\x12\x0b\n\x03tag\x18\x05 \x01(\x05\x12\x0f\n\x07\x66low_id\x18\x06 \x01(\t\x12\x10\n\x08protocol\x18\x07 \x01(\t\x12\x0e\n\x06port_d\x18\x08 \x01(\t\x12\r\n\x05ml_id\x18\t \x01(\t\x12\x12\n\ntime_start\x18\n \x01(\x02\x12\x10\n\x08time_end\x18\x0b \x01(\x02\x32\x99\x01\n\x1bL3Centralizedattackdetector\x12:\n\tSendInput\x12#.L3CentralizedattackdetectorMetrics\x1a\x06.Empty\"\x00\x12>\n\tGetOutput\x12\x06.Empty\x1a\'.L3CentralizedattackdetectorModelOutput\"\x00\x62\x06proto3'
-)
-
-
-
-
-_L3CENTRALIZEDATTACKDETECTORMETRICS = _descriptor.Descriptor(
-  name='L3CentralizedattackdetectorMetrics',
-  full_name='L3CentralizedattackdetectorMetrics',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='n_packets_server_seconds', full_name='L3CentralizedattackdetectorMetrics.n_packets_server_seconds', index=0,
-      number=1, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_packets_client_seconds', full_name='L3CentralizedattackdetectorMetrics.n_packets_client_seconds', index=1,
-      number=2, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_bits_server_seconds', full_name='L3CentralizedattackdetectorMetrics.n_bits_server_seconds', index=2,
-      number=3, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_bits_client_seconds', full_name='L3CentralizedattackdetectorMetrics.n_bits_client_seconds', index=3,
-      number=4, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_bits_server_n_packets_server', full_name='L3CentralizedattackdetectorMetrics.n_bits_server_n_packets_server', index=4,
-      number=5, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_bits_client_n_packets_client', full_name='L3CentralizedattackdetectorMetrics.n_bits_client_n_packets_client', index=5,
-      number=6, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_packets_server_n_packets_client', full_name='L3CentralizedattackdetectorMetrics.n_packets_server_n_packets_client', index=6,
-      number=7, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='n_bits_server_n_bits_client', full_name='L3CentralizedattackdetectorMetrics.n_bits_server_n_bits_client', index=7,
-      number=8, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ip_o', full_name='L3CentralizedattackdetectorMetrics.ip_o', index=8,
-      number=9, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='port_o', full_name='L3CentralizedattackdetectorMetrics.port_o', index=9,
-      number=10, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ip_d', full_name='L3CentralizedattackdetectorMetrics.ip_d', index=10,
-      number=11, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='port_d', full_name='L3CentralizedattackdetectorMetrics.port_d', index=11,
-      number=12, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='flow_id', full_name='L3CentralizedattackdetectorMetrics.flow_id', index=12,
-      number=13, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='protocol', full_name='L3CentralizedattackdetectorMetrics.protocol', index=13,
-      number=14, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='time_start', full_name='L3CentralizedattackdetectorMetrics.time_start', index=14,
-      number=15, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='time_end', full_name='L3CentralizedattackdetectorMetrics.time_end', index=15,
-      number=16, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=39,
-  serialized_end=498,
-)
-
-
-_EMPTY = _descriptor.Descriptor(
-  name='Empty',
-  full_name='Empty',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='message', full_name='Empty.message', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=500,
-  serialized_end=524,
-)
-
-
-_L3CENTRALIZEDATTACKDETECTORMODELOUTPUT = _descriptor.Descriptor(
-  name='L3CentralizedattackdetectorModelOutput',
-  full_name='L3CentralizedattackdetectorModelOutput',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='confidence', full_name='L3CentralizedattackdetectorModelOutput.confidence', index=0,
-      number=1, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='timestamp', full_name='L3CentralizedattackdetectorModelOutput.timestamp', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ip_o', full_name='L3CentralizedattackdetectorModelOutput.ip_o', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='tag_name', full_name='L3CentralizedattackdetectorModelOutput.tag_name', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='tag', full_name='L3CentralizedattackdetectorModelOutput.tag', index=4,
-      number=5, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='flow_id', full_name='L3CentralizedattackdetectorModelOutput.flow_id', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='protocol', full_name='L3CentralizedattackdetectorModelOutput.protocol', index=6,
-      number=7, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='port_d', full_name='L3CentralizedattackdetectorModelOutput.port_d', index=7,
-      number=8, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ml_id', full_name='L3CentralizedattackdetectorModelOutput.ml_id', index=8,
-      number=9, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='time_start', full_name='L3CentralizedattackdetectorModelOutput.time_start', index=9,
-      number=10, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='time_end', full_name='L3CentralizedattackdetectorModelOutput.time_end', index=10,
-      number=11, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=527,
-  serialized_end=755,
-)
-
-DESCRIPTOR.message_types_by_name['L3CentralizedattackdetectorMetrics'] = _L3CENTRALIZEDATTACKDETECTORMETRICS
-DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY
-DESCRIPTOR.message_types_by_name['L3CentralizedattackdetectorModelOutput'] = _L3CENTRALIZEDATTACKDETECTORMODELOUTPUT
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-L3CentralizedattackdetectorMetrics = _reflection.GeneratedProtocolMessageType('L3CentralizedattackdetectorMetrics', (_message.Message,), {
-  'DESCRIPTOR' : _L3CENTRALIZEDATTACKDETECTORMETRICS,
-  '__module__' : 'l3_centralizedattackdetector_pb2'
-  # @@protoc_insertion_point(class_scope:L3CentralizedattackdetectorMetrics)
-  })
-_sym_db.RegisterMessage(L3CentralizedattackdetectorMetrics)
-
-Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), {
-  'DESCRIPTOR' : _EMPTY,
-  '__module__' : 'l3_centralizedattackdetector_pb2'
-  # @@protoc_insertion_point(class_scope:Empty)
-  })
-_sym_db.RegisterMessage(Empty)
-
-L3CentralizedattackdetectorModelOutput = _reflection.GeneratedProtocolMessageType('L3CentralizedattackdetectorModelOutput', (_message.Message,), {
-  'DESCRIPTOR' : _L3CENTRALIZEDATTACKDETECTORMODELOUTPUT,
-  '__module__' : 'l3_centralizedattackdetector_pb2'
-  # @@protoc_insertion_point(class_scope:L3CentralizedattackdetectorModelOutput)
-  })
-_sym_db.RegisterMessage(L3CentralizedattackdetectorModelOutput)
-
-
-
-_L3CENTRALIZEDATTACKDETECTOR = _descriptor.ServiceDescriptor(
-  name='L3Centralizedattackdetector',
-  full_name='L3Centralizedattackdetector',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=758,
-  serialized_end=911,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='SendInput',
-    full_name='L3Centralizedattackdetector.SendInput',
-    index=0,
-    containing_service=None,
-    input_type=_L3CENTRALIZEDATTACKDETECTORMETRICS,
-    output_type=_EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetOutput',
-    full_name='L3Centralizedattackdetector.GetOutput',
-    index=1,
-    containing_service=None,
-    input_type=_EMPTY,
-    output_type=_L3CENTRALIZEDATTACKDETECTORMODELOUTPUT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_L3CENTRALIZEDATTACKDETECTOR)
-
-DESCRIPTOR.services_by_name['L3Centralizedattackdetector'] = _L3CENTRALIZEDATTACKDETECTOR
-
-# @@protoc_insertion_point(module_scope)
diff --git a/src/l3_distributedattackdetector/proto/l3_centralizedattackdetector_pb2_grpc.py b/src/l3_distributedattackdetector/proto/l3_centralizedattackdetector_pb2_grpc.py
deleted file mode 100644
index 29136b4da95c9fc2ad7d4827521b26e872186dcf..0000000000000000000000000000000000000000
--- a/src/l3_distributedattackdetector/proto/l3_centralizedattackdetector_pb2_grpc.py
+++ /dev/null
@@ -1,101 +0,0 @@
-# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
-"""Client and server classes corresponding to protobuf-defined services."""
-import grpc
-
-from . import l3_centralizedattackdetector_pb2 as l3__centralizedattackdetector__pb2
-
-
-class L3CentralizedattackdetectorStub(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def __init__(self, channel):
-        """Constructor.
-
-        Args:
-            channel: A grpc.Channel.
-        """
-        self.SendInput = channel.unary_unary(
-                '/L3Centralizedattackdetector/SendInput',
-                request_serializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorMetrics.SerializeToString,
-                response_deserializer=l3__centralizedattackdetector__pb2.Empty.FromString,
-                )
-        self.GetOutput = channel.unary_unary(
-                '/L3Centralizedattackdetector/GetOutput',
-                request_serializer=l3__centralizedattackdetector__pb2.Empty.SerializeToString,
-                response_deserializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorModelOutput.FromString,
-                )
-
-
-class L3CentralizedattackdetectorServicer(object):
-    """Missing associated documentation comment in .proto file."""
-
-    def SendInput(self, request, context):
-        """Sends a greeting
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-    def GetOutput(self, request, context):
-        """Sends another greeting
-        """
-        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
-        context.set_details('Method not implemented!')
-        raise NotImplementedError('Method not implemented!')
-
-
-def add_L3CentralizedattackdetectorServicer_to_server(servicer, server):
-    rpc_method_handlers = {
-            'SendInput': grpc.unary_unary_rpc_method_handler(
-                    servicer.SendInput,
-                    request_deserializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorMetrics.FromString,
-                    response_serializer=l3__centralizedattackdetector__pb2.Empty.SerializeToString,
-            ),
-            'GetOutput': grpc.unary_unary_rpc_method_handler(
-                    servicer.GetOutput,
-                    request_deserializer=l3__centralizedattackdetector__pb2.Empty.FromString,
-                    response_serializer=l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorModelOutput.SerializeToString,
-            ),
-    }
-    generic_handler = grpc.method_handlers_generic_handler(
-            'L3Centralizedattackdetector', rpc_method_handlers)
-    server.add_generic_rpc_handlers((generic_handler,))
-
-
- # This class is part of an EXPERIMENTAL API.
-class L3Centralizedattackdetector(object):
-    """Missing associated documentation comment in .proto file."""
-
-    @staticmethod
-    def SendInput(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, '/L3Centralizedattackdetector/SendInput',
-            l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorMetrics.SerializeToString,
-            l3__centralizedattackdetector__pb2.Empty.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
-
-    @staticmethod
-    def GetOutput(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, '/L3Centralizedattackdetector/GetOutput',
-            l3__centralizedattackdetector__pb2.Empty.SerializeToString,
-            l3__centralizedattackdetector__pb2.L3CentralizedattackdetectorModelOutput.FromString,
-            options, channel_credentials,
-            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/src/l3_distributedattackdetector/requirements.in b/src/l3_distributedattackdetector/requirements.in
index ede9c839d93cc377e93c525bc1e85243576faa00..772ae923931c8b09917e75a600ce2b5a0d2d4ecf 100644
--- a/src/l3_distributedattackdetector/requirements.in
+++ b/src/l3_distributedattackdetector/requirements.in
@@ -1,9 +1 @@
-grpcio-health-checking
-grpcio
-grpcio-tools
-prometheus-client
-pytest
-pytest-benchmark
-numpy
-scikit-learn
-coverage
\ No newline at end of file
+# no extra dependency
diff --git a/src/l3_distributedattackdetector/service/__main__.py b/src/l3_distributedattackdetector/service/__main__.py
index 29f943ce745bc1355ac063fea83a63b42e19f36b..1ce6831f22e63b482031f919f040ad1182c4e2d4 100644
--- a/src/l3_distributedattackdetector/service/__main__.py
+++ b/src/l3_distributedattackdetector/service/__main__.py
@@ -17,10 +17,10 @@ import sys
 import os 
 import time
 import grpc
-from l3_distributedattackdetector.proto.l3_centralizedattackdetector_pb2_grpc import (
+from common.proto.l3_centralizedattackdetector_pb2_grpc import (
     L3CentralizedattackdetectorStub,
 )
-from l3_distributedattackdetector.proto.l3_centralizedattackdetector_pb2 import (
+from common.proto.l3_centralizedattackdetector_pb2 import (
     ModelInput,
 )
 
diff --git a/src/monitoring/.gitlab-ci.yml b/src/monitoring/.gitlab-ci.yml
index 31789a0f1ea7914e70a155ac3fa45230679b8317..fac3f967bbf531ef5cc9b67b2a1afe47fb9990d5 100644
--- a/src/monitoring/.gitlab-ci.yml
+++ b/src/monitoring/.gitlab-ci.yml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Build, tag and push the Docker image to the GitLab registry
+# Build, tag, and push the Docker image to the GitLab Docker registry
 build monitoring:
   variables:
     IMAGE_NAME: 'monitoring' # name of the microservice
diff --git a/src/pathcomp/.gitlab-ci.yml b/src/pathcomp/.gitlab-ci.yml
index 671e1dc035bf8d5ebe497dfef7db0f995eaa5f84..fd52da6fb7bf8dc556b92e4db080c9927bb58a5d 100644
--- a/src/pathcomp/.gitlab-ci.yml
+++ b/src/pathcomp/.gitlab-ci.yml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Build, tag and push the Docker image to the GitLab registry
+# Build, tag, and push the Docker image to the GitLab Docker registry
 build pathcomp:
   variables:
     IMAGE_NAME: 'pathcomp' # name of the microservice
diff --git a/src/service/.gitlab-ci.yml b/src/service/.gitlab-ci.yml
index 043b5c990eaa0266105439bdf7a02143b859b960..c40bc90cfe0b20669fe89aa9d6ecda562d7d0422 100644
--- a/src/service/.gitlab-ci.yml
+++ b/src/service/.gitlab-ci.yml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Build, tag and push the Docker image to the GitLab registry
+# Build, tag, and push the Docker image to the GitLab Docker registry
 build service:
   variables:
     IMAGE_NAME: 'service' # name of the microservice
diff --git a/src/slice/.gitlab-ci.yml b/src/slice/.gitlab-ci.yml
index 3fe479f71ce1d8ed6fd72fe3ed95736a981713ea..9393e6b29a2fbe180e74944375c871af4c4ae3d6 100644
--- a/src/slice/.gitlab-ci.yml
+++ b/src/slice/.gitlab-ci.yml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Build, tag and push the Docker image to the GitLab registry
+# Build, tag, and push the Docker image to the GitLab Docker registry
 build slice:
   variables:
     IMAGE_NAME: 'slice' # name of the microservice
diff --git a/src/webui/.gitlab-ci.yml b/src/webui/.gitlab-ci.yml
index afafed4b2892ba05a33595f961e0add738adc041..e939d834761834f60e13045f7ce941f41887b956 100644
--- a/src/webui/.gitlab-ci.yml
+++ b/src/webui/.gitlab-ci.yml
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Build, tag and push the Docker image to the GitLab registry
+# Build, tag, and push the Docker image to the GitLab Docker registry
 build webui:
   variables:
     IMAGE_NAME: 'webui' # name of the microservice