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

com.pulumi.awsnative.resiliencehub.kotlin.ResiliencyPolicyArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.resiliencehub.kotlin

import com.pulumi.awsnative.resiliencehub.ResiliencyPolicyArgs.builder
import com.pulumi.awsnative.resiliencehub.kotlin.enums.ResiliencyPolicyDataLocationConstraint
import com.pulumi.awsnative.resiliencehub.kotlin.enums.ResiliencyPolicyTier
import com.pulumi.awsnative.resiliencehub.kotlin.inputs.ResiliencyPolicyPolicyMapArgs
import com.pulumi.awsnative.resiliencehub.kotlin.inputs.ResiliencyPolicyPolicyMapArgsBuilder
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.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Resource Type Definition for Resiliency Policy.
 * @property dataLocationConstraint Data Location Constraint of the Policy.
 * @property policy The resiliency policy.
 * @property policyDescription Description of Resiliency Policy.
 * @property policyName Name of Resiliency Policy.
 * @property tags Tags assigned to the resource. A tag is a label that you assign to an AWS resource. Each tag consists of a key/value pair.
 * @property tier Resiliency Policy Tier.
 */
public data class ResiliencyPolicyArgs(
    public val dataLocationConstraint: Output? = null,
    public val policy: Output? = null,
    public val policyDescription: Output? = null,
    public val policyName: Output? = null,
    public val tags: Output>? = null,
    public val tier: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.resiliencehub.ResiliencyPolicyArgs =
        com.pulumi.awsnative.resiliencehub.ResiliencyPolicyArgs.builder()
            .dataLocationConstraint(
                dataLocationConstraint?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .policy(policy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .policyDescription(policyDescription?.applyValue({ args0 -> args0 }))
            .policyName(policyName?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .tier(tier?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [ResiliencyPolicyArgs].
 */
@PulumiTagMarker
public class ResiliencyPolicyArgsBuilder internal constructor() {
    private var dataLocationConstraint: Output? = null

    private var policy: Output? = null

    private var policyDescription: Output? = null

    private var policyName: Output? = null

    private var tags: Output>? = null

    private var tier: Output? = null

    /**
     * @param value Data Location Constraint of the Policy.
     */
    @JvmName("uidtnfxmhyssakky")
    public suspend fun dataLocationConstraint(`value`: Output) {
        this.dataLocationConstraint = value
    }

    /**
     * @param value The resiliency policy.
     */
    @JvmName("kefbtkbhjvpnrstx")
    public suspend fun policy(`value`: Output) {
        this.policy = value
    }

    /**
     * @param value Description of Resiliency Policy.
     */
    @JvmName("bnxnewdcchvjxwkn")
    public suspend fun policyDescription(`value`: Output) {
        this.policyDescription = value
    }

    /**
     * @param value Name of Resiliency Policy.
     */
    @JvmName("esxxbrgehmypkkgs")
    public suspend fun policyName(`value`: Output) {
        this.policyName = value
    }

    /**
     * @param value Tags assigned to the resource. A tag is a label that you assign to an AWS resource. Each tag consists of a key/value pair.
     */
    @JvmName("qhtewmpmhknahubl")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value Resiliency Policy Tier.
     */
    @JvmName("hrqvvxixkhnyblmw")
    public suspend fun tier(`value`: Output) {
        this.tier = value
    }

    /**
     * @param value Data Location Constraint of the Policy.
     */
    @JvmName("lbmnnseqisnudvvq")
    public suspend fun dataLocationConstraint(`value`: ResiliencyPolicyDataLocationConstraint?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataLocationConstraint = mapped
    }

    /**
     * @param value The resiliency policy.
     */
    @JvmName("goidsowaksgajbst")
    public suspend fun policy(`value`: ResiliencyPolicyPolicyMapArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.policy = mapped
    }

    /**
     * @param argument The resiliency policy.
     */
    @JvmName("objruhlieprbpgob")
    public suspend fun policy(argument: suspend ResiliencyPolicyPolicyMapArgsBuilder.() -> Unit) {
        val toBeMapped = ResiliencyPolicyPolicyMapArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.policy = mapped
    }

    /**
     * @param value Description of Resiliency Policy.
     */
    @JvmName("fhuroxmycfndwwim")
    public suspend fun policyDescription(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.policyDescription = mapped
    }

    /**
     * @param value Name of Resiliency Policy.
     */
    @JvmName("sfleeckpddmtvcqw")
    public suspend fun policyName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.policyName = mapped
    }

    /**
     * @param value Tags assigned to the resource. A tag is a label that you assign to an AWS resource. Each tag consists of a key/value pair.
     */
    @JvmName("oxfxbbwknbyeifsp")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values Tags assigned to the resource. A tag is a label that you assign to an AWS resource. Each tag consists of a key/value pair.
     */
    @JvmName("yeaxekdbqioucrkl")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value Resiliency Policy Tier.
     */
    @JvmName("dcnkyonfgoyvffdv")
    public suspend fun tier(`value`: ResiliencyPolicyTier?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tier = mapped
    }

    internal fun build(): ResiliencyPolicyArgs = ResiliencyPolicyArgs(
        dataLocationConstraint = dataLocationConstraint,
        policy = policy,
        policyDescription = policyDescription,
        policyName = policyName,
        tags = tags,
        tier = tier,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy