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

commonMain.aws.sdk.kotlin.services.glue.model.HudiTarget.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.glue.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Specifies an Apache Hudi data source.
 */
public class HudiTarget private constructor(builder: Builder) {
    /**
     * The name of the connection to use to connect to the Hudi target. If your Hudi files are stored in buckets that require VPC authorization, you can set their connection properties here.
     */
    public val connectionName: kotlin.String? = builder.connectionName
    /**
     * A list of glob patterns used to exclude from the crawl. For more information, see [Catalog Tables with a Crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html).
     */
    public val exclusions: List? = builder.exclusions
    /**
     * The maximum depth of Amazon S3 paths that the crawler can traverse to discover the Hudi metadata folder in your Amazon S3 path. Used to limit the crawler run time.
     */
    public val maximumTraversalDepth: kotlin.Int? = builder.maximumTraversalDepth
    /**
     * An array of Amazon S3 location strings for Hudi, each indicating the root folder with which the metadata files for a Hudi table resides. The Hudi folder may be located in a child folder of the root folder.
     *
     * The crawler will scan all folders underneath a path for a Hudi folder.
     */
    public val paths: List? = builder.paths

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.glue.model.HudiTarget = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("HudiTarget(")
        append("connectionName=$connectionName,")
        append("exclusions=$exclusions,")
        append("maximumTraversalDepth=$maximumTraversalDepth,")
        append("paths=$paths")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = connectionName?.hashCode() ?: 0
        result = 31 * result + (exclusions?.hashCode() ?: 0)
        result = 31 * result + (maximumTraversalDepth ?: 0)
        result = 31 * result + (paths?.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 HudiTarget

        if (connectionName != other.connectionName) return false
        if (exclusions != other.exclusions) return false
        if (maximumTraversalDepth != other.maximumTraversalDepth) return false
        if (paths != other.paths) return false

        return true
    }

    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.glue.model.HudiTarget = Builder(this).apply(block).build()

    @SdkDsl
    public class Builder {
        /**
         * The name of the connection to use to connect to the Hudi target. If your Hudi files are stored in buckets that require VPC authorization, you can set their connection properties here.
         */
        public var connectionName: kotlin.String? = null
        /**
         * A list of glob patterns used to exclude from the crawl. For more information, see [Catalog Tables with a Crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html).
         */
        public var exclusions: List? = null
        /**
         * The maximum depth of Amazon S3 paths that the crawler can traverse to discover the Hudi metadata folder in your Amazon S3 path. Used to limit the crawler run time.
         */
        public var maximumTraversalDepth: kotlin.Int? = null
        /**
         * An array of Amazon S3 location strings for Hudi, each indicating the root folder with which the metadata files for a Hudi table resides. The Hudi folder may be located in a child folder of the root folder.
         *
         * The crawler will scan all folders underneath a path for a Hudi folder.
         */
        public var paths: List? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.glue.model.HudiTarget) : this() {
            this.connectionName = x.connectionName
            this.exclusions = x.exclusions
            this.maximumTraversalDepth = x.maximumTraversalDepth
            this.paths = x.paths
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.glue.model.HudiTarget = HudiTarget(this)

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy