// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.glue.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class CrawlerRecrawlPolicyArgs extends com.pulumi.resources.ResourceArgs {

    public static final CrawlerRecrawlPolicyArgs Empty = new CrawlerRecrawlPolicyArgs();

    /**
     * Specifies whether to crawl the entire dataset again, crawl only folders that were added since the last crawler run, or crawl what S3 notifies the crawler of via SQS. Valid Values are: `CRAWL_EVENT_MODE`, `CRAWL_EVERYTHING` and `CRAWL_NEW_FOLDERS_ONLY`. Default value is `CRAWL_EVERYTHING`.
     * 
     */
    @Import(name="recrawlBehavior")
    private @Nullable Output<String> recrawlBehavior;

    /**
     * @return Specifies whether to crawl the entire dataset again, crawl only folders that were added since the last crawler run, or crawl what S3 notifies the crawler of via SQS. Valid Values are: `CRAWL_EVENT_MODE`, `CRAWL_EVERYTHING` and `CRAWL_NEW_FOLDERS_ONLY`. Default value is `CRAWL_EVERYTHING`.
     * 
     */
    public Optional<Output<String>> recrawlBehavior() {
        return Optional.ofNullable(this.recrawlBehavior);
    }

    private CrawlerRecrawlPolicyArgs() {}

    private CrawlerRecrawlPolicyArgs(CrawlerRecrawlPolicyArgs $) {
        this.recrawlBehavior = $.recrawlBehavior;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(CrawlerRecrawlPolicyArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private CrawlerRecrawlPolicyArgs $;

        public Builder() {
            $ = new CrawlerRecrawlPolicyArgs();
        }

        public Builder(CrawlerRecrawlPolicyArgs defaults) {
            $ = new CrawlerRecrawlPolicyArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param recrawlBehavior Specifies whether to crawl the entire dataset again, crawl only folders that were added since the last crawler run, or crawl what S3 notifies the crawler of via SQS. Valid Values are: `CRAWL_EVENT_MODE`, `CRAWL_EVERYTHING` and `CRAWL_NEW_FOLDERS_ONLY`. Default value is `CRAWL_EVERYTHING`.
         * 
         * @return builder
         * 
         */
        public Builder recrawlBehavior(@Nullable Output<String> recrawlBehavior) {
            $.recrawlBehavior = recrawlBehavior;
            return this;
        }

        /**
         * @param recrawlBehavior Specifies whether to crawl the entire dataset again, crawl only folders that were added since the last crawler run, or crawl what S3 notifies the crawler of via SQS. Valid Values are: `CRAWL_EVENT_MODE`, `CRAWL_EVERYTHING` and `CRAWL_NEW_FOLDERS_ONLY`. Default value is `CRAWL_EVERYTHING`.
         * 
         * @return builder
         * 
         */
        public Builder recrawlBehavior(String recrawlBehavior) {
            return recrawlBehavior(Output.of(recrawlBehavior));
        }

        public CrawlerRecrawlPolicyArgs build() {
            return $;
        }
    }

}
