Documentation for providers is auto-generated using a special Java Doclet. This doclet reads specially formatted comments on the class and method implementations for each resource.

Each resource should have a class level comment describing what the resource is followed by at least one simple example showcasing using the resource, such as:

 * Creates an Instance with the specified AMI, Subnet and Security group.
 * Example
 * -------
 * .. code-block:: gyro
 *     aws::instance instance
 *         ami-name: "amzn-ami-hvm-2018.03.0.20181129-x86_64-gp2"
 *         shutdown-behavior: "stop"
 *         instance-type: "t2.micro"
 *         key-name: "instance-static"
 *     end

Each resource field getter should have a single line comment with a description of the field, possible values, side effect of the field, and whether the field is required or optional.

 * The ID of an AMI that would be used to launch the instance. (Required)
public String getAmiId() {
    return amiId;

Generating Documentation

Documentation is generated using the Gyro Doclet. To generate documentation using the Doclet add the following to the providers build.gradle file, then run gradle referenceDocs:

task referenceDocs(type: Javadoc) {
    title = null // Prevents -doctitle and -windowtitle from being passed to GyroDoclet
    source = sourceSets.main.allJava
    classpath = configurations.runtimeClasspath
    options.doclet = "gyro.doclet.GyroDoclet"
    options.docletpath = configurations.gyroDoclet.files.asType(List)