# Annotation Interface Optional

@Documented @Retention(RUNTIME) @Target({METHOD,FIELD,PARAMETER}) public @interface Optional

Marks a task property as optional. This means that a value does not have to be specified for the property, but any value specified must meet the validation constraints for the property.

This annotation should be attached to the getter method in Java or the property in Groovy. Annotations on setters or just the field in Java are ignored.

- `Input`
- `InputFile`
- `InputDirectory`
- `InputFiles`
- `OutputFile`
- `OutputDirectory`