com.pulumi.awsnative.budgets.kotlin.BudgetsActionArgs.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.budgets.kotlin
import com.pulumi.awsnative.budgets.BudgetsActionArgs.builder
import com.pulumi.awsnative.budgets.kotlin.enums.BudgetsActionActionType
import com.pulumi.awsnative.budgets.kotlin.enums.BudgetsActionApprovalModel
import com.pulumi.awsnative.budgets.kotlin.enums.BudgetsActionNotificationType
import com.pulumi.awsnative.budgets.kotlin.inputs.BudgetsActionActionThresholdArgs
import com.pulumi.awsnative.budgets.kotlin.inputs.BudgetsActionActionThresholdArgsBuilder
import com.pulumi.awsnative.budgets.kotlin.inputs.BudgetsActionDefinitionArgs
import com.pulumi.awsnative.budgets.kotlin.inputs.BudgetsActionDefinitionArgsBuilder
import com.pulumi.awsnative.budgets.kotlin.inputs.BudgetsActionSubscriberArgs
import com.pulumi.awsnative.budgets.kotlin.inputs.BudgetsActionSubscriberArgsBuilder
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* An example resource schema demonstrating some basic constructs and validation rules.
* @property actionThreshold The trigger threshold of the action.
* @property actionType The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition.
* @property approvalModel This specifies if the action needs manual or automatic approval.
* @property budgetName A string that represents the budget name. ":" and "\" characters aren't allowed.
* @property definition Specifies all of the type-specific parameters.
* @property executionRoleArn The role passed for action execution and reversion. Roles and actions must be in the same account.
* @property notificationType The type of a notification.
* @property resourceTags An optional list of tags to associate with the specified budget action. Each tag consists of a key and a value, and each key must be unique for the resource.
* @property subscribers A list of subscribers.
*/
public data class BudgetsActionArgs(
public val actionThreshold: Output? = null,
public val actionType: Output? = null,
public val approvalModel: Output? = null,
public val budgetName: Output? = null,
public val definition: Output? = null,
public val executionRoleArn: Output? = null,
public val notificationType: Output? = null,
public val resourceTags: Output>? = null,
public val subscribers: Output>? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.budgets.BudgetsActionArgs =
com.pulumi.awsnative.budgets.BudgetsActionArgs.builder()
.actionThreshold(actionThreshold?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.actionType(actionType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.approvalModel(approvalModel?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.budgetName(budgetName?.applyValue({ args0 -> args0 }))
.definition(definition?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.executionRoleArn(executionRoleArn?.applyValue({ args0 -> args0 }))
.notificationType(notificationType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.resourceTags(
resourceTags?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.subscribers(
subscribers?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
).build()
}
/**
* Builder for [BudgetsActionArgs].
*/
@PulumiTagMarker
public class BudgetsActionArgsBuilder internal constructor() {
private var actionThreshold: Output? = null
private var actionType: Output? = null
private var approvalModel: Output? = null
private var budgetName: Output? = null
private var definition: Output? = null
private var executionRoleArn: Output? = null
private var notificationType: Output? = null
private var resourceTags: Output>? = null
private var subscribers: Output>? = null
/**
* @param value The trigger threshold of the action.
*/
@JvmName("tcyqfrrvyiksywel")
public suspend fun actionThreshold(`value`: Output) {
this.actionThreshold = value
}
/**
* @param value The type of action. This defines the type of tasks that can be carried out by this action. This field also determines the format for definition.
*/
@JvmName("saydljresqdqiaav")
public suspend fun actionType(`value`: Output) {
this.actionType = value
}
/**
* @param value This specifies if the action needs manual or automatic approval.
*/
@JvmName("mcmtgvgttvwqhjos")
public suspend fun approvalModel(`value`: Output) {
this.approvalModel = value
}
/**
* @param value A string that represents the budget name. ":" and "\" characters aren't allowed.
*/
@JvmName("fpgmqidggtbykajs")
public suspend fun budgetName(`value`: Output) {
this.budgetName = value
}
/**
* @param value Specifies all of the type-specific parameters.
*/
@JvmName("ppnkqrdxvpifuorj")
public suspend fun definition(`value`: Output) {
this.definition = value
}
/**
* @param value The role passed for action execution and reversion. Roles and actions must be in the same account.
*/
@JvmName("rmabelgupgfdxjjw")
public suspend fun executionRoleArn(`value`: Output) {
this.executionRoleArn = value
}
/**
* @param value The type of a notification.
*/
@JvmName("wgwifmwrucpmmvwb")
public suspend fun notificationType(`value`: Output) {
this.notificationType = value
}
/**
* @param value An optional list of tags to associate with the specified budget action. Each tag consists of a key and a value, and each key must be unique for the resource.
*/
@JvmName("haseghsirbfvuiyw")
public suspend fun resourceTags(`value`: Output>) {
this.resourceTags = value
}
@JvmName("qyftyuopkqwrnajk")
public suspend fun resourceTags(vararg values: Output) {
this.resourceTags = Output.all(values.asList())
}
/**
* @param values An optional list of tags to associate with the specified budget action. Each tag consists of a key and a value, and each key must be unique for the resource.
*/
@JvmName("mtaaeahtcqqqynjj")
public suspend fun resourceTags(values: List