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

com.pulumi.gcp.storage.kotlin.inputs.TransferJobScheduleArgs.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: 8.10.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.storage.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.storage.inputs.TransferJobScheduleArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property repeatInterval Interval between the start of each scheduled transfer. If unspecified, the default value is 24 hours. This value may not be less than 1 hour. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
 * @property scheduleEndDate The last day the recurring transfer will be run. If `schedule_end_date` is the same as `schedule_start_date`, the transfer will be executed only once. Structure documented below.
 * @property scheduleStartDate The first day the recurring transfer is scheduled to run. If `schedule_start_date` is in the past, the transfer will run for the first time on the following day. Structure documented below.
 * @property startTimeOfDay The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, recurring and one-time transfers that are scheduled to run today will run immediately; recurring transfers that are scheduled to run on a future date will start at approximately midnight UTC on that date. Note that when configuring a transfer with the Cloud Platform Console, the transfer's start time in a day is specified in your local timezone. Structure documented below.
 */
public data class TransferJobScheduleArgs(
    public val repeatInterval: Output? = null,
    public val scheduleEndDate: Output? = null,
    public val scheduleStartDate: Output,
    public val startTimeOfDay: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.storage.inputs.TransferJobScheduleArgs =
        com.pulumi.gcp.storage.inputs.TransferJobScheduleArgs.builder()
            .repeatInterval(repeatInterval?.applyValue({ args0 -> args0 }))
            .scheduleEndDate(scheduleEndDate?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .scheduleStartDate(scheduleStartDate.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .startTimeOfDay(
                startTimeOfDay?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [TransferJobScheduleArgs].
 */
@PulumiTagMarker
public class TransferJobScheduleArgsBuilder internal constructor() {
    private var repeatInterval: Output? = null

    private var scheduleEndDate: Output? = null

    private var scheduleStartDate: Output? = null

    private var startTimeOfDay: Output? = null

    /**
     * @param value Interval between the start of each scheduled transfer. If unspecified, the default value is 24 hours. This value may not be less than 1 hour. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
     */
    @JvmName("gmosupmwgsnhqtgo")
    public suspend fun repeatInterval(`value`: Output) {
        this.repeatInterval = value
    }

    /**
     * @param value The last day the recurring transfer will be run. If `schedule_end_date` is the same as `schedule_start_date`, the transfer will be executed only once. Structure documented below.
     */
    @JvmName("uwnmbxjtoupsfwhv")
    public suspend fun scheduleEndDate(`value`: Output) {
        this.scheduleEndDate = value
    }

    /**
     * @param value The first day the recurring transfer is scheduled to run. If `schedule_start_date` is in the past, the transfer will run for the first time on the following day. Structure documented below.
     */
    @JvmName("itnsidemufdilsyv")
    public suspend fun scheduleStartDate(`value`: Output) {
        this.scheduleStartDate = value
    }

    /**
     * @param value The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, recurring and one-time transfers that are scheduled to run today will run immediately; recurring transfers that are scheduled to run on a future date will start at approximately midnight UTC on that date. Note that when configuring a transfer with the Cloud Platform Console, the transfer's start time in a day is specified in your local timezone. Structure documented below.
     */
    @JvmName("dcuyryobtjvgulok")
    public suspend fun startTimeOfDay(`value`: Output) {
        this.startTimeOfDay = value
    }

    /**
     * @param value Interval between the start of each scheduled transfer. If unspecified, the default value is 24 hours. This value may not be less than 1 hour. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
     */
    @JvmName("ijcnnujaksevgfqq")
    public suspend fun repeatInterval(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.repeatInterval = mapped
    }

    /**
     * @param value The last day the recurring transfer will be run. If `schedule_end_date` is the same as `schedule_start_date`, the transfer will be executed only once. Structure documented below.
     */
    @JvmName("neouigguexrnremu")
    public suspend fun scheduleEndDate(`value`: TransferJobScheduleScheduleEndDateArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scheduleEndDate = mapped
    }

    /**
     * @param argument The last day the recurring transfer will be run. If `schedule_end_date` is the same as `schedule_start_date`, the transfer will be executed only once. Structure documented below.
     */
    @JvmName("glrpvruvcnorgsso")
    public suspend fun scheduleEndDate(argument: suspend TransferJobScheduleScheduleEndDateArgsBuilder.() -> Unit) {
        val toBeMapped = TransferJobScheduleScheduleEndDateArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.scheduleEndDate = mapped
    }

    /**
     * @param value The first day the recurring transfer is scheduled to run. If `schedule_start_date` is in the past, the transfer will run for the first time on the following day. Structure documented below.
     */
    @JvmName("padbdkqsqoxcqyyv")
    public suspend fun scheduleStartDate(`value`: TransferJobScheduleScheduleStartDateArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.scheduleStartDate = mapped
    }

    /**
     * @param argument The first day the recurring transfer is scheduled to run. If `schedule_start_date` is in the past, the transfer will run for the first time on the following day. Structure documented below.
     */
    @JvmName("vdgaitmmgoosgpxy")
    public suspend fun scheduleStartDate(argument: suspend TransferJobScheduleScheduleStartDateArgsBuilder.() -> Unit) {
        val toBeMapped = TransferJobScheduleScheduleStartDateArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.scheduleStartDate = mapped
    }

    /**
     * @param value The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, recurring and one-time transfers that are scheduled to run today will run immediately; recurring transfers that are scheduled to run on a future date will start at approximately midnight UTC on that date. Note that when configuring a transfer with the Cloud Platform Console, the transfer's start time in a day is specified in your local timezone. Structure documented below.
     */
    @JvmName("igpmirewlbdrsnbi")
    public suspend fun startTimeOfDay(`value`: TransferJobScheduleStartTimeOfDayArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.startTimeOfDay = mapped
    }

    /**
     * @param argument The time in UTC at which the transfer will be scheduled to start in a day. Transfers may start later than this time. If not specified, recurring and one-time transfers that are scheduled to run today will run immediately; recurring transfers that are scheduled to run on a future date will start at approximately midnight UTC on that date. Note that when configuring a transfer with the Cloud Platform Console, the transfer's start time in a day is specified in your local timezone. Structure documented below.
     */
    @JvmName("nrhjqaiexnpldccy")
    public suspend fun startTimeOfDay(argument: suspend TransferJobScheduleStartTimeOfDayArgsBuilder.() -> Unit) {
        val toBeMapped = TransferJobScheduleStartTimeOfDayArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.startTimeOfDay = mapped
    }

    internal fun build(): TransferJobScheduleArgs = TransferJobScheduleArgs(
        repeatInterval = repeatInterval,
        scheduleEndDate = scheduleEndDate,
        scheduleStartDate = scheduleStartDate ?: throw PulumiNullFieldException("scheduleStartDate"),
        startTimeOfDay = startTimeOfDay,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy