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

com.pulumi.awsnative.cloudwatch.kotlin.inputs.MetricStreamStatisticsConfigurationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.cloudwatch.kotlin.inputs

import com.pulumi.awsnative.cloudwatch.inputs.MetricStreamStatisticsConfigurationArgs.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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * This structure specifies a list of additional statistics to stream, and the metrics to stream those additional statistics for. All metrics that match the combination of metric name and namespace will be streamed with the extended statistics, no matter their dimensions.
 * @property additionalStatistics The additional statistics to stream for the metrics listed in IncludeMetrics.
 * @property includeMetrics An array that defines the metrics that are to have additional statistics streamed.
 */
public data class MetricStreamStatisticsConfigurationArgs(
    public val additionalStatistics: Output>,
    public val includeMetrics: Output>,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.cloudwatch.inputs.MetricStreamStatisticsConfigurationArgs =
        com.pulumi.awsnative.cloudwatch.inputs.MetricStreamStatisticsConfigurationArgs.builder()
            .additionalStatistics(additionalStatistics.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .includeMetrics(
                includeMetrics.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

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

    private var includeMetrics: Output>? = null

    /**
     * @param value The additional statistics to stream for the metrics listed in IncludeMetrics.
     */
    @JvmName("otsykhlyfdqvnnfo")
    public suspend fun additionalStatistics(`value`: Output>) {
        this.additionalStatistics = value
    }

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

    /**
     * @param values The additional statistics to stream for the metrics listed in IncludeMetrics.
     */
    @JvmName("fbhmxxkfhbxwljrv")
    public suspend fun additionalStatistics(values: List>) {
        this.additionalStatistics = Output.all(values)
    }

    /**
     * @param value An array that defines the metrics that are to have additional statistics streamed.
     */
    @JvmName("ssvguadeyqdimbjx")
    public suspend fun includeMetrics(`value`: Output>) {
        this.includeMetrics = value
    }

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

    /**
     * @param values An array that defines the metrics that are to have additional statistics streamed.
     */
    @JvmName("sivcbyujmhhkgufy")
    public suspend fun includeMetrics(values: List>) {
        this.includeMetrics = Output.all(values)
    }

    /**
     * @param value The additional statistics to stream for the metrics listed in IncludeMetrics.
     */
    @JvmName("lasmhajvgqitpuqr")
    public suspend fun additionalStatistics(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalStatistics = mapped
    }

    /**
     * @param values The additional statistics to stream for the metrics listed in IncludeMetrics.
     */
    @JvmName("fjetaocasexjabad")
    public suspend fun additionalStatistics(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalStatistics = mapped
    }

    /**
     * @param value An array that defines the metrics that are to have additional statistics streamed.
     */
    @JvmName("ayrcbcjgohutlfgb")
    public suspend fun includeMetrics(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.includeMetrics = mapped
    }

    /**
     * @param argument An array that defines the metrics that are to have additional statistics streamed.
     */
    @JvmName("arxsnkeoctlnfyut")
    public suspend fun includeMetrics(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            MetricStreamStatisticsMetricArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.includeMetrics = mapped
    }

    /**
     * @param argument An array that defines the metrics that are to have additional statistics streamed.
     */
    @JvmName("iqqioffsjdpeswak")
    public suspend fun includeMetrics(vararg argument: suspend MetricStreamStatisticsMetricArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            MetricStreamStatisticsMetricArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.includeMetrics = mapped
    }

    /**
     * @param argument An array that defines the metrics that are to have additional statistics streamed.
     */
    @JvmName("nmiklktgaxpcyhaw")
    public suspend fun includeMetrics(argument: suspend MetricStreamStatisticsMetricArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            MetricStreamStatisticsMetricArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.includeMetrics = mapped
    }

    /**
     * @param values An array that defines the metrics that are to have additional statistics streamed.
     */
    @JvmName("aixflxnwskmvedic")
    public suspend fun includeMetrics(vararg values: MetricStreamStatisticsMetricArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.includeMetrics = mapped
    }

    internal fun build(): MetricStreamStatisticsConfigurationArgs =
        MetricStreamStatisticsConfigurationArgs(
            additionalStatistics = additionalStatistics ?: throw
                PulumiNullFieldException("additionalStatistics"),
            includeMetrics = includeMetrics ?: throw PulumiNullFieldException("includeMetrics"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy