Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.internetmonitor.kotlin
import com.pulumi.awsnative.internetmonitor.MonitorArgs.builder
import com.pulumi.awsnative.internetmonitor.kotlin.enums.MonitorConfigState
import com.pulumi.awsnative.internetmonitor.kotlin.inputs.MonitorHealthEventsConfigArgs
import com.pulumi.awsnative.internetmonitor.kotlin.inputs.MonitorHealthEventsConfigArgsBuilder
import com.pulumi.awsnative.internetmonitor.kotlin.inputs.MonitorInternetMeasurementsLogDeliveryArgs
import com.pulumi.awsnative.internetmonitor.kotlin.inputs.MonitorInternetMeasurementsLogDeliveryArgsBuilder
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.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Represents a monitor, which defines the monitoring boundaries for measurements that Internet Monitor publishes information about for an application
* @property healthEventsConfig A complex type with the configuration information that determines the threshold and other conditions for when Internet Monitor creates a health event for an overall performance or availability issue, across an application's geographies.
* Defines the percentages, for overall performance scores and availability scores for an application, that are the thresholds for when Amazon CloudWatch Internet Monitor creates a health event. You can override the defaults to set a custom threshold for overall performance or availability scores, or both.
* You can also set thresholds for local health scores,, where Internet Monitor creates a health event when scores cross a threshold for one or more city-networks, in addition to creating an event when an overall score crosses a threshold.
* If you don't set a health event threshold, the default value is 95%.
* For local thresholds, you also set a minimum percentage of overall traffic that is impacted by an issue before Internet Monitor creates an event. In addition, you can disable local thresholds, for performance scores, availability scores, or both.
* For more information, see [Change health event thresholds](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-IM-overview.html#IMUpdateThresholdFromOverview) in the Internet Monitor section of the *CloudWatch User Guide* .
* @property includeLinkedAccounts A boolean option that you can set to `TRUE` to include monitors for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see [Internet Monitor cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) in the Amazon CloudWatch User Guide.
* @property internetMeasurementsLogDelivery Publish internet measurements for a monitor for all city-networks (up to the 500,000 service limit) to another location, such as an Amazon S3 bucket. Measurements are also published to Amazon CloudWatch Logs for the first 500 (by traffic volume) city-networks (client locations and ASNs, typically internet service providers or ISPs).
* @property linkedAccountId The account ID for an account that you've set up cross-account sharing for in Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see [Internet Monitor cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) in the Amazon CloudWatch User Guide.
* @property maxCityNetworksToMonitor The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network, such as an internet service provider, that clients access the resources through.
* For more information, see [Choosing a city-network maximum value](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/IMCityNetworksMaximum.html) in *Using Amazon CloudWatch Internet Monitor* .
* @property monitorName The name of the monitor. A monitor name can contain only alphanumeric characters, dashes (-), periods (.), and underscores (_).
* @property resources The resources that have been added for the monitor, listed by their Amazon Resource Names (ARNs). Use this option to add or remove resources when making an update.
* > Be aware that if you include content in the `Resources` field when you update a monitor, the `ResourcesToAdd` and `ResourcesToRemove` fields must be empty.
* @property resourcesToAdd The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs). Resources can be Amazon Virtual Private Cloud VPCs, Network Load Balancers (NLBs), Amazon CloudFront distributions, or Amazon WorkSpaces directories.
* You can add a combination of VPCs and CloudFront distributions, or you can add WorkSpaces directories, or you can add NLBs. You can't add NLBs or WorkSpaces directories together with any other resources.
* If you add only VPC resources, at least one VPC must have an Internet Gateway attached to it, to make sure that it has internet connectivity.
* > You can specify this field for a monitor update only if the `Resources` field is empty.
* @property resourcesToRemove The resources to remove from a monitor, which you provide as a set of Amazon Resource Names (ARNs)
* > You can specify this field for a monitor update only if the `Resources` field is empty.
* @property status The status of a monitor. The accepted values that you can specify for `Status` are `ACTIVE` and `INACTIVE` .
* @property tags The tags for a monitor, listed as a set of *key:value* pairs.
* @property trafficPercentageToMonitor The percentage of the internet-facing traffic for your application that you want to monitor. You can also, optionally, set a limit for the number of city-networks (client locations and ASNs, typically internet service providers) that Internet Monitor will monitor traffic for. The city-networks maximum limit caps the number of city-networks that Internet Monitor monitors for your application, regardless of the percentage of traffic that you choose to monitor.
*/
public data class MonitorArgs(
public val healthEventsConfig: Output? = null,
public val includeLinkedAccounts: Output? = null,
public val internetMeasurementsLogDelivery: Output? =
null,
public val linkedAccountId: Output? = null,
public val maxCityNetworksToMonitor: Output? = null,
public val monitorName: Output? = null,
public val resources: Output>? = null,
public val resourcesToAdd: Output>? = null,
public val resourcesToRemove: Output>? = null,
public val status: Output? = null,
public val tags: Output>? = null,
public val trafficPercentageToMonitor: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.internetmonitor.MonitorArgs =
com.pulumi.awsnative.internetmonitor.MonitorArgs.builder()
.healthEventsConfig(
healthEventsConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.includeLinkedAccounts(includeLinkedAccounts?.applyValue({ args0 -> args0 }))
.internetMeasurementsLogDelivery(
internetMeasurementsLogDelivery?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.linkedAccountId(linkedAccountId?.applyValue({ args0 -> args0 }))
.maxCityNetworksToMonitor(maxCityNetworksToMonitor?.applyValue({ args0 -> args0 }))
.monitorName(monitorName?.applyValue({ args0 -> args0 }))
.resources(resources?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.resourcesToAdd(resourcesToAdd?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.resourcesToRemove(resourcesToRemove?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.status(status?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.trafficPercentageToMonitor(trafficPercentageToMonitor?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [MonitorArgs].
*/
@PulumiTagMarker
public class MonitorArgsBuilder internal constructor() {
private var healthEventsConfig: Output? = null
private var includeLinkedAccounts: Output? = null
private var internetMeasurementsLogDelivery: Output? =
null
private var linkedAccountId: Output? = null
private var maxCityNetworksToMonitor: Output? = null
private var monitorName: Output? = null
private var resources: Output>? = null
private var resourcesToAdd: Output>? = null
private var resourcesToRemove: Output>? = null
private var status: Output? = null
private var tags: Output>? = null
private var trafficPercentageToMonitor: Output? = null
/**
* @param value A complex type with the configuration information that determines the threshold and other conditions for when Internet Monitor creates a health event for an overall performance or availability issue, across an application's geographies.
* Defines the percentages, for overall performance scores and availability scores for an application, that are the thresholds for when Amazon CloudWatch Internet Monitor creates a health event. You can override the defaults to set a custom threshold for overall performance or availability scores, or both.
* You can also set thresholds for local health scores,, where Internet Monitor creates a health event when scores cross a threshold for one or more city-networks, in addition to creating an event when an overall score crosses a threshold.
* If you don't set a health event threshold, the default value is 95%.
* For local thresholds, you also set a minimum percentage of overall traffic that is impacted by an issue before Internet Monitor creates an event. In addition, you can disable local thresholds, for performance scores, availability scores, or both.
* For more information, see [Change health event thresholds](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-IM-overview.html#IMUpdateThresholdFromOverview) in the Internet Monitor section of the *CloudWatch User Guide* .
*/
@JvmName("qxapuidadasosddk")
public suspend fun healthEventsConfig(`value`: Output) {
this.healthEventsConfig = value
}
/**
* @param value A boolean option that you can set to `TRUE` to include monitors for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see [Internet Monitor cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) in the Amazon CloudWatch User Guide.
*/
@JvmName("aqrmvqbqxjeklwqg")
public suspend fun includeLinkedAccounts(`value`: Output) {
this.includeLinkedAccounts = value
}
/**
* @param value Publish internet measurements for a monitor for all city-networks (up to the 500,000 service limit) to another location, such as an Amazon S3 bucket. Measurements are also published to Amazon CloudWatch Logs for the first 500 (by traffic volume) city-networks (client locations and ASNs, typically internet service providers or ISPs).
*/
@JvmName("qhdtxqlhwdivwqan")
public suspend fun internetMeasurementsLogDelivery(`value`: Output) {
this.internetMeasurementsLogDelivery = value
}
/**
* @param value The account ID for an account that you've set up cross-account sharing for in Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see [Internet Monitor cross-account observability](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html) in the Amazon CloudWatch User Guide.
*/
@JvmName("fydkmtgxyxjopbwc")
public suspend fun linkedAccountId(`value`: Output) {
this.linkedAccountId = value
}
/**
* @param value The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network, such as an internet service provider, that clients access the resources through.
* For more information, see [Choosing a city-network maximum value](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/IMCityNetworksMaximum.html) in *Using Amazon CloudWatch Internet Monitor* .
*/
@JvmName("whjrmuxvdhmwulos")
public suspend fun maxCityNetworksToMonitor(`value`: Output) {
this.maxCityNetworksToMonitor = value
}
/**
* @param value The name of the monitor. A monitor name can contain only alphanumeric characters, dashes (-), periods (.), and underscores (_).
*/
@JvmName("xifpubjcalxnjtok")
public suspend fun monitorName(`value`: Output) {
this.monitorName = value
}
/**
* @param value The resources that have been added for the monitor, listed by their Amazon Resource Names (ARNs). Use this option to add or remove resources when making an update.
* > Be aware that if you include content in the `Resources` field when you update a monitor, the `ResourcesToAdd` and `ResourcesToRemove` fields must be empty.
*/
@JvmName("jkuguxgceclbbulr")
public suspend fun resources(`value`: Output>) {
this.resources = value
}
@JvmName("hynxxrmhdlkhcell")
public suspend fun resources(vararg values: Output) {
this.resources = Output.all(values.asList())
}
/**
* @param values The resources that have been added for the monitor, listed by their Amazon Resource Names (ARNs). Use this option to add or remove resources when making an update.
* > Be aware that if you include content in the `Resources` field when you update a monitor, the `ResourcesToAdd` and `ResourcesToRemove` fields must be empty.
*/
@JvmName("ilyffacnswhakigp")
public suspend fun resources(values: List