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

com.pulumi.digitalocean.kotlin.inputs.DatabaseKafkaTopicConfigArgs.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: 4.35.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.digitalocean.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.digitalocean.inputs.DatabaseKafkaTopicConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Double
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 *
 * @property cleanupPolicy The topic cleanup policy that describes whether messages should be deleted, compacted, or both when retention policies are violated.
 * This may be one of "delete", "compact", or "compact_delete".
 * @property compressionType The topic compression codecs used for a given topic.
 * This may be one of "uncompressed", "gzip", "snappy", "lz4", "producer", "zstd". "uncompressed" indicates that there is no compression and "producer" retains the original compression codec set by the producer.
 * @property deleteRetentionMs The amount of time, in ms, that deleted records are retained.
 * @property fileDeleteDelayMs The amount of time, in ms, to wait before deleting a topic log segment from the filesystem.
 * @property flushMessages The number of messages accumulated on a topic partition before they are flushed to disk.
 * @property flushMs The maximum time, in ms, that a topic is kept in memory before being flushed to disk.
 * @property indexIntervalBytes The interval, in bytes, in which entries are added to the offset index.
 * @property maxCompactionLagMs The maximum time, in ms, that a particular message will remain uncompacted. This will not apply if the `compression_type` is set to "uncompressed" or it is set to `producer` and the producer is not using compression.
 * @property maxMessageBytes The maximum size, in bytes, of a message.
 * @property messageDownConversionEnable Determines whether down-conversion of message formats for consumers is enabled.
 * @property messageFormatVersion The version of the inter-broker protocol that will be used. This may be one of "0.8.0", "0.8.1", "0.8.2", "0.9.0", "0.10.0", "0.10.0-IV0", "0.10.0-IV1", "0.10.1", "0.10.1-IV0", "0.10.1-IV1", "0.10.1-IV2", "0.10.2", "0.10.2-IV0", "0.11.0", "0.11.0-IV0", "0.11.0-IV1", "0.11.0-IV2", "1.0", "1.0-IV0", "1.1", "1.1-IV0", "2.0", "2.0-IV0", "2.0-IV1", "2.1", "2.1-IV0", "2.1-IV1", "2.1-IV2", "2.2", "2.2-IV0", "2.2-IV1", "2.3", "2.3-IV0", "2.3-IV1", "2.4", "2.4-IV0", "2.4-IV1", "2.5", "2.5-IV0", "2.6", "2.6-IV0", "2.7", "2.7-IV0", "2.7-IV1", "2.7-IV2", "2.8", "2.8-IV0", "2.8-IV1", "3.0", "3.0-IV0", "3.0-IV1", "3.1", "3.1-IV0", "3.2", "3.2-IV0", "3.3", "3.3-IV0", "3.3-IV1", "3.3-IV2", "3.3-IV3", "3.4", "3.4-IV0", "3.5", "3.5-IV0", "3.5-IV1", "3.5-IV2", "3.6", "3.6-IV0", "3.6-IV1", "3.6-IV2".
 * @property messageTimestampDifferenceMaxMs The maximum difference, in ms, between the timestamp specific in a message and when the broker receives the message.
 * @property messageTimestampType Specifies which timestamp to use for the message. This may be one of "create_time" or "log_append_time".
 * @property minCleanableDirtyRatio A scale between 0.0 and 1.0 which controls the frequency of the compactor. Larger values mean more frequent compactions. This is often paired with `max_compaction_lag_ms` to control the compactor frequency.
 * @property minCompactionLagMs
 * @property minInsyncReplicas The number of replicas that must acknowledge a write before it is considered successful. -1 is a special setting to indicate that all nodes must ack a message before a write is considered successful. Default is 1, indicating at least 1 replica must acknowledge a write to be considered successful.
 * @property preallocate Determines whether to preallocate a file on disk when creating a new log segment within a topic.
 * @property retentionBytes The maximum size, in bytes, of a topic before messages are deleted. -1 is a special setting indicating that this setting has no limit.
 * @property retentionMs The maximum time, in ms, that a topic log file is retained before deleting it. -1 is a special setting indicating that this setting has no limit.
 * @property segmentBytes The maximum size, in bytes, of a single topic log file.
 * @property segmentIndexBytes The maximum size, in bytes, of the offset index.
 * @property segmentJitterMs The maximum time, in ms, subtracted from the scheduled segment disk flush time to avoid the thundering herd problem for segment flushing.
 * @property segmentMs The maximum time, in ms, before the topic log will flush to disk.
 */
public data class DatabaseKafkaTopicConfigArgs(
    public val cleanupPolicy: Output? = null,
    public val compressionType: Output? = null,
    public val deleteRetentionMs: Output? = null,
    public val fileDeleteDelayMs: Output? = null,
    public val flushMessages: Output? = null,
    public val flushMs: Output? = null,
    public val indexIntervalBytes: Output? = null,
    public val maxCompactionLagMs: Output? = null,
    public val maxMessageBytes: Output? = null,
    public val messageDownConversionEnable: Output? = null,
    public val messageFormatVersion: Output? = null,
    public val messageTimestampDifferenceMaxMs: Output? = null,
    public val messageTimestampType: Output? = null,
    public val minCleanableDirtyRatio: Output? = null,
    public val minCompactionLagMs: Output? = null,
    public val minInsyncReplicas: Output? = null,
    public val preallocate: Output? = null,
    public val retentionBytes: Output? = null,
    public val retentionMs: Output? = null,
    public val segmentBytes: Output? = null,
    public val segmentIndexBytes: Output? = null,
    public val segmentJitterMs: Output? = null,
    public val segmentMs: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.digitalocean.inputs.DatabaseKafkaTopicConfigArgs =
        com.pulumi.digitalocean.inputs.DatabaseKafkaTopicConfigArgs.builder()
            .cleanupPolicy(cleanupPolicy?.applyValue({ args0 -> args0 }))
            .compressionType(compressionType?.applyValue({ args0 -> args0 }))
            .deleteRetentionMs(deleteRetentionMs?.applyValue({ args0 -> args0 }))
            .fileDeleteDelayMs(fileDeleteDelayMs?.applyValue({ args0 -> args0 }))
            .flushMessages(flushMessages?.applyValue({ args0 -> args0 }))
            .flushMs(flushMs?.applyValue({ args0 -> args0 }))
            .indexIntervalBytes(indexIntervalBytes?.applyValue({ args0 -> args0 }))
            .maxCompactionLagMs(maxCompactionLagMs?.applyValue({ args0 -> args0 }))
            .maxMessageBytes(maxMessageBytes?.applyValue({ args0 -> args0 }))
            .messageDownConversionEnable(messageDownConversionEnable?.applyValue({ args0 -> args0 }))
            .messageFormatVersion(messageFormatVersion?.applyValue({ args0 -> args0 }))
            .messageTimestampDifferenceMaxMs(messageTimestampDifferenceMaxMs?.applyValue({ args0 -> args0 }))
            .messageTimestampType(messageTimestampType?.applyValue({ args0 -> args0 }))
            .minCleanableDirtyRatio(minCleanableDirtyRatio?.applyValue({ args0 -> args0 }))
            .minCompactionLagMs(minCompactionLagMs?.applyValue({ args0 -> args0 }))
            .minInsyncReplicas(minInsyncReplicas?.applyValue({ args0 -> args0 }))
            .preallocate(preallocate?.applyValue({ args0 -> args0 }))
            .retentionBytes(retentionBytes?.applyValue({ args0 -> args0 }))
            .retentionMs(retentionMs?.applyValue({ args0 -> args0 }))
            .segmentBytes(segmentBytes?.applyValue({ args0 -> args0 }))
            .segmentIndexBytes(segmentIndexBytes?.applyValue({ args0 -> args0 }))
            .segmentJitterMs(segmentJitterMs?.applyValue({ args0 -> args0 }))
            .segmentMs(segmentMs?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [DatabaseKafkaTopicConfigArgs].
 */
@PulumiTagMarker
public class DatabaseKafkaTopicConfigArgsBuilder internal constructor() {
    private var cleanupPolicy: Output? = null

    private var compressionType: Output? = null

    private var deleteRetentionMs: Output? = null

    private var fileDeleteDelayMs: Output? = null

    private var flushMessages: Output? = null

    private var flushMs: Output? = null

    private var indexIntervalBytes: Output? = null

    private var maxCompactionLagMs: Output? = null

    private var maxMessageBytes: Output? = null

    private var messageDownConversionEnable: Output? = null

    private var messageFormatVersion: Output? = null

    private var messageTimestampDifferenceMaxMs: Output? = null

    private var messageTimestampType: Output? = null

    private var minCleanableDirtyRatio: Output? = null

    private var minCompactionLagMs: Output? = null

    private var minInsyncReplicas: Output? = null

    private var preallocate: Output? = null

    private var retentionBytes: Output? = null

    private var retentionMs: Output? = null

    private var segmentBytes: Output? = null

    private var segmentIndexBytes: Output? = null

    private var segmentJitterMs: Output? = null

    private var segmentMs: Output? = null

    /**
     * @param value The topic cleanup policy that describes whether messages should be deleted, compacted, or both when retention policies are violated.
     * This may be one of "delete", "compact", or "compact_delete".
     */
    @JvmName("hugfvrmtnkxbeogn")
    public suspend fun cleanupPolicy(`value`: Output) {
        this.cleanupPolicy = value
    }

    /**
     * @param value The topic compression codecs used for a given topic.
     * This may be one of "uncompressed", "gzip", "snappy", "lz4", "producer", "zstd". "uncompressed" indicates that there is no compression and "producer" retains the original compression codec set by the producer.
     */
    @JvmName("pmwsyiryjusydaht")
    public suspend fun compressionType(`value`: Output) {
        this.compressionType = value
    }

    /**
     * @param value The amount of time, in ms, that deleted records are retained.
     */
    @JvmName("gygnofbnnnptutrt")
    public suspend fun deleteRetentionMs(`value`: Output) {
        this.deleteRetentionMs = value
    }

    /**
     * @param value The amount of time, in ms, to wait before deleting a topic log segment from the filesystem.
     */
    @JvmName("rbnbdpityyljqqus")
    public suspend fun fileDeleteDelayMs(`value`: Output) {
        this.fileDeleteDelayMs = value
    }

    /**
     * @param value The number of messages accumulated on a topic partition before they are flushed to disk.
     */
    @JvmName("ocyfqdxbomqdapdv")
    public suspend fun flushMessages(`value`: Output) {
        this.flushMessages = value
    }

    /**
     * @param value The maximum time, in ms, that a topic is kept in memory before being flushed to disk.
     */
    @JvmName("kildqgnixftituue")
    public suspend fun flushMs(`value`: Output) {
        this.flushMs = value
    }

    /**
     * @param value The interval, in bytes, in which entries are added to the offset index.
     */
    @JvmName("orvkcirihifvwale")
    public suspend fun indexIntervalBytes(`value`: Output) {
        this.indexIntervalBytes = value
    }

    /**
     * @param value The maximum time, in ms, that a particular message will remain uncompacted. This will not apply if the `compression_type` is set to "uncompressed" or it is set to `producer` and the producer is not using compression.
     */
    @JvmName("ugvxbecyduwafkom")
    public suspend fun maxCompactionLagMs(`value`: Output) {
        this.maxCompactionLagMs = value
    }

    /**
     * @param value The maximum size, in bytes, of a message.
     */
    @JvmName("gipbwwnxdyntpqht")
    public suspend fun maxMessageBytes(`value`: Output) {
        this.maxMessageBytes = value
    }

    /**
     * @param value Determines whether down-conversion of message formats for consumers is enabled.
     */
    @JvmName("psxulwempqbjtxqe")
    public suspend fun messageDownConversionEnable(`value`: Output) {
        this.messageDownConversionEnable = value
    }

    /**
     * @param value The version of the inter-broker protocol that will be used. This may be one of "0.8.0", "0.8.1", "0.8.2", "0.9.0", "0.10.0", "0.10.0-IV0", "0.10.0-IV1", "0.10.1", "0.10.1-IV0", "0.10.1-IV1", "0.10.1-IV2", "0.10.2", "0.10.2-IV0", "0.11.0", "0.11.0-IV0", "0.11.0-IV1", "0.11.0-IV2", "1.0", "1.0-IV0", "1.1", "1.1-IV0", "2.0", "2.0-IV0", "2.0-IV1", "2.1", "2.1-IV0", "2.1-IV1", "2.1-IV2", "2.2", "2.2-IV0", "2.2-IV1", "2.3", "2.3-IV0", "2.3-IV1", "2.4", "2.4-IV0", "2.4-IV1", "2.5", "2.5-IV0", "2.6", "2.6-IV0", "2.7", "2.7-IV0", "2.7-IV1", "2.7-IV2", "2.8", "2.8-IV0", "2.8-IV1", "3.0", "3.0-IV0", "3.0-IV1", "3.1", "3.1-IV0", "3.2", "3.2-IV0", "3.3", "3.3-IV0", "3.3-IV1", "3.3-IV2", "3.3-IV3", "3.4", "3.4-IV0", "3.5", "3.5-IV0", "3.5-IV1", "3.5-IV2", "3.6", "3.6-IV0", "3.6-IV1", "3.6-IV2".
     */
    @JvmName("remlmcwbkutcrhob")
    public suspend fun messageFormatVersion(`value`: Output) {
        this.messageFormatVersion = value
    }

    /**
     * @param value The maximum difference, in ms, between the timestamp specific in a message and when the broker receives the message.
     */
    @JvmName("hkqnicspdikgwaww")
    public suspend fun messageTimestampDifferenceMaxMs(`value`: Output) {
        this.messageTimestampDifferenceMaxMs = value
    }

    /**
     * @param value Specifies which timestamp to use for the message. This may be one of "create_time" or "log_append_time".
     */
    @JvmName("ljqntvurtbpweqvb")
    public suspend fun messageTimestampType(`value`: Output) {
        this.messageTimestampType = value
    }

    /**
     * @param value A scale between 0.0 and 1.0 which controls the frequency of the compactor. Larger values mean more frequent compactions. This is often paired with `max_compaction_lag_ms` to control the compactor frequency.
     */
    @JvmName("crgbvifhkmfwqpuu")
    public suspend fun minCleanableDirtyRatio(`value`: Output) {
        this.minCleanableDirtyRatio = value
    }

    /**
     * @param value
     */
    @JvmName("milkqeqmdmfmgjfb")
    public suspend fun minCompactionLagMs(`value`: Output) {
        this.minCompactionLagMs = value
    }

    /**
     * @param value The number of replicas that must acknowledge a write before it is considered successful. -1 is a special setting to indicate that all nodes must ack a message before a write is considered successful. Default is 1, indicating at least 1 replica must acknowledge a write to be considered successful.
     */
    @JvmName("pjryodpdyhcqqwkd")
    public suspend fun minInsyncReplicas(`value`: Output) {
        this.minInsyncReplicas = value
    }

    /**
     * @param value Determines whether to preallocate a file on disk when creating a new log segment within a topic.
     */
    @JvmName("vydjnwckdtbddcnw")
    public suspend fun preallocate(`value`: Output) {
        this.preallocate = value
    }

    /**
     * @param value The maximum size, in bytes, of a topic before messages are deleted. -1 is a special setting indicating that this setting has no limit.
     */
    @JvmName("rckterxhjwsuujck")
    public suspend fun retentionBytes(`value`: Output) {
        this.retentionBytes = value
    }

    /**
     * @param value The maximum time, in ms, that a topic log file is retained before deleting it. -1 is a special setting indicating that this setting has no limit.
     */
    @JvmName("xiucbncajciwbydf")
    public suspend fun retentionMs(`value`: Output) {
        this.retentionMs = value
    }

    /**
     * @param value The maximum size, in bytes, of a single topic log file.
     */
    @JvmName("dnfvjmfrpgtgkahy")
    public suspend fun segmentBytes(`value`: Output) {
        this.segmentBytes = value
    }

    /**
     * @param value The maximum size, in bytes, of the offset index.
     */
    @JvmName("kvaermotyqkllghd")
    public suspend fun segmentIndexBytes(`value`: Output) {
        this.segmentIndexBytes = value
    }

    /**
     * @param value The maximum time, in ms, subtracted from the scheduled segment disk flush time to avoid the thundering herd problem for segment flushing.
     */
    @JvmName("oavcedgivnkuhdhq")
    public suspend fun segmentJitterMs(`value`: Output) {
        this.segmentJitterMs = value
    }

    /**
     * @param value The maximum time, in ms, before the topic log will flush to disk.
     */
    @JvmName("ubcahassaywomdxu")
    public suspend fun segmentMs(`value`: Output) {
        this.segmentMs = value
    }

    /**
     * @param value The topic cleanup policy that describes whether messages should be deleted, compacted, or both when retention policies are violated.
     * This may be one of "delete", "compact", or "compact_delete".
     */
    @JvmName("hrunnkxsgfnfsxir")
    public suspend fun cleanupPolicy(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cleanupPolicy = mapped
    }

    /**
     * @param value The topic compression codecs used for a given topic.
     * This may be one of "uncompressed", "gzip", "snappy", "lz4", "producer", "zstd". "uncompressed" indicates that there is no compression and "producer" retains the original compression codec set by the producer.
     */
    @JvmName("gpxuwwxtiyugqkwv")
    public suspend fun compressionType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.compressionType = mapped
    }

    /**
     * @param value The amount of time, in ms, that deleted records are retained.
     */
    @JvmName("fcpkamdxjbxsicxt")
    public suspend fun deleteRetentionMs(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.deleteRetentionMs = mapped
    }

    /**
     * @param value The amount of time, in ms, to wait before deleting a topic log segment from the filesystem.
     */
    @JvmName("ymifwhvndwedsipl")
    public suspend fun fileDeleteDelayMs(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fileDeleteDelayMs = mapped
    }

    /**
     * @param value The number of messages accumulated on a topic partition before they are flushed to disk.
     */
    @JvmName("tpkqtvaaubbypxoo")
    public suspend fun flushMessages(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.flushMessages = mapped
    }

    /**
     * @param value The maximum time, in ms, that a topic is kept in memory before being flushed to disk.
     */
    @JvmName("uatwtgxmbpsrgwpv")
    public suspend fun flushMs(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.flushMs = mapped
    }

    /**
     * @param value The interval, in bytes, in which entries are added to the offset index.
     */
    @JvmName("idllwpkqteikeups")
    public suspend fun indexIntervalBytes(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.indexIntervalBytes = mapped
    }

    /**
     * @param value The maximum time, in ms, that a particular message will remain uncompacted. This will not apply if the `compression_type` is set to "uncompressed" or it is set to `producer` and the producer is not using compression.
     */
    @JvmName("qthdyhogjaxyqcpu")
    public suspend fun maxCompactionLagMs(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxCompactionLagMs = mapped
    }

    /**
     * @param value The maximum size, in bytes, of a message.
     */
    @JvmName("dlyfbeurgfomduka")
    public suspend fun maxMessageBytes(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxMessageBytes = mapped
    }

    /**
     * @param value Determines whether down-conversion of message formats for consumers is enabled.
     */
    @JvmName("dwxxagltvpcluubl")
    public suspend fun messageDownConversionEnable(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.messageDownConversionEnable = mapped
    }

    /**
     * @param value The version of the inter-broker protocol that will be used. This may be one of "0.8.0", "0.8.1", "0.8.2", "0.9.0", "0.10.0", "0.10.0-IV0", "0.10.0-IV1", "0.10.1", "0.10.1-IV0", "0.10.1-IV1", "0.10.1-IV2", "0.10.2", "0.10.2-IV0", "0.11.0", "0.11.0-IV0", "0.11.0-IV1", "0.11.0-IV2", "1.0", "1.0-IV0", "1.1", "1.1-IV0", "2.0", "2.0-IV0", "2.0-IV1", "2.1", "2.1-IV0", "2.1-IV1", "2.1-IV2", "2.2", "2.2-IV0", "2.2-IV1", "2.3", "2.3-IV0", "2.3-IV1", "2.4", "2.4-IV0", "2.4-IV1", "2.5", "2.5-IV0", "2.6", "2.6-IV0", "2.7", "2.7-IV0", "2.7-IV1", "2.7-IV2", "2.8", "2.8-IV0", "2.8-IV1", "3.0", "3.0-IV0", "3.0-IV1", "3.1", "3.1-IV0", "3.2", "3.2-IV0", "3.3", "3.3-IV0", "3.3-IV1", "3.3-IV2", "3.3-IV3", "3.4", "3.4-IV0", "3.5", "3.5-IV0", "3.5-IV1", "3.5-IV2", "3.6", "3.6-IV0", "3.6-IV1", "3.6-IV2".
     */
    @JvmName("xrygwdoqimgglobe")
    public suspend fun messageFormatVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.messageFormatVersion = mapped
    }

    /**
     * @param value The maximum difference, in ms, between the timestamp specific in a message and when the broker receives the message.
     */
    @JvmName("bctkakubsqdtmedw")
    public suspend fun messageTimestampDifferenceMaxMs(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.messageTimestampDifferenceMaxMs = mapped
    }

    /**
     * @param value Specifies which timestamp to use for the message. This may be one of "create_time" or "log_append_time".
     */
    @JvmName("vqvqrxmesnkdqijl")
    public suspend fun messageTimestampType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.messageTimestampType = mapped
    }

    /**
     * @param value A scale between 0.0 and 1.0 which controls the frequency of the compactor. Larger values mean more frequent compactions. This is often paired with `max_compaction_lag_ms` to control the compactor frequency.
     */
    @JvmName("boiwrhflucnavprp")
    public suspend fun minCleanableDirtyRatio(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.minCleanableDirtyRatio = mapped
    }

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

    /**
     * @param value The number of replicas that must acknowledge a write before it is considered successful. -1 is a special setting to indicate that all nodes must ack a message before a write is considered successful. Default is 1, indicating at least 1 replica must acknowledge a write to be considered successful.
     */
    @JvmName("vtrfxqtjnjdfrjgc")
    public suspend fun minInsyncReplicas(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.minInsyncReplicas = mapped
    }

    /**
     * @param value Determines whether to preallocate a file on disk when creating a new log segment within a topic.
     */
    @JvmName("lnflsjucnbxyxykq")
    public suspend fun preallocate(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.preallocate = mapped
    }

    /**
     * @param value The maximum size, in bytes, of a topic before messages are deleted. -1 is a special setting indicating that this setting has no limit.
     */
    @JvmName("rnygjkscntddyppi")
    public suspend fun retentionBytes(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.retentionBytes = mapped
    }

    /**
     * @param value The maximum time, in ms, that a topic log file is retained before deleting it. -1 is a special setting indicating that this setting has no limit.
     */
    @JvmName("byfsrywvtwidkejr")
    public suspend fun retentionMs(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.retentionMs = mapped
    }

    /**
     * @param value The maximum size, in bytes, of a single topic log file.
     */
    @JvmName("nedktqvvhnswaxfj")
    public suspend fun segmentBytes(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.segmentBytes = mapped
    }

    /**
     * @param value The maximum size, in bytes, of the offset index.
     */
    @JvmName("ylfxuakositcvovw")
    public suspend fun segmentIndexBytes(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.segmentIndexBytes = mapped
    }

    /**
     * @param value The maximum time, in ms, subtracted from the scheduled segment disk flush time to avoid the thundering herd problem for segment flushing.
     */
    @JvmName("qigwnarmykmlqjwd")
    public suspend fun segmentJitterMs(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.segmentJitterMs = mapped
    }

    /**
     * @param value The maximum time, in ms, before the topic log will flush to disk.
     */
    @JvmName("ehopodgvtgomxeui")
    public suspend fun segmentMs(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.segmentMs = mapped
    }

    internal fun build(): DatabaseKafkaTopicConfigArgs = DatabaseKafkaTopicConfigArgs(
        cleanupPolicy = cleanupPolicy,
        compressionType = compressionType,
        deleteRetentionMs = deleteRetentionMs,
        fileDeleteDelayMs = fileDeleteDelayMs,
        flushMessages = flushMessages,
        flushMs = flushMs,
        indexIntervalBytes = indexIntervalBytes,
        maxCompactionLagMs = maxCompactionLagMs,
        maxMessageBytes = maxMessageBytes,
        messageDownConversionEnable = messageDownConversionEnable,
        messageFormatVersion = messageFormatVersion,
        messageTimestampDifferenceMaxMs = messageTimestampDifferenceMaxMs,
        messageTimestampType = messageTimestampType,
        minCleanableDirtyRatio = minCleanableDirtyRatio,
        minCompactionLagMs = minCompactionLagMs,
        minInsyncReplicas = minInsyncReplicas,
        preallocate = preallocate,
        retentionBytes = retentionBytes,
        retentionMs = retentionMs,
        segmentBytes = segmentBytes,
        segmentIndexBytes = segmentIndexBytes,
        segmentJitterMs = segmentJitterMs,
        segmentMs = segmentMs,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy