All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.glue.CrawlerArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.60.0-alpha.1731982519
Show newest version
// *** 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;

import com.pulumi.aws.glue.inputs.CrawlerCatalogTargetArgs;
import com.pulumi.aws.glue.inputs.CrawlerDeltaTargetArgs;
import com.pulumi.aws.glue.inputs.CrawlerDynamodbTargetArgs;
import com.pulumi.aws.glue.inputs.CrawlerHudiTargetArgs;
import com.pulumi.aws.glue.inputs.CrawlerIcebergTargetArgs;
import com.pulumi.aws.glue.inputs.CrawlerJdbcTargetArgs;
import com.pulumi.aws.glue.inputs.CrawlerLakeFormationConfigurationArgs;
import com.pulumi.aws.glue.inputs.CrawlerLineageConfigurationArgs;
import com.pulumi.aws.glue.inputs.CrawlerMongodbTargetArgs;
import com.pulumi.aws.glue.inputs.CrawlerRecrawlPolicyArgs;
import com.pulumi.aws.glue.inputs.CrawlerS3TargetArgs;
import com.pulumi.aws.glue.inputs.CrawlerSchemaChangePolicyArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final CrawlerArgs Empty = new CrawlerArgs();

    /**
     * List of nested AWS Glue Data Catalog target arguments. See Catalog Target below.
     * 
     */
    @Import(name="catalogTargets")
    private @Nullable Output> catalogTargets;

    /**
     * @return List of nested AWS Glue Data Catalog target arguments. See Catalog Target below.
     * 
     */
    public Optional>> catalogTargets() {
        return Optional.ofNullable(this.catalogTargets);
    }

    /**
     * List of custom classifiers. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.
     * 
     */
    @Import(name="classifiers")
    private @Nullable Output> classifiers;

    /**
     * @return List of custom classifiers. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.
     * 
     */
    public Optional>> classifiers() {
        return Optional.ofNullable(this.classifiers);
    }

    /**
     * JSON string of configuration information. For more details see [Setting Crawler Configuration Options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html).
     * 
     */
    @Import(name="configuration")
    private @Nullable Output configuration;

    /**
     * @return JSON string of configuration information. For more details see [Setting Crawler Configuration Options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html).
     * 
     */
    public Optional> configuration() {
        return Optional.ofNullable(this.configuration);
    }

    /**
     * Glue database where results are written.
     * 
     */
    @Import(name="databaseName", required=true)
    private Output databaseName;

    /**
     * @return Glue database where results are written.
     * 
     */
    public Output databaseName() {
        return this.databaseName;
    }

    /**
     * List of nested Delta Lake target arguments. See Delta Target below.
     * 
     */
    @Import(name="deltaTargets")
    private @Nullable Output> deltaTargets;

    /**
     * @return List of nested Delta Lake target arguments. See Delta Target below.
     * 
     */
    public Optional>> deltaTargets() {
        return Optional.ofNullable(this.deltaTargets);
    }

    /**
     * Description of the crawler.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Description of the crawler.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * List of nested DynamoDB target arguments. See Dynamodb Target below.
     * 
     */
    @Import(name="dynamodbTargets")
    private @Nullable Output> dynamodbTargets;

    /**
     * @return List of nested DynamoDB target arguments. See Dynamodb Target below.
     * 
     */
    public Optional>> dynamodbTargets() {
        return Optional.ofNullable(this.dynamodbTargets);
    }

    /**
     * List of nested Hudi target arguments. See Iceberg Target below.
     * 
     */
    @Import(name="hudiTargets")
    private @Nullable Output> hudiTargets;

    /**
     * @return List of nested Hudi target arguments. See Iceberg Target below.
     * 
     */
    public Optional>> hudiTargets() {
        return Optional.ofNullable(this.hudiTargets);
    }

    /**
     * List of nested Iceberg target arguments. See Iceberg Target below.
     * 
     */
    @Import(name="icebergTargets")
    private @Nullable Output> icebergTargets;

    /**
     * @return List of nested Iceberg target arguments. See Iceberg Target below.
     * 
     */
    public Optional>> icebergTargets() {
        return Optional.ofNullable(this.icebergTargets);
    }

    /**
     * List of nested JDBC target arguments. See JDBC Target below.
     * 
     */
    @Import(name="jdbcTargets")
    private @Nullable Output> jdbcTargets;

    /**
     * @return List of nested JDBC target arguments. See JDBC Target below.
     * 
     */
    public Optional>> jdbcTargets() {
        return Optional.ofNullable(this.jdbcTargets);
    }

    /**
     * Specifies Lake Formation configuration settings for the crawler. See Lake Formation Configuration below.
     * 
     */
    @Import(name="lakeFormationConfiguration")
    private @Nullable Output lakeFormationConfiguration;

    /**
     * @return Specifies Lake Formation configuration settings for the crawler. See Lake Formation Configuration below.
     * 
     */
    public Optional> lakeFormationConfiguration() {
        return Optional.ofNullable(this.lakeFormationConfiguration);
    }

    /**
     * Specifies data lineage configuration settings for the crawler. See Lineage Configuration below.
     * 
     */
    @Import(name="lineageConfiguration")
    private @Nullable Output lineageConfiguration;

    /**
     * @return Specifies data lineage configuration settings for the crawler. See Lineage Configuration below.
     * 
     */
    public Optional> lineageConfiguration() {
        return Optional.ofNullable(this.lineageConfiguration);
    }

    /**
     * List of nested MongoDB target arguments. See MongoDB Target below.
     * 
     */
    @Import(name="mongodbTargets")
    private @Nullable Output> mongodbTargets;

    /**
     * @return List of nested MongoDB target arguments. See MongoDB Target below.
     * 
     */
    public Optional>> mongodbTargets() {
        return Optional.ofNullable(this.mongodbTargets);
    }

    /**
     * Name of the crawler.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Name of the crawler.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.. See Recrawl Policy below.
     * 
     */
    @Import(name="recrawlPolicy")
    private @Nullable Output recrawlPolicy;

    /**
     * @return A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.. See Recrawl Policy below.
     * 
     */
    public Optional> recrawlPolicy() {
        return Optional.ofNullable(this.recrawlPolicy);
    }

    /**
     * The IAM role friendly name (including path without leading slash), or ARN of an IAM role, used by the crawler to access other resources.
     * 
     */
    @Import(name="role", required=true)
    private Output role;

    /**
     * @return The IAM role friendly name (including path without leading slash), or ARN of an IAM role, used by the crawler to access other resources.
     * 
     */
    public Output role() {
        return this.role;
    }

    /**
     * List of nested Amazon S3 target arguments. See S3 Target below.
     * 
     */
    @Import(name="s3Targets")
    private @Nullable Output> s3Targets;

    /**
     * @return List of nested Amazon S3 target arguments. See S3 Target below.
     * 
     */
    public Optional>> s3Targets() {
        return Optional.ofNullable(this.s3Targets);
    }

    /**
     * A cron expression used to specify the schedule. For more information, see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`.
     * 
     */
    @Import(name="schedule")
    private @Nullable Output schedule;

    /**
     * @return A cron expression used to specify the schedule. For more information, see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`.
     * 
     */
    public Optional> schedule() {
        return Optional.ofNullable(this.schedule);
    }

    /**
     * Policy for the crawler's update and deletion behavior. See Schema Change Policy below.
     * 
     */
    @Import(name="schemaChangePolicy")
    private @Nullable Output schemaChangePolicy;

    /**
     * @return Policy for the crawler's update and deletion behavior. See Schema Change Policy below.
     * 
     */
    public Optional> schemaChangePolicy() {
        return Optional.ofNullable(this.schemaChangePolicy);
    }

    /**
     * The name of Security Configuration to be used by the crawler
     * 
     */
    @Import(name="securityConfiguration")
    private @Nullable Output securityConfiguration;

    /**
     * @return The name of Security Configuration to be used by the crawler
     * 
     */
    public Optional> securityConfiguration() {
        return Optional.ofNullable(this.securityConfiguration);
    }

    /**
     * The table prefix used for catalog tables that are created.
     * 
     */
    @Import(name="tablePrefix")
    private @Nullable Output tablePrefix;

    /**
     * @return The table prefix used for catalog tables that are created.
     * 
     */
    public Optional> tablePrefix() {
        return Optional.ofNullable(this.tablePrefix);
    }

    /**
     * Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private CrawlerArgs() {}

    private CrawlerArgs(CrawlerArgs $) {
        this.catalogTargets = $.catalogTargets;
        this.classifiers = $.classifiers;
        this.configuration = $.configuration;
        this.databaseName = $.databaseName;
        this.deltaTargets = $.deltaTargets;
        this.description = $.description;
        this.dynamodbTargets = $.dynamodbTargets;
        this.hudiTargets = $.hudiTargets;
        this.icebergTargets = $.icebergTargets;
        this.jdbcTargets = $.jdbcTargets;
        this.lakeFormationConfiguration = $.lakeFormationConfiguration;
        this.lineageConfiguration = $.lineageConfiguration;
        this.mongodbTargets = $.mongodbTargets;
        this.name = $.name;
        this.recrawlPolicy = $.recrawlPolicy;
        this.role = $.role;
        this.s3Targets = $.s3Targets;
        this.schedule = $.schedule;
        this.schemaChangePolicy = $.schemaChangePolicy;
        this.securityConfiguration = $.securityConfiguration;
        this.tablePrefix = $.tablePrefix;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private CrawlerArgs $;

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

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

        /**
         * @param catalogTargets List of nested AWS Glue Data Catalog target arguments. See Catalog Target below.
         * 
         * @return builder
         * 
         */
        public Builder catalogTargets(@Nullable Output> catalogTargets) {
            $.catalogTargets = catalogTargets;
            return this;
        }

        /**
         * @param catalogTargets List of nested AWS Glue Data Catalog target arguments. See Catalog Target below.
         * 
         * @return builder
         * 
         */
        public Builder catalogTargets(List catalogTargets) {
            return catalogTargets(Output.of(catalogTargets));
        }

        /**
         * @param catalogTargets List of nested AWS Glue Data Catalog target arguments. See Catalog Target below.
         * 
         * @return builder
         * 
         */
        public Builder catalogTargets(CrawlerCatalogTargetArgs... catalogTargets) {
            return catalogTargets(List.of(catalogTargets));
        }

        /**
         * @param classifiers List of custom classifiers. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.
         * 
         * @return builder
         * 
         */
        public Builder classifiers(@Nullable Output> classifiers) {
            $.classifiers = classifiers;
            return this;
        }

        /**
         * @param classifiers List of custom classifiers. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.
         * 
         * @return builder
         * 
         */
        public Builder classifiers(List classifiers) {
            return classifiers(Output.of(classifiers));
        }

        /**
         * @param classifiers List of custom classifiers. By default, all AWS classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.
         * 
         * @return builder
         * 
         */
        public Builder classifiers(String... classifiers) {
            return classifiers(List.of(classifiers));
        }

        /**
         * @param configuration JSON string of configuration information. For more details see [Setting Crawler Configuration Options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html).
         * 
         * @return builder
         * 
         */
        public Builder configuration(@Nullable Output configuration) {
            $.configuration = configuration;
            return this;
        }

        /**
         * @param configuration JSON string of configuration information. For more details see [Setting Crawler Configuration Options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html).
         * 
         * @return builder
         * 
         */
        public Builder configuration(String configuration) {
            return configuration(Output.of(configuration));
        }

        /**
         * @param databaseName Glue database where results are written.
         * 
         * @return builder
         * 
         */
        public Builder databaseName(Output databaseName) {
            $.databaseName = databaseName;
            return this;
        }

        /**
         * @param databaseName Glue database where results are written.
         * 
         * @return builder
         * 
         */
        public Builder databaseName(String databaseName) {
            return databaseName(Output.of(databaseName));
        }

        /**
         * @param deltaTargets List of nested Delta Lake target arguments. See Delta Target below.
         * 
         * @return builder
         * 
         */
        public Builder deltaTargets(@Nullable Output> deltaTargets) {
            $.deltaTargets = deltaTargets;
            return this;
        }

        /**
         * @param deltaTargets List of nested Delta Lake target arguments. See Delta Target below.
         * 
         * @return builder
         * 
         */
        public Builder deltaTargets(List deltaTargets) {
            return deltaTargets(Output.of(deltaTargets));
        }

        /**
         * @param deltaTargets List of nested Delta Lake target arguments. See Delta Target below.
         * 
         * @return builder
         * 
         */
        public Builder deltaTargets(CrawlerDeltaTargetArgs... deltaTargets) {
            return deltaTargets(List.of(deltaTargets));
        }

        /**
         * @param description Description of the crawler.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Description of the crawler.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param dynamodbTargets List of nested DynamoDB target arguments. See Dynamodb Target below.
         * 
         * @return builder
         * 
         */
        public Builder dynamodbTargets(@Nullable Output> dynamodbTargets) {
            $.dynamodbTargets = dynamodbTargets;
            return this;
        }

        /**
         * @param dynamodbTargets List of nested DynamoDB target arguments. See Dynamodb Target below.
         * 
         * @return builder
         * 
         */
        public Builder dynamodbTargets(List dynamodbTargets) {
            return dynamodbTargets(Output.of(dynamodbTargets));
        }

        /**
         * @param dynamodbTargets List of nested DynamoDB target arguments. See Dynamodb Target below.
         * 
         * @return builder
         * 
         */
        public Builder dynamodbTargets(CrawlerDynamodbTargetArgs... dynamodbTargets) {
            return dynamodbTargets(List.of(dynamodbTargets));
        }

        /**
         * @param hudiTargets List of nested Hudi target arguments. See Iceberg Target below.
         * 
         * @return builder
         * 
         */
        public Builder hudiTargets(@Nullable Output> hudiTargets) {
            $.hudiTargets = hudiTargets;
            return this;
        }

        /**
         * @param hudiTargets List of nested Hudi target arguments. See Iceberg Target below.
         * 
         * @return builder
         * 
         */
        public Builder hudiTargets(List hudiTargets) {
            return hudiTargets(Output.of(hudiTargets));
        }

        /**
         * @param hudiTargets List of nested Hudi target arguments. See Iceberg Target below.
         * 
         * @return builder
         * 
         */
        public Builder hudiTargets(CrawlerHudiTargetArgs... hudiTargets) {
            return hudiTargets(List.of(hudiTargets));
        }

        /**
         * @param icebergTargets List of nested Iceberg target arguments. See Iceberg Target below.
         * 
         * @return builder
         * 
         */
        public Builder icebergTargets(@Nullable Output> icebergTargets) {
            $.icebergTargets = icebergTargets;
            return this;
        }

        /**
         * @param icebergTargets List of nested Iceberg target arguments. See Iceberg Target below.
         * 
         * @return builder
         * 
         */
        public Builder icebergTargets(List icebergTargets) {
            return icebergTargets(Output.of(icebergTargets));
        }

        /**
         * @param icebergTargets List of nested Iceberg target arguments. See Iceberg Target below.
         * 
         * @return builder
         * 
         */
        public Builder icebergTargets(CrawlerIcebergTargetArgs... icebergTargets) {
            return icebergTargets(List.of(icebergTargets));
        }

        /**
         * @param jdbcTargets List of nested JDBC target arguments. See JDBC Target below.
         * 
         * @return builder
         * 
         */
        public Builder jdbcTargets(@Nullable Output> jdbcTargets) {
            $.jdbcTargets = jdbcTargets;
            return this;
        }

        /**
         * @param jdbcTargets List of nested JDBC target arguments. See JDBC Target below.
         * 
         * @return builder
         * 
         */
        public Builder jdbcTargets(List jdbcTargets) {
            return jdbcTargets(Output.of(jdbcTargets));
        }

        /**
         * @param jdbcTargets List of nested JDBC target arguments. See JDBC Target below.
         * 
         * @return builder
         * 
         */
        public Builder jdbcTargets(CrawlerJdbcTargetArgs... jdbcTargets) {
            return jdbcTargets(List.of(jdbcTargets));
        }

        /**
         * @param lakeFormationConfiguration Specifies Lake Formation configuration settings for the crawler. See Lake Formation Configuration below.
         * 
         * @return builder
         * 
         */
        public Builder lakeFormationConfiguration(@Nullable Output lakeFormationConfiguration) {
            $.lakeFormationConfiguration = lakeFormationConfiguration;
            return this;
        }

        /**
         * @param lakeFormationConfiguration Specifies Lake Formation configuration settings for the crawler. See Lake Formation Configuration below.
         * 
         * @return builder
         * 
         */
        public Builder lakeFormationConfiguration(CrawlerLakeFormationConfigurationArgs lakeFormationConfiguration) {
            return lakeFormationConfiguration(Output.of(lakeFormationConfiguration));
        }

        /**
         * @param lineageConfiguration Specifies data lineage configuration settings for the crawler. See Lineage Configuration below.
         * 
         * @return builder
         * 
         */
        public Builder lineageConfiguration(@Nullable Output lineageConfiguration) {
            $.lineageConfiguration = lineageConfiguration;
            return this;
        }

        /**
         * @param lineageConfiguration Specifies data lineage configuration settings for the crawler. See Lineage Configuration below.
         * 
         * @return builder
         * 
         */
        public Builder lineageConfiguration(CrawlerLineageConfigurationArgs lineageConfiguration) {
            return lineageConfiguration(Output.of(lineageConfiguration));
        }

        /**
         * @param mongodbTargets List of nested MongoDB target arguments. See MongoDB Target below.
         * 
         * @return builder
         * 
         */
        public Builder mongodbTargets(@Nullable Output> mongodbTargets) {
            $.mongodbTargets = mongodbTargets;
            return this;
        }

        /**
         * @param mongodbTargets List of nested MongoDB target arguments. See MongoDB Target below.
         * 
         * @return builder
         * 
         */
        public Builder mongodbTargets(List mongodbTargets) {
            return mongodbTargets(Output.of(mongodbTargets));
        }

        /**
         * @param mongodbTargets List of nested MongoDB target arguments. See MongoDB Target below.
         * 
         * @return builder
         * 
         */
        public Builder mongodbTargets(CrawlerMongodbTargetArgs... mongodbTargets) {
            return mongodbTargets(List.of(mongodbTargets));
        }

        /**
         * @param name Name of the crawler.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Name of the crawler.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param recrawlPolicy A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.. See Recrawl Policy below.
         * 
         * @return builder
         * 
         */
        public Builder recrawlPolicy(@Nullable Output recrawlPolicy) {
            $.recrawlPolicy = recrawlPolicy;
            return this;
        }

        /**
         * @param recrawlPolicy A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.. See Recrawl Policy below.
         * 
         * @return builder
         * 
         */
        public Builder recrawlPolicy(CrawlerRecrawlPolicyArgs recrawlPolicy) {
            return recrawlPolicy(Output.of(recrawlPolicy));
        }

        /**
         * @param role The IAM role friendly name (including path without leading slash), or ARN of an IAM role, used by the crawler to access other resources.
         * 
         * @return builder
         * 
         */
        public Builder role(Output role) {
            $.role = role;
            return this;
        }

        /**
         * @param role The IAM role friendly name (including path without leading slash), or ARN of an IAM role, used by the crawler to access other resources.
         * 
         * @return builder
         * 
         */
        public Builder role(String role) {
            return role(Output.of(role));
        }

        /**
         * @param s3Targets List of nested Amazon S3 target arguments. See S3 Target below.
         * 
         * @return builder
         * 
         */
        public Builder s3Targets(@Nullable Output> s3Targets) {
            $.s3Targets = s3Targets;
            return this;
        }

        /**
         * @param s3Targets List of nested Amazon S3 target arguments. See S3 Target below.
         * 
         * @return builder
         * 
         */
        public Builder s3Targets(List s3Targets) {
            return s3Targets(Output.of(s3Targets));
        }

        /**
         * @param s3Targets List of nested Amazon S3 target arguments. See S3 Target below.
         * 
         * @return builder
         * 
         */
        public Builder s3Targets(CrawlerS3TargetArgs... s3Targets) {
            return s3Targets(List.of(s3Targets));
        }

        /**
         * @param schedule A cron expression used to specify the schedule. For more information, see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`.
         * 
         * @return builder
         * 
         */
        public Builder schedule(@Nullable Output schedule) {
            $.schedule = schedule;
            return this;
        }

        /**
         * @param schedule A cron expression used to specify the schedule. For more information, see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`.
         * 
         * @return builder
         * 
         */
        public Builder schedule(String schedule) {
            return schedule(Output.of(schedule));
        }

        /**
         * @param schemaChangePolicy Policy for the crawler's update and deletion behavior. See Schema Change Policy below.
         * 
         * @return builder
         * 
         */
        public Builder schemaChangePolicy(@Nullable Output schemaChangePolicy) {
            $.schemaChangePolicy = schemaChangePolicy;
            return this;
        }

        /**
         * @param schemaChangePolicy Policy for the crawler's update and deletion behavior. See Schema Change Policy below.
         * 
         * @return builder
         * 
         */
        public Builder schemaChangePolicy(CrawlerSchemaChangePolicyArgs schemaChangePolicy) {
            return schemaChangePolicy(Output.of(schemaChangePolicy));
        }

        /**
         * @param securityConfiguration The name of Security Configuration to be used by the crawler
         * 
         * @return builder
         * 
         */
        public Builder securityConfiguration(@Nullable Output securityConfiguration) {
            $.securityConfiguration = securityConfiguration;
            return this;
        }

        /**
         * @param securityConfiguration The name of Security Configuration to be used by the crawler
         * 
         * @return builder
         * 
         */
        public Builder securityConfiguration(String securityConfiguration) {
            return securityConfiguration(Output.of(securityConfiguration));
        }

        /**
         * @param tablePrefix The table prefix used for catalog tables that are created.
         * 
         * @return builder
         * 
         */
        public Builder tablePrefix(@Nullable Output tablePrefix) {
            $.tablePrefix = tablePrefix;
            return this;
        }

        /**
         * @param tablePrefix The table prefix used for catalog tables that are created.
         * 
         * @return builder
         * 
         */
        public Builder tablePrefix(String tablePrefix) {
            return tablePrefix(Output.of(tablePrefix));
        }

        /**
         * @param tags Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Key-value map of resource tags. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        public CrawlerArgs build() {
            if ($.databaseName == null) {
                throw new MissingRequiredPropertyException("CrawlerArgs", "databaseName");
            }
            if ($.role == null) {
                throw new MissingRequiredPropertyException("CrawlerArgs", "role");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy