commonMain.aws.sdk.kotlin.services.glue.model.CreateCrawlerRequest.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of glue-jvm Show documentation
Show all versions of glue-jvm Show documentation
The AWS SDK for Kotlin client for Glue
The newest version!
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.glue.model
import aws.smithy.kotlin.runtime.SdkDsl
public class CreateCrawlerRequest private constructor(builder: Builder) {
/**
* A list of custom classifiers that the user has registered. By default, all built-in classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.
*/
public val classifiers: List? = builder.classifiers
/**
* Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see [Setting crawler configuration options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html).
*/
public val configuration: kotlin.String? = builder.configuration
/**
* The name of the `SecurityConfiguration` structure to be used by this crawler.
*/
public val crawlerSecurityConfiguration: kotlin.String? = builder.crawlerSecurityConfiguration
/**
* The Glue database where results are written, such as: `arn:aws:daylight:us-east-1::database/sometable/*`.
*/
public val databaseName: kotlin.String? = builder.databaseName
/**
* A description of the new crawler.
*/
public val description: kotlin.String? = builder.description
/**
* Specifies Lake Formation configuration settings for the crawler.
*/
public val lakeFormationConfiguration: aws.sdk.kotlin.services.glue.model.LakeFormationConfiguration? = builder.lakeFormationConfiguration
/**
* Specifies data lineage configuration settings for the crawler.
*/
public val lineageConfiguration: aws.sdk.kotlin.services.glue.model.LineageConfiguration? = builder.lineageConfiguration
/**
* Name of the new crawler.
*/
public val name: kotlin.String? = builder.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.
*/
public val recrawlPolicy: aws.sdk.kotlin.services.glue.model.RecrawlPolicy? = builder.recrawlPolicy
/**
* The IAM role or Amazon Resource Name (ARN) of an IAM role used by the new crawler to access customer resources.
*/
public val role: kotlin.String? = builder.role
/**
* A `cron` expression used to specify the schedule (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 val schedule: kotlin.String? = builder.schedule
/**
* The policy for the crawler's update and deletion behavior.
*/
public val schemaChangePolicy: aws.sdk.kotlin.services.glue.model.SchemaChangePolicy? = builder.schemaChangePolicy
/**
* The table prefix used for catalog tables that are created.
*/
public val tablePrefix: kotlin.String? = builder.tablePrefix
/**
* The tags to use with this crawler request. You may use tags to limit access to the crawler. For more information about tags in Glue, see [Amazon Web Services Tags in Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the developer guide.
*/
public val tags: Map? = builder.tags
/**
* A list of collection of targets to crawl.
*/
public val targets: aws.sdk.kotlin.services.glue.model.CrawlerTargets? = builder.targets
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.glue.model.CreateCrawlerRequest = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("CreateCrawlerRequest(")
append("classifiers=$classifiers,")
append("configuration=$configuration,")
append("crawlerSecurityConfiguration=$crawlerSecurityConfiguration,")
append("databaseName=$databaseName,")
append("description=$description,")
append("lakeFormationConfiguration=$lakeFormationConfiguration,")
append("lineageConfiguration=$lineageConfiguration,")
append("name=$name,")
append("recrawlPolicy=$recrawlPolicy,")
append("role=$role,")
append("schedule=$schedule,")
append("schemaChangePolicy=$schemaChangePolicy,")
append("tablePrefix=$tablePrefix,")
append("tags=$tags,")
append("targets=$targets")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = classifiers?.hashCode() ?: 0
result = 31 * result + (configuration?.hashCode() ?: 0)
result = 31 * result + (crawlerSecurityConfiguration?.hashCode() ?: 0)
result = 31 * result + (databaseName?.hashCode() ?: 0)
result = 31 * result + (description?.hashCode() ?: 0)
result = 31 * result + (lakeFormationConfiguration?.hashCode() ?: 0)
result = 31 * result + (lineageConfiguration?.hashCode() ?: 0)
result = 31 * result + (name?.hashCode() ?: 0)
result = 31 * result + (recrawlPolicy?.hashCode() ?: 0)
result = 31 * result + (role?.hashCode() ?: 0)
result = 31 * result + (schedule?.hashCode() ?: 0)
result = 31 * result + (schemaChangePolicy?.hashCode() ?: 0)
result = 31 * result + (tablePrefix?.hashCode() ?: 0)
result = 31 * result + (tags?.hashCode() ?: 0)
result = 31 * result + (targets?.hashCode() ?: 0)
return result
}
override fun equals(other: kotlin.Any?): kotlin.Boolean {
if (this === other) return true
if (other == null || this::class != other::class) return false
other as CreateCrawlerRequest
if (classifiers != other.classifiers) return false
if (configuration != other.configuration) return false
if (crawlerSecurityConfiguration != other.crawlerSecurityConfiguration) return false
if (databaseName != other.databaseName) return false
if (description != other.description) return false
if (lakeFormationConfiguration != other.lakeFormationConfiguration) return false
if (lineageConfiguration != other.lineageConfiguration) return false
if (name != other.name) return false
if (recrawlPolicy != other.recrawlPolicy) return false
if (role != other.role) return false
if (schedule != other.schedule) return false
if (schemaChangePolicy != other.schemaChangePolicy) return false
if (tablePrefix != other.tablePrefix) return false
if (tags != other.tags) return false
if (targets != other.targets) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.glue.model.CreateCrawlerRequest = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* A list of custom classifiers that the user has registered. By default, all built-in classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.
*/
public var classifiers: List? = null
/**
* Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see [Setting crawler configuration options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html).
*/
public var configuration: kotlin.String? = null
/**
* The name of the `SecurityConfiguration` structure to be used by this crawler.
*/
public var crawlerSecurityConfiguration: kotlin.String? = null
/**
* The Glue database where results are written, such as: `arn:aws:daylight:us-east-1::database/sometable/*`.
*/
public var databaseName: kotlin.String? = null
/**
* A description of the new crawler.
*/
public var description: kotlin.String? = null
/**
* Specifies Lake Formation configuration settings for the crawler.
*/
public var lakeFormationConfiguration: aws.sdk.kotlin.services.glue.model.LakeFormationConfiguration? = null
/**
* Specifies data lineage configuration settings for the crawler.
*/
public var lineageConfiguration: aws.sdk.kotlin.services.glue.model.LineageConfiguration? = null
/**
* Name of the new crawler.
*/
public var name: kotlin.String? = null
/**
* A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.
*/
public var recrawlPolicy: aws.sdk.kotlin.services.glue.model.RecrawlPolicy? = null
/**
* The IAM role or Amazon Resource Name (ARN) of an IAM role used by the new crawler to access customer resources.
*/
public var role: kotlin.String? = null
/**
* A `cron` expression used to specify the schedule (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 var schedule: kotlin.String? = null
/**
* The policy for the crawler's update and deletion behavior.
*/
public var schemaChangePolicy: aws.sdk.kotlin.services.glue.model.SchemaChangePolicy? = null
/**
* The table prefix used for catalog tables that are created.
*/
public var tablePrefix: kotlin.String? = null
/**
* The tags to use with this crawler request. You may use tags to limit access to the crawler. For more information about tags in Glue, see [Amazon Web Services Tags in Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the developer guide.
*/
public var tags: Map? = null
/**
* A list of collection of targets to crawl.
*/
public var targets: aws.sdk.kotlin.services.glue.model.CrawlerTargets? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.glue.model.CreateCrawlerRequest) : this() {
this.classifiers = x.classifiers
this.configuration = x.configuration
this.crawlerSecurityConfiguration = x.crawlerSecurityConfiguration
this.databaseName = x.databaseName
this.description = x.description
this.lakeFormationConfiguration = x.lakeFormationConfiguration
this.lineageConfiguration = x.lineageConfiguration
this.name = x.name
this.recrawlPolicy = x.recrawlPolicy
this.role = x.role
this.schedule = x.schedule
this.schemaChangePolicy = x.schemaChangePolicy
this.tablePrefix = x.tablePrefix
this.tags = x.tags
this.targets = x.targets
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.glue.model.CreateCrawlerRequest = CreateCrawlerRequest(this)
/**
* construct an [aws.sdk.kotlin.services.glue.model.LakeFormationConfiguration] inside the given [block]
*/
public fun lakeFormationConfiguration(block: aws.sdk.kotlin.services.glue.model.LakeFormationConfiguration.Builder.() -> kotlin.Unit) {
this.lakeFormationConfiguration = aws.sdk.kotlin.services.glue.model.LakeFormationConfiguration.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.glue.model.LineageConfiguration] inside the given [block]
*/
public fun lineageConfiguration(block: aws.sdk.kotlin.services.glue.model.LineageConfiguration.Builder.() -> kotlin.Unit) {
this.lineageConfiguration = aws.sdk.kotlin.services.glue.model.LineageConfiguration.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.glue.model.RecrawlPolicy] inside the given [block]
*/
public fun recrawlPolicy(block: aws.sdk.kotlin.services.glue.model.RecrawlPolicy.Builder.() -> kotlin.Unit) {
this.recrawlPolicy = aws.sdk.kotlin.services.glue.model.RecrawlPolicy.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.glue.model.SchemaChangePolicy] inside the given [block]
*/
public fun schemaChangePolicy(block: aws.sdk.kotlin.services.glue.model.SchemaChangePolicy.Builder.() -> kotlin.Unit) {
this.schemaChangePolicy = aws.sdk.kotlin.services.glue.model.SchemaChangePolicy.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.glue.model.CrawlerTargets] inside the given [block]
*/
public fun targets(block: aws.sdk.kotlin.services.glue.model.CrawlerTargets.Builder.() -> kotlin.Unit) {
this.targets = aws.sdk.kotlin.services.glue.model.CrawlerTargets.invoke(block)
}
internal fun correctErrors(): Builder {
return this
}
}
}