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

com.pulumi.aws.iot.kotlin.inputs.IndexingConfigurationThingIndexingConfigurationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.aws.iot.kotlin.inputs

import com.pulumi.aws.iot.inputs.IndexingConfigurationThingIndexingConfigurationArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property customFields Contains custom field names and their data type. See below.
 * @property deviceDefenderIndexingMode Device Defender indexing mode. Valid values: `VIOLATIONS`, `OFF`. Default: `OFF`.
 * @property filter Required if `named_shadow_indexing_mode` is `ON`. Enables to add named shadows filtered by `filter` to fleet indexing configuration.
 * @property managedFields Contains fields that are indexed and whose types are already known by the Fleet Indexing service. See below.
 * @property namedShadowIndexingMode [Named shadow](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) indexing mode. Valid values: `ON`, `OFF`. Default: `OFF`.
 * @property thingConnectivityIndexingMode Thing connectivity indexing mode. Valid values: `STATUS`, `OFF`. Default: `OFF`.
 * @property thingIndexingMode Thing indexing mode. Valid values: `REGISTRY`, `REGISTRY_AND_SHADOW`, `OFF`.
 */
public data class IndexingConfigurationThingIndexingConfigurationArgs(
    public val customFields: Output>? = null,
    public val deviceDefenderIndexingMode: Output? = null,
    public val filter: Output? = null,
    public val managedFields: Output>? = null,
    public val namedShadowIndexingMode: Output? = null,
    public val thingConnectivityIndexingMode: Output? = null,
    public val thingIndexingMode: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.iot.inputs.IndexingConfigurationThingIndexingConfigurationArgs =
        com.pulumi.aws.iot.inputs.IndexingConfigurationThingIndexingConfigurationArgs.builder()
            .customFields(
                customFields?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .deviceDefenderIndexingMode(deviceDefenderIndexingMode?.applyValue({ args0 -> args0 }))
            .filter(filter?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .managedFields(
                managedFields?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .namedShadowIndexingMode(namedShadowIndexingMode?.applyValue({ args0 -> args0 }))
            .thingConnectivityIndexingMode(thingConnectivityIndexingMode?.applyValue({ args0 -> args0 }))
            .thingIndexingMode(thingIndexingMode.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [IndexingConfigurationThingIndexingConfigurationArgs].
 */
@PulumiTagMarker
public class IndexingConfigurationThingIndexingConfigurationArgsBuilder internal constructor() {
    private var customFields:
        Output>? = null

    private var deviceDefenderIndexingMode: Output? = null

    private var filter: Output? = null

    private var managedFields:
        Output>? = null

    private var namedShadowIndexingMode: Output? = null

    private var thingConnectivityIndexingMode: Output? = null

    private var thingIndexingMode: Output? = null

    /**
     * @param value Contains custom field names and their data type. See below.
     */
    @JvmName("dhdaxnphtensxeae")
    public suspend fun customFields(`value`: Output>) {
        this.customFields = value
    }

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

    /**
     * @param values Contains custom field names and their data type. See below.
     */
    @JvmName("sqtookjdhubwtxkj")
    public suspend fun customFields(values: List>) {
        this.customFields = Output.all(values)
    }

    /**
     * @param value Device Defender indexing mode. Valid values: `VIOLATIONS`, `OFF`. Default: `OFF`.
     */
    @JvmName("nlgfhvopqixrltkx")
    public suspend fun deviceDefenderIndexingMode(`value`: Output) {
        this.deviceDefenderIndexingMode = value
    }

    /**
     * @param value Required if `named_shadow_indexing_mode` is `ON`. Enables to add named shadows filtered by `filter` to fleet indexing configuration.
     */
    @JvmName("eywtqghxwdqnkwuc")
    public suspend fun filter(`value`: Output) {
        this.filter = value
    }

    /**
     * @param value Contains fields that are indexed and whose types are already known by the Fleet Indexing service. See below.
     */
    @JvmName("faloquheisxxjixk")
    public suspend fun managedFields(`value`: Output>) {
        this.managedFields = value
    }

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

    /**
     * @param values Contains fields that are indexed and whose types are already known by the Fleet Indexing service. See below.
     */
    @JvmName("admlikkjycpqnbar")
    public suspend fun managedFields(values: List>) {
        this.managedFields = Output.all(values)
    }

    /**
     * @param value [Named shadow](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) indexing mode. Valid values: `ON`, `OFF`. Default: `OFF`.
     */
    @JvmName("egwqesvvshelnxfn")
    public suspend fun namedShadowIndexingMode(`value`: Output) {
        this.namedShadowIndexingMode = value
    }

    /**
     * @param value Thing connectivity indexing mode. Valid values: `STATUS`, `OFF`. Default: `OFF`.
     */
    @JvmName("koykmoonirctpnnp")
    public suspend fun thingConnectivityIndexingMode(`value`: Output) {
        this.thingConnectivityIndexingMode = value
    }

    /**
     * @param value Thing indexing mode. Valid values: `REGISTRY`, `REGISTRY_AND_SHADOW`, `OFF`.
     */
    @JvmName("awpepidqwjfsyjgm")
    public suspend fun thingIndexingMode(`value`: Output) {
        this.thingIndexingMode = value
    }

    /**
     * @param value Contains custom field names and their data type. See below.
     */
    @JvmName("dopfhftpjwfmemwa")
    public suspend fun customFields(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customFields = mapped
    }

    /**
     * @param argument Contains custom field names and their data type. See below.
     */
    @JvmName("fvdrflcqgofngbtc")
    public suspend fun customFields(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            IndexingConfigurationThingIndexingConfigurationCustomFieldArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.customFields = mapped
    }

    /**
     * @param argument Contains custom field names and their data type. See below.
     */
    @JvmName("tccgaxinnkgiqtfm")
    public suspend fun customFields(vararg argument: suspend IndexingConfigurationThingIndexingConfigurationCustomFieldArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            IndexingConfigurationThingIndexingConfigurationCustomFieldArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.customFields = mapped
    }

    /**
     * @param argument Contains custom field names and their data type. See below.
     */
    @JvmName("wamanbavcejgbevl")
    public suspend fun customFields(argument: suspend IndexingConfigurationThingIndexingConfigurationCustomFieldArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                IndexingConfigurationThingIndexingConfigurationCustomFieldArgsBuilder().applySuspend
                    { argument() }.build(),
            )
        val mapped = of(toBeMapped)
        this.customFields = mapped
    }

    /**
     * @param values Contains custom field names and their data type. See below.
     */
    @JvmName("lanelvqolhupdheg")
    public suspend fun customFields(vararg values: IndexingConfigurationThingIndexingConfigurationCustomFieldArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.customFields = mapped
    }

    /**
     * @param value Device Defender indexing mode. Valid values: `VIOLATIONS`, `OFF`. Default: `OFF`.
     */
    @JvmName("xrpwfmjvoebixwtn")
    public suspend fun deviceDefenderIndexingMode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.deviceDefenderIndexingMode = mapped
    }

    /**
     * @param value Required if `named_shadow_indexing_mode` is `ON`. Enables to add named shadows filtered by `filter` to fleet indexing configuration.
     */
    @JvmName("xgqxadawgvjlqlvu")
    public suspend fun filter(`value`: IndexingConfigurationThingIndexingConfigurationFilterArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.filter = mapped
    }

    /**
     * @param argument Required if `named_shadow_indexing_mode` is `ON`. Enables to add named shadows filtered by `filter` to fleet indexing configuration.
     */
    @JvmName("noaumgedldodlmnx")
    public suspend fun filter(argument: suspend IndexingConfigurationThingIndexingConfigurationFilterArgsBuilder.() -> Unit) {
        val toBeMapped =
            IndexingConfigurationThingIndexingConfigurationFilterArgsBuilder().applySuspend {
                argument()
            }.build()
        val mapped = of(toBeMapped)
        this.filter = mapped
    }

    /**
     * @param value Contains fields that are indexed and whose types are already known by the Fleet Indexing service. See below.
     */
    @JvmName("phwvimtmfrorjokg")
    public suspend fun managedFields(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.managedFields = mapped
    }

    /**
     * @param argument Contains fields that are indexed and whose types are already known by the Fleet Indexing service. See below.
     */
    @JvmName("ornampyblniwpckj")
    public suspend fun managedFields(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            IndexingConfigurationThingIndexingConfigurationManagedFieldArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.managedFields = mapped
    }

    /**
     * @param argument Contains fields that are indexed and whose types are already known by the Fleet Indexing service. See below.
     */
    @JvmName("skaxfpxilndcavnm")
    public suspend fun managedFields(vararg argument: suspend IndexingConfigurationThingIndexingConfigurationManagedFieldArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            IndexingConfigurationThingIndexingConfigurationManagedFieldArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.managedFields = mapped
    }

    /**
     * @param argument Contains fields that are indexed and whose types are already known by the Fleet Indexing service. See below.
     */
    @JvmName("gdvhhjmveaomccbg")
    public suspend fun managedFields(argument: suspend IndexingConfigurationThingIndexingConfigurationManagedFieldArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                IndexingConfigurationThingIndexingConfigurationManagedFieldArgsBuilder().applySuspend
                    { argument() }.build(),
            )
        val mapped = of(toBeMapped)
        this.managedFields = mapped
    }

    /**
     * @param values Contains fields that are indexed and whose types are already known by the Fleet Indexing service. See below.
     */
    @JvmName("mcurvawbdnrdamxe")
    public suspend fun managedFields(vararg values: IndexingConfigurationThingIndexingConfigurationManagedFieldArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.managedFields = mapped
    }

    /**
     * @param value [Named shadow](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html) indexing mode. Valid values: `ON`, `OFF`. Default: `OFF`.
     */
    @JvmName("fphxthqnllnriigu")
    public suspend fun namedShadowIndexingMode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.namedShadowIndexingMode = mapped
    }

    /**
     * @param value Thing connectivity indexing mode. Valid values: `STATUS`, `OFF`. Default: `OFF`.
     */
    @JvmName("xhlhlaxriaaekmnm")
    public suspend fun thingConnectivityIndexingMode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.thingConnectivityIndexingMode = mapped
    }

    /**
     * @param value Thing indexing mode. Valid values: `REGISTRY`, `REGISTRY_AND_SHADOW`, `OFF`.
     */
    @JvmName("hoegnfjxxknclled")
    public suspend fun thingIndexingMode(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.thingIndexingMode = mapped
    }

    internal fun build(): IndexingConfigurationThingIndexingConfigurationArgs =
        IndexingConfigurationThingIndexingConfigurationArgs(
            customFields = customFields,
            deviceDefenderIndexingMode = deviceDefenderIndexingMode,
            filter = filter,
            managedFields = managedFields,
            namedShadowIndexingMode = namedShadowIndexingMode,
            thingConnectivityIndexingMode = thingConnectivityIndexingMode,
            thingIndexingMode = thingIndexingMode ?: throw PulumiNullFieldException("thingIndexingMode"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy