} else if (value instanceof Closure) {
options = options.payload(DefaultGroovyMethods.asType((Closure<?>)value, DeferredTask.class));
} else if (value instanceof DeferredTask) {
options = options.payload((DeferredTask)value);
} else {
options = options.payload(value.toString());
}
break;
default:
throw new RuntimeException(key + " is not a valid task option.\n" +
"Allowed: countdownMillis, etaMillis, taskName, url, headers, methods, params and payload");