'Validates all parameters.
This method validates if all user-provided parameters are actually
defined in the template, and if all parameters are valid.'

def validate(self, validate_value=True, context=None):

    self._validate_user_parameters()
    for param in six.itervalues(self.params):
        param.validate(validate_value, context, self.tmpl)
