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

com.pulumi.azure.automation.kotlin.inputs.SoftwareUpdateConfigurationScheduleArgs.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: 6.14.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.automation.kotlin.inputs

import com.pulumi.azure.automation.inputs.SoftwareUpdateConfigurationScheduleArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Double
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property advancedMonthDays List of days of the month that the job should execute on. Must be between `1` and `31`. `-1` for last day of the month. Only valid when frequency is `Month`.
 * @property advancedWeekDays List of days of the week that the job should execute on. Only valid when frequency is `Week`. Possible values include `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, and `Sunday`.
 * @property creationTime
 * @property description A description for this Schedule.
 * @property expiryTime The end time of the schedule.
 * @property expiryTimeOffsetMinutes
 * @property frequency The frequency of the schedule. - can be either `OneTime`, `Day`, `Hour`, `Week`, or `Month`.
 * @property interval The number of `frequency`s between runs. Only valid when frequency is `Day`, `Hour`, `Week`, or `Month`.
 * @property isEnabled Whether the schedule is enabled. Defaults to `true`.
 * @property lastModifiedTime
 * @property monthlyOccurrences List of `monthly_occurrence` blocks as defined below to specifies occurrences of days within a month. Only valid when frequency is `Month`. The `monthly_occurrence` block supports fields as defined below.
 * @property nextRun
 * @property nextRunOffsetMinutes
 * @property startTime Start time of the schedule. Must be at least five minutes in the future. Defaults to seven minutes in the future from the time the resource is created.
 * @property startTimeOffsetMinutes
 * @property timeZone The timezone of the start time. Defaults to `Etc/UTC`. For possible values see: 
 */
public data class SoftwareUpdateConfigurationScheduleArgs(
    public val advancedMonthDays: Output>? = null,
    public val advancedWeekDays: Output>? = null,
    public val creationTime: Output? = null,
    public val description: Output? = null,
    public val expiryTime: Output? = null,
    public val expiryTimeOffsetMinutes: Output? = null,
    public val frequency: Output,
    public val interval: Output? = null,
    public val isEnabled: Output? = null,
    public val lastModifiedTime: Output? = null,
    public val monthlyOccurrences:
    Output>? = null,
    public val nextRun: Output? = null,
    public val nextRunOffsetMinutes: Output? = null,
    public val startTime: Output? = null,
    public val startTimeOffsetMinutes: Output? = null,
    public val timeZone: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.automation.inputs.SoftwareUpdateConfigurationScheduleArgs =
        com.pulumi.azure.automation.inputs.SoftwareUpdateConfigurationScheduleArgs.builder()
            .advancedMonthDays(advancedMonthDays?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .advancedWeekDays(advancedWeekDays?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .creationTime(creationTime?.applyValue({ args0 -> args0 }))
            .description(description?.applyValue({ args0 -> args0 }))
            .expiryTime(expiryTime?.applyValue({ args0 -> args0 }))
            .expiryTimeOffsetMinutes(expiryTimeOffsetMinutes?.applyValue({ args0 -> args0 }))
            .frequency(frequency.applyValue({ args0 -> args0 }))
            .interval(interval?.applyValue({ args0 -> args0 }))
            .isEnabled(isEnabled?.applyValue({ args0 -> args0 }))
            .lastModifiedTime(lastModifiedTime?.applyValue({ args0 -> args0 }))
            .monthlyOccurrences(
                monthlyOccurrences?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .nextRun(nextRun?.applyValue({ args0 -> args0 }))
            .nextRunOffsetMinutes(nextRunOffsetMinutes?.applyValue({ args0 -> args0 }))
            .startTime(startTime?.applyValue({ args0 -> args0 }))
            .startTimeOffsetMinutes(startTimeOffsetMinutes?.applyValue({ args0 -> args0 }))
            .timeZone(timeZone?.applyValue({ args0 -> args0 })).build()
}

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

    private var advancedWeekDays: Output>? = null

    private var creationTime: Output? = null

    private var description: Output? = null

    private var expiryTime: Output? = null

    private var expiryTimeOffsetMinutes: Output? = null

    private var frequency: Output? = null

    private var interval: Output? = null

    private var isEnabled: Output? = null

    private var lastModifiedTime: Output? = null

    private var monthlyOccurrences:
        Output>? = null

    private var nextRun: Output? = null

    private var nextRunOffsetMinutes: Output? = null

    private var startTime: Output? = null

    private var startTimeOffsetMinutes: Output? = null

    private var timeZone: Output? = null

    /**
     * @param value List of days of the month that the job should execute on. Must be between `1` and `31`. `-1` for last day of the month. Only valid when frequency is `Month`.
     */
    @JvmName("rrkqfswkxjonwyab")
    public suspend fun advancedMonthDays(`value`: Output>) {
        this.advancedMonthDays = value
    }

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

    /**
     * @param values List of days of the month that the job should execute on. Must be between `1` and `31`. `-1` for last day of the month. Only valid when frequency is `Month`.
     */
    @JvmName("ipquoharmjdohvwe")
    public suspend fun advancedMonthDays(values: List>) {
        this.advancedMonthDays = Output.all(values)
    }

    /**
     * @param value List of days of the week that the job should execute on. Only valid when frequency is `Week`. Possible values include `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, and `Sunday`.
     */
    @JvmName("oubgvisnxyslvwla")
    public suspend fun advancedWeekDays(`value`: Output>) {
        this.advancedWeekDays = value
    }

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

    /**
     * @param values List of days of the week that the job should execute on. Only valid when frequency is `Week`. Possible values include `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, and `Sunday`.
     */
    @JvmName("xbeqqadtdnubxvgn")
    public suspend fun advancedWeekDays(values: List>) {
        this.advancedWeekDays = Output.all(values)
    }

    /**
     * @param value
     */
    @JvmName("rfqxehveadmmxhgr")
    public suspend fun creationTime(`value`: Output) {
        this.creationTime = value
    }

    /**
     * @param value A description for this Schedule.
     */
    @JvmName("wetumtgbyliqbavo")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The end time of the schedule.
     */
    @JvmName("ptdcgwoydoldnaff")
    public suspend fun expiryTime(`value`: Output) {
        this.expiryTime = value
    }

    /**
     * @param value
     */
    @JvmName("xcnyibfgjqcetyyf")
    public suspend fun expiryTimeOffsetMinutes(`value`: Output) {
        this.expiryTimeOffsetMinutes = value
    }

    /**
     * @param value The frequency of the schedule. - can be either `OneTime`, `Day`, `Hour`, `Week`, or `Month`.
     */
    @JvmName("cgrwbsrfavgkxqem")
    public suspend fun frequency(`value`: Output) {
        this.frequency = value
    }

    /**
     * @param value The number of `frequency`s between runs. Only valid when frequency is `Day`, `Hour`, `Week`, or `Month`.
     */
    @JvmName("bdkxclvjnkjfubmp")
    public suspend fun interval(`value`: Output) {
        this.interval = value
    }

    /**
     * @param value Whether the schedule is enabled. Defaults to `true`.
     */
    @JvmName("eubecfwoyyhiqmox")
    public suspend fun isEnabled(`value`: Output) {
        this.isEnabled = value
    }

    /**
     * @param value
     */
    @JvmName("gkhysexxcmlumjoy")
    public suspend fun lastModifiedTime(`value`: Output) {
        this.lastModifiedTime = value
    }

    /**
     * @param value List of `monthly_occurrence` blocks as defined below to specifies occurrences of days within a month. Only valid when frequency is `Month`. The `monthly_occurrence` block supports fields as defined below.
     */
    @JvmName("ewngabsjjorisydr")
    public suspend
    fun monthlyOccurrences(`value`: Output>) {
        this.monthlyOccurrences = value
    }

    @JvmName("ffgrgrljptpwcpot")
    public suspend fun monthlyOccurrences(
        vararg
        values: Output,
    ) {
        this.monthlyOccurrences = Output.all(values.asList())
    }

    /**
     * @param values List of `monthly_occurrence` blocks as defined below to specifies occurrences of days within a month. Only valid when frequency is `Month`. The `monthly_occurrence` block supports fields as defined below.
     */
    @JvmName("inavujkjotorqfwy")
    public suspend
    fun monthlyOccurrences(values: List>) {
        this.monthlyOccurrences = Output.all(values)
    }

    /**
     * @param value
     */
    @JvmName("osefilpeiwbjmqcp")
    public suspend fun nextRun(`value`: Output) {
        this.nextRun = value
    }

    /**
     * @param value
     */
    @JvmName("kvmoiiuajluhxoeh")
    public suspend fun nextRunOffsetMinutes(`value`: Output) {
        this.nextRunOffsetMinutes = value
    }

    /**
     * @param value Start time of the schedule. Must be at least five minutes in the future. Defaults to seven minutes in the future from the time the resource is created.
     */
    @JvmName("rqfpelhtedkxsnul")
    public suspend fun startTime(`value`: Output) {
        this.startTime = value
    }

    /**
     * @param value
     */
    @JvmName("auiyggigpdglhuyx")
    public suspend fun startTimeOffsetMinutes(`value`: Output) {
        this.startTimeOffsetMinutes = value
    }

    /**
     * @param value The timezone of the start time. Defaults to `Etc/UTC`. For possible values see: 
     */
    @JvmName("mieonwtirieyhgqp")
    public suspend fun timeZone(`value`: Output) {
        this.timeZone = value
    }

    /**
     * @param value List of days of the month that the job should execute on. Must be between `1` and `31`. `-1` for last day of the month. Only valid when frequency is `Month`.
     */
    @JvmName("dqxrhtsbhbtxnrti")
    public suspend fun advancedMonthDays(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.advancedMonthDays = mapped
    }

    /**
     * @param values List of days of the month that the job should execute on. Must be between `1` and `31`. `-1` for last day of the month. Only valid when frequency is `Month`.
     */
    @JvmName("dljlvnclrhiorbsu")
    public suspend fun advancedMonthDays(vararg values: Int) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.advancedMonthDays = mapped
    }

    /**
     * @param value List of days of the week that the job should execute on. Only valid when frequency is `Week`. Possible values include `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, and `Sunday`.
     */
    @JvmName("fntfyehwekuyfaxn")
    public suspend fun advancedWeekDays(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.advancedWeekDays = mapped
    }

    /**
     * @param values List of days of the week that the job should execute on. Only valid when frequency is `Week`. Possible values include `Monday`, `Tuesday`, `Wednesday`, `Thursday`, `Friday`, `Saturday`, and `Sunday`.
     */
    @JvmName("pnyxnyhpddlllonq")
    public suspend fun advancedWeekDays(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.advancedWeekDays = mapped
    }

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

    /**
     * @param value A description for this Schedule.
     */
    @JvmName("rhvfdqydxkgrxmef")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The end time of the schedule.
     */
    @JvmName("mpbadnjrypvucgxo")
    public suspend fun expiryTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.expiryTime = mapped
    }

    /**
     * @param value
     */
    @JvmName("gxiikosykrinynuu")
    public suspend fun expiryTimeOffsetMinutes(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.expiryTimeOffsetMinutes = mapped
    }

    /**
     * @param value The frequency of the schedule. - can be either `OneTime`, `Day`, `Hour`, `Week`, or `Month`.
     */
    @JvmName("htdejcvxpmeiaafg")
    public suspend fun frequency(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.frequency = mapped
    }

    /**
     * @param value The number of `frequency`s between runs. Only valid when frequency is `Day`, `Hour`, `Week`, or `Month`.
     */
    @JvmName("nglwvflgpbpxmkvp")
    public suspend fun interval(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.interval = mapped
    }

    /**
     * @param value Whether the schedule is enabled. Defaults to `true`.
     */
    @JvmName("wifukchndrcfgcwc")
    public suspend fun isEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.isEnabled = mapped
    }

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

    /**
     * @param value List of `monthly_occurrence` blocks as defined below to specifies occurrences of days within a month. Only valid when frequency is `Month`. The `monthly_occurrence` block supports fields as defined below.
     */
    @JvmName("bpekuwojqpbanagi")
    public suspend
    fun monthlyOccurrences(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.monthlyOccurrences = mapped
    }

    /**
     * @param argument List of `monthly_occurrence` blocks as defined below to specifies occurrences of days within a month. Only valid when frequency is `Month`. The `monthly_occurrence` block supports fields as defined below.
     */
    @JvmName("ejkwihrpeltiabuf")
    public suspend
    fun monthlyOccurrences(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            SoftwareUpdateConfigurationScheduleMonthlyOccurrenceArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.monthlyOccurrences = mapped
    }

    /**
     * @param argument List of `monthly_occurrence` blocks as defined below to specifies occurrences of days within a month. Only valid when frequency is `Month`. The `monthly_occurrence` block supports fields as defined below.
     */
    @JvmName("jqjnrcgirripqlhy")
    public suspend fun monthlyOccurrences(
        vararg
        argument: suspend SoftwareUpdateConfigurationScheduleMonthlyOccurrenceArgsBuilder.() -> Unit,
    ) {
        val toBeMapped = argument.toList().map {
            SoftwareUpdateConfigurationScheduleMonthlyOccurrenceArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.monthlyOccurrences = mapped
    }

    /**
     * @param argument List of `monthly_occurrence` blocks as defined below to specifies occurrences of days within a month. Only valid when frequency is `Month`. The `monthly_occurrence` block supports fields as defined below.
     */
    @JvmName("wgepmgewfmtefwnv")
    public suspend
    fun monthlyOccurrences(argument: suspend SoftwareUpdateConfigurationScheduleMonthlyOccurrenceArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                SoftwareUpdateConfigurationScheduleMonthlyOccurrenceArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.monthlyOccurrences = mapped
    }

    /**
     * @param values List of `monthly_occurrence` blocks as defined below to specifies occurrences of days within a month. Only valid when frequency is `Month`. The `monthly_occurrence` block supports fields as defined below.
     */
    @JvmName("bqvuchhopeognevm")
    public suspend fun monthlyOccurrences(
        vararg
        values: SoftwareUpdateConfigurationScheduleMonthlyOccurrenceArgs,
    ) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.monthlyOccurrences = mapped
    }

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

    /**
     * @param value
     */
    @JvmName("fgdesxjvuacbnvtl")
    public suspend fun nextRunOffsetMinutes(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.nextRunOffsetMinutes = mapped
    }

    /**
     * @param value Start time of the schedule. Must be at least five minutes in the future. Defaults to seven minutes in the future from the time the resource is created.
     */
    @JvmName("khlikpkimfwmmnbe")
    public suspend fun startTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.startTime = mapped
    }

    /**
     * @param value
     */
    @JvmName("klqrbonvihpetnqq")
    public suspend fun startTimeOffsetMinutes(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.startTimeOffsetMinutes = mapped
    }

    /**
     * @param value The timezone of the start time. Defaults to `Etc/UTC`. For possible values see: 
     */
    @JvmName("twdeuggituhvvibn")
    public suspend fun timeZone(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.timeZone = mapped
    }

    internal fun build(): SoftwareUpdateConfigurationScheduleArgs =
        SoftwareUpdateConfigurationScheduleArgs(
            advancedMonthDays = advancedMonthDays,
            advancedWeekDays = advancedWeekDays,
            creationTime = creationTime,
            description = description,
            expiryTime = expiryTime,
            expiryTimeOffsetMinutes = expiryTimeOffsetMinutes,
            frequency = frequency ?: throw PulumiNullFieldException("frequency"),
            interval = interval,
            isEnabled = isEnabled,
            lastModifiedTime = lastModifiedTime,
            monthlyOccurrences = monthlyOccurrences,
            nextRun = nextRun,
            nextRunOffsetMinutes = nextRunOffsetMinutes,
            startTime = startTime,
            startTimeOffsetMinutes = startTimeOffsetMinutes,
            timeZone = timeZone,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy