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

commonMain.aws.sdk.kotlin.services.databrew.model.Output.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.databrew.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Represents options that specify how and where in Amazon S3 DataBrew writes the output generated by recipe jobs or profile jobs.
 */
public class Output private constructor(builder: Builder) {
    /**
     * The compression algorithm used to compress the output text of the job.
     */
    public val compressionFormat: aws.sdk.kotlin.services.databrew.model.CompressionFormat? = builder.compressionFormat
    /**
     * The data format of the output of the job.
     */
    public val format: aws.sdk.kotlin.services.databrew.model.OutputFormat? = builder.format
    /**
     * Represents options that define how DataBrew formats job output files.
     */
    public val formatOptions: aws.sdk.kotlin.services.databrew.model.OutputFormatOptions? = builder.formatOptions
    /**
     * The location in Amazon S3 where the job writes its output.
     */
    public val location: aws.sdk.kotlin.services.databrew.model.S3Location? = builder.location
    /**
     * Maximum number of files to be generated by the job and written to the output folder. For output partitioned by column(s), the MaxOutputFiles value is the maximum number of files per partition.
     */
    public val maxOutputFiles: kotlin.Int? = builder.maxOutputFiles
    /**
     * A value that, if true, means that any data in the location specified for output is overwritten with new output.
     */
    public val overwrite: kotlin.Boolean = builder.overwrite
    /**
     * The names of one or more partition columns for the output of the job.
     */
    public val partitionColumns: List? = builder.partitionColumns

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

    override fun toString(): kotlin.String = buildString {
        append("Output(")
        append("compressionFormat=$compressionFormat,")
        append("format=$format,")
        append("formatOptions=$formatOptions,")
        append("location=$location,")
        append("maxOutputFiles=$maxOutputFiles,")
        append("overwrite=$overwrite,")
        append("partitionColumns=$partitionColumns")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = compressionFormat?.hashCode() ?: 0
        result = 31 * result + (format?.hashCode() ?: 0)
        result = 31 * result + (formatOptions?.hashCode() ?: 0)
        result = 31 * result + (location?.hashCode() ?: 0)
        result = 31 * result + (maxOutputFiles ?: 0)
        result = 31 * result + (overwrite.hashCode())
        result = 31 * result + (partitionColumns?.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 Output

        if (compressionFormat != other.compressionFormat) return false
        if (format != other.format) return false
        if (formatOptions != other.formatOptions) return false
        if (location != other.location) return false
        if (maxOutputFiles != other.maxOutputFiles) return false
        if (overwrite != other.overwrite) return false
        if (partitionColumns != other.partitionColumns) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The compression algorithm used to compress the output text of the job.
         */
        public var compressionFormat: aws.sdk.kotlin.services.databrew.model.CompressionFormat? = null
        /**
         * The data format of the output of the job.
         */
        public var format: aws.sdk.kotlin.services.databrew.model.OutputFormat? = null
        /**
         * Represents options that define how DataBrew formats job output files.
         */
        public var formatOptions: aws.sdk.kotlin.services.databrew.model.OutputFormatOptions? = null
        /**
         * The location in Amazon S3 where the job writes its output.
         */
        public var location: aws.sdk.kotlin.services.databrew.model.S3Location? = null
        /**
         * Maximum number of files to be generated by the job and written to the output folder. For output partitioned by column(s), the MaxOutputFiles value is the maximum number of files per partition.
         */
        public var maxOutputFiles: kotlin.Int? = null
        /**
         * A value that, if true, means that any data in the location specified for output is overwritten with new output.
         */
        public var overwrite: kotlin.Boolean = false
        /**
         * The names of one or more partition columns for the output of the job.
         */
        public var partitionColumns: List? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.databrew.model.Output) : this() {
            this.compressionFormat = x.compressionFormat
            this.format = x.format
            this.formatOptions = x.formatOptions
            this.location = x.location
            this.maxOutputFiles = x.maxOutputFiles
            this.overwrite = x.overwrite
            this.partitionColumns = x.partitionColumns
        }

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

        /**
         * construct an [aws.sdk.kotlin.services.databrew.model.OutputFormatOptions] inside the given [block]
         */
        public fun formatOptions(block: aws.sdk.kotlin.services.databrew.model.OutputFormatOptions.Builder.() -> kotlin.Unit) {
            this.formatOptions = aws.sdk.kotlin.services.databrew.model.OutputFormatOptions.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.databrew.model.S3Location] inside the given [block]
         */
        public fun location(block: aws.sdk.kotlin.services.databrew.model.S3Location.Builder.() -> kotlin.Unit) {
            this.location = aws.sdk.kotlin.services.databrew.model.S3Location.invoke(block)
        }

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy