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

com.pulumi.awsnative.applicationinsights.kotlin.ApplicationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.applicationinsights.kotlin

import com.pulumi.awsnative.applicationinsights.ApplicationArgs.builder
import com.pulumi.awsnative.applicationinsights.kotlin.enums.ApplicationGroupingType
import com.pulumi.awsnative.applicationinsights.kotlin.inputs.ApplicationComponentMonitoringSettingArgs
import com.pulumi.awsnative.applicationinsights.kotlin.inputs.ApplicationComponentMonitoringSettingArgsBuilder
import com.pulumi.awsnative.applicationinsights.kotlin.inputs.ApplicationCustomComponentArgs
import com.pulumi.awsnative.applicationinsights.kotlin.inputs.ApplicationCustomComponentArgsBuilder
import com.pulumi.awsnative.applicationinsights.kotlin.inputs.ApplicationLogPatternSetArgs
import com.pulumi.awsnative.applicationinsights.kotlin.inputs.ApplicationLogPatternSetArgsBuilder
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.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource schema for AWS::ApplicationInsights::Application
 * @property attachMissingPermission If set to true, the managed policies for SSM and CW will be attached to the instance roles if they are missing
 * @property autoConfigurationEnabled If set to true, application will be configured with recommended monitoring configuration.
 * @property componentMonitoringSettings The monitoring settings of the components.
 * @property customComponents The custom grouped components.
 * @property cweMonitorEnabled Indicates whether Application Insights can listen to CloudWatch events for the application resources.
 * @property groupingType The grouping type of the application
 * @property logPatternSets The log pattern sets.
 * @property opsCenterEnabled When set to true, creates opsItems for any problems detected on an application.
 * @property opsItemSnsTopicArn The SNS topic provided to Application Insights that is associated to the created opsItem.
 * @property resourceGroupName The name of the resource group.
 * @property tags The tags of Application Insights application.
 */
public data class ApplicationArgs(
    public val attachMissingPermission: Output? = null,
    public val autoConfigurationEnabled: Output? = null,
    public val componentMonitoringSettings: Output>? =
        null,
    public val customComponents: Output>? = null,
    public val cweMonitorEnabled: Output? = null,
    public val groupingType: Output? = null,
    public val logPatternSets: Output>? = null,
    public val opsCenterEnabled: Output? = null,
    public val opsItemSnsTopicArn: Output? = null,
    public val resourceGroupName: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.applicationinsights.ApplicationArgs =
        com.pulumi.awsnative.applicationinsights.ApplicationArgs.builder()
            .attachMissingPermission(attachMissingPermission?.applyValue({ args0 -> args0 }))
            .autoConfigurationEnabled(autoConfigurationEnabled?.applyValue({ args0 -> args0 }))
            .componentMonitoringSettings(
                componentMonitoringSettings?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .customComponents(
                customComponents?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .cweMonitorEnabled(cweMonitorEnabled?.applyValue({ args0 -> args0 }))
            .groupingType(groupingType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .logPatternSets(
                logPatternSets?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .opsCenterEnabled(opsCenterEnabled?.applyValue({ args0 -> args0 }))
            .opsItemSnsTopicArn(opsItemSnsTopicArn?.applyValue({ args0 -> args0 }))
            .resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [ApplicationArgs].
 */
@PulumiTagMarker
public class ApplicationArgsBuilder internal constructor() {
    private var attachMissingPermission: Output? = null

    private var autoConfigurationEnabled: Output? = null

    private var componentMonitoringSettings: Output>? =
        null

    private var customComponents: Output>? = null

    private var cweMonitorEnabled: Output? = null

    private var groupingType: Output? = null

    private var logPatternSets: Output>? = null

    private var opsCenterEnabled: Output? = null

    private var opsItemSnsTopicArn: Output? = null

    private var resourceGroupName: Output? = null

    private var tags: Output>? = null

    /**
     * @param value If set to true, the managed policies for SSM and CW will be attached to the instance roles if they are missing
     */
    @JvmName("hyttbretcehsvhsj")
    public suspend fun attachMissingPermission(`value`: Output) {
        this.attachMissingPermission = value
    }

    /**
     * @param value If set to true, application will be configured with recommended monitoring configuration.
     */
    @JvmName("tgufsjwijsinievu")
    public suspend fun autoConfigurationEnabled(`value`: Output) {
        this.autoConfigurationEnabled = value
    }

    /**
     * @param value The monitoring settings of the components.
     */
    @JvmName("jxyvnqjqwarhkstk")
    public suspend fun componentMonitoringSettings(`value`: Output>) {
        this.componentMonitoringSettings = value
    }

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

    /**
     * @param values The monitoring settings of the components.
     */
    @JvmName("raxduhvgaxehvimo")
    public suspend fun componentMonitoringSettings(values: List>) {
        this.componentMonitoringSettings = Output.all(values)
    }

    /**
     * @param value The custom grouped components.
     */
    @JvmName("rnybcelgonlbrrgl")
    public suspend fun customComponents(`value`: Output>) {
        this.customComponents = value
    }

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

    /**
     * @param values The custom grouped components.
     */
    @JvmName("xytpfhtphlajgdps")
    public suspend fun customComponents(values: List>) {
        this.customComponents = Output.all(values)
    }

    /**
     * @param value Indicates whether Application Insights can listen to CloudWatch events for the application resources.
     */
    @JvmName("smmuqkqmknojdjii")
    public suspend fun cweMonitorEnabled(`value`: Output) {
        this.cweMonitorEnabled = value
    }

    /**
     * @param value The grouping type of the application
     */
    @JvmName("yioigurbnpgibqlr")
    public suspend fun groupingType(`value`: Output) {
        this.groupingType = value
    }

    /**
     * @param value The log pattern sets.
     */
    @JvmName("gvmvrlbmfogcisfr")
    public suspend fun logPatternSets(`value`: Output>) {
        this.logPatternSets = value
    }

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

    /**
     * @param values The log pattern sets.
     */
    @JvmName("ugximxvkppnkacdv")
    public suspend fun logPatternSets(values: List>) {
        this.logPatternSets = Output.all(values)
    }

    /**
     * @param value When set to true, creates opsItems for any problems detected on an application.
     */
    @JvmName("dhopxorfhggctklm")
    public suspend fun opsCenterEnabled(`value`: Output) {
        this.opsCenterEnabled = value
    }

    /**
     * @param value The SNS topic provided to Application Insights that is associated to the created opsItem.
     */
    @JvmName("jjtywltiparyfwll")
    public suspend fun opsItemSnsTopicArn(`value`: Output) {
        this.opsItemSnsTopicArn = value
    }

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

    /**
     * @param value The tags of Application Insights application.
     */
    @JvmName("uvccsbdtbnpslgbf")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values The tags of Application Insights application.
     */
    @JvmName("jsgigabclousbact")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value If set to true, the managed policies for SSM and CW will be attached to the instance roles if they are missing
     */
    @JvmName("jxcvckjcgakymiwk")
    public suspend fun attachMissingPermission(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.attachMissingPermission = mapped
    }

    /**
     * @param value If set to true, application will be configured with recommended monitoring configuration.
     */
    @JvmName("ewmgebskkallgiwr")
    public suspend fun autoConfigurationEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoConfigurationEnabled = mapped
    }

    /**
     * @param value The monitoring settings of the components.
     */
    @JvmName("irgvmlhvulgomees")
    public suspend fun componentMonitoringSettings(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.componentMonitoringSettings = mapped
    }

    /**
     * @param argument The monitoring settings of the components.
     */
    @JvmName("ejhgeuiorkqcnxpj")
    public suspend fun componentMonitoringSettings(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ApplicationComponentMonitoringSettingArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.componentMonitoringSettings = mapped
    }

    /**
     * @param argument The monitoring settings of the components.
     */
    @JvmName("dfhfqitaygnfdemg")
    public suspend fun componentMonitoringSettings(vararg argument: suspend ApplicationComponentMonitoringSettingArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ApplicationComponentMonitoringSettingArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.componentMonitoringSettings = mapped
    }

    /**
     * @param argument The monitoring settings of the components.
     */
    @JvmName("rsmtreawdyerrdis")
    public suspend fun componentMonitoringSettings(argument: suspend ApplicationComponentMonitoringSettingArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ApplicationComponentMonitoringSettingArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.componentMonitoringSettings = mapped
    }

    /**
     * @param values The monitoring settings of the components.
     */
    @JvmName("eoqvbecdtgfkhycf")
    public suspend fun componentMonitoringSettings(vararg values: ApplicationComponentMonitoringSettingArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.componentMonitoringSettings = mapped
    }

    /**
     * @param value The custom grouped components.
     */
    @JvmName("njqriuxhgefpbahi")
    public suspend fun customComponents(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customComponents = mapped
    }

    /**
     * @param argument The custom grouped components.
     */
    @JvmName("raokhgghwfqjyuwd")
    public suspend fun customComponents(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ApplicationCustomComponentArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.customComponents = mapped
    }

    /**
     * @param argument The custom grouped components.
     */
    @JvmName("qtpkagpuvmvqhwtn")
    public suspend fun customComponents(vararg argument: suspend ApplicationCustomComponentArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ApplicationCustomComponentArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.customComponents = mapped
    }

    /**
     * @param argument The custom grouped components.
     */
    @JvmName("diotsvqpostdlska")
    public suspend fun customComponents(argument: suspend ApplicationCustomComponentArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ApplicationCustomComponentArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.customComponents = mapped
    }

    /**
     * @param values The custom grouped components.
     */
    @JvmName("exrcayigfirqrehx")
    public suspend fun customComponents(vararg values: ApplicationCustomComponentArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.customComponents = mapped
    }

    /**
     * @param value Indicates whether Application Insights can listen to CloudWatch events for the application resources.
     */
    @JvmName("keyqfjnjniygtalu")
    public suspend fun cweMonitorEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cweMonitorEnabled = mapped
    }

    /**
     * @param value The grouping type of the application
     */
    @JvmName("kqqvwmeeasbsuuft")
    public suspend fun groupingType(`value`: ApplicationGroupingType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.groupingType = mapped
    }

    /**
     * @param value The log pattern sets.
     */
    @JvmName("mawnyqnvbkornhlm")
    public suspend fun logPatternSets(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.logPatternSets = mapped
    }

    /**
     * @param argument The log pattern sets.
     */
    @JvmName("hacklxowxjugawjw")
    public suspend fun logPatternSets(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ApplicationLogPatternSetArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.logPatternSets = mapped
    }

    /**
     * @param argument The log pattern sets.
     */
    @JvmName("vyekgjcvwoefjcgj")
    public suspend fun logPatternSets(vararg argument: suspend ApplicationLogPatternSetArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ApplicationLogPatternSetArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.logPatternSets = mapped
    }

    /**
     * @param argument The log pattern sets.
     */
    @JvmName("pyoinfnxgihgdqst")
    public suspend fun logPatternSets(argument: suspend ApplicationLogPatternSetArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ApplicationLogPatternSetArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.logPatternSets = mapped
    }

    /**
     * @param values The log pattern sets.
     */
    @JvmName("sxxpviuhwtettskf")
    public suspend fun logPatternSets(vararg values: ApplicationLogPatternSetArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.logPatternSets = mapped
    }

    /**
     * @param value When set to true, creates opsItems for any problems detected on an application.
     */
    @JvmName("qexyloeflcjdraoy")
    public suspend fun opsCenterEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.opsCenterEnabled = mapped
    }

    /**
     * @param value The SNS topic provided to Application Insights that is associated to the created opsItem.
     */
    @JvmName("dqehurjxlbiuplbp")
    public suspend fun opsItemSnsTopicArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.opsItemSnsTopicArn = mapped
    }

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

    /**
     * @param value The tags of Application Insights application.
     */
    @JvmName("hgykklbkebnlxknb")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument The tags of Application Insights application.
     */
    @JvmName("ieerjcnltbwxatcl")
    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 of Application Insights application.
     */
    @JvmName("acvtupipexeihwui")
    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 of Application Insights application.
     */
    @JvmName("yuqlmndjnjytcvuk")
    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 of Application Insights application.
     */
    @JvmName("nqsppjscrrfdacle")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): ApplicationArgs = ApplicationArgs(
        attachMissingPermission = attachMissingPermission,
        autoConfigurationEnabled = autoConfigurationEnabled,
        componentMonitoringSettings = componentMonitoringSettings,
        customComponents = customComponents,
        cweMonitorEnabled = cweMonitorEnabled,
        groupingType = groupingType,
        logPatternSets = logPatternSets,
        opsCenterEnabled = opsCenterEnabled,
        opsItemSnsTopicArn = opsItemSnsTopicArn,
        resourceGroupName = resourceGroupName,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy