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

com.pulumi.awsnative.elasticbeanstalk.kotlin.inputs.ApplicationResourceLifecycleConfigArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.elasticbeanstalk.kotlin.inputs

import com.pulumi.awsnative.elasticbeanstalk.inputs.ApplicationResourceLifecycleConfigArgs.builder
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property serviceRole The ARN of an IAM service role that Elastic Beanstalk has permission to assume. The ServiceRole property is required the first time that you provide a ResourceLifecycleConfig for the application. After you provide it once, Elastic Beanstalk persists the Service Role with the application, and you don't need to specify it again. You can, however, specify it in subsequent updates to change the Service Role to another value.
 * @property versionLifecycleConfig Defines lifecycle settings for application versions.
 */
public data class ApplicationResourceLifecycleConfigArgs(
    public val serviceRole: Output? = null,
    public val versionLifecycleConfig: Output? = null,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.elasticbeanstalk.inputs.ApplicationResourceLifecycleConfigArgs =
        com.pulumi.awsnative.elasticbeanstalk.inputs.ApplicationResourceLifecycleConfigArgs.builder()
            .serviceRole(serviceRole?.applyValue({ args0 -> args0 }))
            .versionLifecycleConfig(
                versionLifecycleConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [ApplicationResourceLifecycleConfigArgs].
 */
@PulumiTagMarker
public class ApplicationResourceLifecycleConfigArgsBuilder internal constructor() {
    private var serviceRole: Output? = null

    private var versionLifecycleConfig: Output? = null

    /**
     * @param value The ARN of an IAM service role that Elastic Beanstalk has permission to assume. The ServiceRole property is required the first time that you provide a ResourceLifecycleConfig for the application. After you provide it once, Elastic Beanstalk persists the Service Role with the application, and you don't need to specify it again. You can, however, specify it in subsequent updates to change the Service Role to another value.
     */
    @JvmName("ydpejneuaslbwfma")
    public suspend fun serviceRole(`value`: Output) {
        this.serviceRole = value
    }

    /**
     * @param value Defines lifecycle settings for application versions.
     */
    @JvmName("idcakyanraektvis")
    public suspend fun versionLifecycleConfig(`value`: Output) {
        this.versionLifecycleConfig = value
    }

    /**
     * @param value The ARN of an IAM service role that Elastic Beanstalk has permission to assume. The ServiceRole property is required the first time that you provide a ResourceLifecycleConfig for the application. After you provide it once, Elastic Beanstalk persists the Service Role with the application, and you don't need to specify it again. You can, however, specify it in subsequent updates to change the Service Role to another value.
     */
    @JvmName("afcesglyjaykxohp")
    public suspend fun serviceRole(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serviceRole = mapped
    }

    /**
     * @param value Defines lifecycle settings for application versions.
     */
    @JvmName("rvmpjccajqyefxpw")
    public suspend fun versionLifecycleConfig(`value`: ApplicationVersionLifecycleConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.versionLifecycleConfig = mapped
    }

    /**
     * @param argument Defines lifecycle settings for application versions.
     */
    @JvmName("utvcglenoquhrjfq")
    public suspend fun versionLifecycleConfig(argument: suspend ApplicationVersionLifecycleConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ApplicationVersionLifecycleConfigArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.versionLifecycleConfig = mapped
    }

    internal fun build(): ApplicationResourceLifecycleConfigArgs =
        ApplicationResourceLifecycleConfigArgs(
            serviceRole = serviceRole,
            versionLifecycleConfig = versionLifecycleConfig,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy