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

com.pulumi.awsnative.quicksight.kotlin.DashboardArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.quicksight.kotlin

import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.quicksight.DashboardArgs.builder
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardLinkSharingConfigurationArgs
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardLinkSharingConfigurationArgsBuilder
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardParametersArgs
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardParametersArgsBuilder
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardPublishOptionsArgs
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardPublishOptionsArgsBuilder
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardResourcePermissionArgs
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardResourcePermissionArgsBuilder
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardSourceEntityArgs
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardSourceEntityArgsBuilder
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardValidationStrategyArgs
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardValidationStrategyArgsBuilder
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardVersionDefinitionArgs
import com.pulumi.awsnative.quicksight.kotlin.inputs.DashboardVersionDefinitionArgsBuilder
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

/**
 * Definition of the AWS::QuickSight::Dashboard Resource Type.
 * @property awsAccountId The ID of the AWS account where you want to create the dashboard.
 * @property dashboardId The ID for the dashboard, also added to the IAM policy.
 * @property dashboardPublishOptions Options for publishing the dashboard when you create it:
 * - `AvailabilityStatus` for `AdHocFilteringOption` - This status can be either `ENABLED` or `DISABLED` . When this is set to `DISABLED` , Amazon QuickSight disables the left filter pane on the published dashboard, which can be used for ad hoc (one-time) filtering. This option is `ENABLED` by default.
 * - `AvailabilityStatus` for `ExportToCSVOption` - This status can be either `ENABLED` or `DISABLED` . The visual option to export data to .CSV format isn't enabled when this is set to `DISABLED` . This option is `ENABLED` by default.
 * - `VisibilityState` for `SheetControlsOption` - This visibility state can be either `COLLAPSED` or `EXPANDED` . This option is `COLLAPSED` by default.
 * @property definition
 * @property linkEntities A list of analysis Amazon Resource Names (ARNs) to be linked to the dashboard.
 * @property linkSharingConfiguration A structure that contains the link sharing configurations that you want to apply overrides to.
 * @property name The display name of the dashboard.
 * @property parameters The parameters for the creation of the dashboard, which you want to use to override the default settings. A dashboard can have any type of parameters, and some parameters might accept multiple values.
 * @property permissions A structure that contains the permissions of the dashboard. You can use this structure for granting permissions by providing a list of IAM action information for each principal ARN.
 * To specify no permissions, omit the permissions list.
 * @property sourceEntity The entity that you are using as a source when you create the dashboard. In `SourceEntity` , you specify the type of object that you want to use. You can only create a dashboard from a template, so you use a `SourceTemplate` entity. If you need to create a dashboard from an analysis, first convert the analysis to a template by using the `CreateTemplate` API operation. For `SourceTemplate` , specify the Amazon Resource Name (ARN) of the source template. The `SourceTemplate` ARN can contain any AWS account; and any QuickSight-supported AWS Region .
 * Use the `DataSetReferences` entity within `SourceTemplate` to list the replacement datasets for the placeholders listed in the original. The schema in each dataset must match its placeholder.
 * @property tags Contains a map of the key-value pairs for the resource tag or tags assigned to the dashboard.
 * @property themeArn The Amazon Resource Name (ARN) of the theme that is being used for this dashboard. If you add a value for this field, it overrides the value that is used in the source entity. The theme ARN must exist in the same AWS account where you create the dashboard.
 * @property validationStrategy The option to relax the validation that is required to create and update analyses, dashboards, and templates with definition objects. When you set this value to `LENIENT` , validation is skipped for specific errors.
 * @property versionDescription A description for the first version of the dashboard being created.
 */
public data class DashboardArgs(
    public val awsAccountId: Output? = null,
    public val dashboardId: Output? = null,
    public val dashboardPublishOptions: Output? = null,
    public val definition: Output? = null,
    public val linkEntities: Output>? = null,
    public val linkSharingConfiguration: Output? = null,
    public val name: Output? = null,
    public val parameters: Output? = null,
    public val permissions: Output>? = null,
    public val sourceEntity: Output? = null,
    public val tags: Output>? = null,
    public val themeArn: Output? = null,
    public val validationStrategy: Output? = null,
    public val versionDescription: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.quicksight.DashboardArgs =
        com.pulumi.awsnative.quicksight.DashboardArgs.builder()
            .awsAccountId(awsAccountId?.applyValue({ args0 -> args0 }))
            .dashboardId(dashboardId?.applyValue({ args0 -> args0 }))
            .dashboardPublishOptions(
                dashboardPublishOptions?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .definition(definition?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .linkEntities(linkEntities?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .linkSharingConfiguration(
                linkSharingConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .parameters(parameters?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .permissions(
                permissions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .sourceEntity(sourceEntity?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .themeArn(themeArn?.applyValue({ args0 -> args0 }))
            .validationStrategy(
                validationStrategy?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .versionDescription(versionDescription?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [DashboardArgs].
 */
@PulumiTagMarker
public class DashboardArgsBuilder internal constructor() {
    private var awsAccountId: Output? = null

    private var dashboardId: Output? = null

    private var dashboardPublishOptions: Output? = null

    private var definition: Output? = null

    private var linkEntities: Output>? = null

    private var linkSharingConfiguration: Output? = null

    private var name: Output? = null

    private var parameters: Output? = null

    private var permissions: Output>? = null

    private var sourceEntity: Output? = null

    private var tags: Output>? = null

    private var themeArn: Output? = null

    private var validationStrategy: Output? = null

    private var versionDescription: Output? = null

    /**
     * @param value The ID of the AWS account where you want to create the dashboard.
     */
    @JvmName("tjungypqvmbvsvib")
    public suspend fun awsAccountId(`value`: Output) {
        this.awsAccountId = value
    }

    /**
     * @param value The ID for the dashboard, also added to the IAM policy.
     */
    @JvmName("tanvcdjjuglaakrf")
    public suspend fun dashboardId(`value`: Output) {
        this.dashboardId = value
    }

    /**
     * @param value Options for publishing the dashboard when you create it:
     * - `AvailabilityStatus` for `AdHocFilteringOption` - This status can be either `ENABLED` or `DISABLED` . When this is set to `DISABLED` , Amazon QuickSight disables the left filter pane on the published dashboard, which can be used for ad hoc (one-time) filtering. This option is `ENABLED` by default.
     * - `AvailabilityStatus` for `ExportToCSVOption` - This status can be either `ENABLED` or `DISABLED` . The visual option to export data to .CSV format isn't enabled when this is set to `DISABLED` . This option is `ENABLED` by default.
     * - `VisibilityState` for `SheetControlsOption` - This visibility state can be either `COLLAPSED` or `EXPANDED` . This option is `COLLAPSED` by default.
     */
    @JvmName("dblhfqdeibllrpan")
    public suspend fun dashboardPublishOptions(`value`: Output) {
        this.dashboardPublishOptions = value
    }

    /**
     * @param value
     */
    @JvmName("iegrrfhsyiplgxjb")
    public suspend fun definition(`value`: Output) {
        this.definition = value
    }

    /**
     * @param value A list of analysis Amazon Resource Names (ARNs) to be linked to the dashboard.
     */
    @JvmName("mygtymmpvmfuuath")
    public suspend fun linkEntities(`value`: Output>) {
        this.linkEntities = value
    }

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

    /**
     * @param values A list of analysis Amazon Resource Names (ARNs) to be linked to the dashboard.
     */
    @JvmName("qgprefejgjwcdukv")
    public suspend fun linkEntities(values: List>) {
        this.linkEntities = Output.all(values)
    }

    /**
     * @param value A structure that contains the link sharing configurations that you want to apply overrides to.
     */
    @JvmName("owljaaiuikxpamxb")
    public suspend fun linkSharingConfiguration(`value`: Output) {
        this.linkSharingConfiguration = value
    }

    /**
     * @param value The display name of the dashboard.
     */
    @JvmName("tlrpjsjgdixbtylm")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The parameters for the creation of the dashboard, which you want to use to override the default settings. A dashboard can have any type of parameters, and some parameters might accept multiple values.
     */
    @JvmName("sqmvubmotgkylrgh")
    public suspend fun parameters(`value`: Output) {
        this.parameters = value
    }

    /**
     * @param value A structure that contains the permissions of the dashboard. You can use this structure for granting permissions by providing a list of IAM action information for each principal ARN.
     * To specify no permissions, omit the permissions list.
     */
    @JvmName("qicypltxqmughixm")
    public suspend fun permissions(`value`: Output>) {
        this.permissions = value
    }

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

    /**
     * @param values A structure that contains the permissions of the dashboard. You can use this structure for granting permissions by providing a list of IAM action information for each principal ARN.
     * To specify no permissions, omit the permissions list.
     */
    @JvmName("ttvgjtsadfwcagqf")
    public suspend fun permissions(values: List>) {
        this.permissions = Output.all(values)
    }

    /**
     * @param value The entity that you are using as a source when you create the dashboard. In `SourceEntity` , you specify the type of object that you want to use. You can only create a dashboard from a template, so you use a `SourceTemplate` entity. If you need to create a dashboard from an analysis, first convert the analysis to a template by using the `CreateTemplate` API operation. For `SourceTemplate` , specify the Amazon Resource Name (ARN) of the source template. The `SourceTemplate` ARN can contain any AWS account; and any QuickSight-supported AWS Region .
     * Use the `DataSetReferences` entity within `SourceTemplate` to list the replacement datasets for the placeholders listed in the original. The schema in each dataset must match its placeholder.
     */
    @JvmName("lrissruieliiyloc")
    public suspend fun sourceEntity(`value`: Output) {
        this.sourceEntity = value
    }

    /**
     * @param value Contains a map of the key-value pairs for the resource tag or tags assigned to the dashboard.
     */
    @JvmName("dgexmgxtjgypmxoi")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values Contains a map of the key-value pairs for the resource tag or tags assigned to the dashboard.
     */
    @JvmName("jqvfptdvwxlvlarh")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the theme that is being used for this dashboard. If you add a value for this field, it overrides the value that is used in the source entity. The theme ARN must exist in the same AWS account where you create the dashboard.
     */
    @JvmName("rptqccfagjpetkks")
    public suspend fun themeArn(`value`: Output) {
        this.themeArn = value
    }

    /**
     * @param value The option to relax the validation that is required to create and update analyses, dashboards, and templates with definition objects. When you set this value to `LENIENT` , validation is skipped for specific errors.
     */
    @JvmName("ibtsvwytibulrewy")
    public suspend fun validationStrategy(`value`: Output) {
        this.validationStrategy = value
    }

    /**
     * @param value A description for the first version of the dashboard being created.
     */
    @JvmName("wbpoaqeciicrpngf")
    public suspend fun versionDescription(`value`: Output) {
        this.versionDescription = value
    }

    /**
     * @param value The ID of the AWS account where you want to create the dashboard.
     */
    @JvmName("wqiswykhvxunksnk")
    public suspend fun awsAccountId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.awsAccountId = mapped
    }

    /**
     * @param value The ID for the dashboard, also added to the IAM policy.
     */
    @JvmName("pxrsfbrioxqvyosc")
    public suspend fun dashboardId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dashboardId = mapped
    }

    /**
     * @param value Options for publishing the dashboard when you create it:
     * - `AvailabilityStatus` for `AdHocFilteringOption` - This status can be either `ENABLED` or `DISABLED` . When this is set to `DISABLED` , Amazon QuickSight disables the left filter pane on the published dashboard, which can be used for ad hoc (one-time) filtering. This option is `ENABLED` by default.
     * - `AvailabilityStatus` for `ExportToCSVOption` - This status can be either `ENABLED` or `DISABLED` . The visual option to export data to .CSV format isn't enabled when this is set to `DISABLED` . This option is `ENABLED` by default.
     * - `VisibilityState` for `SheetControlsOption` - This visibility state can be either `COLLAPSED` or `EXPANDED` . This option is `COLLAPSED` by default.
     */
    @JvmName("rltuldhdyfstvxou")
    public suspend fun dashboardPublishOptions(`value`: DashboardPublishOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dashboardPublishOptions = mapped
    }

    /**
     * @param argument Options for publishing the dashboard when you create it:
     * - `AvailabilityStatus` for `AdHocFilteringOption` - This status can be either `ENABLED` or `DISABLED` . When this is set to `DISABLED` , Amazon QuickSight disables the left filter pane on the published dashboard, which can be used for ad hoc (one-time) filtering. This option is `ENABLED` by default.
     * - `AvailabilityStatus` for `ExportToCSVOption` - This status can be either `ENABLED` or `DISABLED` . The visual option to export data to .CSV format isn't enabled when this is set to `DISABLED` . This option is `ENABLED` by default.
     * - `VisibilityState` for `SheetControlsOption` - This visibility state can be either `COLLAPSED` or `EXPANDED` . This option is `COLLAPSED` by default.
     */
    @JvmName("doqnnbiaacqcrvli")
    public suspend fun dashboardPublishOptions(argument: suspend DashboardPublishOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = DashboardPublishOptionsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.dashboardPublishOptions = mapped
    }

    /**
     * @param value
     */
    @JvmName("mthiorvwkgnbffxw")
    public suspend fun definition(`value`: DashboardVersionDefinitionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.definition = mapped
    }

    /**
     * @param argument
     */
    @JvmName("pmmrrnlofhrrubjy")
    public suspend fun definition(argument: suspend DashboardVersionDefinitionArgsBuilder.() -> Unit) {
        val toBeMapped = DashboardVersionDefinitionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.definition = mapped
    }

    /**
     * @param value A list of analysis Amazon Resource Names (ARNs) to be linked to the dashboard.
     */
    @JvmName("ypdamxeqbshhotuu")
    public suspend fun linkEntities(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.linkEntities = mapped
    }

    /**
     * @param values A list of analysis Amazon Resource Names (ARNs) to be linked to the dashboard.
     */
    @JvmName("hxqdcolssjrslevr")
    public suspend fun linkEntities(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.linkEntities = mapped
    }

    /**
     * @param value A structure that contains the link sharing configurations that you want to apply overrides to.
     */
    @JvmName("tchsglbjwfrhgfbu")
    public suspend fun linkSharingConfiguration(`value`: DashboardLinkSharingConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.linkSharingConfiguration = mapped
    }

    /**
     * @param argument A structure that contains the link sharing configurations that you want to apply overrides to.
     */
    @JvmName("agelptaqqlrxpxcu")
    public suspend fun linkSharingConfiguration(argument: suspend DashboardLinkSharingConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DashboardLinkSharingConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.linkSharingConfiguration = mapped
    }

    /**
     * @param value The display name of the dashboard.
     */
    @JvmName("vkyomjdvlstuqbeh")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The parameters for the creation of the dashboard, which you want to use to override the default settings. A dashboard can have any type of parameters, and some parameters might accept multiple values.
     */
    @JvmName("mfawwgsuumpwbryt")
    public suspend fun parameters(`value`: DashboardParametersArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.parameters = mapped
    }

    /**
     * @param argument The parameters for the creation of the dashboard, which you want to use to override the default settings. A dashboard can have any type of parameters, and some parameters might accept multiple values.
     */
    @JvmName("wmditdkmgtxajvfl")
    public suspend fun parameters(argument: suspend DashboardParametersArgsBuilder.() -> Unit) {
        val toBeMapped = DashboardParametersArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.parameters = mapped
    }

    /**
     * @param value A structure that contains the permissions of the dashboard. You can use this structure for granting permissions by providing a list of IAM action information for each principal ARN.
     * To specify no permissions, omit the permissions list.
     */
    @JvmName("xjgqnhkpjqesmcya")
    public suspend fun permissions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.permissions = mapped
    }

    /**
     * @param argument A structure that contains the permissions of the dashboard. You can use this structure for granting permissions by providing a list of IAM action information for each principal ARN.
     * To specify no permissions, omit the permissions list.
     */
    @JvmName("vnortjhdkfhgkcwk")
    public suspend fun permissions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DashboardResourcePermissionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.permissions = mapped
    }

    /**
     * @param argument A structure that contains the permissions of the dashboard. You can use this structure for granting permissions by providing a list of IAM action information for each principal ARN.
     * To specify no permissions, omit the permissions list.
     */
    @JvmName("imrsjxnmknolmeac")
    public suspend fun permissions(vararg argument: suspend DashboardResourcePermissionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DashboardResourcePermissionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.permissions = mapped
    }

    /**
     * @param argument A structure that contains the permissions of the dashboard. You can use this structure for granting permissions by providing a list of IAM action information for each principal ARN.
     * To specify no permissions, omit the permissions list.
     */
    @JvmName("ynjnpbnbcogpaldn")
    public suspend fun permissions(argument: suspend DashboardResourcePermissionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            DashboardResourcePermissionArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.permissions = mapped
    }

    /**
     * @param values A structure that contains the permissions of the dashboard. You can use this structure for granting permissions by providing a list of IAM action information for each principal ARN.
     * To specify no permissions, omit the permissions list.
     */
    @JvmName("hvxgcmxbvuxvvsvv")
    public suspend fun permissions(vararg values: DashboardResourcePermissionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.permissions = mapped
    }

    /**
     * @param value The entity that you are using as a source when you create the dashboard. In `SourceEntity` , you specify the type of object that you want to use. You can only create a dashboard from a template, so you use a `SourceTemplate` entity. If you need to create a dashboard from an analysis, first convert the analysis to a template by using the `CreateTemplate` API operation. For `SourceTemplate` , specify the Amazon Resource Name (ARN) of the source template. The `SourceTemplate` ARN can contain any AWS account; and any QuickSight-supported AWS Region .
     * Use the `DataSetReferences` entity within `SourceTemplate` to list the replacement datasets for the placeholders listed in the original. The schema in each dataset must match its placeholder.
     */
    @JvmName("iyughkifaxlegbfw")
    public suspend fun sourceEntity(`value`: DashboardSourceEntityArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceEntity = mapped
    }

    /**
     * @param argument The entity that you are using as a source when you create the dashboard. In `SourceEntity` , you specify the type of object that you want to use. You can only create a dashboard from a template, so you use a `SourceTemplate` entity. If you need to create a dashboard from an analysis, first convert the analysis to a template by using the `CreateTemplate` API operation. For `SourceTemplate` , specify the Amazon Resource Name (ARN) of the source template. The `SourceTemplate` ARN can contain any AWS account; and any QuickSight-supported AWS Region .
     * Use the `DataSetReferences` entity within `SourceTemplate` to list the replacement datasets for the placeholders listed in the original. The schema in each dataset must match its placeholder.
     */
    @JvmName("xitnvwmgaqvccjwd")
    public suspend fun sourceEntity(argument: suspend DashboardSourceEntityArgsBuilder.() -> Unit) {
        val toBeMapped = DashboardSourceEntityArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.sourceEntity = mapped
    }

    /**
     * @param value Contains a map of the key-value pairs for the resource tag or tags assigned to the dashboard.
     */
    @JvmName("fcxndjoneiyfoqjh")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument Contains a map of the key-value pairs for the resource tag or tags assigned to the dashboard.
     */
    @JvmName("swnqvjcafvkngwse")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument Contains a map of the key-value pairs for the resource tag or tags assigned to the dashboard.
     */
    @JvmName("pusxkgpusgqjxoon")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument Contains a map of the key-value pairs for the resource tag or tags assigned to the dashboard.
     */
    @JvmName("jrlpbsxndjjjmxag")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values Contains a map of the key-value pairs for the resource tag or tags assigned to the dashboard.
     */
    @JvmName("jxufyesivnykmfdo")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the theme that is being used for this dashboard. If you add a value for this field, it overrides the value that is used in the source entity. The theme ARN must exist in the same AWS account where you create the dashboard.
     */
    @JvmName("wbiqjkxicsvjwnff")
    public suspend fun themeArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.themeArn = mapped
    }

    /**
     * @param value The option to relax the validation that is required to create and update analyses, dashboards, and templates with definition objects. When you set this value to `LENIENT` , validation is skipped for specific errors.
     */
    @JvmName("huokbhehjsmcixfg")
    public suspend fun validationStrategy(`value`: DashboardValidationStrategyArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.validationStrategy = mapped
    }

    /**
     * @param argument The option to relax the validation that is required to create and update analyses, dashboards, and templates with definition objects. When you set this value to `LENIENT` , validation is skipped for specific errors.
     */
    @JvmName("jqmbfnboyuyydilm")
    public suspend fun validationStrategy(argument: suspend DashboardValidationStrategyArgsBuilder.() -> Unit) {
        val toBeMapped = DashboardValidationStrategyArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.validationStrategy = mapped
    }

    /**
     * @param value A description for the first version of the dashboard being created.
     */
    @JvmName("ruwgelqpbjsmxycs")
    public suspend fun versionDescription(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.versionDescription = mapped
    }

    internal fun build(): DashboardArgs = DashboardArgs(
        awsAccountId = awsAccountId,
        dashboardId = dashboardId,
        dashboardPublishOptions = dashboardPublishOptions,
        definition = definition,
        linkEntities = linkEntities,
        linkSharingConfiguration = linkSharingConfiguration,
        name = name,
        parameters = parameters,
        permissions = permissions,
        sourceEntity = sourceEntity,
        tags = tags,
        themeArn = themeArn,
        validationStrategy = validationStrategy,
        versionDescription = versionDescription,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy