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

com.pulumi.awsnative.databrew.kotlin.inputs.JobOutputArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.databrew.kotlin.inputs

import com.pulumi.awsnative.databrew.inputs.JobOutputArgs.builder
import com.pulumi.awsnative.databrew.kotlin.enums.JobOutputCompressionFormat
import com.pulumi.awsnative.databrew.kotlin.enums.JobOutputFormat
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property compressionFormat The compression algorithm used to compress the output text of the job.
 * @property format The data format of the output of the job.
 * @property formatOptions Represents options that define how DataBrew formats job output files.
 * @property location The location in Amazon S3 where the job writes its output.
 * @property maxOutputFiles The maximum number of files to be generated by the job and written to the output folder.
 * @property overwrite A value that, if true, means that any data in the location specified for output is overwritten with new output.
 * @property partitionColumns The names of one or more partition columns for the output of the job.
 */
public data class JobOutputArgs(
    public val compressionFormat: Output? = null,
    public val format: Output? = null,
    public val formatOptions: Output? = null,
    public val location: Output,
    public val maxOutputFiles: Output? = null,
    public val overwrite: Output? = null,
    public val partitionColumns: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.databrew.inputs.JobOutputArgs =
        com.pulumi.awsnative.databrew.inputs.JobOutputArgs.builder()
            .compressionFormat(compressionFormat?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .format(format?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .formatOptions(formatOptions?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .location(location.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .maxOutputFiles(maxOutputFiles?.applyValue({ args0 -> args0 }))
            .overwrite(overwrite?.applyValue({ args0 -> args0 }))
            .partitionColumns(partitionColumns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

/**
 * Builder for [JobOutputArgs].
 */
@PulumiTagMarker
public class JobOutputArgsBuilder internal constructor() {
    private var compressionFormat: Output? = null

    private var format: Output? = null

    private var formatOptions: Output? = null

    private var location: Output? = null

    private var maxOutputFiles: Output? = null

    private var overwrite: Output? = null

    private var partitionColumns: Output>? = null

    /**
     * @param value The compression algorithm used to compress the output text of the job.
     */
    @JvmName("kacdjmqjsuvfggsk")
    public suspend fun compressionFormat(`value`: Output) {
        this.compressionFormat = value
    }

    /**
     * @param value The data format of the output of the job.
     */
    @JvmName("ehoxbtlrribdywnf")
    public suspend fun format(`value`: Output) {
        this.format = value
    }

    /**
     * @param value Represents options that define how DataBrew formats job output files.
     */
    @JvmName("huwwricjrgdyycem")
    public suspend fun formatOptions(`value`: Output) {
        this.formatOptions = value
    }

    /**
     * @param value The location in Amazon S3 where the job writes its output.
     */
    @JvmName("twmpeoksktfcfqqk")
    public suspend fun location(`value`: Output) {
        this.location = value
    }

    /**
     * @param value The maximum number of files to be generated by the job and written to the output folder.
     */
    @JvmName("xtyxtpbytknlinly")
    public suspend fun maxOutputFiles(`value`: Output) {
        this.maxOutputFiles = value
    }

    /**
     * @param value A value that, if true, means that any data in the location specified for output is overwritten with new output.
     */
    @JvmName("lcaballaopkatppv")
    public suspend fun overwrite(`value`: Output) {
        this.overwrite = value
    }

    /**
     * @param value The names of one or more partition columns for the output of the job.
     */
    @JvmName("dkfdeghcridpabmg")
    public suspend fun partitionColumns(`value`: Output>) {
        this.partitionColumns = value
    }

    @JvmName("assjkvxvspkjfnjw")
    public suspend fun partitionColumns(vararg values: Output) {
        this.partitionColumns = Output.all(values.asList())
    }

    /**
     * @param values The names of one or more partition columns for the output of the job.
     */
    @JvmName("pfrujpbklmgnrktg")
    public suspend fun partitionColumns(values: List>) {
        this.partitionColumns = Output.all(values)
    }

    /**
     * @param value The compression algorithm used to compress the output text of the job.
     */
    @JvmName("mdtvwvwbsdsialex")
    public suspend fun compressionFormat(`value`: JobOutputCompressionFormat?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.compressionFormat = mapped
    }

    /**
     * @param value The data format of the output of the job.
     */
    @JvmName("mtujotymwutekgcy")
    public suspend fun format(`value`: JobOutputFormat?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.format = mapped
    }

    /**
     * @param value Represents options that define how DataBrew formats job output files.
     */
    @JvmName("rbhyyhsbuninkjsn")
    public suspend fun formatOptions(`value`: JobOutputFormatOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.formatOptions = mapped
    }

    /**
     * @param argument Represents options that define how DataBrew formats job output files.
     */
    @JvmName("nmhmrjitktrhueir")
    public suspend fun formatOptions(argument: suspend JobOutputFormatOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = JobOutputFormatOptionsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.formatOptions = mapped
    }

    /**
     * @param value The location in Amazon S3 where the job writes its output.
     */
    @JvmName("ycvyslpjxkbkwevs")
    public suspend fun location(`value`: JobS3LocationArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.location = mapped
    }

    /**
     * @param argument The location in Amazon S3 where the job writes its output.
     */
    @JvmName("iffkyohxcjvwvttu")
    public suspend fun location(argument: suspend JobS3LocationArgsBuilder.() -> Unit) {
        val toBeMapped = JobS3LocationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.location = mapped
    }

    /**
     * @param value The maximum number of files to be generated by the job and written to the output folder.
     */
    @JvmName("nshokqvsgmujxnju")
    public suspend fun maxOutputFiles(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxOutputFiles = mapped
    }

    /**
     * @param value A value that, if true, means that any data in the location specified for output is overwritten with new output.
     */
    @JvmName("dssanhngawrlmwla")
    public suspend fun overwrite(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.overwrite = mapped
    }

    /**
     * @param value The names of one or more partition columns for the output of the job.
     */
    @JvmName("oqbhgxdgntocnkax")
    public suspend fun partitionColumns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.partitionColumns = mapped
    }

    /**
     * @param values The names of one or more partition columns for the output of the job.
     */
    @JvmName("wlslhyrlepvumlyo")
    public suspend fun partitionColumns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.partitionColumns = mapped
    }

    internal fun build(): JobOutputArgs = JobOutputArgs(
        compressionFormat = compressionFormat,
        format = format,
        formatOptions = formatOptions,
        location = location ?: throw PulumiNullFieldException("location"),
        maxOutputFiles = maxOutputFiles,
        overwrite = overwrite,
        partitionColumns = partitionColumns,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy