diff --git a/agent_based/utils/ciscoapi.py b/agent_based/utils/ciscoapi.py
deleted file mode 100644
index 8d879e489004237ddc19f75dc13b6f788ea43beb..0000000000000000000000000000000000000000
--- a/agent_based/utils/ciscoapi.py
+++ /dev/null
@@ -1,155 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# License: GNU General Public License v2
-#
-# Author: thl-cmk[at]outlook[dot]com
-# URL   : https://thl-cmk.hopto.org
-# Date  : 2017-03-20
-#
-# include file, will be used with snmp_cisco_eox and snmp_cisco_contract
-#
-# 2017-05-29: fixed empty pid handling
-#             added serial number cleanup
-# 2021-07-23: rewrite for CMK 2.0
-#
-
-import os
-import logging
-import re
-import json
-from typing import List
-
-#
-# global variables
-#
-# list of PIDs to drop
-g_PID_black_list = ['BUILT-IN', 'MICRON', 'C400-MTFDD']
-# list of PIDs to try by serial number
-g_PID_bad_list = ['UNSPECIFIED', 'FABRIC', 'ASA', 'C2611XM-2FE', 'FTLX8570D3BCL', 'FTLF8519P2BCL', 'FTLX8571D3BCL',
-                  'FTRJ-8519-7D', 'PLRXPL-SC-S43']  #
-# list of S/Ns to drop
-g_SN_black_list = []
-
-
-def get_base_path() -> str:
-    conf_file = os.path.expanduser('~/etc/ciscoapi/ciscoapi.json')
-    base_path = '~/var/ciscoapi'
-    # check for conf_file and read parameters
-    if os.path.isfile(conf_file):
-        with open(conf_file) as f:
-            try:
-                config = json.load(f)
-                base_path = config['global'].get('base_dir', base_path)
-            except ValueError as e:
-                logging.warning(f'inv_cisco_contract:status:JSON load error: {e}')
-    return base_path
-
-
-def set_pid_black_list(pid_black_list: List[str]):
-    global g_PID_black_list
-    if pid_black_list:
-        g_PID_black_list = list(set(g_PID_black_list + pid_black_list))
-
-
-def set_pid_bad_list(pid_bad_list: List[str]):
-    global g_PID_bad_list
-    if pid_bad_list:
-        g_PID_bad_list = list(set(g_PID_bad_list + pid_bad_list))
-
-
-def set_sn_black_list(sn_black_list: List[str]):
-    global g_SN_black_list
-    if sn_black_list:
-        g_SN_black_list = list(set(g_SN_black_list + sn_black_list))
-
-
-# check if dir exists, if not try to create it.
-# return True if dir exists or creation was ok.
-# return False if dir not exists and creation was not ok
-def check_dir_and_create(directory):
-    directory = os.path.dirname(directory)
-    if not os.path.exists(directory):
-        try:
-            os.makedirs(directory)
-        except:
-            return False
-    return True
-
-
-# expand user dir and add '/' if necessary and create directory if it not exists
-def expand_path(path):
-    homedir = os.path.expanduser('~')
-    if path.startswith('~'):
-        path = homedir + path[1:]
-    if not path.endswith('/'):
-        path += '/'
-    if not check_dir_and_create(path):
-        return ''
-    return path
-
-
-# returns True if SN on black list
-def sn_on_black_list(serial):
-    global g_SN_black_list
-    if serial.upper() in g_SN_black_list:
-        return True
-    return False
-
-
-# returns True if PID on black list
-def pid_on_black_list(pid):
-    global g_PID_black_list
-    for drop_PID in g_PID_black_list:
-        if pid.startswith(drop_PID.upper()):
-            return True
-    # if PID not on Black list return false
-    return False
-
-
-# returns True if PID on Bad list
-def pid_on_bad_list(pid):
-    global g_PID_bad_list
-    # remove all chars from string, except allowedchars
-    allowedchars = re.compile('[^a-zA-Z0-9_=\/\-\+\.\\\]')
-    cleanpid = allowedchars.sub('', pid).strip()
-
-    # if PID contains illegal signs or if pid empty try by serial number
-    if (cleanpid != pid) or (cleanpid == ''):
-        return True
-
-    # list of bad PIDs :-( we need to try get EoX info via serial number for this PIDs
-    # needs to be configurable via a file if too big for wato ;-(
-    for bad_PID in g_PID_bad_list:
-        if pid.startswith(bad_PID):
-            return True
-
-    return False
-
-
-# returns True if bad serial
-def check_bad_serial(serial):
-    logging.info('Check_bad_serial:serial: %s' % serial)
-    serial = serial.replace(' ', '')
-
-    # remove all chars from string, except allowedchars
-    allowedchars = re.compile('[^a-zA-Z0-9_=\-\+\.\\\]')
-    cleanserial = allowedchars.sub('', serial).strip()
-
-    logging.info('Check_bad_serial:cleanserial: %s' % cleanserial)
-
-    # if serial contains illegal signs or empty return true
-    if (cleanserial != serial) or (cleanserial == ''):
-        logging.info('Check_bad_serial:bad:serial is bad')
-
-        return True
-
-    logging.info('Check_bad_serial:serial is god')
-    return False
-
-
-def set_loglevel():
-    # set default logglevel
-    logging.basicConfig(level=logging.WARNING)
-    # has no effect as long previous command is active (is by design)
-    logging.basicConfig(level=logging.INFO)