diff --git a/troveclient/v1/flavors.py b/troveclient/v1/flavors.py
index d61fd04b..56479e25 100644
--- a/troveclient/v1/flavors.py
+++ b/troveclient/v1/flavors.py
@@ -30,11 +30,20 @@ class Flavors(base.ManagerWithFind):
 
     def list(self):
         """Get a list of all flavors.
-
         :rtype: list of :class:`Flavor`.
         """
         return self._list("/flavors", "flavors")
 
+    def list_datastore_version_associated_flavors(self, datastore,
+                                                  version_id):
+        """Get a list of all flavors for the specified datastore type
+        and datastore version .
+        :rtype: list of :class:`Flavor`.
+        """
+        return self._list("/datastores/%s/versions/%s/flavors" %
+                         (datastore, version_id),
+                          "flavors")
+
     def get(self, flavor):
         """Get a specific flavor.
 
diff --git a/troveclient/v1/shell.py b/troveclient/v1/shell.py
index a3fc5bf0..000ba29b 100644
--- a/troveclient/v1/shell.py
+++ b/troveclient/v1/shell.py
@@ -111,11 +111,23 @@ def _find_backup(cs, backup):
 
 
 # Flavor related calls
-
+@utils.arg('--datastore_type', metavar='<datastore_type>',
+           default=None,
+           help='Type of the datastore. For eg: mysql.')
+@utils.arg("--datastore_version_id", metavar="<datastore_version_id>",
+           default=None, help="ID of the datastore version.")
 @utils.service_type('database')
 def do_flavor_list(cs, args):
     """Lists available flavors."""
-    flavors = cs.flavors.list()
+    if args.datastore_type and args.datastore_version_id:
+        flavors = cs.flavors.list_datastore_version_associated_flavors(
+            args.datastore_type, args.datastore_version_id)
+    elif not args.datastore_type and not args.datastore_version_id:
+        flavors = cs.flavors.list()
+    else:
+        err_msg = ("Specify both <datastore_type> and <datastore_version_id>"
+                   " to list datastore version associated flavors.")
+        raise exceptions.CommandError(err_msg)
     utils.print_list(flavors, ['id', 'name', 'ram'],
                      labels={'ram': 'RAM'})