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

com.pulumi.azurenative.databox.kotlin.inputs.DataBoxCustomerDiskJobDetailsArgs.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: 2.82.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azurenative.databox.kotlin.inputs

import com.pulumi.azurenative.databox.inputs.DataBoxCustomerDiskJobDetailsArgs.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.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Customer disk job details.
 * @property contactDetails Contact details for notification and shipping.
 * @property dataExportDetails Details of the data to be exported from azure.
 * @property dataImportDetails Details of the data to be imported into azure.
 * @property enableManifestBackup Flag to indicate if disk manifest should be backed-up in the Storage Account.
 * @property expectedDataSizeInTeraBytes The expected size of the data, which needs to be transferred in this job, in terabytes.
 * @property importDiskDetailsCollection Contains the map of disk serial number to the disk details for import jobs.
 * @property jobDetailsType Indicates the type of job details.
 * Expected value is 'DataBoxCustomerDisk'.
 * @property keyEncryptionKey Details about which key encryption type is being used.
 * @property preferences Preferences for the order.
 * @property returnToCustomerPackageDetails Return package shipping details.
 * @property reverseShippingDetails Optional Reverse Shipping details for order.
 * @property shippingAddress Shipping address of the customer.
 */
public data class DataBoxCustomerDiskJobDetailsArgs(
    public val contactDetails: Output,
    public val dataExportDetails: Output>? = null,
    public val dataImportDetails: Output>? = null,
    public val enableManifestBackup: Output? = null,
    public val expectedDataSizeInTeraBytes: Output? = null,
    public val importDiskDetailsCollection: Output>? = null,
    public val jobDetailsType: Output,
    public val keyEncryptionKey: Output? = null,
    public val preferences: Output? = null,
    public val returnToCustomerPackageDetails: Output,
    public val reverseShippingDetails: Output? = null,
    public val shippingAddress: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.databox.inputs.DataBoxCustomerDiskJobDetailsArgs =
        com.pulumi.azurenative.databox.inputs.DataBoxCustomerDiskJobDetailsArgs.builder()
            .contactDetails(contactDetails.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .dataExportDetails(
                dataExportDetails?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .dataImportDetails(
                dataImportDetails?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .enableManifestBackup(enableManifestBackup?.applyValue({ args0 -> args0 }))
            .expectedDataSizeInTeraBytes(expectedDataSizeInTeraBytes?.applyValue({ args0 -> args0 }))
            .importDiskDetailsCollection(
                importDiskDetailsCollection?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value.let({ args0 -> args0.toJava() }))
                    }).toMap()
                }),
            )
            .jobDetailsType(jobDetailsType.applyValue({ args0 -> args0 }))
            .keyEncryptionKey(keyEncryptionKey?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .preferences(preferences?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .returnToCustomerPackageDetails(
                returnToCustomerPackageDetails.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .reverseShippingDetails(
                reverseShippingDetails?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .shippingAddress(
                shippingAddress?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [DataBoxCustomerDiskJobDetailsArgs].
 */
@PulumiTagMarker
public class DataBoxCustomerDiskJobDetailsArgsBuilder internal constructor() {
    private var contactDetails: Output? = null

    private var dataExportDetails: Output>? = null

    private var dataImportDetails: Output>? = null

    private var enableManifestBackup: Output? = null

    private var expectedDataSizeInTeraBytes: Output? = null

    private var importDiskDetailsCollection: Output>? = null

    private var jobDetailsType: Output? = null

    private var keyEncryptionKey: Output? = null

    private var preferences: Output? = null

    private var returnToCustomerPackageDetails: Output? = null

    private var reverseShippingDetails: Output? = null

    private var shippingAddress: Output? = null

    /**
     * @param value Contact details for notification and shipping.
     */
    @JvmName("qssjsoovnikrhufa")
    public suspend fun contactDetails(`value`: Output) {
        this.contactDetails = value
    }

    /**
     * @param value Details of the data to be exported from azure.
     */
    @JvmName("vfilecmjjhsalgwh")
    public suspend fun dataExportDetails(`value`: Output>) {
        this.dataExportDetails = value
    }

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

    /**
     * @param values Details of the data to be exported from azure.
     */
    @JvmName("swbbcvrpsnfdqkwj")
    public suspend fun dataExportDetails(values: List>) {
        this.dataExportDetails = Output.all(values)
    }

    /**
     * @param value Details of the data to be imported into azure.
     */
    @JvmName("vcnmiqtqknucwkge")
    public suspend fun dataImportDetails(`value`: Output>) {
        this.dataImportDetails = value
    }

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

    /**
     * @param values Details of the data to be imported into azure.
     */
    @JvmName("xwvgggxtqyfdnuhm")
    public suspend fun dataImportDetails(values: List>) {
        this.dataImportDetails = Output.all(values)
    }

    /**
     * @param value Flag to indicate if disk manifest should be backed-up in the Storage Account.
     */
    @JvmName("rimpqdebynvfasxt")
    public suspend fun enableManifestBackup(`value`: Output) {
        this.enableManifestBackup = value
    }

    /**
     * @param value The expected size of the data, which needs to be transferred in this job, in terabytes.
     */
    @JvmName("beiqavjrkrugfejc")
    public suspend fun expectedDataSizeInTeraBytes(`value`: Output) {
        this.expectedDataSizeInTeraBytes = value
    }

    /**
     * @param value Contains the map of disk serial number to the disk details for import jobs.
     */
    @JvmName("ynwyatqmfoaligfk")
    public suspend fun importDiskDetailsCollection(`value`: Output>) {
        this.importDiskDetailsCollection = value
    }

    /**
     * @param value Indicates the type of job details.
     * Expected value is 'DataBoxCustomerDisk'.
     */
    @JvmName("ehxolealybmjcqba")
    public suspend fun jobDetailsType(`value`: Output) {
        this.jobDetailsType = value
    }

    /**
     * @param value Details about which key encryption type is being used.
     */
    @JvmName("dmlcutkhjhbknbni")
    public suspend fun keyEncryptionKey(`value`: Output) {
        this.keyEncryptionKey = value
    }

    /**
     * @param value Preferences for the order.
     */
    @JvmName("bdxwwgqbhnuxiviw")
    public suspend fun preferences(`value`: Output) {
        this.preferences = value
    }

    /**
     * @param value Return package shipping details.
     */
    @JvmName("gsqtquimcoqvopoa")
    public suspend fun returnToCustomerPackageDetails(`value`: Output) {
        this.returnToCustomerPackageDetails = value
    }

    /**
     * @param value Optional Reverse Shipping details for order.
     */
    @JvmName("ajcsepdnvuptixec")
    public suspend fun reverseShippingDetails(`value`: Output) {
        this.reverseShippingDetails = value
    }

    /**
     * @param value Shipping address of the customer.
     */
    @JvmName("ydqtmhdxsnmkhsus")
    public suspend fun shippingAddress(`value`: Output) {
        this.shippingAddress = value
    }

    /**
     * @param value Contact details for notification and shipping.
     */
    @JvmName("fbdgnlihoknrhnws")
    public suspend fun contactDetails(`value`: ContactDetailsArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.contactDetails = mapped
    }

    /**
     * @param argument Contact details for notification and shipping.
     */
    @JvmName("yqhutaodentxnfnf")
    public suspend fun contactDetails(argument: suspend ContactDetailsArgsBuilder.() -> Unit) {
        val toBeMapped = ContactDetailsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.contactDetails = mapped
    }

    /**
     * @param value Details of the data to be exported from azure.
     */
    @JvmName("qbwmilxjpoqcfumx")
    public suspend fun dataExportDetails(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataExportDetails = mapped
    }

    /**
     * @param argument Details of the data to be exported from azure.
     */
    @JvmName("omqfjqyedmeivxgq")
    public suspend fun dataExportDetails(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DataExportDetailsArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.dataExportDetails = mapped
    }

    /**
     * @param argument Details of the data to be exported from azure.
     */
    @JvmName("xjfioeincuxxnnwd")
    public suspend fun dataExportDetails(vararg argument: suspend DataExportDetailsArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DataExportDetailsArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.dataExportDetails = mapped
    }

    /**
     * @param argument Details of the data to be exported from azure.
     */
    @JvmName("fnmtqcjfpbthkpfb")
    public suspend fun dataExportDetails(argument: suspend DataExportDetailsArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(DataExportDetailsArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.dataExportDetails = mapped
    }

    /**
     * @param values Details of the data to be exported from azure.
     */
    @JvmName("moiengfoqvyvjlvw")
    public suspend fun dataExportDetails(vararg values: DataExportDetailsArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dataExportDetails = mapped
    }

    /**
     * @param value Details of the data to be imported into azure.
     */
    @JvmName("lnqhtkiiihrkfxsq")
    public suspend fun dataImportDetails(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataImportDetails = mapped
    }

    /**
     * @param argument Details of the data to be imported into azure.
     */
    @JvmName("vyuemjudteapyqeg")
    public suspend fun dataImportDetails(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DataImportDetailsArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.dataImportDetails = mapped
    }

    /**
     * @param argument Details of the data to be imported into azure.
     */
    @JvmName("xvruqavsdklpcnfq")
    public suspend fun dataImportDetails(vararg argument: suspend DataImportDetailsArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DataImportDetailsArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.dataImportDetails = mapped
    }

    /**
     * @param argument Details of the data to be imported into azure.
     */
    @JvmName("ommtbjqwyvbomxpw")
    public suspend fun dataImportDetails(argument: suspend DataImportDetailsArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(DataImportDetailsArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.dataImportDetails = mapped
    }

    /**
     * @param values Details of the data to be imported into azure.
     */
    @JvmName("mfxholgqjncnkogy")
    public suspend fun dataImportDetails(vararg values: DataImportDetailsArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dataImportDetails = mapped
    }

    /**
     * @param value Flag to indicate if disk manifest should be backed-up in the Storage Account.
     */
    @JvmName("rluyrjxvxcttgnri")
    public suspend fun enableManifestBackup(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enableManifestBackup = mapped
    }

    /**
     * @param value The expected size of the data, which needs to be transferred in this job, in terabytes.
     */
    @JvmName("guovficherygmgak")
    public suspend fun expectedDataSizeInTeraBytes(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.expectedDataSizeInTeraBytes = mapped
    }

    /**
     * @param value Contains the map of disk serial number to the disk details for import jobs.
     */
    @JvmName("kxnmooacqdsctksv")
    public suspend fun importDiskDetailsCollection(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.importDiskDetailsCollection = mapped
    }

    /**
     * @param argument Contains the map of disk serial number to the disk details for import jobs.
     */
    @JvmName("xuvyxvcbictyaujy")
    public suspend fun importDiskDetailsCollection(vararg argument: Pair Unit>) {
        val toBeMapped = argument.toList().map { (left, right) ->
            left to
                ImportDiskDetailsArgsBuilder().applySuspend { right() }.build()
        }.toMap()
        val mapped = of(toBeMapped)
        this.importDiskDetailsCollection = mapped
    }

    /**
     * @param values Contains the map of disk serial number to the disk details for import jobs.
     */
    @JvmName("jywiytiqugvlcxyd")
    public fun importDiskDetailsCollection(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.importDiskDetailsCollection = mapped
    }

    /**
     * @param value Indicates the type of job details.
     * Expected value is 'DataBoxCustomerDisk'.
     */
    @JvmName("mvmusqfcolwvcxbd")
    public suspend fun jobDetailsType(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.jobDetailsType = mapped
    }

    /**
     * @param value Details about which key encryption type is being used.
     */
    @JvmName("pjhhodmxlrsmnrwt")
    public suspend fun keyEncryptionKey(`value`: KeyEncryptionKeyArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.keyEncryptionKey = mapped
    }

    /**
     * @param argument Details about which key encryption type is being used.
     */
    @JvmName("wwovergvgsrlpgtf")
    public suspend fun keyEncryptionKey(argument: suspend KeyEncryptionKeyArgsBuilder.() -> Unit) {
        val toBeMapped = KeyEncryptionKeyArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.keyEncryptionKey = mapped
    }

    /**
     * @param value Preferences for the order.
     */
    @JvmName("ebxdxtltbaojkbeh")
    public suspend fun preferences(`value`: PreferencesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.preferences = mapped
    }

    /**
     * @param argument Preferences for the order.
     */
    @JvmName("rsjpjemkrckxnhus")
    public suspend fun preferences(argument: suspend PreferencesArgsBuilder.() -> Unit) {
        val toBeMapped = PreferencesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.preferences = mapped
    }

    /**
     * @param value Return package shipping details.
     */
    @JvmName("siyalfvmfwbhfsha")
    public suspend fun returnToCustomerPackageDetails(`value`: PackageCarrierDetailsArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.returnToCustomerPackageDetails = mapped
    }

    /**
     * @param argument Return package shipping details.
     */
    @JvmName("uxksvjugosapvpbw")
    public suspend fun returnToCustomerPackageDetails(argument: suspend PackageCarrierDetailsArgsBuilder.() -> Unit) {
        val toBeMapped = PackageCarrierDetailsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.returnToCustomerPackageDetails = mapped
    }

    /**
     * @param value Optional Reverse Shipping details for order.
     */
    @JvmName("rgdgmisfqtcquint")
    public suspend fun reverseShippingDetails(`value`: ReverseShippingDetailsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.reverseShippingDetails = mapped
    }

    /**
     * @param argument Optional Reverse Shipping details for order.
     */
    @JvmName("xikgjogiuvfcrkja")
    public suspend fun reverseShippingDetails(argument: suspend ReverseShippingDetailsArgsBuilder.() -> Unit) {
        val toBeMapped = ReverseShippingDetailsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.reverseShippingDetails = mapped
    }

    /**
     * @param value Shipping address of the customer.
     */
    @JvmName("jahslslpophtotgq")
    public suspend fun shippingAddress(`value`: ShippingAddressArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.shippingAddress = mapped
    }

    /**
     * @param argument Shipping address of the customer.
     */
    @JvmName("dcecrtqmhtbtcwhh")
    public suspend fun shippingAddress(argument: suspend ShippingAddressArgsBuilder.() -> Unit) {
        val toBeMapped = ShippingAddressArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.shippingAddress = mapped
    }

    internal fun build(): DataBoxCustomerDiskJobDetailsArgs = DataBoxCustomerDiskJobDetailsArgs(
        contactDetails = contactDetails ?: throw PulumiNullFieldException("contactDetails"),
        dataExportDetails = dataExportDetails,
        dataImportDetails = dataImportDetails,
        enableManifestBackup = enableManifestBackup,
        expectedDataSizeInTeraBytes = expectedDataSizeInTeraBytes,
        importDiskDetailsCollection = importDiskDetailsCollection,
        jobDetailsType = jobDetailsType ?: throw PulumiNullFieldException("jobDetailsType"),
        keyEncryptionKey = keyEncryptionKey,
        preferences = preferences,
        returnToCustomerPackageDetails = returnToCustomerPackageDetails ?: throw
            PulumiNullFieldException("returnToCustomerPackageDetails"),
        reverseShippingDetails = reverseShippingDetails,
        shippingAddress = shippingAddress,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy