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

com.pulumi.awsnative.athena.kotlin.CapacityReservationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.athena.kotlin

import com.pulumi.awsnative.athena.CapacityReservationArgs.builder
import com.pulumi.awsnative.athena.kotlin.inputs.CapacityReservationCapacityAssignmentConfigurationArgs
import com.pulumi.awsnative.athena.kotlin.inputs.CapacityReservationCapacityAssignmentConfigurationArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource schema for AWS::Athena::CapacityReservation
 * @property capacityAssignmentConfiguration Assigns Athena workgroups (and hence their queries) to capacity reservations. A capacity reservation can have only one capacity assignment configuration, but the capacity assignment configuration can be made up of multiple individual assignments. Each assignment specifies how Athena queries can consume capacity from the capacity reservation that their workgroup is mapped to.
 * @property name The reservation name.
 * @property tags An array of key-value pairs to apply to this resource.
 * @property targetDpus The number of DPUs to request to be allocated to the reservation.
 */
public data class CapacityReservationArgs(
    public val capacityAssignmentConfiguration: Output? = null,
    public val name: Output? = null,
    public val tags: Output>? = null,
    public val targetDpus: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.athena.CapacityReservationArgs =
        com.pulumi.awsnative.athena.CapacityReservationArgs.builder()
            .capacityAssignmentConfiguration(
                capacityAssignmentConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .targetDpus(targetDpus?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [CapacityReservationArgs].
 */
@PulumiTagMarker
public class CapacityReservationArgsBuilder internal constructor() {
    private var capacityAssignmentConfiguration:
        Output? = null

    private var name: Output? = null

    private var tags: Output>? = null

    private var targetDpus: Output? = null

    /**
     * @param value Assigns Athena workgroups (and hence their queries) to capacity reservations. A capacity reservation can have only one capacity assignment configuration, but the capacity assignment configuration can be made up of multiple individual assignments. Each assignment specifies how Athena queries can consume capacity from the capacity reservation that their workgroup is mapped to.
     */
    @JvmName("mxjhjdcontgaakvd")
    public suspend fun capacityAssignmentConfiguration(`value`: Output) {
        this.capacityAssignmentConfiguration = value
    }

    /**
     * @param value The reservation name.
     */
    @JvmName("kcagqxaxlamsnfch")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("sgbvrgeckuyxqouy")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("aqncylqrkfyqexqt")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The number of DPUs to request to be allocated to the reservation.
     */
    @JvmName("liyjtjmgnscjkdin")
    public suspend fun targetDpus(`value`: Output) {
        this.targetDpus = value
    }

    /**
     * @param value Assigns Athena workgroups (and hence their queries) to capacity reservations. A capacity reservation can have only one capacity assignment configuration, but the capacity assignment configuration can be made up of multiple individual assignments. Each assignment specifies how Athena queries can consume capacity from the capacity reservation that their workgroup is mapped to.
     */
    @JvmName("dsdivgwgerydcgrq")
    public suspend fun capacityAssignmentConfiguration(`value`: CapacityReservationCapacityAssignmentConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.capacityAssignmentConfiguration = mapped
    }

    /**
     * @param argument Assigns Athena workgroups (and hence their queries) to capacity reservations. A capacity reservation can have only one capacity assignment configuration, but the capacity assignment configuration can be made up of multiple individual assignments. Each assignment specifies how Athena queries can consume capacity from the capacity reservation that their workgroup is mapped to.
     */
    @JvmName("yjythbhjwxyefouh")
    public suspend fun capacityAssignmentConfiguration(argument: suspend CapacityReservationCapacityAssignmentConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = CapacityReservationCapacityAssignmentConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.capacityAssignmentConfiguration = mapped
    }

    /**
     * @param value The reservation name.
     */
    @JvmName("cgrpacmpiqjekpkw")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("hcrcumruomomkjrl")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("eceopepifskwecsx")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("hgfbcwndkklnohts")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("okdrgehlumplnksj")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("ioposeddvpbafifh")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The number of DPUs to request to be allocated to the reservation.
     */
    @JvmName("dpluxnlhepxutcbt")
    public suspend fun targetDpus(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.targetDpus = mapped
    }

    internal fun build(): CapacityReservationArgs = CapacityReservationArgs(
        capacityAssignmentConfiguration = capacityAssignmentConfiguration,
        name = name,
        tags = tags,
        targetDpus = targetDpus,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy