diff --git a/osmclient/cli_commands/vim.py b/osmclient/cli_commands/vim.py
index c6424ca..ff1bcc6 100755
--- a/osmclient/cli_commands/vim.py
+++ b/osmclient/cli_commands/vim.py
@@ -76,6 +76,16 @@
     "--creds", default=None, help="credentials file (only applicable for GCP VIM type)"
 )
 @click.option(
+    "--prometheus_url",
+    default=None,
+    help="PrometheusTSBD URL to get VIM data",
+)
+@click.option(
+    "--prometheus_map",
+    default=None,
+    help="PrometheusTSBD metrics mapping for VIM data",
+)
+@click.option(
     "--prometheus_config_file",
     default=None,
     help="Prometheus configuration to get VIM data",
@@ -97,6 +107,8 @@
     wait,
     vca,
     creds,
+    prometheus_url,
+    prometheus_map,
     prometheus_config_file,
 ):
     """creates a new VIM account"""
@@ -106,11 +118,17 @@
     if sdn_port_mapping:
         utils.check_client_version(ctx.obj, "--sdn_port_mapping")
     vim = {}
+    prometheus_config = {}
+    if prometheus_url:
+        prometheus_config["prometheus-url"] = prometheus_url
+    if prometheus_map:
+        prometheus_config["prometheus-map"] = prometheus_map
     if prometheus_config_file:
         with open(prometheus_config_file) as prometheus_file:
             prometheus_config_dict = json.load(prometheus_file)
-        vim["prometheus-config"] = prometheus_config_dict
-
+        prometheus_config.update(prometheus_config_dict)
+    if prometheus_config:
+        vim["prometheus-config"] = prometheus_config
     vim["vim-username"] = user
     vim["vim-password"] = password
     vim["vim-url"] = auth_url
@@ -167,6 +185,16 @@
     "--creds", default=None, help="credentials file (only applicable for GCP VIM type)"
 )
 @click.option(
+    "--prometheus_url",
+    default=None,
+    help="PrometheusTSBD URL to get VIM data",
+)
+@click.option(
+    "--prometheus_map",
+    default=None,
+    help="PrometheusTSBD metrics mapping for VIM data",
+)
+@click.option(
     "--prometheus_config_file",
     default=None,
     help="Prometheus configuration to get VIM data",
@@ -188,6 +216,8 @@
     sdn_port_mapping,
     wait,
     creds,
+    prometheus_url,
+    prometheus_map,
     prometheus_config_file,
 ):
     """updates a VIM account
@@ -218,11 +248,17 @@
     if creds:
         with open(creds, "r") as cf:
             vim_config["credentials"] = yaml.safe_load(cf.read())
+    prometheus_config = {}
+    if prometheus_url:
+        prometheus_config["prometheus-url"] = prometheus_url
+    if prometheus_map:
+        prometheus_config["prometheus-map"] = prometheus_map
     if prometheus_config_file:
         with open(prometheus_config_file) as prometheus_file:
             prometheus_config_dict = json.load(prometheus_file)
-        vim["prometheus-config"] = prometheus_config_dict
-    logger.info(f"VIM: {vim}, VIM config: {vim_config}")
+        prometheus_config.update(prometheus_config_dict)
+    if prometheus_config:
+        vim["prometheus-config"] = prometheus_config
     ctx.obj.vim.update(
         name, vim, vim_config, sdn_controller, sdn_port_mapping, wait=wait
     )
diff --git a/osmclient/sol005/http.py b/osmclient/sol005/http.py
index 4234fc8..1b47204 100644
--- a/osmclient/sol005/http.py
+++ b/osmclient/sol005/http.py
@@ -114,7 +114,6 @@
             curl_cmd.setopt(pycurl.CUSTOMREQUEST, "PATCH")
         curl_cmd.setopt(pycurl.POST, 1)
         curl_cmd.setopt(pycurl.WRITEFUNCTION, data.write)
-
         if postfields_dict is not None:
             jsondata = json.dumps(postfields_dict)
             if "password" in postfields_dict:
diff --git a/osmclient/sol005/vim.py b/osmclient/sol005/vim.py
index 72a0822..fa40140 100644
--- a/osmclient/sol005/vim.py
+++ b/osmclient/sol005/vim.py
@@ -108,7 +108,6 @@
         if vim_config:
             vim_account["config"] = vim_config
             # vim_account['config'] = json.dumps(vim_config)
-
         http_code, resp = self._http.post_cmd(
             endpoint=self._apiBase, postfields_dict=vim_account
         )
@@ -197,6 +196,8 @@
         vim_account["vim_user"] = vim_access["vim-username"] or "null"
         vim_account["vim_password"] = vim_access["vim-password"] or "null"
         vim_account["vim_tenant_name"] = vim_access["vim-tenant-name"] or "null"
+        if "prometheus-config" in vim_access:
+            vim_account["prometheus_config"] = vim_access["prometheus-config"]
         return vim_account
 
     def get_id(self, name):
