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

com.pulumi.azurenative.recoveryservices.kotlin.inputs.MabFileFolderProtectedItemArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.recoveryservices.kotlin.inputs

import com.pulumi.azurenative.recoveryservices.inputs.MabFileFolderProtectedItemArgs.builder
import com.pulumi.azurenative.recoveryservices.kotlin.enums.CreateMode
import com.pulumi.core.Either
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

/**
 * MAB workload-specific backup item.
 * @property backupSetName Name of the backup set the backup item belongs to
 * @property computerName Name of the computer associated with this backup item.
 * @property containerName Unique name of container
 * @property createMode Create mode to indicate recovery of existing soft deleted data source or creation of new data source.
 * @property deferredDeleteSyncTimeInUTC Sync time for deferred deletion in UTC
 * @property deferredDeleteTimeInUTC Time for deferred deletion in UTC
 * @property deferredDeleteTimeRemaining Time remaining before the DS marked for deferred delete is permanently deleted
 * @property extendedInfo Additional information with this backup item.
 * @property friendlyName Friendly name of this backup item.
 * @property isArchiveEnabled Flag to identify whether datasource is protected in archive
 * @property isDeferredDeleteScheduleUpcoming Flag to identify whether the deferred deleted DS is to be purged soon
 * @property isRehydrate Flag to identify that deferred deleted DS is to be moved into Pause state
 * @property isScheduledForDeferredDelete Flag to identify whether the DS is scheduled for deferred delete
 * @property lastBackupStatus Status of last backup operation.
 * @property lastBackupTime Timestamp of the last backup operation on this backup item.
 * @property lastRecoveryPoint Timestamp when the last (latest) backup copy was created for this backup item.
 * @property policyId ID of the backup policy with which this item is backed up.
 * @property policyName Name of the policy used for protection
 * @property protectedItemType backup item type.
 * Expected value is 'MabFileFolderProtectedItem'.
 * @property protectionState Protected, ProtectionStopped, IRPending or ProtectionError
 * @property resourceGuardOperationRequests ResourceGuardOperationRequests on which LAC check will be performed
 * @property softDeleteRetentionPeriodInDays Soft delete retention period in days
 * @property sourceResourceId ARM ID of the resource to be backed up.
 */
public data class MabFileFolderProtectedItemArgs(
    public val backupSetName: Output? = null,
    public val computerName: Output? = null,
    public val containerName: Output? = null,
    public val createMode: Output>? = null,
    public val deferredDeleteSyncTimeInUTC: Output? = null,
    public val deferredDeleteTimeInUTC: Output? = null,
    public val deferredDeleteTimeRemaining: Output? = null,
    public val extendedInfo: Output? = null,
    public val friendlyName: Output? = null,
    public val isArchiveEnabled: Output? = null,
    public val isDeferredDeleteScheduleUpcoming: Output? = null,
    public val isRehydrate: Output? = null,
    public val isScheduledForDeferredDelete: Output? = null,
    public val lastBackupStatus: Output? = null,
    public val lastBackupTime: Output? = null,
    public val lastRecoveryPoint: Output? = null,
    public val policyId: Output? = null,
    public val policyName: Output? = null,
    public val protectedItemType: Output,
    public val protectionState: Output? = null,
    public val resourceGuardOperationRequests: Output>? = null,
    public val softDeleteRetentionPeriodInDays: Output? = null,
    public val sourceResourceId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.recoveryservices.inputs.MabFileFolderProtectedItemArgs =
        com.pulumi.azurenative.recoveryservices.inputs.MabFileFolderProtectedItemArgs.builder()
            .backupSetName(backupSetName?.applyValue({ args0 -> args0 }))
            .computerName(computerName?.applyValue({ args0 -> args0 }))
            .containerName(containerName?.applyValue({ args0 -> args0 }))
            .createMode(
                createMode?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .deferredDeleteSyncTimeInUTC(deferredDeleteSyncTimeInUTC?.applyValue({ args0 -> args0 }))
            .deferredDeleteTimeInUTC(deferredDeleteTimeInUTC?.applyValue({ args0 -> args0 }))
            .deferredDeleteTimeRemaining(deferredDeleteTimeRemaining?.applyValue({ args0 -> args0 }))
            .extendedInfo(extendedInfo?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .friendlyName(friendlyName?.applyValue({ args0 -> args0 }))
            .isArchiveEnabled(isArchiveEnabled?.applyValue({ args0 -> args0 }))
            .isDeferredDeleteScheduleUpcoming(isDeferredDeleteScheduleUpcoming?.applyValue({ args0 -> args0 }))
            .isRehydrate(isRehydrate?.applyValue({ args0 -> args0 }))
            .isScheduledForDeferredDelete(isScheduledForDeferredDelete?.applyValue({ args0 -> args0 }))
            .lastBackupStatus(lastBackupStatus?.applyValue({ args0 -> args0 }))
            .lastBackupTime(lastBackupTime?.applyValue({ args0 -> args0 }))
            .lastRecoveryPoint(lastRecoveryPoint?.applyValue({ args0 -> args0 }))
            .policyId(policyId?.applyValue({ args0 -> args0 }))
            .policyName(policyName?.applyValue({ args0 -> args0 }))
            .protectedItemType(protectedItemType.applyValue({ args0 -> args0 }))
            .protectionState(protectionState?.applyValue({ args0 -> args0 }))
            .resourceGuardOperationRequests(
                resourceGuardOperationRequests?.applyValue({ args0 ->
                    args0.map({ args0 -> args0 })
                }),
            )
            .softDeleteRetentionPeriodInDays(softDeleteRetentionPeriodInDays?.applyValue({ args0 -> args0 }))
            .sourceResourceId(sourceResourceId?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [MabFileFolderProtectedItemArgs].
 */
@PulumiTagMarker
public class MabFileFolderProtectedItemArgsBuilder internal constructor() {
    private var backupSetName: Output? = null

    private var computerName: Output? = null

    private var containerName: Output? = null

    private var createMode: Output>? = null

    private var deferredDeleteSyncTimeInUTC: Output? = null

    private var deferredDeleteTimeInUTC: Output? = null

    private var deferredDeleteTimeRemaining: Output? = null

    private var extendedInfo: Output? = null

    private var friendlyName: Output? = null

    private var isArchiveEnabled: Output? = null

    private var isDeferredDeleteScheduleUpcoming: Output? = null

    private var isRehydrate: Output? = null

    private var isScheduledForDeferredDelete: Output? = null

    private var lastBackupStatus: Output? = null

    private var lastBackupTime: Output? = null

    private var lastRecoveryPoint: Output? = null

    private var policyId: Output? = null

    private var policyName: Output? = null

    private var protectedItemType: Output? = null

    private var protectionState: Output? = null

    private var resourceGuardOperationRequests: Output>? = null

    private var softDeleteRetentionPeriodInDays: Output? = null

    private var sourceResourceId: Output? = null

    /**
     * @param value Name of the backup set the backup item belongs to
     */
    @JvmName("lsfvrviatcxeribi")
    public suspend fun backupSetName(`value`: Output) {
        this.backupSetName = value
    }

    /**
     * @param value Name of the computer associated with this backup item.
     */
    @JvmName("wwvoalxcqphbskvc")
    public suspend fun computerName(`value`: Output) {
        this.computerName = value
    }

    /**
     * @param value Unique name of container
     */
    @JvmName("lwrkmvnqrhhikrok")
    public suspend fun containerName(`value`: Output) {
        this.containerName = value
    }

    /**
     * @param value Create mode to indicate recovery of existing soft deleted data source or creation of new data source.
     */
    @JvmName("wbpnjwargrqakvqn")
    public suspend fun createMode(`value`: Output>) {
        this.createMode = value
    }

    /**
     * @param value Sync time for deferred deletion in UTC
     */
    @JvmName("mybyntmrqxvtwtug")
    public suspend fun deferredDeleteSyncTimeInUTC(`value`: Output) {
        this.deferredDeleteSyncTimeInUTC = value
    }

    /**
     * @param value Time for deferred deletion in UTC
     */
    @JvmName("vdrmrafggwwmwgsi")
    public suspend fun deferredDeleteTimeInUTC(`value`: Output) {
        this.deferredDeleteTimeInUTC = value
    }

    /**
     * @param value Time remaining before the DS marked for deferred delete is permanently deleted
     */
    @JvmName("xdctuxbysffpdykq")
    public suspend fun deferredDeleteTimeRemaining(`value`: Output) {
        this.deferredDeleteTimeRemaining = value
    }

    /**
     * @param value Additional information with this backup item.
     */
    @JvmName("lfhntqdrxjttqhss")
    public suspend fun extendedInfo(`value`: Output) {
        this.extendedInfo = value
    }

    /**
     * @param value Friendly name of this backup item.
     */
    @JvmName("rduvsosrbcqajcpt")
    public suspend fun friendlyName(`value`: Output) {
        this.friendlyName = value
    }

    /**
     * @param value Flag to identify whether datasource is protected in archive
     */
    @JvmName("iavdfwuvxmsrsksq")
    public suspend fun isArchiveEnabled(`value`: Output) {
        this.isArchiveEnabled = value
    }

    /**
     * @param value Flag to identify whether the deferred deleted DS is to be purged soon
     */
    @JvmName("oumurjivhkwdhxrd")
    public suspend fun isDeferredDeleteScheduleUpcoming(`value`: Output) {
        this.isDeferredDeleteScheduleUpcoming = value
    }

    /**
     * @param value Flag to identify that deferred deleted DS is to be moved into Pause state
     */
    @JvmName("vsfsvodnpireeddd")
    public suspend fun isRehydrate(`value`: Output) {
        this.isRehydrate = value
    }

    /**
     * @param value Flag to identify whether the DS is scheduled for deferred delete
     */
    @JvmName("wqigliuwpdfvirxs")
    public suspend fun isScheduledForDeferredDelete(`value`: Output) {
        this.isScheduledForDeferredDelete = value
    }

    /**
     * @param value Status of last backup operation.
     */
    @JvmName("mvrtgohledemqpse")
    public suspend fun lastBackupStatus(`value`: Output) {
        this.lastBackupStatus = value
    }

    /**
     * @param value Timestamp of the last backup operation on this backup item.
     */
    @JvmName("iavytdsfwyimcnku")
    public suspend fun lastBackupTime(`value`: Output) {
        this.lastBackupTime = value
    }

    /**
     * @param value Timestamp when the last (latest) backup copy was created for this backup item.
     */
    @JvmName("qkhcshpjfqpnwcpv")
    public suspend fun lastRecoveryPoint(`value`: Output) {
        this.lastRecoveryPoint = value
    }

    /**
     * @param value ID of the backup policy with which this item is backed up.
     */
    @JvmName("tvcapdsviwgkqtdg")
    public suspend fun policyId(`value`: Output) {
        this.policyId = value
    }

    /**
     * @param value Name of the policy used for protection
     */
    @JvmName("luvkucgntgiwgoqh")
    public suspend fun policyName(`value`: Output) {
        this.policyName = value
    }

    /**
     * @param value backup item type.
     * Expected value is 'MabFileFolderProtectedItem'.
     */
    @JvmName("dvaowylnpteoxpux")
    public suspend fun protectedItemType(`value`: Output) {
        this.protectedItemType = value
    }

    /**
     * @param value Protected, ProtectionStopped, IRPending or ProtectionError
     */
    @JvmName("qmbaipedhunsrmpt")
    public suspend fun protectionState(`value`: Output) {
        this.protectionState = value
    }

    /**
     * @param value ResourceGuardOperationRequests on which LAC check will be performed
     */
    @JvmName("ewrchkencbbwmohp")
    public suspend fun resourceGuardOperationRequests(`value`: Output>) {
        this.resourceGuardOperationRequests = value
    }

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

    /**
     * @param values ResourceGuardOperationRequests on which LAC check will be performed
     */
    @JvmName("ikrusqqdshbypmmn")
    public suspend fun resourceGuardOperationRequests(values: List>) {
        this.resourceGuardOperationRequests = Output.all(values)
    }

    /**
     * @param value Soft delete retention period in days
     */
    @JvmName("hjtpcdycxdpfuijl")
    public suspend fun softDeleteRetentionPeriodInDays(`value`: Output) {
        this.softDeleteRetentionPeriodInDays = value
    }

    /**
     * @param value ARM ID of the resource to be backed up.
     */
    @JvmName("wfqkecykibthavhn")
    public suspend fun sourceResourceId(`value`: Output) {
        this.sourceResourceId = value
    }

    /**
     * @param value Name of the backup set the backup item belongs to
     */
    @JvmName("wwjuqgurvdjxflwy")
    public suspend fun backupSetName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.backupSetName = mapped
    }

    /**
     * @param value Name of the computer associated with this backup item.
     */
    @JvmName("agkmrlcssaauxnpk")
    public suspend fun computerName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.computerName = mapped
    }

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

    /**
     * @param value Create mode to indicate recovery of existing soft deleted data source or creation of new data source.
     */
    @JvmName("fxdmickpiapdsnia")
    public suspend fun createMode(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.createMode = mapped
    }

    /**
     * @param value Create mode to indicate recovery of existing soft deleted data source or creation of new data source.
     */
    @JvmName("wwxcnaamokmkuend")
    public fun createMode(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.createMode = mapped
    }

    /**
     * @param value Create mode to indicate recovery of existing soft deleted data source or creation of new data source.
     */
    @JvmName("siqkaxyxkwwvrubp")
    public fun createMode(`value`: CreateMode) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.createMode = mapped
    }

    /**
     * @param value Sync time for deferred deletion in UTC
     */
    @JvmName("rwtebaiougipdlhk")
    public suspend fun deferredDeleteSyncTimeInUTC(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.deferredDeleteSyncTimeInUTC = mapped
    }

    /**
     * @param value Time for deferred deletion in UTC
     */
    @JvmName("kuvyfnmymdgvoxlh")
    public suspend fun deferredDeleteTimeInUTC(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.deferredDeleteTimeInUTC = mapped
    }

    /**
     * @param value Time remaining before the DS marked for deferred delete is permanently deleted
     */
    @JvmName("ihwkjybasksebyhj")
    public suspend fun deferredDeleteTimeRemaining(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.deferredDeleteTimeRemaining = mapped
    }

    /**
     * @param value Additional information with this backup item.
     */
    @JvmName("deitheolhtgvwjis")
    public suspend fun extendedInfo(`value`: MabFileFolderProtectedItemExtendedInfoArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.extendedInfo = mapped
    }

    /**
     * @param argument Additional information with this backup item.
     */
    @JvmName("pcnfidccopwvgana")
    public suspend fun extendedInfo(argument: suspend MabFileFolderProtectedItemExtendedInfoArgsBuilder.() -> Unit) {
        val toBeMapped = MabFileFolderProtectedItemExtendedInfoArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.extendedInfo = mapped
    }

    /**
     * @param value Friendly name of this backup item.
     */
    @JvmName("rafaqorxcjmjwoab")
    public suspend fun friendlyName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.friendlyName = mapped
    }

    /**
     * @param value Flag to identify whether datasource is protected in archive
     */
    @JvmName("dxqkxtrdxgkrospx")
    public suspend fun isArchiveEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.isArchiveEnabled = mapped
    }

    /**
     * @param value Flag to identify whether the deferred deleted DS is to be purged soon
     */
    @JvmName("ocbalfsobdtihxki")
    public suspend fun isDeferredDeleteScheduleUpcoming(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.isDeferredDeleteScheduleUpcoming = mapped
    }

    /**
     * @param value Flag to identify that deferred deleted DS is to be moved into Pause state
     */
    @JvmName("kvarjsretikiqykw")
    public suspend fun isRehydrate(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.isRehydrate = mapped
    }

    /**
     * @param value Flag to identify whether the DS is scheduled for deferred delete
     */
    @JvmName("brygwrotdlhydilg")
    public suspend fun isScheduledForDeferredDelete(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.isScheduledForDeferredDelete = mapped
    }

    /**
     * @param value Status of last backup operation.
     */
    @JvmName("wsmiiwlhlfuggnwy")
    public suspend fun lastBackupStatus(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.lastBackupStatus = mapped
    }

    /**
     * @param value Timestamp of the last backup operation on this backup item.
     */
    @JvmName("tgdxugwjlscoqpgp")
    public suspend fun lastBackupTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.lastBackupTime = mapped
    }

    /**
     * @param value Timestamp when the last (latest) backup copy was created for this backup item.
     */
    @JvmName("rawhwrvcgcabnyxd")
    public suspend fun lastRecoveryPoint(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.lastRecoveryPoint = mapped
    }

    /**
     * @param value ID of the backup policy with which this item is backed up.
     */
    @JvmName("tkwqxdwrxhvapyej")
    public suspend fun policyId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.policyId = mapped
    }

    /**
     * @param value Name of the policy used for protection
     */
    @JvmName("osydephiyxbjruwe")
    public suspend fun policyName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.policyName = mapped
    }

    /**
     * @param value backup item type.
     * Expected value is 'MabFileFolderProtectedItem'.
     */
    @JvmName("vgpfldilwpfxqpfr")
    public suspend fun protectedItemType(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.protectedItemType = mapped
    }

    /**
     * @param value Protected, ProtectionStopped, IRPending or ProtectionError
     */
    @JvmName("iuiwwmrwyfsnsjmi")
    public suspend fun protectionState(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.protectionState = mapped
    }

    /**
     * @param value ResourceGuardOperationRequests on which LAC check will be performed
     */
    @JvmName("tadaxeqywbmlqrqb")
    public suspend fun resourceGuardOperationRequests(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGuardOperationRequests = mapped
    }

    /**
     * @param values ResourceGuardOperationRequests on which LAC check will be performed
     */
    @JvmName("fmncifrpjhpmrdpc")
    public suspend fun resourceGuardOperationRequests(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.resourceGuardOperationRequests = mapped
    }

    /**
     * @param value Soft delete retention period in days
     */
    @JvmName("atugvwqvqaabphkt")
    public suspend fun softDeleteRetentionPeriodInDays(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.softDeleteRetentionPeriodInDays = mapped
    }

    /**
     * @param value ARM ID of the resource to be backed up.
     */
    @JvmName("ikddtpbxenwhkvfq")
    public suspend fun sourceResourceId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceResourceId = mapped
    }

    internal fun build(): MabFileFolderProtectedItemArgs = MabFileFolderProtectedItemArgs(
        backupSetName = backupSetName,
        computerName = computerName,
        containerName = containerName,
        createMode = createMode,
        deferredDeleteSyncTimeInUTC = deferredDeleteSyncTimeInUTC,
        deferredDeleteTimeInUTC = deferredDeleteTimeInUTC,
        deferredDeleteTimeRemaining = deferredDeleteTimeRemaining,
        extendedInfo = extendedInfo,
        friendlyName = friendlyName,
        isArchiveEnabled = isArchiveEnabled,
        isDeferredDeleteScheduleUpcoming = isDeferredDeleteScheduleUpcoming,
        isRehydrate = isRehydrate,
        isScheduledForDeferredDelete = isScheduledForDeferredDelete,
        lastBackupStatus = lastBackupStatus,
        lastBackupTime = lastBackupTime,
        lastRecoveryPoint = lastRecoveryPoint,
        policyId = policyId,
        policyName = policyName,
        protectedItemType = protectedItemType ?: throw PulumiNullFieldException("protectedItemType"),
        protectionState = protectionState,
        resourceGuardOperationRequests = resourceGuardOperationRequests,
        softDeleteRetentionPeriodInDays = softDeleteRetentionPeriodInDays,
        sourceResourceId = sourceResourceId,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy