com.pulumi.awsnative.s3.kotlin.inputs.BucketTieringArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-aws-native-kotlin Show documentation
Show all versions of pulumi-aws-native-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.s3.kotlin.inputs
import com.pulumi.awsnative.s3.inputs.BucketTieringArgs.builder
import com.pulumi.awsnative.s3.kotlin.enums.BucketTieringAccessTier
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 kotlin.Int
import kotlin.Suppress
import kotlin.jvm.JvmName
/**
* The S3 Intelligent-Tiering storage class is designed to optimize storage costs by automatically moving data to the most cost-effective storage access tier, without additional operational overhead.
* @property accessTier S3 Intelligent-Tiering access tier. See [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) for a list of access tiers in the S3 Intelligent-Tiering storage class.
* @property days The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).
*/
public data class BucketTieringArgs(
public val accessTier: Output,
public val days: Output,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.s3.inputs.BucketTieringArgs =
com.pulumi.awsnative.s3.inputs.BucketTieringArgs.builder()
.accessTier(accessTier.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.days(days.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [BucketTieringArgs].
*/
@PulumiTagMarker
public class BucketTieringArgsBuilder internal constructor() {
private var accessTier: Output? = null
private var days: Output? = null
/**
* @param value S3 Intelligent-Tiering access tier. See [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) for a list of access tiers in the S3 Intelligent-Tiering storage class.
*/
@JvmName("fcwovrdtafejbgpl")
public suspend fun accessTier(`value`: Output) {
this.accessTier = value
}
/**
* @param value The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).
*/
@JvmName("nwondgfxkolhamgu")
public suspend fun days(`value`: Output) {
this.days = value
}
/**
* @param value S3 Intelligent-Tiering access tier. See [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) for a list of access tiers in the S3 Intelligent-Tiering storage class.
*/
@JvmName("gprqgotohifwxick")
public suspend fun accessTier(`value`: BucketTieringAccessTier) {
val toBeMapped = value
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.accessTier = mapped
}
/**
* @param value The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days).
*/
@JvmName("btjpejemxbccmonu")
public suspend fun days(`value`: Int) {
val toBeMapped = value
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.days = mapped
}
internal fun build(): BucketTieringArgs = BucketTieringArgs(
accessTier = accessTier ?: throw PulumiNullFieldException("accessTier"),
days = days ?: throw PulumiNullFieldException("days"),
)
}