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

com.pulumi.awsnative.iot.kotlin.ScheduledAuditArgs.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.

There is a newer version: 1.11.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.iot.kotlin

import com.pulumi.awsnative.iot.ScheduledAuditArgs.builder
import com.pulumi.awsnative.iot.kotlin.enums.ScheduledAuditDayOfWeek
import com.pulumi.awsnative.iot.kotlin.enums.ScheduledAuditFrequency
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

/**
 * Scheduled audits can be used to specify the checks you want to perform during an audit and how often the audit should be run.
 * @property dayOfMonth The day of the month on which the scheduled audit takes place. Can be 1 through 31 or LAST. This field is required if the frequency parameter is set to MONTHLY.
 * @property dayOfWeek The day of the week on which the scheduled audit takes place. Can be one of SUN, MON, TUE,WED, THU, FRI, or SAT. This field is required if the frequency parameter is set to WEEKLY or BIWEEKLY.
 * @property frequency How often the scheduled audit takes place. Can be one of DAILY, WEEKLY, BIWEEKLY, or MONTHLY.
 * @property scheduledAuditName The name you want to give to the scheduled audit.
 * @property tags An array of key-value pairs to apply to this resource.
 * @property targetCheckNames Which checks are performed during the scheduled audit. Checks must be enabled for your account.
 */
public data class ScheduledAuditArgs(
    public val dayOfMonth: Output? = null,
    public val dayOfWeek: Output? = null,
    public val frequency: Output? = null,
    public val scheduledAuditName: Output? = null,
    public val tags: Output>? = null,
    public val targetCheckNames: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.iot.ScheduledAuditArgs =
        com.pulumi.awsnative.iot.ScheduledAuditArgs.builder()
            .dayOfMonth(dayOfMonth?.applyValue({ args0 -> args0 }))
            .dayOfWeek(dayOfWeek?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .frequency(frequency?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .scheduledAuditName(scheduledAuditName?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .targetCheckNames(targetCheckNames?.applyValue({ args0 -> args0.map({ args0 -> args0 }) })).build()
}

/**
 * Builder for [ScheduledAuditArgs].
 */
@PulumiTagMarker
public class ScheduledAuditArgsBuilder internal constructor() {
    private var dayOfMonth: Output? = null

    private var dayOfWeek: Output? = null

    private var frequency: Output? = null

    private var scheduledAuditName: Output? = null

    private var tags: Output>? = null

    private var targetCheckNames: Output>? = null

    /**
     * @param value The day of the month on which the scheduled audit takes place. Can be 1 through 31 or LAST. This field is required if the frequency parameter is set to MONTHLY.
     */
    @JvmName("dsaeiandjhdupyfb")
    public suspend fun dayOfMonth(`value`: Output) {
        this.dayOfMonth = value
    }

    /**
     * @param value The day of the week on which the scheduled audit takes place. Can be one of SUN, MON, TUE,WED, THU, FRI, or SAT. This field is required if the frequency parameter is set to WEEKLY or BIWEEKLY.
     */
    @JvmName("heuqsklxshgocqxh")
    public suspend fun dayOfWeek(`value`: Output) {
        this.dayOfWeek = value
    }

    /**
     * @param value How often the scheduled audit takes place. Can be one of DAILY, WEEKLY, BIWEEKLY, or MONTHLY.
     */
    @JvmName("rcmodlrebmmbcxrd")
    public suspend fun frequency(`value`: Output) {
        this.frequency = value
    }

    /**
     * @param value The name you want to give to the scheduled audit.
     */
    @JvmName("riwbobtsbxmyyewi")
    public suspend fun scheduledAuditName(`value`: Output) {
        this.scheduledAuditName = value
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("joesdiderfocioet")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    @JvmName("rqvbsshroreuauff")
    public suspend fun tags(vararg values: Output) {
        this.tags = Output.all(values.asList())
    }

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("vlfhfuykjdtuqyom")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value Which checks are performed during the scheduled audit. Checks must be enabled for your account.
     */
    @JvmName("djakvroyfasmcyjq")
    public suspend fun targetCheckNames(`value`: Output>) {
        this.targetCheckNames = value
    }

    @JvmName("rhyqyqclpwpyiypi")
    public suspend fun targetCheckNames(vararg values: Output) {
        this.targetCheckNames = Output.all(values.asList())
    }

    /**
     * @param values Which checks are performed during the scheduled audit. Checks must be enabled for your account.
     */
    @JvmName("xkfbtqkcpyhqlbyj")
    public suspend fun targetCheckNames(values: List>) {
        this.targetCheckNames = Output.all(values)
    }

    /**
     * @param value The day of the month on which the scheduled audit takes place. Can be 1 through 31 or LAST. This field is required if the frequency parameter is set to MONTHLY.
     */
    @JvmName("rrekktvxwdibgjqh")
    public suspend fun dayOfMonth(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dayOfMonth = mapped
    }

    /**
     * @param value The day of the week on which the scheduled audit takes place. Can be one of SUN, MON, TUE,WED, THU, FRI, or SAT. This field is required if the frequency parameter is set to WEEKLY or BIWEEKLY.
     */
    @JvmName("jbsukatfgjqflhoh")
    public suspend fun dayOfWeek(`value`: ScheduledAuditDayOfWeek?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dayOfWeek = mapped
    }

    /**
     * @param value How often the scheduled audit takes place. Can be one of DAILY, WEEKLY, BIWEEKLY, or MONTHLY.
     */
    @JvmName("vakprditulfmsxcj")
    public suspend fun frequency(`value`: ScheduledAuditFrequency?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.frequency = mapped
    }

    /**
     * @param value The name you want to give to the scheduled audit.
     */
    @JvmName("orxkbsdbxiafujwp")
    public suspend fun scheduledAuditName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scheduledAuditName = mapped
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("cuekjngaysxsraor")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pairs to apply to this resource.
     */
    @JvmName("ysmecqlxwtvfqkui")
    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 An array of key-value pairs to apply to this resource.
     */
    @JvmName("vadsljyyscpfqrgs")
    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 An array of key-value pairs to apply to this resource.
     */
    @JvmName("euwqlkxnjqsivtrp")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values An array of key-value pairs to apply to this resource.
     */
    @JvmName("kgoxxhevwbusmklf")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value Which checks are performed during the scheduled audit. Checks must be enabled for your account.
     */
    @JvmName("thyaihxwcdqhpocc")
    public suspend fun targetCheckNames(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.targetCheckNames = mapped
    }

    /**
     * @param values Which checks are performed during the scheduled audit. Checks must be enabled for your account.
     */
    @JvmName("usdocddcotwmcelp")
    public suspend fun targetCheckNames(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.targetCheckNames = mapped
    }

    internal fun build(): ScheduledAuditArgs = ScheduledAuditArgs(
        dayOfMonth = dayOfMonth,
        dayOfWeek = dayOfWeek,
        frequency = frequency,
        scheduledAuditName = scheduledAuditName,
        tags = tags,
        targetCheckNames = targetCheckNames,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy