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

com.pulumi.azurenative.databox.kotlin.inputs.DataBoxDiskJobDetailsArgs.kt Maven / Gradle / Ivy

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

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

import com.pulumi.azurenative.databox.inputs.DataBoxDiskJobDetailsArgs.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.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

/**
 * DataBox 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 expectedDataSizeInTeraBytes The expected size of the data, which needs to be transferred in this job, in terabytes.
 * @property jobDetailsType Indicates the type of job details.
 * Expected value is 'DataBoxDisk'.
 * @property keyEncryptionKey Details about which key encryption type is being used.
 * @property passkey User entered passkey for DataBox Disk job.
 * @property preferences Preferences for the order.
 * @property preferredDisks User preference on what size disks are needed for the job. The map is from the disk size in TB to the count. Eg. {2,5} means 5 disks of 2 TB size. Key is string but will be checked against an int.
 * @property reverseShippingDetails Optional Reverse Shipping details for order.
 * @property shippingAddress Shipping address of the customer.
 */
public data class DataBoxDiskJobDetailsArgs(
    public val contactDetails: Output,
    public val dataExportDetails: Output>? = null,
    public val dataImportDetails: Output>? = null,
    public val expectedDataSizeInTeraBytes: Output? = null,
    public val jobDetailsType: Output,
    public val keyEncryptionKey: Output? = null,
    public val passkey: Output? = null,
    public val preferences: Output? = null,
    public val preferredDisks: Output>? = null,
    public val reverseShippingDetails: Output? = null,
    public val shippingAddress: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.databox.inputs.DataBoxDiskJobDetailsArgs =
        com.pulumi.azurenative.databox.inputs.DataBoxDiskJobDetailsArgs.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()
                        })
                    })
                }),
            )
            .expectedDataSizeInTeraBytes(expectedDataSizeInTeraBytes?.applyValue({ args0 -> args0 }))
            .jobDetailsType(jobDetailsType.applyValue({ args0 -> args0 }))
            .keyEncryptionKey(keyEncryptionKey?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .passkey(passkey?.applyValue({ args0 -> args0 }))
            .preferences(preferences?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .preferredDisks(
                preferredDisks?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .reverseShippingDetails(
                reverseShippingDetails?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .shippingAddress(
                shippingAddress?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

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

    private var dataExportDetails: Output>? = null

    private var dataImportDetails: Output>? = null

    private var expectedDataSizeInTeraBytes: Output? = null

    private var jobDetailsType: Output? = null

    private var keyEncryptionKey: Output? = null

    private var passkey: Output? = null

    private var preferences: Output? = null

    private var preferredDisks: Output>? = null

    private var reverseShippingDetails: Output? = null

    private var shippingAddress: Output? = null

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

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

    @JvmName("absioiftoyvbgnwk")
    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("bqewgwtqkbhlagep")
    public suspend fun dataExportDetails(values: List>) {
        this.dataExportDetails = Output.all(values)
    }

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

    @JvmName("wlebysuxnitncvpu")
    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("hoivktpahfntqoam")
    public suspend fun dataImportDetails(values: List>) {
        this.dataImportDetails = Output.all(values)
    }

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

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

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

    /**
     * @param value User entered passkey for DataBox Disk job.
     */
    @JvmName("wdxvtsofypehowny")
    public suspend fun passkey(`value`: Output) {
        this.passkey = value
    }

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

    /**
     * @param value User preference on what size disks are needed for the job. The map is from the disk size in TB to the count. Eg. {2,5} means 5 disks of 2 TB size. Key is string but will be checked against an int.
     */
    @JvmName("graggqpmkinpnmhl")
    public suspend fun preferredDisks(`value`: Output>) {
        this.preferredDisks = value
    }

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

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

    /**
     * @param value Contact details for notification and shipping.
     */
    @JvmName("pmtbbomeewfkujjs")
    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("efgvudujgesyevtt")
    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("oipghvixsftdhggq")
    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("hbdkacugxwdrvqtw")
    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("hbbdvydtjkywbxjq")
    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("iynmtodvrnelnsob")
    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("fhqgkekjcaxhgkvf")
    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("bgldagscwtowgoyw")
    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("owbjrldcebbcctqu")
    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("asphxfmrbxgsryls")
    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("snilvecklfvecyml")
    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("gehodsghcpplweos")
    public suspend fun dataImportDetails(vararg values: DataImportDetailsArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.dataImportDetails = mapped
    }

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

    /**
     * @param value Indicates the type of job details.
     * Expected value is 'DataBoxDisk'.
     */
    @JvmName("rbhxgaqpcqqeeddp")
    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("eklildsjhsusfckf")
    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("rsiulcjtoxkgfjuo")
    public suspend fun keyEncryptionKey(argument: suspend KeyEncryptionKeyArgsBuilder.() -> Unit) {
        val toBeMapped = KeyEncryptionKeyArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.keyEncryptionKey = mapped
    }

    /**
     * @param value User entered passkey for DataBox Disk job.
     */
    @JvmName("gbeynfixlehwbfxk")
    public suspend fun passkey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.passkey = mapped
    }

    /**
     * @param value Preferences for the order.
     */
    @JvmName("pgmbnfydyjqcgaaq")
    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("etjxgqkhyixrbrin")
    public suspend fun preferences(argument: suspend PreferencesArgsBuilder.() -> Unit) {
        val toBeMapped = PreferencesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.preferences = mapped
    }

    /**
     * @param value User preference on what size disks are needed for the job. The map is from the disk size in TB to the count. Eg. {2,5} means 5 disks of 2 TB size. Key is string but will be checked against an int.
     */
    @JvmName("hhnnucnfsciarbnh")
    public suspend fun preferredDisks(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.preferredDisks = mapped
    }

    /**
     * @param values User preference on what size disks are needed for the job. The map is from the disk size in TB to the count. Eg. {2,5} means 5 disks of 2 TB size. Key is string but will be checked against an int.
     */
    @JvmName("qkahfceyweprkumh")
    public fun preferredDisks(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.preferredDisks = mapped
    }

    /**
     * @param value Optional Reverse Shipping details for order.
     */
    @JvmName("ipirbbyxhxnkbakt")
    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("majddftetndlykac")
    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("joqeqtsgcvexqxtt")
    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("weqeworbtnyefwpb")
    public suspend fun shippingAddress(argument: suspend ShippingAddressArgsBuilder.() -> Unit) {
        val toBeMapped = ShippingAddressArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.shippingAddress = mapped
    }

    internal fun build(): DataBoxDiskJobDetailsArgs = DataBoxDiskJobDetailsArgs(
        contactDetails = contactDetails ?: throw PulumiNullFieldException("contactDetails"),
        dataExportDetails = dataExportDetails,
        dataImportDetails = dataImportDetails,
        expectedDataSizeInTeraBytes = expectedDataSizeInTeraBytes,
        jobDetailsType = jobDetailsType ?: throw PulumiNullFieldException("jobDetailsType"),
        keyEncryptionKey = keyEncryptionKey,
        passkey = passkey,
        preferences = preferences,
        preferredDisks = preferredDisks,
        reverseShippingDetails = reverseShippingDetails,
        shippingAddress = shippingAddress,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy