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

com.pulumi.awsnative.ssmcontacts.kotlin.inputs.RotationRecurrenceSettingsArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.ssmcontacts.kotlin.inputs

import com.pulumi.awsnative.ssmcontacts.inputs.RotationRecurrenceSettingsArgs.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.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Information about when an on-call rotation is in effect and how long the rotation period lasts.
 * @property dailySettings Information about on-call rotations that recur daily.
 * @property monthlySettings Information about on-call rotations that recur monthly.
 * @property numberOfOnCalls Number of Oncalls per shift.
 * @property recurrenceMultiplier The number of days, weeks, or months a single rotation lasts.
 * @property shiftCoverages Information about the days of the week included in on-call rotation coverage.
 * @property weeklySettings Information about on-call rotations that recur weekly.
 */
public data class RotationRecurrenceSettingsArgs(
    public val dailySettings: Output>? = null,
    public val monthlySettings: Output>? = null,
    public val numberOfOnCalls: Output? = null,
    public val recurrenceMultiplier: Output? = null,
    public val shiftCoverages: Output>? = null,
    public val weeklySettings: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.ssmcontacts.inputs.RotationRecurrenceSettingsArgs =
        com.pulumi.awsnative.ssmcontacts.inputs.RotationRecurrenceSettingsArgs.builder()
            .dailySettings(dailySettings?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .monthlySettings(
                monthlySettings?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .numberOfOnCalls(numberOfOnCalls?.applyValue({ args0 -> args0 }))
            .recurrenceMultiplier(recurrenceMultiplier?.applyValue({ args0 -> args0 }))
            .shiftCoverages(
                shiftCoverages?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .weeklySettings(
                weeklySettings?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [RotationRecurrenceSettingsArgs].
 */
@PulumiTagMarker
public class RotationRecurrenceSettingsArgsBuilder internal constructor() {
    private var dailySettings: Output>? = null

    private var monthlySettings: Output>? = null

    private var numberOfOnCalls: Output? = null

    private var recurrenceMultiplier: Output? = null

    private var shiftCoverages: Output>? = null

    private var weeklySettings: Output>? = null

    /**
     * @param value Information about on-call rotations that recur daily.
     */
    @JvmName("ybfyqxdtokybnwtf")
    public suspend fun dailySettings(`value`: Output>) {
        this.dailySettings = value
    }

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

    /**
     * @param values Information about on-call rotations that recur daily.
     */
    @JvmName("eqrlgcfjlxvdlxld")
    public suspend fun dailySettings(values: List>) {
        this.dailySettings = Output.all(values)
    }

    /**
     * @param value Information about on-call rotations that recur monthly.
     */
    @JvmName("cyopochbwbhbgklk")
    public suspend fun monthlySettings(`value`: Output>) {
        this.monthlySettings = value
    }

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

    /**
     * @param values Information about on-call rotations that recur monthly.
     */
    @JvmName("bweonqgdtwvghbdx")
    public suspend fun monthlySettings(values: List>) {
        this.monthlySettings = Output.all(values)
    }

    /**
     * @param value Number of Oncalls per shift.
     */
    @JvmName("miqtcrperpvnaees")
    public suspend fun numberOfOnCalls(`value`: Output) {
        this.numberOfOnCalls = value
    }

    /**
     * @param value The number of days, weeks, or months a single rotation lasts.
     */
    @JvmName("cafnplikdcrcwuvm")
    public suspend fun recurrenceMultiplier(`value`: Output) {
        this.recurrenceMultiplier = value
    }

    /**
     * @param value Information about the days of the week included in on-call rotation coverage.
     */
    @JvmName("pdymjmtlftuntqox")
    public suspend fun shiftCoverages(`value`: Output>) {
        this.shiftCoverages = value
    }

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

    /**
     * @param values Information about the days of the week included in on-call rotation coverage.
     */
    @JvmName("ojqyrgxrwjlsbnxm")
    public suspend fun shiftCoverages(values: List>) {
        this.shiftCoverages = Output.all(values)
    }

    /**
     * @param value Information about on-call rotations that recur weekly.
     */
    @JvmName("apupcuuhebiakeuy")
    public suspend fun weeklySettings(`value`: Output>) {
        this.weeklySettings = value
    }

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

    /**
     * @param values Information about on-call rotations that recur weekly.
     */
    @JvmName("rlucppexgwwkepqh")
    public suspend fun weeklySettings(values: List>) {
        this.weeklySettings = Output.all(values)
    }

    /**
     * @param value Information about on-call rotations that recur daily.
     */
    @JvmName("pkilnpslvaoebnmk")
    public suspend fun dailySettings(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dailySettings = mapped
    }

    /**
     * @param values Information about on-call rotations that recur daily.
     */
    @JvmName("tuvqcmebqfogncjp")
    public suspend fun dailySettings(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dailySettings = mapped
    }

    /**
     * @param value Information about on-call rotations that recur monthly.
     */
    @JvmName("ixfbssoucqhctaxd")
    public suspend fun monthlySettings(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.monthlySettings = mapped
    }

    /**
     * @param argument Information about on-call rotations that recur monthly.
     */
    @JvmName("agnvptdccknnyflf")
    public suspend fun monthlySettings(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RotationMonthlySettingArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.monthlySettings = mapped
    }

    /**
     * @param argument Information about on-call rotations that recur monthly.
     */
    @JvmName("eybpjqjyhiapcmvm")
    public suspend fun monthlySettings(vararg argument: suspend RotationMonthlySettingArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RotationMonthlySettingArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.monthlySettings = mapped
    }

    /**
     * @param argument Information about on-call rotations that recur monthly.
     */
    @JvmName("ewyyijvdlpjsrpdc")
    public suspend fun monthlySettings(argument: suspend RotationMonthlySettingArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(RotationMonthlySettingArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.monthlySettings = mapped
    }

    /**
     * @param values Information about on-call rotations that recur monthly.
     */
    @JvmName("svgukdlyyujqgycb")
    public suspend fun monthlySettings(vararg values: RotationMonthlySettingArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.monthlySettings = mapped
    }

    /**
     * @param value Number of Oncalls per shift.
     */
    @JvmName("beilbagugflkkakr")
    public suspend fun numberOfOnCalls(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.numberOfOnCalls = mapped
    }

    /**
     * @param value The number of days, weeks, or months a single rotation lasts.
     */
    @JvmName("xxqqxmmqdregmxpg")
    public suspend fun recurrenceMultiplier(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.recurrenceMultiplier = mapped
    }

    /**
     * @param value Information about the days of the week included in on-call rotation coverage.
     */
    @JvmName("qdijjvaugprympie")
    public suspend fun shiftCoverages(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.shiftCoverages = mapped
    }

    /**
     * @param argument Information about the days of the week included in on-call rotation coverage.
     */
    @JvmName("qowpxijnajjqmgjf")
    public suspend fun shiftCoverages(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RotationShiftCoverageArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.shiftCoverages = mapped
    }

    /**
     * @param argument Information about the days of the week included in on-call rotation coverage.
     */
    @JvmName("xfxgemjrafvnvlji")
    public suspend fun shiftCoverages(vararg argument: suspend RotationShiftCoverageArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RotationShiftCoverageArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.shiftCoverages = mapped
    }

    /**
     * @param argument Information about the days of the week included in on-call rotation coverage.
     */
    @JvmName("ygxmbuqwucxtetpf")
    public suspend fun shiftCoverages(argument: suspend RotationShiftCoverageArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(RotationShiftCoverageArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.shiftCoverages = mapped
    }

    /**
     * @param values Information about the days of the week included in on-call rotation coverage.
     */
    @JvmName("nxgisxdloioajxmi")
    public suspend fun shiftCoverages(vararg values: RotationShiftCoverageArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.shiftCoverages = mapped
    }

    /**
     * @param value Information about on-call rotations that recur weekly.
     */
    @JvmName("qpapedchokurrfxv")
    public suspend fun weeklySettings(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.weeklySettings = mapped
    }

    /**
     * @param argument Information about on-call rotations that recur weekly.
     */
    @JvmName("wcjyaxkygunbabhp")
    public suspend fun weeklySettings(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RotationWeeklySettingArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.weeklySettings = mapped
    }

    /**
     * @param argument Information about on-call rotations that recur weekly.
     */
    @JvmName("ggtnjwtmyehbomyl")
    public suspend fun weeklySettings(vararg argument: suspend RotationWeeklySettingArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RotationWeeklySettingArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.weeklySettings = mapped
    }

    /**
     * @param argument Information about on-call rotations that recur weekly.
     */
    @JvmName("xgeylqdwtqwefdwe")
    public suspend fun weeklySettings(argument: suspend RotationWeeklySettingArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(RotationWeeklySettingArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.weeklySettings = mapped
    }

    /**
     * @param values Information about on-call rotations that recur weekly.
     */
    @JvmName("vsyxjkwqhhppuaby")
    public suspend fun weeklySettings(vararg values: RotationWeeklySettingArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.weeklySettings = mapped
    }

    internal fun build(): RotationRecurrenceSettingsArgs = RotationRecurrenceSettingsArgs(
        dailySettings = dailySettings,
        monthlySettings = monthlySettings,
        numberOfOnCalls = numberOfOnCalls,
        recurrenceMultiplier = recurrenceMultiplier,
        shiftCoverages = shiftCoverages,
        weeklySettings = weeklySettings,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy