diff --git a/cli/cli/desc/version200/policy.py b/cli/cli/desc/version200/policy.py
index 685a86c..57c29ae 100644
--- a/cli/cli/desc/version200/policy.py
+++ b/cli/cli/desc/version200/policy.py
@@ -21,6 +21,7 @@
     'parent-field'  : None,
     'doc'           : 'policy|policy',
     'doc-example'   : 'policy|policy-example',
+    #'completion'    : 'policy-id-completion',
     'args' : {
         'action'       : (
                             {
@@ -238,7 +239,6 @@
         ),
     },
 }
-
 POLICY_TUNNEL_ID_COMMAND_DESCRIPTION = {
     'name'            : 'tunnel',
     'mode'            : 'config-policy',
@@ -254,6 +254,7 @@
                                 'proc' : 'create-policy',
                             },
                          ),
+        'completion'   : 'tunnel-id-completion',
         'field'        : 'tunnel-id',
         'type'         : 'identifier',
         'syntax-help'  : 'Enter tunnel id',
@@ -282,7 +283,7 @@
     }
 }
 
-SWITCH_TUNNEL_COMMAND_DESCRIPTION = {
+SHOW_POLICY_COMMAND_DESCRIPTION = {
     'name'                : 'show',
     'mode'                : 'login',
     'command-type'        : 'display-table',
@@ -304,4 +305,34 @@
             'format' : 'show_policy',
         },
     )
-}
\ No newline at end of file
+}
+
+
+def tunnel_id_completion(prefix, completions):
+    query_url = "http://127.0.0.1:8000/rest/v1/showtunnel"
+    result = command.sdnsh.store.rest_simple_request(query_url)
+    entries = json.loads(result)
+    for entry in entries:
+        if entry['tunnelId'].startswith(prefix):
+            completions[entry['tunnelId']+' '] = entry['tunnelId']
+    return
+
+command.add_completion('tunnel-id-completion', tunnel_id_completion,
+                       {'kwargs': { 'prefix'       : '$text',
+                                    'completions'  : '$completions',
+                                    }})
+
+
+def policy_id_completion(prefix, completions):
+    query_url = "http://127.0.0.1:8000/rest/v1/showpolicy"
+    result = command.sdnsh.store.rest_simple_request(query_url)
+    entries = json.loads(result)
+    for entry in entries:
+        if entry['policyId'].startswith(prefix):
+            completions[entry['policyId']+' '] = entry['policyId']
+    return
+
+command.add_completion('policy-id-completion', policy_id_completion,
+                       {'kwargs': { 'prefix'       : '$text',
+                                    'completions'  : '$completions',
+                                    }})
\ No newline at end of file
diff --git a/cli/cli/desc/version200/tunnel.py b/cli/cli/desc/version200/tunnel.py
index 67a37ab..d79b012 100644
--- a/cli/cli/desc/version200/tunnel.py
+++ b/cli/cli/desc/version200/tunnel.py
@@ -17,10 +17,11 @@
         {
             'field'        : 'tunnel-id',
             'type'         : 'identifier',
-            'completion'   : 'complete-object-field',
+            #'completion'   : 'complete-object-field',
             'syntax-help'  : 'Enter a tunnel name',
             'doc'          : 'tunnel|tunnel',
             'doc-include'  : [ 'type-doc' ],
+            'completion'   : 'tunnel-id-completion',
             'action'       : (
                                 {
                                     'proc' : 'create-tunnel',
@@ -177,4 +178,19 @@
                          ),
                }
     )
-}
\ No newline at end of file
+}
+
+
+def tunnel_id_completion(prefix, completions):
+    query_url = "http://127.0.0.1:8000/rest/v1/showtunnel"
+    result = command.sdnsh.store.rest_simple_request(query_url)
+    entries = json.loads(result)
+    for entry in entries:
+        if entry['tunnelId'].startswith(prefix):
+            completions[entry['tunnelId']+' '] = entry['tunnelId']
+    return
+
+command.add_completion('tunnel-id-completion', tunnel_id_completion,
+                       {'kwargs': { 'prefix'       : '$text',
+                                    'completions'  : '$completions',
+                                    }})
\ No newline at end of file
