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

com.pulumi.awsnative.rum.kotlin.inputs.AppMonitorConfigurationArgs.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: 1.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.rum.kotlin.inputs

import com.pulumi.awsnative.rum.inputs.AppMonitorConfigurationArgs.builder
import com.pulumi.awsnative.rum.kotlin.enums.AppMonitorTelemetry
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.Double
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * AppMonitor configuration
 * @property allowCookies If you set this to true, the RUM web client sets two cookies, a session cookie and a user cookie. The cookies allow the RUM web client to collect data relating to the number of users an application has and the behavior of the application across a sequence of events. Cookies are stored in the top-level domain of the current page.
 * @property enableXRay If you set this to true, RUM enables xray tracing for the user sessions that RUM samples. RUM adds an xray trace header to allowed HTTP requests. It also records an xray segment for allowed HTTP requests. You can see traces and segments from these user sessions in the xray console and the CW ServiceLens console.
 * @property excludedPages A list of URLs in your website or application to exclude from RUM data collection. You can't include both ExcludedPages and IncludedPages in the same operation.
 * @property favoritePages A list of pages in the RUM console that are to be displayed with a favorite icon.
 * @property guestRoleArn The ARN of the guest IAM role that is attached to the identity pool that is used to authorize the sending of data to RUM.
 * @property identityPoolId The ID of the identity pool that is used to authorize the sending of data to RUM.
 * @property includedPages If this app monitor is to collect data from only certain pages in your application, this structure lists those pages. You can't include both ExcludedPages and IncludedPages in the same operation.
 * @property metricDestinations An array of structures which define the destinations and the metrics that you want to send.
 * @property sessionSampleRate Specifies the percentage of user sessions to use for RUM data collection. Choosing a higher percentage gives you more data but also incurs more costs. The number you specify is the percentage of user sessions that will be used. If you omit this parameter, the default of 10 is used.
 * @property telemetries An array that lists the types of telemetry data that this app monitor is to collect.
 */
public data class AppMonitorConfigurationArgs(
    public val allowCookies: Output? = null,
    public val enableXRay: Output? = null,
    public val excludedPages: Output>? = null,
    public val favoritePages: Output>? = null,
    public val guestRoleArn: Output? = null,
    public val identityPoolId: Output? = null,
    public val includedPages: Output>? = null,
    public val metricDestinations: Output>? = null,
    public val sessionSampleRate: Output? = null,
    public val telemetries: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.rum.inputs.AppMonitorConfigurationArgs =
        com.pulumi.awsnative.rum.inputs.AppMonitorConfigurationArgs.builder()
            .allowCookies(allowCookies?.applyValue({ args0 -> args0 }))
            .enableXRay(enableXRay?.applyValue({ args0 -> args0 }))
            .excludedPages(excludedPages?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .favoritePages(favoritePages?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .guestRoleArn(guestRoleArn?.applyValue({ args0 -> args0 }))
            .identityPoolId(identityPoolId?.applyValue({ args0 -> args0 }))
            .includedPages(includedPages?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .metricDestinations(
                metricDestinations?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .sessionSampleRate(sessionSampleRate?.applyValue({ args0 -> args0 }))
            .telemetries(
                telemetries?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [AppMonitorConfigurationArgs].
 */
@PulumiTagMarker
public class AppMonitorConfigurationArgsBuilder internal constructor() {
    private var allowCookies: Output? = null

    private var enableXRay: Output? = null

    private var excludedPages: Output>? = null

    private var favoritePages: Output>? = null

    private var guestRoleArn: Output? = null

    private var identityPoolId: Output? = null

    private var includedPages: Output>? = null

    private var metricDestinations: Output>? = null

    private var sessionSampleRate: Output? = null

    private var telemetries: Output>? = null

    /**
     * @param value If you set this to true, the RUM web client sets two cookies, a session cookie and a user cookie. The cookies allow the RUM web client to collect data relating to the number of users an application has and the behavior of the application across a sequence of events. Cookies are stored in the top-level domain of the current page.
     */
    @JvmName("coaifjydwvfaaldy")
    public suspend fun allowCookies(`value`: Output) {
        this.allowCookies = value
    }

    /**
     * @param value If you set this to true, RUM enables xray tracing for the user sessions that RUM samples. RUM adds an xray trace header to allowed HTTP requests. It also records an xray segment for allowed HTTP requests. You can see traces and segments from these user sessions in the xray console and the CW ServiceLens console.
     */
    @JvmName("ckpkkkblyubowjrp")
    public suspend fun enableXRay(`value`: Output) {
        this.enableXRay = value
    }

    /**
     * @param value A list of URLs in your website or application to exclude from RUM data collection. You can't include both ExcludedPages and IncludedPages in the same operation.
     */
    @JvmName("abvhcngrssgyppuc")
    public suspend fun excludedPages(`value`: Output>) {
        this.excludedPages = value
    }

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

    /**
     * @param values A list of URLs in your website or application to exclude from RUM data collection. You can't include both ExcludedPages and IncludedPages in the same operation.
     */
    @JvmName("qrjhnmggixsyungj")
    public suspend fun excludedPages(values: List>) {
        this.excludedPages = Output.all(values)
    }

    /**
     * @param value A list of pages in the RUM console that are to be displayed with a favorite icon.
     */
    @JvmName("hvqwydvtjhuefpig")
    public suspend fun favoritePages(`value`: Output>) {
        this.favoritePages = value
    }

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

    /**
     * @param values A list of pages in the RUM console that are to be displayed with a favorite icon.
     */
    @JvmName("ptwfnpfhonktaodg")
    public suspend fun favoritePages(values: List>) {
        this.favoritePages = Output.all(values)
    }

    /**
     * @param value The ARN of the guest IAM role that is attached to the identity pool that is used to authorize the sending of data to RUM.
     */
    @JvmName("llefynblbcyyheij")
    public suspend fun guestRoleArn(`value`: Output) {
        this.guestRoleArn = value
    }

    /**
     * @param value The ID of the identity pool that is used to authorize the sending of data to RUM.
     */
    @JvmName("fcyisrxsxbuqctvv")
    public suspend fun identityPoolId(`value`: Output) {
        this.identityPoolId = value
    }

    /**
     * @param value If this app monitor is to collect data from only certain pages in your application, this structure lists those pages. You can't include both ExcludedPages and IncludedPages in the same operation.
     */
    @JvmName("wpckcpvpmkxwhbtv")
    public suspend fun includedPages(`value`: Output>) {
        this.includedPages = value
    }

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

    /**
     * @param values If this app monitor is to collect data from only certain pages in your application, this structure lists those pages. You can't include both ExcludedPages and IncludedPages in the same operation.
     */
    @JvmName("nejjajufiwmhbxxw")
    public suspend fun includedPages(values: List>) {
        this.includedPages = Output.all(values)
    }

    /**
     * @param value An array of structures which define the destinations and the metrics that you want to send.
     */
    @JvmName("paadefxdbmrlwigp")
    public suspend fun metricDestinations(`value`: Output>) {
        this.metricDestinations = value
    }

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

    /**
     * @param values An array of structures which define the destinations and the metrics that you want to send.
     */
    @JvmName("rhdaupxmynpljxsg")
    public suspend fun metricDestinations(values: List>) {
        this.metricDestinations = Output.all(values)
    }

    /**
     * @param value Specifies the percentage of user sessions to use for RUM data collection. Choosing a higher percentage gives you more data but also incurs more costs. The number you specify is the percentage of user sessions that will be used. If you omit this parameter, the default of 10 is used.
     */
    @JvmName("fsjvqmiklsgkvaqa")
    public suspend fun sessionSampleRate(`value`: Output) {
        this.sessionSampleRate = value
    }

    /**
     * @param value An array that lists the types of telemetry data that this app monitor is to collect.
     */
    @JvmName("awlofgtxyawrkbey")
    public suspend fun telemetries(`value`: Output>) {
        this.telemetries = value
    }

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

    /**
     * @param values An array that lists the types of telemetry data that this app monitor is to collect.
     */
    @JvmName("erllvhcunllvlfir")
    public suspend fun telemetries(values: List>) {
        this.telemetries = Output.all(values)
    }

    /**
     * @param value If you set this to true, the RUM web client sets two cookies, a session cookie and a user cookie. The cookies allow the RUM web client to collect data relating to the number of users an application has and the behavior of the application across a sequence of events. Cookies are stored in the top-level domain of the current page.
     */
    @JvmName("fnwagnonuyajomfc")
    public suspend fun allowCookies(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowCookies = mapped
    }

    /**
     * @param value If you set this to true, RUM enables xray tracing for the user sessions that RUM samples. RUM adds an xray trace header to allowed HTTP requests. It also records an xray segment for allowed HTTP requests. You can see traces and segments from these user sessions in the xray console and the CW ServiceLens console.
     */
    @JvmName("xgouhriftvewaikl")
    public suspend fun enableXRay(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enableXRay = mapped
    }

    /**
     * @param value A list of URLs in your website or application to exclude from RUM data collection. You can't include both ExcludedPages and IncludedPages in the same operation.
     */
    @JvmName("xwkstahkkyihuohv")
    public suspend fun excludedPages(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludedPages = mapped
    }

    /**
     * @param values A list of URLs in your website or application to exclude from RUM data collection. You can't include both ExcludedPages and IncludedPages in the same operation.
     */
    @JvmName("oyhncabydhgrvpri")
    public suspend fun excludedPages(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.excludedPages = mapped
    }

    /**
     * @param value A list of pages in the RUM console that are to be displayed with a favorite icon.
     */
    @JvmName("qurkvjabklhitpfv")
    public suspend fun favoritePages(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.favoritePages = mapped
    }

    /**
     * @param values A list of pages in the RUM console that are to be displayed with a favorite icon.
     */
    @JvmName("sfhhsvblhsbdxflo")
    public suspend fun favoritePages(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.favoritePages = mapped
    }

    /**
     * @param value The ARN of the guest IAM role that is attached to the identity pool that is used to authorize the sending of data to RUM.
     */
    @JvmName("nsyxeqleasiiyryx")
    public suspend fun guestRoleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.guestRoleArn = mapped
    }

    /**
     * @param value The ID of the identity pool that is used to authorize the sending of data to RUM.
     */
    @JvmName("ermnouifyumbtpee")
    public suspend fun identityPoolId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.identityPoolId = mapped
    }

    /**
     * @param value If this app monitor is to collect data from only certain pages in your application, this structure lists those pages. You can't include both ExcludedPages and IncludedPages in the same operation.
     */
    @JvmName("uqnviegsffdxahrc")
    public suspend fun includedPages(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.includedPages = mapped
    }

    /**
     * @param values If this app monitor is to collect data from only certain pages in your application, this structure lists those pages. You can't include both ExcludedPages and IncludedPages in the same operation.
     */
    @JvmName("xhqqueyiiysbpjwt")
    public suspend fun includedPages(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.includedPages = mapped
    }

    /**
     * @param value An array of structures which define the destinations and the metrics that you want to send.
     */
    @JvmName("ukfmgvvggokptmyu")
    public suspend fun metricDestinations(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.metricDestinations = mapped
    }

    /**
     * @param argument An array of structures which define the destinations and the metrics that you want to send.
     */
    @JvmName("fimxikhewgervxlj")
    public suspend fun metricDestinations(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AppMonitorMetricDestinationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.metricDestinations = mapped
    }

    /**
     * @param argument An array of structures which define the destinations and the metrics that you want to send.
     */
    @JvmName("limptkolnrmweybg")
    public suspend fun metricDestinations(vararg argument: suspend AppMonitorMetricDestinationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AppMonitorMetricDestinationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.metricDestinations = mapped
    }

    /**
     * @param argument An array of structures which define the destinations and the metrics that you want to send.
     */
    @JvmName("aepdwmpnrryhdlyh")
    public suspend fun metricDestinations(argument: suspend AppMonitorMetricDestinationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            AppMonitorMetricDestinationArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.metricDestinations = mapped
    }

    /**
     * @param values An array of structures which define the destinations and the metrics that you want to send.
     */
    @JvmName("kdxchmbchjqtxtva")
    public suspend fun metricDestinations(vararg values: AppMonitorMetricDestinationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.metricDestinations = mapped
    }

    /**
     * @param value Specifies the percentage of user sessions to use for RUM data collection. Choosing a higher percentage gives you more data but also incurs more costs. The number you specify is the percentage of user sessions that will be used. If you omit this parameter, the default of 10 is used.
     */
    @JvmName("qtnafujnnxhrqane")
    public suspend fun sessionSampleRate(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sessionSampleRate = mapped
    }

    /**
     * @param value An array that lists the types of telemetry data that this app monitor is to collect.
     */
    @JvmName("tymgdxlbgiuhbmfh")
    public suspend fun telemetries(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.telemetries = mapped
    }

    /**
     * @param values An array that lists the types of telemetry data that this app monitor is to collect.
     */
    @JvmName("debxddcobhogdiwv")
    public suspend fun telemetries(vararg values: AppMonitorTelemetry) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.telemetries = mapped
    }

    internal fun build(): AppMonitorConfigurationArgs = AppMonitorConfigurationArgs(
        allowCookies = allowCookies,
        enableXRay = enableXRay,
        excludedPages = excludedPages,
        favoritePages = favoritePages,
        guestRoleArn = guestRoleArn,
        identityPoolId = identityPoolId,
        includedPages = includedPages,
        metricDestinations = metricDestinations,
        sessionSampleRate = sessionSampleRate,
        telemetries = telemetries,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy