diff --git a/lib/constants.py b/lib/constants.py
index f2e978f2961506cdef28c886a8e3961391e56a60..5f2d9e05f946aa940357a16aa77a15b6877f58bd 100644
--- a/lib/constants.py
+++ b/lib/constants.py
@@ -30,7 +30,8 @@ PROTOCOL_VERSION = 40
 RELEASE_VERSION = _autoconf.PACKAGE_VERSION
 OS_API_V10 = 10
 OS_API_V15 = 15
-OS_API_VERSIONS = frozenset([OS_API_V10, OS_API_V15])
+OS_API_V20 = 20
+OS_API_VERSIONS = frozenset([OS_API_V10, OS_API_V15, OS_API_V20])
 EXPORT_VERSION = 0
 RAPI_VERSION = 2
 
@@ -448,11 +449,16 @@ OS_SCRIPT_CREATE = 'create'
 OS_SCRIPT_IMPORT = 'import'
 OS_SCRIPT_EXPORT = 'export'
 OS_SCRIPT_RENAME = 'rename'
+OS_SCRIPT_VERIFY = 'verify'
 OS_SCRIPTS = frozenset([OS_SCRIPT_CREATE, OS_SCRIPT_IMPORT,
-                        OS_SCRIPT_EXPORT, OS_SCRIPT_RENAME])
+                        OS_SCRIPT_EXPORT, OS_SCRIPT_RENAME,
+                        OS_SCRIPT_VERIFY])
 
 OS_API_FILE = 'ganeti_api_version'
 OS_VARIANTS_FILE = 'variants.list'
+OS_PARAMETERS_FILE = 'parameters.list'
+
+OS_VALIDATE_PARAMETERS = 'parameters'
 
 # ssh constants
 SSH_CONFIG_DIR = _autoconf.SSH_CONFIG_DIR
diff --git a/lib/objects.py b/lib/objects.py
index e640e3046b2a91b870e4caa8a8e4049dc6d4f1b0..1e2d1bbfe0cfb8788cd79ce3beea0693ea8cfe6e 100644
--- a/lib/objects.py
+++ b/lib/objects.py
@@ -815,7 +815,13 @@ class Instance(TaggableObject):
 
 
 class OS(ConfigObject):
-  """Config object representing an operating system."""
+  """Config object representing an operating system.
+
+  @type supported_parameters: list
+  @ivar supported_parameters: a list of tuples, name and description,
+      containing the supported parameters by this OS
+
+  """
   __slots__ = [
     "name",
     "path",
@@ -824,7 +830,9 @@ class OS(ConfigObject):
     "export_script",
     "import_script",
     "rename_script",
+    "verify_script",
     "supported_variants",
+    "supported_parameters",
     ]