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

com.pulumi.azurenative.devices.kotlin.inputs.RoutingStorageContainerPropertiesArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.azurenative.devices.kotlin.inputs

import com.pulumi.azurenative.devices.inputs.RoutingStorageContainerPropertiesArgs.builder
import com.pulumi.azurenative.devices.kotlin.enums.AuthenticationType
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.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 * The properties related to a storage container endpoint.
 * @property authenticationType Method used to authenticate against the storage endpoint
 * @property batchFrequencyInSeconds Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds.
 * @property connectionString The connection string of the storage account.
 * @property containerName The name of storage container in the storage account.
 * @property encoding Encoding that is used to serialize messages to blobs. Supported values are 'avro', 'avrodeflate', and 'JSON'. Default value is 'avro'.
 * @property endpointUri The url of the storage endpoint. It must include the protocol https://
 * @property fileNameFormat File name format for the blob. Default format is {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}. All parameters are mandatory but can be reordered.
 * @property id Id of the storage container endpoint
 * @property identity Managed identity properties of routing storage endpoint.
 * @property maxChunkSizeInBytes Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB).
 * @property name The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved:  events, fileNotifications, $default. Endpoint names must be unique across endpoint types.
 * @property resourceGroup The name of the resource group of the storage account.
 * @property subscriptionId The subscription identifier of the storage account.
 */
public data class RoutingStorageContainerPropertiesArgs(
    public val authenticationType: Output>? = null,
    public val batchFrequencyInSeconds: Output? = null,
    public val connectionString: Output? = null,
    public val containerName: Output,
    public val encoding: Output? = null,
    public val endpointUri: Output? = null,
    public val fileNameFormat: Output? = null,
    public val id: Output? = null,
    public val identity: Output? = null,
    public val maxChunkSizeInBytes: Output? = null,
    public val name: Output,
    public val resourceGroup: Output? = null,
    public val subscriptionId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azurenative.devices.inputs.RoutingStorageContainerPropertiesArgs = com.pulumi.azurenative.devices.inputs.RoutingStorageContainerPropertiesArgs.builder()
        .authenticationType(
            authenticationType?.applyValue({ args0 ->
                args0.transform(
                    { args0 -> args0 },
                    { args0 -> args0.let({ args0 -> args0.toJava() }) },
                )
            }),
        )
        .batchFrequencyInSeconds(batchFrequencyInSeconds?.applyValue({ args0 -> args0 }))
        .connectionString(connectionString?.applyValue({ args0 -> args0 }))
        .containerName(containerName.applyValue({ args0 -> args0 }))
        .encoding(encoding?.applyValue({ args0 -> args0 }))
        .endpointUri(endpointUri?.applyValue({ args0 -> args0 }))
        .fileNameFormat(fileNameFormat?.applyValue({ args0 -> args0 }))
        .id(id?.applyValue({ args0 -> args0 }))
        .identity(identity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .maxChunkSizeInBytes(maxChunkSizeInBytes?.applyValue({ args0 -> args0 }))
        .name(name.applyValue({ args0 -> args0 }))
        .resourceGroup(resourceGroup?.applyValue({ args0 -> args0 }))
        .subscriptionId(subscriptionId?.applyValue({ args0 -> args0 })).build()
}

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

    private var batchFrequencyInSeconds: Output? = null

    private var connectionString: Output? = null

    private var containerName: Output? = null

    private var encoding: Output? = null

    private var endpointUri: Output? = null

    private var fileNameFormat: Output? = null

    private var id: Output? = null

    private var identity: Output? = null

    private var maxChunkSizeInBytes: Output? = null

    private var name: Output? = null

    private var resourceGroup: Output? = null

    private var subscriptionId: Output? = null

    /**
     * @param value Method used to authenticate against the storage endpoint
     */
    @JvmName("dejeuxdxjjfavxos")
    public suspend fun authenticationType(`value`: Output>) {
        this.authenticationType = value
    }

    /**
     * @param value Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds.
     */
    @JvmName("dvidmrrxnnshalma")
    public suspend fun batchFrequencyInSeconds(`value`: Output) {
        this.batchFrequencyInSeconds = value
    }

    /**
     * @param value The connection string of the storage account.
     */
    @JvmName("slrhdvkrlkseycyn")
    public suspend fun connectionString(`value`: Output) {
        this.connectionString = value
    }

    /**
     * @param value The name of storage container in the storage account.
     */
    @JvmName("hrtuqicjapfxeito")
    public suspend fun containerName(`value`: Output) {
        this.containerName = value
    }

    /**
     * @param value Encoding that is used to serialize messages to blobs. Supported values are 'avro', 'avrodeflate', and 'JSON'. Default value is 'avro'.
     */
    @JvmName("twxigcgrtgmlmrni")
    public suspend fun encoding(`value`: Output) {
        this.encoding = value
    }

    /**
     * @param value The url of the storage endpoint. It must include the protocol https://
     */
    @JvmName("eeiyfaqjcnjbfbwd")
    public suspend fun endpointUri(`value`: Output) {
        this.endpointUri = value
    }

    /**
     * @param value File name format for the blob. Default format is {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}. All parameters are mandatory but can be reordered.
     */
    @JvmName("wqbvjenttfonunps")
    public suspend fun fileNameFormat(`value`: Output) {
        this.fileNameFormat = value
    }

    /**
     * @param value Id of the storage container endpoint
     */
    @JvmName("vepliyuaxbieinmv")
    public suspend fun id(`value`: Output) {
        this.id = value
    }

    /**
     * @param value Managed identity properties of routing storage endpoint.
     */
    @JvmName("njqsranyqmhrrkgc")
    public suspend fun identity(`value`: Output) {
        this.identity = value
    }

    /**
     * @param value Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB).
     */
    @JvmName("alpfrtucukujrhfk")
    public suspend fun maxChunkSizeInBytes(`value`: Output) {
        this.maxChunkSizeInBytes = value
    }

    /**
     * @param value The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved:  events, fileNotifications, $default. Endpoint names must be unique across endpoint types.
     */
    @JvmName("ypfnhkcnrdclkkle")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The name of the resource group of the storage account.
     */
    @JvmName("rfxfsjvlygdlnyqn")
    public suspend fun resourceGroup(`value`: Output) {
        this.resourceGroup = value
    }

    /**
     * @param value The subscription identifier of the storage account.
     */
    @JvmName("igvnwxhiauajbrsb")
    public suspend fun subscriptionId(`value`: Output) {
        this.subscriptionId = value
    }

    /**
     * @param value Method used to authenticate against the storage endpoint
     */
    @JvmName("wdjnxmkumkruxxrr")
    public suspend fun authenticationType(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value Method used to authenticate against the storage endpoint
     */
    @JvmName("fdctdqmmswyospne")
    public fun authenticationType(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value Method used to authenticate against the storage endpoint
     */
    @JvmName("phyakppreswayytp")
    public fun authenticationType(`value`: AuthenticationType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.authenticationType = mapped
    }

    /**
     * @param value Time interval at which blobs are written to storage. Value should be between 60 and 720 seconds. Default value is 300 seconds.
     */
    @JvmName("taefskivgyxirbfb")
    public suspend fun batchFrequencyInSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.batchFrequencyInSeconds = mapped
    }

    /**
     * @param value The connection string of the storage account.
     */
    @JvmName("hmcjjjnqrflhnriy")
    public suspend fun connectionString(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.connectionString = mapped
    }

    /**
     * @param value The name of storage container in the storage account.
     */
    @JvmName("fjobpempqdendjxb")
    public suspend fun containerName(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.containerName = mapped
    }

    /**
     * @param value Encoding that is used to serialize messages to blobs. Supported values are 'avro', 'avrodeflate', and 'JSON'. Default value is 'avro'.
     */
    @JvmName("whmlojjqkjchlqen")
    public suspend fun encoding(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.encoding = mapped
    }

    /**
     * @param value The url of the storage endpoint. It must include the protocol https://
     */
    @JvmName("pfjsvuaulmyvlxfx")
    public suspend fun endpointUri(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.endpointUri = mapped
    }

    /**
     * @param value File name format for the blob. Default format is {iothub}/{partition}/{YYYY}/{MM}/{DD}/{HH}/{mm}. All parameters are mandatory but can be reordered.
     */
    @JvmName("tnwckrncrybigxyi")
    public suspend fun fileNameFormat(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fileNameFormat = mapped
    }

    /**
     * @param value Id of the storage container endpoint
     */
    @JvmName("mstmggghtytwuere")
    public suspend fun id(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.id = mapped
    }

    /**
     * @param value Managed identity properties of routing storage endpoint.
     */
    @JvmName("apfogauqqlijlbks")
    public suspend fun identity(`value`: ManagedIdentityArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identity = mapped
    }

    /**
     * @param argument Managed identity properties of routing storage endpoint.
     */
    @JvmName("jyqgrtefvnhowpog")
    public suspend fun identity(argument: suspend ManagedIdentityArgsBuilder.() -> Unit) {
        val toBeMapped = ManagedIdentityArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.identity = mapped
    }

    /**
     * @param value Maximum number of bytes for each blob written to storage. Value should be between 10485760(10MB) and 524288000(500MB). Default value is 314572800(300MB).
     */
    @JvmName("osharctjjupvsrym")
    public suspend fun maxChunkSizeInBytes(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxChunkSizeInBytes = mapped
    }

    /**
     * @param value The name that identifies this endpoint. The name can only include alphanumeric characters, periods, underscores, hyphens and has a maximum length of 64 characters. The following names are reserved:  events, fileNotifications, $default. Endpoint names must be unique across endpoint types.
     */
    @JvmName("xwvuowcionsomptt")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The name of the resource group of the storage account.
     */
    @JvmName("gbmrfkpxcdvioeeh")
    public suspend fun resourceGroup(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceGroup = mapped
    }

    /**
     * @param value The subscription identifier of the storage account.
     */
    @JvmName("bbfvxpwiwnbybnpj")
    public suspend fun subscriptionId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subscriptionId = mapped
    }

    internal fun build(): RoutingStorageContainerPropertiesArgs =
        RoutingStorageContainerPropertiesArgs(
            authenticationType = authenticationType,
            batchFrequencyInSeconds = batchFrequencyInSeconds,
            connectionString = connectionString,
            containerName = containerName ?: throw PulumiNullFieldException("containerName"),
            encoding = encoding,
            endpointUri = endpointUri,
            fileNameFormat = fileNameFormat,
            id = id,
            identity = identity,
            maxChunkSizeInBytes = maxChunkSizeInBytes,
            name = name ?: throw PulumiNullFieldException("name"),
            resourceGroup = resourceGroup,
            subscriptionId = subscriptionId,
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy