diff --git a/tackerclient/tacker/v1_0/nfvo/vnffgd.py b/tackerclient/tacker/v1_0/nfvo/vnffgd.py
index add54a80..d65fb184 100644
--- a/tackerclient/tacker/v1_0/nfvo/vnffgd.py
+++ b/tackerclient/tacker/v1_0/nfvo/vnffgd.py
@@ -16,6 +16,7 @@ import yaml
 
 from oslo_serialization import jsonutils
 
+from tackerclient.common import utils
 from tackerclient.i18n import _
 from tackerclient.tacker import v1_0 as tackerV10
 
@@ -43,7 +44,7 @@ class CreateVNFFGD(tackerV10.CreateCommand):
     def add_known_arguments(self, parser):
         group = parser.add_mutually_exclusive_group(required=True)
         group.add_argument('--vnffgd-file', help=_('Specify VNFFGD file'))
-        group.add_argument('--vnffgd', help=_('Specify VNFFGD'))
+        group.add_argument('--vnffgd', help=_('Specify VNFFGD (DEPRECATED)'))
         parser.add_argument(
             'name', metavar='NAME',
             help=_('Set a name for the VNFFGD'))
@@ -58,6 +59,11 @@ class CreateVNFFGD(tackerV10.CreateCommand):
                 vnffgd = yaml.safe_load(f.read())
                 body[self.resource]['template'] = {'vnffgd': vnffgd}
         if parsed_args.vnffgd:
+            # TODO(sridhar_ram): Only file based input supported starting
+            #       Ocata, remove all direct inputs in Pike
+            utils.deprecate_warning(what="Direct VNFFGD template input",
+                                    as_of="O",
+                                    remove_in=1)
             body[self.resource]['template'] = {
                 'vnffgd': yaml.safe_load(parsed_args.vnffgd)}
         tackerV10.update_dict(parsed_args, body[self.resource],
diff --git a/tackerclient/tacker/v1_0/vnfm/vnf.py b/tackerclient/tacker/v1_0/vnfm/vnf.py
index 74b196e4..c6e6cb11 100644
--- a/tackerclient/tacker/v1_0/vnfm/vnf.py
+++ b/tackerclient/tacker/v1_0/vnfm/vnf.py
@@ -78,7 +78,7 @@ class CreateVNF(tackerV10.CreateCommand):
             help=_('YAML file with VNF configuration'))
         parser.add_argument(
             '--config',
-            help=_('Specify config yaml data'))
+            help=_('Specify config yaml data (DEPRECATED)'))
         parser.add_argument(
             '--param-file',
             help=_('Specify parameter yaml file'))
@@ -93,14 +93,16 @@ class CreateVNF(tackerV10.CreateCommand):
                 config_yaml = f.read()
             config = yaml.load(
                 config_yaml, Loader=yaml.SafeLoader)
+
         if parsed_args.config:
+            # TODO(sridhar_ram): Only file based input supported starting
+            #       Ocata, remove all direct inputs in Pike
+            utils.deprecate_warning(what="Direct config YAML input", as_of="O",
+                                    remove_in=1)
             config = parsed_args.config
-            if isinstance(config, str):
+            if isinstance(config, str) or isinstance(config, unicode):
                 config_str = parsed_args.config.decode('unicode_escape')
                 config = yaml.load(config_str, Loader=yaml.SafeLoader)
-                utils.deprecate_warning(what='yaml as string', as_of='N',
-                                        in_favor_of='yaml as dictionary')
-
         if config:
             args['attributes']['config'] = config
         if parsed_args.vim_region_name:
@@ -161,11 +163,9 @@ class UpdateVNF(tackerV10.UpdateCommand):
             config = yaml.load(config_yaml, Loader=yaml.SafeLoader)
         if parsed_args.config:
             config = parsed_args.config
-            if isinstance(parsed_args.config, str):
+            if isinstance(config, str) or isinstance(config, unicode):
                 config_str = parsed_args.config.decode('unicode_escape')
                 config = yaml.load(config_str, Loader=yaml.SafeLoader)
-                utils.deprecate_warning(what='yaml as string', as_of='N',
-                                        in_favor_of='yaml as dictionary')
         if config:
             body[self.resource]['attributes'] = {'config': config}
         tackerV10.update_dict(parsed_args, body[self.resource], ['tenant_id'])
diff --git a/tackerclient/tacker/v1_0/vnfm/vnfd.py b/tackerclient/tacker/v1_0/vnfm/vnfd.py
index 2d4d1ee4..ef6cfb40 100644
--- a/tackerclient/tacker/v1_0/vnfm/vnfd.py
+++ b/tackerclient/tacker/v1_0/vnfm/vnfd.py
@@ -67,7 +67,7 @@ class CreateVNFD(tackerV10.CreateCommand):
     def add_known_arguments(self, parser):
         group = parser.add_mutually_exclusive_group(required=True)
         group.add_argument('--vnfd-file', help=_('Specify VNFD file'))
-        group.add_argument('--vnfd', help=_('Specify VNFD'))
+        group.add_argument('--vnfd', help=_('Specify VNFD (DEPRECATED)'))
         parser.add_argument(
             'name', metavar='NAME',
             help=_('Set a name for the VNFD'))
@@ -83,12 +83,15 @@ class CreateVNFD(tackerV10.CreateCommand):
                 vnfd = f.read()
                 vnfd = yaml.load(vnfd, Loader=yaml.SafeLoader)
         if parsed_args.vnfd:
-                vnfd = parsed_args.vnfd
-                if isinstance(vnfd, str):
-                    vnfd = yaml.load(vnfd, Loader=yaml.SafeLoader)
-                    utils.deprecate_warning(what='yaml as string',
-                                            as_of='N',
-                                            in_favor_of='yaml as dictionary')
+            # TODO(sridhar_ram): Only file based input supported starting
+            #       Ocata, remove all direct inputs in Pike
+            utils.deprecate_warning(what="Direct VNFD template input",
+                                    as_of="O",
+                                    remove_in=1)
+            vnfd = parsed_args.vnfd
+            if isinstance(vnfd, str) or isinstance(vnfd, unicode):
+                vnfd = yaml.load(vnfd, Loader=yaml.SafeLoader)
+
         if vnfd:
             body[self.resource]['attributes'] = {'vnfd': vnfd}