'Validate any of the provided params.'

def validate(self):

    super(LaunchConfiguration, self).validate()
    bdm = self.properties.get(self.BLOCK_DEVICE_MAPPINGS)
    if bdm:
        for mapping in bdm:
            ebs = mapping.get(self.EBS)
            if ebs:
                snapshot_id = ebs.get(self.SNAPSHOT_ID)
                if (not snapshot_id):
                    msg = _('SnapshotId    is    missing,    this    is    required    when    specifying    BlockDeviceMappings.')
                    raise exception.StackValidationFailed(message=msg)
            else:
                msg = _('Ebs    is    missing,    this    is    required    when    specifying    BlockDeviceMappings.')
                raise exception.StackValidationFailed(message=msg)
    instance_id = self.properties.get(self.INSTANCE_ID)
    if (not instance_id):
        image_id = self.properties.get(self.IMAGE_ID)
        instance_type = self.properties.get(self.INSTANCE_TYPE)
        if ((not image_id) or (not instance_type)):
            msg = _('If    without    InstanceId,    ImageId    and    InstanceType    are    required.')
            raise exception.StackValidationFailed(message=msg)
