'Validate any of the provided params.'

def validate(self):

    res = super(CloudLoadBalancer, self).validate()
    if res:
        return res
    if self.properties.get(self.HALF_CLOSED):
        if (not ((self.properties[self.PROTOCOL] == 'TCP') or (self.properties[self.PROTOCOL] == 'TCP_CLIENT_FIRST'))):
            message = (_('The    %s    property    is    only    available    for    the    TCP    or    TCP_CLIENT_FIRST    protocols') % self.HALF_CLOSED)
            raise exception.StackValidationFailed(message=message)
    if self.properties.get(self.HEALTH_MONITOR):
        prop_val = self.properties[self.HEALTH_MONITOR]
        health_monitor = self._remove_none(prop_val)
        schema = self._health_monitor_schema
        if (health_monitor[self.HEALTH_MONITOR_TYPE] == 'CONNECT'):
            schema = dict(((k, v) for (k, v) in schema.items() if (k in self._HEALTH_MONITOR_CONNECT_KEYS)))
        properties.Properties(schema, health_monitor, function.resolve, self.name).validate()
    self._validate_https_redirect()
    for vip in self.properties[self.VIRTUAL_IPS]:
        has_id = (vip.get(self.VIRTUAL_IP_ID) is not None)
        has_version = (vip.get(self.VIRTUAL_IP_IP_VERSION) is not None)
        has_type = (vip.get(self.VIRTUAL_IP_TYPE) is not None)
        if has_id:
            if (has_version or has_type):
                message = _('Cannot    specify    type    or    version    if    VIP    id    is    specified.')
                raise exception.StackValidationFailed(message=message)
        elif (not (has_version and has_type)):
            message = _('Must    specify    VIP    type    and    version    if    no    id    specified.')
            raise exception.StackValidationFailed(message=message)
