diff --git a/manifests/ztp_server.yaml b/manifests/ztp_server.yaml
index 6ed469174884bae1299c44f281be91702b9dd140..398aaa71eaf2915a4ef5da42c86b677e6c381648 100644
--- a/manifests/ztp_server.yaml
+++ b/manifests/ztp_server.yaml
@@ -74,5 +74,4 @@ spec:
     - name: metrics
       protocol: TCP
       port: 9192
-      targetPort: 
----
+      targetPort: 9192
diff --git a/proto/ztp_server.proto b/proto/ztp_server.proto
index 807751084e43308a98bf98ea21813d1fb332350d..31e568d3a833c534b9fa7b4531700bffb35505b0 100755
--- a/proto/ztp_server.proto
+++ b/proto/ztp_server.proto
@@ -19,7 +19,7 @@ package ztpServer;
 
 service ZtpServerService {
   rpc GetProvisioningScript     (ProvisioningScriptName         ) returns (ProvisioningScript       ) {}
-  rpc GetZtpProvisioning        (ZtpFileName                    ) returns (ZtpFile       ) {}
+  rpc GetZtpProvisioning        (ZtpFileName                    ) returns (ZtpFile                  ) {}
 }
 
 
diff --git a/src/common/Constants.py b/src/common/Constants.py
index 50b792c65e58f7a5777aed51c53a6b743b428289..b95b6d01b9f35d937cbe3e23810c8b901a8c05a7 100644
--- a/src/common/Constants.py
+++ b/src/common/Constants.py
@@ -42,7 +42,7 @@ class ServiceNameEnum(Enum):
     SERVICE                = 'service'
     SLICE                  = 'slice'
     ZTP                    = 'ztp'
-    ZTP_SERVER             = 'ztp_server'
+    ZTP_SERVER             = 'ztp-server'
     POLICY                 = 'policy'
     MONITORING             = 'monitoring'
     DLT                    = 'dlt'
diff --git a/src/ztp_server/.gitlab-ci.yml b/src/ztp_server/.gitlab-ci.yml
deleted file mode 100755
index 71bf223ba9408e178e252d600c625dc2256dbe92..0000000000000000000000000000000000000000
--- a/src/ztp_server/.gitlab-ci.yml
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
-#
-# 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.
-
-# Build, tag, and push the Docker image to the GitLab Docker registry
-build nbi:
-  variables:
-    IMAGE_NAME: 'nbi' # name of the microservice
-    IMAGE_TAG: 'latest' # tag of the container image (production, development, etc)
-  stage: build
-  before_script:
-    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
-  script:
-    - docker buildx 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"'
-    - 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
-
-# Apply unit test to the component
-unit_test nbi:
-  variables:
-    IMAGE_NAME: 'nbi' # name of the microservice
-    IMAGE_TAG: 'latest' # tag of the container image (production, development, etc)
-  stage: unit_test
-  needs:
-    - build nbi
-  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 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"
-    - docker run --name $IMAGE_NAME -d -p 9090:9090 -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG
-    - sleep 5
-    - docker ps -a
-    - docker logs $IMAGE_NAME
-    - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_tfs_api.py --junitxml=/opt/results/${IMAGE_NAME}_report_tfs_api.xml"
-    - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_l2vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l2vpn.xml"
-    - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_network.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_network.xml"
-    - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_ietf_l3vpn.py --junitxml=/opt/results/${IMAGE_NAME}_report_ietf_l3vpn.xml"
-    - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_etsi_bwm.py --junitxml=/opt/results/${IMAGE_NAME}_report_etsi_bwm.xml"
-    - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing"
-  coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
-  after_script:
-    - docker rm -f $IMAGE_NAME
-    - 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"'
-    - changes:
-      - src/common/**/*.py
-      - proto/*.proto
-      - src/$IMAGE_NAME/**/*.{py,in,yml}
-      - src/$IMAGE_NAME/Dockerfile
-      - src/$IMAGE_NAME/tests/*.py
-      - src/$IMAGE_NAME/tests/Dockerfile
-      - manifests/${IMAGE_NAME}service.yaml
-      - .gitlab-ci.yml
-  artifacts:
-      when: always
-      reports:
-        junit: src/$IMAGE_NAME/tests/${IMAGE_NAME}_report_*.xml
-
-## Deployment of the service in Kubernetes Cluster
-#deploy nbi:
-#  variables:
-#    IMAGE_NAME: 'nbi' # name of the microservice
-#    IMAGE_TAG: 'latest' # tag of the container image (production, development, etc)
-#  stage: deploy
-#  needs:
-#    - unit test nbi
-#    # - integ_test execute
-#  script:
-#    - 'sed -i "s/$IMAGE_NAME:.*/$IMAGE_NAME:$IMAGE_TAG/" manifests/${IMAGE_NAME}service.yaml'
-#    - kubectl version
-#    - kubectl get all
-#    - kubectl apply -f "manifests/${IMAGE_NAME}service.yaml"
-#    - kubectl get all
-#  # environment:
-#  #   name: test
-#  #   url: https://example.com
-#  #   kubernetes:
-#  #     namespace: test
-#  rules:
-#    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
-#      when: manual    
-#    - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "develop"'
-#      when: manual
diff --git a/src/ztp_server/data/provisioning_script_sonic.sh b/src/ztp_server/data/provisioning_script_sonic.sh
index c4dd2043804afc81dc25441c97cfd7ff98c1309a..24b1eb8a669c47d1ab40c847c110609c32087dbe 100644
--- a/src/ztp_server/data/provisioning_script_sonic.sh
+++ b/src/ztp_server/data/provisioning_script_sonic.sh
@@ -1,5 +1,20 @@
 #!/bin/bash
 
+# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
+#
+# 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
+
+
 PRODUCT_NAME=$(show version | grep 'Platform' | awk '{print $2}')
 SERIAL_NUMBER=$(show version | grep 'Serial Number' | awk '{print $3}')
 BASE_MAC_ADDRESS=$(show platform syseeprom | grep 'Base MAC Address' | awk '{print $6}')
diff --git a/src/ztp_server/data/ztp.json b/src/ztp_server/data/ztp.json
index 6e606a5e857a93d9f30c1aa015602551e12b7e44..4a4cdc3cf032fbe4ab3a174391da9b45fae72de5 100644
--- a/src/ztp_server/data/ztp.json
+++ b/src/ztp_server/data/ztp.json
@@ -8,4 +8,3 @@
       }
     }
   }
-  
\ No newline at end of file
diff --git a/src/ztp_server/requirements.in b/src/ztp_server/requirements.in
deleted file mode 100755
index ba715494d122a2c5959c50cab052559a524ccb63..0000000000000000000000000000000000000000
--- a/src/ztp_server/requirements.in
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2022-2024 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
-#
-# 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.
-
-deepdiff==6.7.*
-deepmerge==1.1.*
-Flask==2.1.3
-Flask-HTTPAuth==4.5.0
-Flask-RESTful==0.3.9
-jsonschema==4.4.0
-netaddr==0.9.0
-pydantic==2.6.3
-requests==2.27.1
-werkzeug==2.3.7
-websockets==12.0
diff --git a/src/ztp_server/service/ZtpServerServiceServicerImpl.py b/src/ztp_server/service/ZtpServerServiceServicerImpl.py
index 410db6cb3211af7c1ffc562a67b3813b46cc3195..62ddb856ff57a0d20689fb532f59883c833086c4 100755
--- a/src/ztp_server/service/ZtpServerServiceServicerImpl.py
+++ b/src/ztp_server/service/ZtpServerServiceServicerImpl.py
@@ -38,16 +38,3 @@ class ZtpServerServiceServicerImpl(ZtpServerServiceServicer):
             context.set_code(grpc.StatusCode.NOT_FOUND)
             context.set_details('File not found')
             return ProvisioningScript()
-
-    
-    @safe_and_metered_rpc_method(METRICS_POOL, LOGGER)
-    def GetZtpProvisioning(self, request : ZtpFileName, context : grpc.ServicerContext) -> ZtpFile:
-        try:
-            ztpPath = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..', 'data', request.filename)
-            with open(ztpPath, 'r') as json_file:
-                json_content = json_file.read()
-            return ZtpFile(json=json_content)
-        except FileNotFoundError:
-            context.set_code(grpc.StatusCode.NOT_FOUND)
-            context.set_details('File not found')
-            return ZtpFile()
\ No newline at end of file
diff --git a/src/ztp_server/service/__main__.py b/src/ztp_server/service/__main__.py
index 55bd5f1874a89ab0ba56ae9c604bf42d272f83fa..ae8a95d21089f4193185febe8e23b1019e2b6aa4 100755
--- a/src/ztp_server/service/__main__.py
+++ b/src/ztp_server/service/__main__.py
@@ -21,9 +21,7 @@ from common.Settings import (
 )
 from .ZtpServerService import ZtpServerService
 from .rest_server.RestServer import RestServer
-from .rest_server.ztpServer_plugins.tfs_api import register_tfs_api
-
-from .context_subscription import register_context_subscription
+from .rest_server.ztpServer_plugins.ztp_provisioning_api import register_ztp_provisioning
 
 terminate = threading.Event()
 LOGGER = None
@@ -53,7 +51,7 @@ def main():
     grpc_service.start()
 
     rest_server = RestServer()
-    register_tfs_api(rest_server)
+    register_ztp_provisioning(rest_server)
     rest_server.start()
 
     LOGGER.debug('Configured Resources:')
diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py
index 56ea475c7657c80957f0d34ec5c8a3560d68d20a..f9d749613b8f9fa2350d9118f32c4e83a130893d 100755
--- a/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py
+++ b/src/ztp_server/service/rest_server/ztpServer_plugins/tools/HttpStatusCodes.py
@@ -17,4 +17,4 @@ HTTP_CREATED        = 201
 HTTP_NOCONTENT      = 204
 HTTP_BADREQUEST     = 400
 HTTP_SERVERERROR    = 500
-HTTP_GATEWAYTIMEOUT = 504
\ No newline at end of file
+HTTP_GATEWAYTIMEOUT = 504
diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py b/src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/Resources.py
similarity index 94%
rename from src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py
rename to src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/Resources.py
index 43b7b79b6aa5c189b5e1f4e832fb76cdda23c630..f4169742aabc0f5bf9d1b9af4acbd0f545b62e5a 100755
--- a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Resources.py
+++ b/src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/Resources.py
@@ -32,6 +32,6 @@ class _Resource(Resource):
 class config(_Resource):
     @HTTP_AUTH.login_required
     def get(self, config_db : str):
-        #if returnConfigFile(config_db)
+        content = returnConfigFile(config_db)
 
-        return 
+        return content
diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py b/src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/Tools.py
similarity index 94%
rename from src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py
rename to src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/Tools.py
index 7d05816ee5cf64d38546909cae7deffbe4fb10c4..92573fd2e0f13e7982856a31d20345a28724adca 100755
--- a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/Tools.py
+++ b/src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/Tools.py
@@ -20,6 +20,6 @@ def returnConfigFile(config_db):
         with open(configFilePath, 'r', encoding='utf-8') as configFile:
             content = configFile.read()
     except FileNotFoundError:
-            return "File not Found"
+        return None
 
-    return content
\ No newline at end of file
+    return content
diff --git a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py b/src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/__init__.py
similarity index 89%
rename from src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py
rename to src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/__init__.py
index 7062772b4fed30e72e25ce6e290e9e95c1d3abef..ab06fd7bdac53a3441e8d873626932eee0a58a95 100755
--- a/src/ztp_server/service/rest_server/ztpServer_plugins/tfs_api/__init__.py
+++ b/src/ztp_server/service/rest_server/ztpServer_plugins/ztp_provisioning_api/__init__.py
@@ -14,7 +14,7 @@
 
 from ztp_server.service.rest_server.RestServer import RestServer
 from .Resources import (
-    config
+    Config
 )
 
 URL_PREFIX = '/provisioning'
@@ -22,9 +22,9 @@ URL_PREFIX = '/provisioning'
 # Use 'path' type since some identifiers might contain char '/' and Flask is unable to recognize them in 'string' type.
 RESOURCES = [
     # (endpoint_name, resource_class, resource_url)
-    ('api.config',    config,    '/config/<path:config_db>'),
+    ('api.config',    Config,    '/config/<path:config_db>'),
 ]
 
-def register_tfs_api(rest_server : RestServer):
+def register_ztp_provisioning(rest_server : RestServer):
     for endpoint_name, resource_class, resource_url in RESOURCES:
         rest_server.add_resource(resource_class, URL_PREFIX + resource_url, endpoint=endpoint_name)