Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.awsnative.iot.kotlin.SecurityProfileArgs.kt Maven / Gradle / Ivy
Go to download
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.iot.kotlin
import com.pulumi.awsnative.iot.SecurityProfileArgs.builder
import com.pulumi.awsnative.iot.kotlin.inputs.MetricsExportConfigPropertiesArgs
import com.pulumi.awsnative.iot.kotlin.inputs.MetricsExportConfigPropertiesArgsBuilder
import com.pulumi.awsnative.iot.kotlin.inputs.SecurityProfileAlertTargetArgs
import com.pulumi.awsnative.iot.kotlin.inputs.SecurityProfileAlertTargetArgsBuilder
import com.pulumi.awsnative.iot.kotlin.inputs.SecurityProfileBehaviorArgs
import com.pulumi.awsnative.iot.kotlin.inputs.SecurityProfileBehaviorArgsBuilder
import com.pulumi.awsnative.iot.kotlin.inputs.SecurityProfileMetricToRetainArgs
import com.pulumi.awsnative.iot.kotlin.inputs.SecurityProfileMetricToRetainArgsBuilder
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.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
* A security profile defines a set of expected behaviors for devices in your account.
* @property additionalMetricsToRetainV2 A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here.
* @property alertTargets Specifies the destinations to which alerts are sent.
* @property behaviors Specifies the behaviors that, when violated by a device (thing), cause an alert.
* @property metricsExportConfig A structure containing the mqtt topic for metrics export.
* @property securityProfileDescription A description of the security profile.
* @property securityProfileName A unique identifier for the security profile.
* @property tags Metadata that can be used to manage the security profile.
* @property targetArns A set of target ARNs that the security profile is attached to.
*/
public data class SecurityProfileArgs(
public val additionalMetricsToRetainV2: Output>? = null,
public val alertTargets: Output>? = null,
public val behaviors: Output>? = null,
public val metricsExportConfig: Output? = null,
public val securityProfileDescription: Output? = null,
public val securityProfileName: Output? = null,
public val tags: Output>? = null,
public val targetArns: Output>? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.iot.SecurityProfileArgs =
com.pulumi.awsnative.iot.SecurityProfileArgs.builder()
.additionalMetricsToRetainV2(
additionalMetricsToRetainV2?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> args0.toJava() })
})
}),
)
.alertTargets(
alertTargets?.applyValue({ args0 ->
args0.map({ args0 ->
args0.key.to(args0.value.let({ args0 -> args0.toJava() }))
}).toMap()
}),
)
.behaviors(
behaviors?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.metricsExportConfig(
metricsExportConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.securityProfileDescription(securityProfileDescription?.applyValue({ args0 -> args0 }))
.securityProfileName(securityProfileName?.applyValue({ args0 -> args0 }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.targetArns(targetArns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}
/**
* Builder for [SecurityProfileArgs].
*/
@PulumiTagMarker
public class SecurityProfileArgsBuilder internal constructor() {
private var additionalMetricsToRetainV2: Output>? = null
private var alertTargets: Output>? = null
private var behaviors: Output>? = null
private var metricsExportConfig: Output? = null
private var securityProfileDescription: Output? = null
private var securityProfileName: Output? = null
private var tags: Output>? = null
private var targetArns: Output>? = null
/**
* @param value A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here.
*/
@JvmName("bfsmlclucetndvfi")
public suspend fun additionalMetricsToRetainV2(`value`: Output>) {
this.additionalMetricsToRetainV2 = value
}
@JvmName("oabaunifjllplvbt")
public suspend fun additionalMetricsToRetainV2(vararg values: Output) {
this.additionalMetricsToRetainV2 = Output.all(values.asList())
}
/**
* @param values A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here.
*/
@JvmName("xyvcmdmdxrdgkwyr")
public suspend fun additionalMetricsToRetainV2(values: List>) {
this.additionalMetricsToRetainV2 = Output.all(values)
}
/**
* @param value Specifies the destinations to which alerts are sent.
*/
@JvmName("eowlpnrtarkmittw")
public suspend fun alertTargets(`value`: Output>) {
this.alertTargets = value
}
/**
* @param value Specifies the behaviors that, when violated by a device (thing), cause an alert.
*/
@JvmName("aqkwowfrcevagoyp")
public suspend fun behaviors(`value`: Output>) {
this.behaviors = value
}
@JvmName("ekhxwecytcnyijdm")
public suspend fun behaviors(vararg values: Output) {
this.behaviors = Output.all(values.asList())
}
/**
* @param values Specifies the behaviors that, when violated by a device (thing), cause an alert.
*/
@JvmName("yaxrfopewfvpihwh")
public suspend fun behaviors(values: List>) {
this.behaviors = Output.all(values)
}
/**
* @param value A structure containing the mqtt topic for metrics export.
*/
@JvmName("ndwabmfyntwxotlf")
public suspend fun metricsExportConfig(`value`: Output) {
this.metricsExportConfig = value
}
/**
* @param value A description of the security profile.
*/
@JvmName("boobvuijeqfbavnh")
public suspend fun securityProfileDescription(`value`: Output) {
this.securityProfileDescription = value
}
/**
* @param value A unique identifier for the security profile.
*/
@JvmName("fsnkkkfyovbnolry")
public suspend fun securityProfileName(`value`: Output) {
this.securityProfileName = value
}
/**
* @param value Metadata that can be used to manage the security profile.
*/
@JvmName("trocpdbecgyyjmds")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
@JvmName("dbdnfajkhknixyvq")
public suspend fun tags(vararg values: Output) {
this.tags = Output.all(values.asList())
}
/**
* @param values Metadata that can be used to manage the security profile.
*/
@JvmName("uvnfiosiyeqoixfv")
public suspend fun tags(values: List>) {
this.tags = Output.all(values)
}
/**
* @param value A set of target ARNs that the security profile is attached to.
*/
@JvmName("vrscloicfrhvutpf")
public suspend fun targetArns(`value`: Output>) {
this.targetArns = value
}
@JvmName("gsysncljtiqgqyre")
public suspend fun targetArns(vararg values: Output) {
this.targetArns = Output.all(values.asList())
}
/**
* @param values A set of target ARNs that the security profile is attached to.
*/
@JvmName("xnbaamttdengqbva")
public suspend fun targetArns(values: List>) {
this.targetArns = Output.all(values)
}
/**
* @param value A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here.
*/
@JvmName("vkhuhlwrnwtqlfac")
public suspend fun additionalMetricsToRetainV2(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.additionalMetricsToRetainV2 = mapped
}
/**
* @param argument A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here.
*/
@JvmName("wyclxvgqgnbfjntq")
public suspend fun additionalMetricsToRetainV2(argument: List Unit>) {
val toBeMapped = argument.toList().map {
SecurityProfileMetricToRetainArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.additionalMetricsToRetainV2 = mapped
}
/**
* @param argument A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here.
*/
@JvmName("liuftwhmukpxojyp")
public suspend fun additionalMetricsToRetainV2(vararg argument: suspend SecurityProfileMetricToRetainArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
SecurityProfileMetricToRetainArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.additionalMetricsToRetainV2 = mapped
}
/**
* @param argument A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here.
*/
@JvmName("yxxxucgqefqrcaop")
public suspend fun additionalMetricsToRetainV2(argument: suspend SecurityProfileMetricToRetainArgsBuilder.() -> Unit) {
val toBeMapped = listOf(
SecurityProfileMetricToRetainArgsBuilder().applySuspend {
argument()
}.build(),
)
val mapped = of(toBeMapped)
this.additionalMetricsToRetainV2 = mapped
}
/**
* @param values A list of metrics whose data is retained (stored). By default, data is retained for any metric used in the profile's behaviors, but it is also retained for any metric specified here.
*/
@JvmName("ratjhjvsrqmtuooi")
public suspend fun additionalMetricsToRetainV2(vararg values: SecurityProfileMetricToRetainArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.additionalMetricsToRetainV2 = mapped
}
/**
* @param value Specifies the destinations to which alerts are sent.
*/
@JvmName("fwivkobbpqbyosby")
public suspend fun alertTargets(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.alertTargets = mapped
}
/**
* @param argument Specifies the destinations to which alerts are sent.
*/
@JvmName("nsgwtdubwckldqae")
public suspend fun alertTargets(vararg argument: Pair Unit>) {
val toBeMapped = argument.toList().map { (left, right) ->
left to
SecurityProfileAlertTargetArgsBuilder().applySuspend { right() }.build()
}.toMap()
val mapped = of(toBeMapped)
this.alertTargets = mapped
}
/**
* @param values Specifies the destinations to which alerts are sent.
*/
@JvmName("mxptlujvyhmeuryu")
public fun alertTargets(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.alertTargets = mapped
}
/**
* @param value Specifies the behaviors that, when violated by a device (thing), cause an alert.
*/
@JvmName("lychbfhmoqjtilvi")
public suspend fun behaviors(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.behaviors = mapped
}
/**
* @param argument Specifies the behaviors that, when violated by a device (thing), cause an alert.
*/
@JvmName("ltdlpbcgtxubqgal")
public suspend fun behaviors(argument: List Unit>) {
val toBeMapped = argument.toList().map {
SecurityProfileBehaviorArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.behaviors = mapped
}
/**
* @param argument Specifies the behaviors that, when violated by a device (thing), cause an alert.
*/
@JvmName("ecldmrcxlraybtrm")
public suspend fun behaviors(vararg argument: suspend SecurityProfileBehaviorArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
SecurityProfileBehaviorArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.behaviors = mapped
}
/**
* @param argument Specifies the behaviors that, when violated by a device (thing), cause an alert.
*/
@JvmName("uohwheyqmmbsvnkk")
public suspend fun behaviors(argument: suspend SecurityProfileBehaviorArgsBuilder.() -> Unit) {
val toBeMapped = listOf(
SecurityProfileBehaviorArgsBuilder().applySuspend {
argument()
}.build(),
)
val mapped = of(toBeMapped)
this.behaviors = mapped
}
/**
* @param values Specifies the behaviors that, when violated by a device (thing), cause an alert.
*/
@JvmName("hgnynkmprdjxdfrh")
public suspend fun behaviors(vararg values: SecurityProfileBehaviorArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.behaviors = mapped
}
/**
* @param value A structure containing the mqtt topic for metrics export.
*/
@JvmName("nsgtsewsnobwtpnx")
public suspend fun metricsExportConfig(`value`: MetricsExportConfigPropertiesArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.metricsExportConfig = mapped
}
/**
* @param argument A structure containing the mqtt topic for metrics export.
*/
@JvmName("ybyjxxgerhaqewsw")
public suspend fun metricsExportConfig(argument: suspend MetricsExportConfigPropertiesArgsBuilder.() -> Unit) {
val toBeMapped = MetricsExportConfigPropertiesArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.metricsExportConfig = mapped
}
/**
* @param value A description of the security profile.
*/
@JvmName("jkroxxrartmrtyqr")
public suspend fun securityProfileDescription(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.securityProfileDescription = mapped
}
/**
* @param value A unique identifier for the security profile.
*/
@JvmName("shdlicpssyxbcouk")
public suspend fun securityProfileName(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.securityProfileName = mapped
}
/**
* @param value Metadata that can be used to manage the security profile.
*/
@JvmName("chdwibkxukurgvoj")
public suspend fun tags(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param argument Metadata that can be used to manage the security profile.
*/
@JvmName("aiawgusuisimgefo")
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 Metadata that can be used to manage the security profile.
*/
@JvmName("hgaghsdajdwfrbui")
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 Metadata that can be used to manage the security profile.
*/
@JvmName("glgtearwqqnpdunh")
public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.tags = mapped
}
/**
* @param values Metadata that can be used to manage the security profile.
*/
@JvmName("avtgkaetcognnqvj")
public suspend fun tags(vararg values: TagArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param value A set of target ARNs that the security profile is attached to.
*/
@JvmName("ulpcrwjilyscmnnx")
public suspend fun targetArns(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.targetArns = mapped
}
/**
* @param values A set of target ARNs that the security profile is attached to.
*/
@JvmName("ssqttqnqweqktngm")
public suspend fun targetArns(vararg values: String) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.targetArns = mapped
}
internal fun build(): SecurityProfileArgs = SecurityProfileArgs(
additionalMetricsToRetainV2 = additionalMetricsToRetainV2,
alertTargets = alertTargets,
behaviors = behaviors,
metricsExportConfig = metricsExportConfig,
securityProfileDescription = securityProfileDescription,
securityProfileName = securityProfileName,
tags = tags,
targetArns = targetArns,
)
}