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

com.pulumi.awsnative.codeguruprofiler.kotlin.ProfilingGroupArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.codeguruprofiler.kotlin

import com.pulumi.awsnative.codeguruprofiler.ProfilingGroupArgs.builder
import com.pulumi.awsnative.codeguruprofiler.kotlin.enums.ProfilingGroupComputePlatform
import com.pulumi.awsnative.codeguruprofiler.kotlin.inputs.AgentPermissionsPropertiesArgs
import com.pulumi.awsnative.codeguruprofiler.kotlin.inputs.AgentPermissionsPropertiesArgsBuilder
import com.pulumi.awsnative.codeguruprofiler.kotlin.inputs.ProfilingGroupChannelArgs
import com.pulumi.awsnative.codeguruprofiler.kotlin.inputs.ProfilingGroupChannelArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
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 resource schema represents the Profiling Group resource in the Amazon CodeGuru Profiler service.
 * @property agentPermissions The agent permissions attached to this profiling group.
 * @property anomalyDetectionNotificationConfiguration Configuration for Notification Channels for Anomaly Detection feature in CodeGuru Profiler which enables customers to detect anomalies in the application profile for those methods that represent the highest proportion of CPU time or latency
 * @property computePlatform The compute platform of the profiling group.
 * @property profilingGroupName The name of the profiling group.
 * @property tags The tags associated with a profiling group.
 */
public data class ProfilingGroupArgs(
    public val agentPermissions: Output? = null,
    public val anomalyDetectionNotificationConfiguration: Output>? =
        null,
    public val computePlatform: Output? = null,
    public val profilingGroupName: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.codeguruprofiler.ProfilingGroupArgs =
        com.pulumi.awsnative.codeguruprofiler.ProfilingGroupArgs.builder()
            .agentPermissions(agentPermissions?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .anomalyDetectionNotificationConfiguration(
                anomalyDetectionNotificationConfiguration?.applyValue({ args0 ->
                    args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .computePlatform(computePlatform?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .profilingGroupName(profilingGroupName?.applyValue({ args0 -> args0 }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [ProfilingGroupArgs].
 */
@PulumiTagMarker
public class ProfilingGroupArgsBuilder internal constructor() {
    private var agentPermissions: Output? = null

    private var anomalyDetectionNotificationConfiguration: Output>? =
        null

    private var computePlatform: Output? = null

    private var profilingGroupName: Output? = null

    private var tags: Output>? = null

    /**
     * @param value The agent permissions attached to this profiling group.
     */
    @JvmName("jhqsfxuaueojuhqx")
    public suspend fun agentPermissions(`value`: Output) {
        this.agentPermissions = value
    }

    /**
     * @param value Configuration for Notification Channels for Anomaly Detection feature in CodeGuru Profiler which enables customers to detect anomalies in the application profile for those methods that represent the highest proportion of CPU time or latency
     */
    @JvmName("rqlixavcotbkgkwa")
    public suspend fun anomalyDetectionNotificationConfiguration(`value`: Output>) {
        this.anomalyDetectionNotificationConfiguration = value
    }

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

    /**
     * @param values Configuration for Notification Channels for Anomaly Detection feature in CodeGuru Profiler which enables customers to detect anomalies in the application profile for those methods that represent the highest proportion of CPU time or latency
     */
    @JvmName("ukaryhmichvtmmkw")
    public suspend fun anomalyDetectionNotificationConfiguration(values: List>) {
        this.anomalyDetectionNotificationConfiguration = Output.all(values)
    }

    /**
     * @param value The compute platform of the profiling group.
     */
    @JvmName("idmukqdibqnkbril")
    public suspend fun computePlatform(`value`: Output) {
        this.computePlatform = value
    }

    /**
     * @param value The name of the profiling group.
     */
    @JvmName("elwdbohliaealiqw")
    public suspend fun profilingGroupName(`value`: Output) {
        this.profilingGroupName = value
    }

    /**
     * @param value The tags associated with a profiling group.
     */
    @JvmName("dqqqxwgkwpmfskfa")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values The tags associated with a profiling group.
     */
    @JvmName("ipaxrjdwilyvfoai")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The agent permissions attached to this profiling group.
     */
    @JvmName("mbqkqtmvercuqaxn")
    public suspend fun agentPermissions(`value`: AgentPermissionsPropertiesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.agentPermissions = mapped
    }

    /**
     * @param argument The agent permissions attached to this profiling group.
     */
    @JvmName("uxhyoqlptqlidjgj")
    public suspend fun agentPermissions(argument: suspend AgentPermissionsPropertiesArgsBuilder.() -> Unit) {
        val toBeMapped = AgentPermissionsPropertiesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.agentPermissions = mapped
    }

    /**
     * @param value Configuration for Notification Channels for Anomaly Detection feature in CodeGuru Profiler which enables customers to detect anomalies in the application profile for those methods that represent the highest proportion of CPU time or latency
     */
    @JvmName("sqkeimtehqgvamuo")
    public suspend fun anomalyDetectionNotificationConfiguration(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.anomalyDetectionNotificationConfiguration = mapped
    }

    /**
     * @param argument Configuration for Notification Channels for Anomaly Detection feature in CodeGuru Profiler which enables customers to detect anomalies in the application profile for those methods that represent the highest proportion of CPU time or latency
     */
    @JvmName("bonfibqyvllqoimw")
    public suspend fun anomalyDetectionNotificationConfiguration(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ProfilingGroupChannelArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.anomalyDetectionNotificationConfiguration = mapped
    }

    /**
     * @param argument Configuration for Notification Channels for Anomaly Detection feature in CodeGuru Profiler which enables customers to detect anomalies in the application profile for those methods that represent the highest proportion of CPU time or latency
     */
    @JvmName("wlecynqgttufmwde")
    public suspend fun anomalyDetectionNotificationConfiguration(vararg argument: suspend ProfilingGroupChannelArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ProfilingGroupChannelArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.anomalyDetectionNotificationConfiguration = mapped
    }

    /**
     * @param argument Configuration for Notification Channels for Anomaly Detection feature in CodeGuru Profiler which enables customers to detect anomalies in the application profile for those methods that represent the highest proportion of CPU time or latency
     */
    @JvmName("kbkfwgnhtkhwdcrh")
    public suspend fun anomalyDetectionNotificationConfiguration(argument: suspend ProfilingGroupChannelArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(ProfilingGroupChannelArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.anomalyDetectionNotificationConfiguration = mapped
    }

    /**
     * @param values Configuration for Notification Channels for Anomaly Detection feature in CodeGuru Profiler which enables customers to detect anomalies in the application profile for those methods that represent the highest proportion of CPU time or latency
     */
    @JvmName("jiknjjwfohvcsdmk")
    public suspend fun anomalyDetectionNotificationConfiguration(vararg values: ProfilingGroupChannelArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.anomalyDetectionNotificationConfiguration = mapped
    }

    /**
     * @param value The compute platform of the profiling group.
     */
    @JvmName("ksauekuhdfirbfck")
    public suspend fun computePlatform(`value`: ProfilingGroupComputePlatform?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.computePlatform = mapped
    }

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

    /**
     * @param value The tags associated with a profiling group.
     */
    @JvmName("eokdvbgwtxqtiugx")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument The tags associated with a profiling group.
     */
    @JvmName("ipwltdctcrcumjol")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The tags associated with a profiling group.
     */
    @JvmName("nusbanqqojkoowld")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The tags associated with a profiling group.
     */
    @JvmName("hcajephvfllevnee")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values The tags associated with a profiling group.
     */
    @JvmName("bwwtqbauifrcffqk")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): ProfilingGroupArgs = ProfilingGroupArgs(
        agentPermissions = agentPermissions,
        anomalyDetectionNotificationConfiguration = anomalyDetectionNotificationConfiguration,
        computePlatform = computePlatform,
        profilingGroupName = profilingGroupName,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy