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

com.pulumi.awsnative.resourcegroups.kotlin.inputs.GroupQueryArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.resourcegroups.kotlin.inputs

import com.pulumi.awsnative.resourcegroups.inputs.GroupQueryArgs.builder
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property resourceTypeFilters Specifies limits to the types of resources that can be included in the resource group. For example, if `ResourceTypeFilters` is `["AWS::EC2::Instance", "AWS::DynamoDB::Table"]` , only EC2 instances or DynamoDB tables can be members of this resource group. The default value is `["AWS::AllSupported"]` .
 * @property stackIdentifier Specifies the ARN of a CloudFormation stack. All supported resources of the CloudFormation stack are members of the resource group. If you don't specify an ARN, this parameter defaults to the current stack that you are defining, which means that all the resources of the current stack are grouped.
 * You can specify a value for `StackIdentifier` only when the `ResourceQuery.Type` property is `CLOUDFORMATION_STACK_1_0.`
 * @property tagFilters A list of key-value pair objects that limit which resources can be members of the resource group. This property is required when the `ResourceQuery.Type` property is `TAG_FILTERS_1_0` .
 * A resource must have a tag that matches every filter that is provided in the `TagFilters` list.
 */
public data class GroupQueryArgs(
    public val resourceTypeFilters: Output>? = null,
    public val stackIdentifier: Output? = null,
    public val tagFilters: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.resourcegroups.inputs.GroupQueryArgs =
        com.pulumi.awsnative.resourcegroups.inputs.GroupQueryArgs.builder()
            .resourceTypeFilters(resourceTypeFilters?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .stackIdentifier(stackIdentifier?.applyValue({ args0 -> args0 }))
            .tagFilters(
                tagFilters?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

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

    private var stackIdentifier: Output? = null

    private var tagFilters: Output>? = null

    /**
     * @param value Specifies limits to the types of resources that can be included in the resource group. For example, if `ResourceTypeFilters` is `["AWS::EC2::Instance", "AWS::DynamoDB::Table"]` , only EC2 instances or DynamoDB tables can be members of this resource group. The default value is `["AWS::AllSupported"]` .
     */
    @JvmName("lvffwebsdydumyoh")
    public suspend fun resourceTypeFilters(`value`: Output>) {
        this.resourceTypeFilters = value
    }

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

    /**
     * @param values Specifies limits to the types of resources that can be included in the resource group. For example, if `ResourceTypeFilters` is `["AWS::EC2::Instance", "AWS::DynamoDB::Table"]` , only EC2 instances or DynamoDB tables can be members of this resource group. The default value is `["AWS::AllSupported"]` .
     */
    @JvmName("munlghllbhygjwkt")
    public suspend fun resourceTypeFilters(values: List>) {
        this.resourceTypeFilters = Output.all(values)
    }

    /**
     * @param value Specifies the ARN of a CloudFormation stack. All supported resources of the CloudFormation stack are members of the resource group. If you don't specify an ARN, this parameter defaults to the current stack that you are defining, which means that all the resources of the current stack are grouped.
     * You can specify a value for `StackIdentifier` only when the `ResourceQuery.Type` property is `CLOUDFORMATION_STACK_1_0.`
     */
    @JvmName("fgtuvopbygiabvue")
    public suspend fun stackIdentifier(`value`: Output) {
        this.stackIdentifier = value
    }

    /**
     * @param value A list of key-value pair objects that limit which resources can be members of the resource group. This property is required when the `ResourceQuery.Type` property is `TAG_FILTERS_1_0` .
     * A resource must have a tag that matches every filter that is provided in the `TagFilters` list.
     */
    @JvmName("feqbumedvdkkqyev")
    public suspend fun tagFilters(`value`: Output>) {
        this.tagFilters = value
    }

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

    /**
     * @param values A list of key-value pair objects that limit which resources can be members of the resource group. This property is required when the `ResourceQuery.Type` property is `TAG_FILTERS_1_0` .
     * A resource must have a tag that matches every filter that is provided in the `TagFilters` list.
     */
    @JvmName("byurxuqbanmagnui")
    public suspend fun tagFilters(values: List>) {
        this.tagFilters = Output.all(values)
    }

    /**
     * @param value Specifies limits to the types of resources that can be included in the resource group. For example, if `ResourceTypeFilters` is `["AWS::EC2::Instance", "AWS::DynamoDB::Table"]` , only EC2 instances or DynamoDB tables can be members of this resource group. The default value is `["AWS::AllSupported"]` .
     */
    @JvmName("vmmhcofiqwycapbi")
    public suspend fun resourceTypeFilters(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resourceTypeFilters = mapped
    }

    /**
     * @param values Specifies limits to the types of resources that can be included in the resource group. For example, if `ResourceTypeFilters` is `["AWS::EC2::Instance", "AWS::DynamoDB::Table"]` , only EC2 instances or DynamoDB tables can be members of this resource group. The default value is `["AWS::AllSupported"]` .
     */
    @JvmName("wcncpuwjwdxvgyay")
    public suspend fun resourceTypeFilters(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.resourceTypeFilters = mapped
    }

    /**
     * @param value Specifies the ARN of a CloudFormation stack. All supported resources of the CloudFormation stack are members of the resource group. If you don't specify an ARN, this parameter defaults to the current stack that you are defining, which means that all the resources of the current stack are grouped.
     * You can specify a value for `StackIdentifier` only when the `ResourceQuery.Type` property is `CLOUDFORMATION_STACK_1_0.`
     */
    @JvmName("jlvfiwypdhndiqbn")
    public suspend fun stackIdentifier(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.stackIdentifier = mapped
    }

    /**
     * @param value A list of key-value pair objects that limit which resources can be members of the resource group. This property is required when the `ResourceQuery.Type` property is `TAG_FILTERS_1_0` .
     * A resource must have a tag that matches every filter that is provided in the `TagFilters` list.
     */
    @JvmName("lnlyttxolaeffsqy")
    public suspend fun tagFilters(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tagFilters = mapped
    }

    /**
     * @param argument A list of key-value pair objects that limit which resources can be members of the resource group. This property is required when the `ResourceQuery.Type` property is `TAG_FILTERS_1_0` .
     * A resource must have a tag that matches every filter that is provided in the `TagFilters` list.
     */
    @JvmName("tsqmettfwqkcmeit")
    public suspend fun tagFilters(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            GroupTagFilterArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.tagFilters = mapped
    }

    /**
     * @param argument A list of key-value pair objects that limit which resources can be members of the resource group. This property is required when the `ResourceQuery.Type` property is `TAG_FILTERS_1_0` .
     * A resource must have a tag that matches every filter that is provided in the `TagFilters` list.
     */
    @JvmName("cmllvilatmbkogxm")
    public suspend fun tagFilters(vararg argument: suspend GroupTagFilterArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            GroupTagFilterArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.tagFilters = mapped
    }

    /**
     * @param argument A list of key-value pair objects that limit which resources can be members of the resource group. This property is required when the `ResourceQuery.Type` property is `TAG_FILTERS_1_0` .
     * A resource must have a tag that matches every filter that is provided in the `TagFilters` list.
     */
    @JvmName("brpmnijjvjfajbac")
    public suspend fun tagFilters(argument: suspend GroupTagFilterArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(GroupTagFilterArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tagFilters = mapped
    }

    /**
     * @param values A list of key-value pair objects that limit which resources can be members of the resource group. This property is required when the `ResourceQuery.Type` property is `TAG_FILTERS_1_0` .
     * A resource must have a tag that matches every filter that is provided in the `TagFilters` list.
     */
    @JvmName("dofngyjqkkvcgnlk")
    public suspend fun tagFilters(vararg values: GroupTagFilterArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tagFilters = mapped
    }

    internal fun build(): GroupQueryArgs = GroupQueryArgs(
        resourceTypeFilters = resourceTypeFilters,
        stackIdentifier = stackIdentifier,
        tagFilters = tagFilters,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy