
commonMain.aws.sdk.kotlin.services.rum.model.AppMonitorConfiguration.kt Maven / Gradle / Ivy
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.rum.model
/**
* This structure contains much of the configuration data for the app monitor.
*/
public class AppMonitorConfiguration private constructor(builder: Builder) {
/**
* 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.
*/
public val allowCookies: kotlin.Boolean? = builder.allowCookies
/**
* If you set this to `true`, RUM enables X-Ray tracing for the user sessions that RUM samples. RUM adds an X-Ray trace header to allowed HTTP requests. It also records an X-Ray segment for allowed HTTP requests. You can see traces and segments from these user sessions in the X-Ray console and the CloudWatch ServiceLens console. For more information, see [What is X-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)
*/
public val enableXRay: kotlin.Boolean? = builder.enableXRay
/**
* 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.
*/
public val excludedPages: List? = builder.excludedPages
/**
* A list of pages in your application that are to be displayed with a "favorite" icon in the CloudWatch RUM console.
*/
public val favoritePages: List? = builder.favoritePages
/**
* The ARN of the guest IAM role that is attached to the Amazon Cognito identity pool that is used to authorize the sending of data to RUM.
*
* It is possible that an app monitor does not have a value for `GuestRoleArn`. For example, this can happen when you use the console to create an app monitor and you allow CloudWatch RUM to create a new identity pool for Authorization. In this case, `GuestRoleArn` is not present in the [GetAppMonitor](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_GetAppMonitor.html) response because it is not stored by the service.
*
* If this issue affects you, you can take one of the following steps:
* + Use the Cloud Development Kit (CDK) to create an identity pool and the associated IAM role, and use that for your app monitor.
* + Make a separate [GetIdentityPoolRoles](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetIdentityPoolRoles.html) call to Amazon Cognito to retrieve the `GuestRoleArn`.
*/
public val guestRoleArn: kotlin.String? = builder.guestRoleArn
/**
* The ID of the Amazon Cognito identity pool that is used to authorize the sending of data to RUM.
*/
public val identityPoolId: kotlin.String? = builder.identityPoolId
/**
* 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.
*/
public val includedPages: List? = builder.includedPages
/**
* Specifies the portion of user sessions to use for RUM data collection. Choosing a higher portion gives you more data but also incurs more costs.
*
* The range for this value is 0 to 1 inclusive. Setting this to 1 means that 100% of user sessions are sampled, and setting it to 0.1 means that 10% of user sessions are sampled.
*
* If you omit this parameter, the default of 0.1 is used, and 10% of sessions will be sampled.
*/
public val sessionSampleRate: kotlin.Double = builder.sessionSampleRate
/**
* An array that lists the types of telemetry data that this app monitor is to collect.
* + `errors` indicates that RUM collects data about unhandled JavaScript errors raised by your application.
* + `performance` indicates that RUM collects performance data about how your application and its resources are loaded and rendered. This includes Core Web Vitals.
* + `http` indicates that RUM collects data about HTTP errors thrown by your application.
*/
public val telemetries: List? = builder.telemetries
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.rum.model.AppMonitorConfiguration = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("AppMonitorConfiguration(")
append("allowCookies=$allowCookies,")
append("enableXRay=$enableXRay,")
append("excludedPages=$excludedPages,")
append("favoritePages=$favoritePages,")
append("guestRoleArn=$guestRoleArn,")
append("identityPoolId=$identityPoolId,")
append("includedPages=$includedPages,")
append("sessionSampleRate=$sessionSampleRate,")
append("telemetries=$telemetries")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = allowCookies?.hashCode() ?: 0
result = 31 * result + (enableXRay?.hashCode() ?: 0)
result = 31 * result + (excludedPages?.hashCode() ?: 0)
result = 31 * result + (favoritePages?.hashCode() ?: 0)
result = 31 * result + (guestRoleArn?.hashCode() ?: 0)
result = 31 * result + (identityPoolId?.hashCode() ?: 0)
result = 31 * result + (includedPages?.hashCode() ?: 0)
result = 31 * result + (sessionSampleRate.hashCode())
result = 31 * result + (telemetries?.hashCode() ?: 0)
return result
}
override fun equals(other: kotlin.Any?): kotlin.Boolean {
if (this === other) return true
if (other == null || this::class != other::class) return false
other as AppMonitorConfiguration
if (allowCookies != other.allowCookies) return false
if (enableXRay != other.enableXRay) return false
if (excludedPages != other.excludedPages) return false
if (favoritePages != other.favoritePages) return false
if (guestRoleArn != other.guestRoleArn) return false
if (identityPoolId != other.identityPoolId) return false
if (includedPages != other.includedPages) return false
if (sessionSampleRate != other.sessionSampleRate) return false
if (telemetries != other.telemetries) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.rum.model.AppMonitorConfiguration = Builder(this).apply(block).build()
public class Builder {
/**
* 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.
*/
public var allowCookies: kotlin.Boolean? = null
/**
* If you set this to `true`, RUM enables X-Ray tracing for the user sessions that RUM samples. RUM adds an X-Ray trace header to allowed HTTP requests. It also records an X-Ray segment for allowed HTTP requests. You can see traces and segments from these user sessions in the X-Ray console and the CloudWatch ServiceLens console. For more information, see [What is X-Ray?](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)
*/
public var enableXRay: kotlin.Boolean? = null
/**
* 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.
*/
public var excludedPages: List? = null
/**
* A list of pages in your application that are to be displayed with a "favorite" icon in the CloudWatch RUM console.
*/
public var favoritePages: List? = null
/**
* The ARN of the guest IAM role that is attached to the Amazon Cognito identity pool that is used to authorize the sending of data to RUM.
*
* It is possible that an app monitor does not have a value for `GuestRoleArn`. For example, this can happen when you use the console to create an app monitor and you allow CloudWatch RUM to create a new identity pool for Authorization. In this case, `GuestRoleArn` is not present in the [GetAppMonitor](https://docs.aws.amazon.com/cloudwatchrum/latest/APIReference/API_GetAppMonitor.html) response because it is not stored by the service.
*
* If this issue affects you, you can take one of the following steps:
* + Use the Cloud Development Kit (CDK) to create an identity pool and the associated IAM role, and use that for your app monitor.
* + Make a separate [GetIdentityPoolRoles](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetIdentityPoolRoles.html) call to Amazon Cognito to retrieve the `GuestRoleArn`.
*/
public var guestRoleArn: kotlin.String? = null
/**
* The ID of the Amazon Cognito identity pool that is used to authorize the sending of data to RUM.
*/
public var identityPoolId: kotlin.String? = null
/**
* 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.
*/
public var includedPages: List? = null
/**
* Specifies the portion of user sessions to use for RUM data collection. Choosing a higher portion gives you more data but also incurs more costs.
*
* The range for this value is 0 to 1 inclusive. Setting this to 1 means that 100% of user sessions are sampled, and setting it to 0.1 means that 10% of user sessions are sampled.
*
* If you omit this parameter, the default of 0.1 is used, and 10% of sessions will be sampled.
*/
public var sessionSampleRate: kotlin.Double = 0.0
/**
* An array that lists the types of telemetry data that this app monitor is to collect.
* + `errors` indicates that RUM collects data about unhandled JavaScript errors raised by your application.
* + `performance` indicates that RUM collects performance data about how your application and its resources are loaded and rendered. This includes Core Web Vitals.
* + `http` indicates that RUM collects data about HTTP errors thrown by your application.
*/
public var telemetries: List? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.rum.model.AppMonitorConfiguration) : this() {
this.allowCookies = x.allowCookies
this.enableXRay = x.enableXRay
this.excludedPages = x.excludedPages
this.favoritePages = x.favoritePages
this.guestRoleArn = x.guestRoleArn
this.identityPoolId = x.identityPoolId
this.includedPages = x.includedPages
this.sessionSampleRate = x.sessionSampleRate
this.telemetries = x.telemetries
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.rum.model.AppMonitorConfiguration = AppMonitorConfiguration(this)
internal fun correctErrors(): Builder {
return this
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy