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.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.location.kotlin
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.location.TrackerArgs.builder
import com.pulumi.awsnative.location.kotlin.enums.TrackerPositionFiltering
import com.pulumi.awsnative.location.kotlin.enums.TrackerPricingPlan
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
/**
* Definition of AWS::Location::Tracker Resource Type
* @property description An optional description for the tracker resource.
* @property eventBridgeEnabled
* @property kmsKeyEnableGeospatialQueries
* @property kmsKeyId A key identifier for an [AWS KMS customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) . Enter a key ID, key ARN, alias name, or alias ARN.
* @property positionFiltering Specifies the position filtering for the tracker resource.
* Valid values:
* - `TimeBased` - Location updates are evaluated against linked geofence collections, but not every location update is stored. If your update frequency is more often than 30 seconds, only one update per 30 seconds is stored for each unique device ID.
* - `DistanceBased` - If the device has moved less than 30 m (98.4 ft), location updates are ignored. Location updates within this area are neither evaluated against linked geofence collections, nor stored. This helps control costs by reducing the number of geofence evaluations and historical device positions to paginate through. Distance-based filtering can also reduce the effects of GPS noise when displaying device trajectories on a map.
* - `AccuracyBased` - If the device has moved less than the measured accuracy, location updates are ignored. For example, if two consecutive updates from a device have a horizontal accuracy of 5 m and 10 m, the second update is ignored if the device has moved less than 15 m. Ignored location updates are neither evaluated against linked geofence collections, nor stored. This can reduce the effects of GPS noise when displaying device trajectories on a map, and can help control your costs by reducing the number of geofence evaluations.
* This field is optional. If not specified, the default value is `TimeBased` .
* @property pricingPlan
* @property pricingPlanDataSource This shape is deprecated since 2022-02-01: Deprecated. No longer allowed.
* @property tags An array of key-value pairs to apply to this resource.
* @property trackerName The name for the tracker resource.
* Requirements:
* - Contain only alphanumeric characters (A-Z, a-z, 0-9) , hyphens (-), periods (.), and underscores (_).
* - Must be a unique tracker resource name.
* - No spaces allowed. For example, `ExampleTracker` .
*/
public data class TrackerArgs(
public val description: Output? = null,
public val eventBridgeEnabled: Output? = null,
public val kmsKeyEnableGeospatialQueries: Output? = null,
public val kmsKeyId: Output? = null,
public val positionFiltering: Output? = null,
public val pricingPlan: Output? = null,
public val pricingPlanDataSource: Output? = null,
public val tags: Output>? = null,
public val trackerName: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.location.TrackerArgs =
com.pulumi.awsnative.location.TrackerArgs.builder()
.description(description?.applyValue({ args0 -> args0 }))
.eventBridgeEnabled(eventBridgeEnabled?.applyValue({ args0 -> args0 }))
.kmsKeyEnableGeospatialQueries(kmsKeyEnableGeospatialQueries?.applyValue({ args0 -> args0 }))
.kmsKeyId(kmsKeyId?.applyValue({ args0 -> args0 }))
.positionFiltering(positionFiltering?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.pricingPlan(pricingPlan?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.pricingPlanDataSource(pricingPlanDataSource?.applyValue({ args0 -> args0 }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.trackerName(trackerName?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [TrackerArgs].
*/
@PulumiTagMarker
public class TrackerArgsBuilder internal constructor() {
private var description: Output? = null
private var eventBridgeEnabled: Output? = null
private var kmsKeyEnableGeospatialQueries: Output? = null
private var kmsKeyId: Output? = null
private var positionFiltering: Output? = null
private var pricingPlan: Output? = null
private var pricingPlanDataSource: Output? = null
private var tags: Output>? = null
private var trackerName: Output? = null
/**
* @param value An optional description for the tracker resource.
*/
@JvmName("hjnsqddqgxejihvn")
public suspend fun description(`value`: Output) {
this.description = value
}
/**
* @param value
*/
@JvmName("dfrifasaxkjeogau")
public suspend fun eventBridgeEnabled(`value`: Output) {
this.eventBridgeEnabled = value
}
/**
* @param value
*/
@JvmName("jqifmoxpkypeyhhv")
public suspend fun kmsKeyEnableGeospatialQueries(`value`: Output) {
this.kmsKeyEnableGeospatialQueries = value
}
/**
* @param value A key identifier for an [AWS KMS customer managed key](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) . Enter a key ID, key ARN, alias name, or alias ARN.
*/
@JvmName("hylnnqnywpbhlkvh")
public suspend fun kmsKeyId(`value`: Output) {
this.kmsKeyId = value
}
/**
* @param value Specifies the position filtering for the tracker resource.
* Valid values:
* - `TimeBased` - Location updates are evaluated against linked geofence collections, but not every location update is stored. If your update frequency is more often than 30 seconds, only one update per 30 seconds is stored for each unique device ID.
* - `DistanceBased` - If the device has moved less than 30 m (98.4 ft), location updates are ignored. Location updates within this area are neither evaluated against linked geofence collections, nor stored. This helps control costs by reducing the number of geofence evaluations and historical device positions to paginate through. Distance-based filtering can also reduce the effects of GPS noise when displaying device trajectories on a map.
* - `AccuracyBased` - If the device has moved less than the measured accuracy, location updates are ignored. For example, if two consecutive updates from a device have a horizontal accuracy of 5 m and 10 m, the second update is ignored if the device has moved less than 15 m. Ignored location updates are neither evaluated against linked geofence collections, nor stored. This can reduce the effects of GPS noise when displaying device trajectories on a map, and can help control your costs by reducing the number of geofence evaluations.
* This field is optional. If not specified, the default value is `TimeBased` .
*/
@JvmName("uguybqtscownnlkr")
public suspend fun positionFiltering(`value`: Output) {
this.positionFiltering = value
}
/**
* @param value
*/
@JvmName("resatkogsxuxshtw")
public suspend fun pricingPlan(`value`: Output) {
this.pricingPlan = value
}
/**
* @param value This shape is deprecated since 2022-02-01: Deprecated. No longer allowed.
*/
@JvmName("qjvwaihmftgegoxi")
public suspend fun pricingPlanDataSource(`value`: Output) {
this.pricingPlanDataSource = value
}
/**
* @param value An array of key-value pairs to apply to this resource.
*/
@JvmName("noaytsjbhitpxblf")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
@JvmName("ebgkwiioupwxpuhr")
public suspend fun tags(vararg values: Output) {
this.tags = Output.all(values.asList())
}
/**
* @param values An array of key-value pairs to apply to this resource.
*/
@JvmName("fqgilhwbjoqmsqvh")
public suspend fun tags(values: List