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

io.cloudshiftdev.awscdk.services.quicksight.CfnDashboardProps.kt Maven / Gradle / Ivy

The newest version!
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")

package io.cloudshiftdev.awscdk.services.quicksight

import io.cloudshiftdev.awscdk.CfnTag
import io.cloudshiftdev.awscdk.IResolvable
import io.cloudshiftdev.awscdk.common.CdkDslMarker
import io.cloudshiftdev.awscdk.common.CdkObject
import io.cloudshiftdev.awscdk.common.CdkObjectWrappers
import kotlin.Any
import kotlin.String
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Properties for defining a `CfnDashboard`.
 *
 * Example:
 *
 * ```
 * ```
 *
 * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html)
 */
public interface CfnDashboardProps {
  /**
   * The ID of the AWS account where you want to create the dashboard.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-awsaccountid)
   */
  public fun awsAccountId(): String

  /**
   * The ID for the dashboard, also added to the IAM policy.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-dashboardid)
   */
  public fun dashboardId(): String

  /**
   * 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.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-dashboardpublishoptions)
   */
  public fun dashboardPublishOptions(): Any? = unwrap(this).getDashboardPublishOptions()

  /**
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-definition)
   */
  public fun definition(): Any? = unwrap(this).getDefinition()

  /**
   * A list of analysis Amazon Resource Names (ARNs) to be linked to the dashboard.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-linkentities)
   */
  public fun linkEntities(): List = unwrap(this).getLinkEntities() ?: emptyList()

  /**
   * A structure that contains the link sharing configurations that you want to apply overrides to.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-linksharingconfiguration)
   */
  public fun linkSharingConfiguration(): Any? = unwrap(this).getLinkSharingConfiguration()

  /**
   * The display name of the dashboard.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-name)
   */
  public fun name(): String

  /**
   * 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.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-parameters)
   */
  public fun parameters(): Any? = unwrap(this).getParameters()

  /**
   * 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.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-permissions)
   */
  public fun permissions(): Any? = unwrap(this).getPermissions()

  /**
   * 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.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-sourceentity)
   */
  public fun sourceEntity(): Any? = unwrap(this).getSourceEntity()

  /**
   * Contains a map of the key-value pairs for the resource tag or tags assigned to the dashboard.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-tags)
   */
  public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

  /**
   * 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.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-themearn)
   */
  public fun themeArn(): String? = unwrap(this).getThemeArn()

  /**
   * 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.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-validationstrategy)
   */
  public fun validationStrategy(): Any? = unwrap(this).getValidationStrategy()

  /**
   * A description for the first version of the dashboard being created.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-versiondescription)
   */
  public fun versionDescription(): String? = unwrap(this).getVersionDescription()

  /**
   * A builder for [CfnDashboardProps]
   */
  @CdkDslMarker
  public interface Builder {
    /**
     * @param awsAccountId The ID of the AWS account where you want to create the dashboard. 
     */
    public fun awsAccountId(awsAccountId: String)

    /**
     * @param dashboardId The ID for the dashboard, also added to the IAM policy. 
     */
    public fun dashboardId(dashboardId: String)

    /**
     * @param 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.
     */
    public fun dashboardPublishOptions(dashboardPublishOptions: IResolvable)

    /**
     * @param 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.
     */
    public
        fun dashboardPublishOptions(dashboardPublishOptions: CfnDashboard.DashboardPublishOptionsProperty)

    /**
     * @param 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.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("521cad66b24475f3536f61a35cce1e0730b9e30cbff100ce4afbb15a2c80f675")
    public
        fun dashboardPublishOptions(dashboardPublishOptions: CfnDashboard.DashboardPublishOptionsProperty.Builder.() -> Unit)

    /**
     * @param definition the value to be set.
     */
    public fun definition(definition: IResolvable)

    /**
     * @param definition the value to be set.
     */
    public fun definition(definition: CfnDashboard.DashboardVersionDefinitionProperty)

    /**
     * @param definition the value to be set.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("b0da9f3df5a8b6b57eb07e620534257232bd91095386fbebfd357f7eab1b2a8e")
    public
        fun definition(definition: CfnDashboard.DashboardVersionDefinitionProperty.Builder.() -> Unit)

    /**
     * @param linkEntities A list of analysis Amazon Resource Names (ARNs) to be linked to the
     * dashboard.
     */
    public fun linkEntities(linkEntities: List)

    /**
     * @param linkEntities A list of analysis Amazon Resource Names (ARNs) to be linked to the
     * dashboard.
     */
    public fun linkEntities(vararg linkEntities: String)

    /**
     * @param linkSharingConfiguration A structure that contains the link sharing configurations
     * that you want to apply overrides to.
     */
    public fun linkSharingConfiguration(linkSharingConfiguration: IResolvable)

    /**
     * @param linkSharingConfiguration A structure that contains the link sharing configurations
     * that you want to apply overrides to.
     */
    public
        fun linkSharingConfiguration(linkSharingConfiguration: CfnDashboard.LinkSharingConfigurationProperty)

    /**
     * @param linkSharingConfiguration A structure that contains the link sharing configurations
     * that you want to apply overrides to.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("e13a7efac4d32ed39e805135181c2462719ba38882ab71120be719f532de30bb")
    public
        fun linkSharingConfiguration(linkSharingConfiguration: CfnDashboard.LinkSharingConfigurationProperty.Builder.() -> Unit)

    /**
     * @param name The display name of the dashboard. 
     */
    public fun name(name: String)

    /**
     * @param 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.
     */
    public fun parameters(parameters: IResolvable)

    /**
     * @param 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.
     */
    public fun parameters(parameters: CfnDashboard.ParametersProperty)

    /**
     * @param 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.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("21550b4298c987419e492e58bf3138d109f919229d2151e5a190cf76f6454438")
    public fun parameters(parameters: CfnDashboard.ParametersProperty.Builder.() -> Unit)

    /**
     * @param 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.
     */
    public fun permissions(permissions: IResolvable)

    /**
     * @param 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.
     */
    public fun permissions(permissions: List)

    /**
     * @param 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.
     */
    public fun permissions(vararg permissions: Any)

    /**
     * @param 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.
     */
    public fun sourceEntity(sourceEntity: IResolvable)

    /**
     * @param 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.
     */
    public fun sourceEntity(sourceEntity: CfnDashboard.DashboardSourceEntityProperty)

    /**
     * @param 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.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("06d6d1985526f583875a7e1e9cef738e944ac695f97729117b8404af6a960e75")
    public
        fun sourceEntity(sourceEntity: CfnDashboard.DashboardSourceEntityProperty.Builder.() -> Unit)

    /**
     * @param tags Contains a map of the key-value pairs for the resource tag or tags assigned to
     * the dashboard.
     */
    public fun tags(tags: List)

    /**
     * @param tags Contains a map of the key-value pairs for the resource tag or tags assigned to
     * the dashboard.
     */
    public fun tags(vararg tags: CfnTag)

    /**
     * @param 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.
     */
    public fun themeArn(themeArn: String)

    /**
     * @param 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.
     */
    public fun validationStrategy(validationStrategy: IResolvable)

    /**
     * @param 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.
     */
    public fun validationStrategy(validationStrategy: CfnDashboard.ValidationStrategyProperty)

    /**
     * @param 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.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("110e591738244c24664cf30e12c1a198588010ab6c0e466ab85c7ff75132646f")
    public
        fun validationStrategy(validationStrategy: CfnDashboard.ValidationStrategyProperty.Builder.() -> Unit)

    /**
     * @param versionDescription A description for the first version of the dashboard being created.
     */
    public fun versionDescription(versionDescription: String)
  }

  private class BuilderImpl : Builder {
    private val cdkBuilder: software.amazon.awscdk.services.quicksight.CfnDashboardProps.Builder =
        software.amazon.awscdk.services.quicksight.CfnDashboardProps.builder()

    /**
     * @param awsAccountId The ID of the AWS account where you want to create the dashboard. 
     */
    override fun awsAccountId(awsAccountId: String) {
      cdkBuilder.awsAccountId(awsAccountId)
    }

    /**
     * @param dashboardId The ID for the dashboard, also added to the IAM policy. 
     */
    override fun dashboardId(dashboardId: String) {
      cdkBuilder.dashboardId(dashboardId)
    }

    /**
     * @param 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.
     */
    override fun dashboardPublishOptions(dashboardPublishOptions: IResolvable) {
      cdkBuilder.dashboardPublishOptions(dashboardPublishOptions.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param 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.
     */
    override
        fun dashboardPublishOptions(dashboardPublishOptions: CfnDashboard.DashboardPublishOptionsProperty) {
      cdkBuilder.dashboardPublishOptions(dashboardPublishOptions.let(CfnDashboard.DashboardPublishOptionsProperty.Companion::unwrap))
    }

    /**
     * @param 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.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("521cad66b24475f3536f61a35cce1e0730b9e30cbff100ce4afbb15a2c80f675")
    override
        fun dashboardPublishOptions(dashboardPublishOptions: CfnDashboard.DashboardPublishOptionsProperty.Builder.() -> Unit):
        Unit =
        dashboardPublishOptions(CfnDashboard.DashboardPublishOptionsProperty(dashboardPublishOptions))

    /**
     * @param definition the value to be set.
     */
    override fun definition(definition: IResolvable) {
      cdkBuilder.definition(definition.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param definition the value to be set.
     */
    override fun definition(definition: CfnDashboard.DashboardVersionDefinitionProperty) {
      cdkBuilder.definition(definition.let(CfnDashboard.DashboardVersionDefinitionProperty.Companion::unwrap))
    }

    /**
     * @param definition the value to be set.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("b0da9f3df5a8b6b57eb07e620534257232bd91095386fbebfd357f7eab1b2a8e")
    override
        fun definition(definition: CfnDashboard.DashboardVersionDefinitionProperty.Builder.() -> Unit):
        Unit = definition(CfnDashboard.DashboardVersionDefinitionProperty(definition))

    /**
     * @param linkEntities A list of analysis Amazon Resource Names (ARNs) to be linked to the
     * dashboard.
     */
    override fun linkEntities(linkEntities: List) {
      cdkBuilder.linkEntities(linkEntities)
    }

    /**
     * @param linkEntities A list of analysis Amazon Resource Names (ARNs) to be linked to the
     * dashboard.
     */
    override fun linkEntities(vararg linkEntities: String): Unit =
        linkEntities(linkEntities.toList())

    /**
     * @param linkSharingConfiguration A structure that contains the link sharing configurations
     * that you want to apply overrides to.
     */
    override fun linkSharingConfiguration(linkSharingConfiguration: IResolvable) {
      cdkBuilder.linkSharingConfiguration(linkSharingConfiguration.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param linkSharingConfiguration A structure that contains the link sharing configurations
     * that you want to apply overrides to.
     */
    override
        fun linkSharingConfiguration(linkSharingConfiguration: CfnDashboard.LinkSharingConfigurationProperty) {
      cdkBuilder.linkSharingConfiguration(linkSharingConfiguration.let(CfnDashboard.LinkSharingConfigurationProperty.Companion::unwrap))
    }

    /**
     * @param linkSharingConfiguration A structure that contains the link sharing configurations
     * that you want to apply overrides to.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("e13a7efac4d32ed39e805135181c2462719ba38882ab71120be719f532de30bb")
    override
        fun linkSharingConfiguration(linkSharingConfiguration: CfnDashboard.LinkSharingConfigurationProperty.Builder.() -> Unit):
        Unit =
        linkSharingConfiguration(CfnDashboard.LinkSharingConfigurationProperty(linkSharingConfiguration))

    /**
     * @param name The display name of the dashboard. 
     */
    override fun name(name: String) {
      cdkBuilder.name(name)
    }

    /**
     * @param 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.
     */
    override fun parameters(parameters: IResolvable) {
      cdkBuilder.parameters(parameters.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param 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.
     */
    override fun parameters(parameters: CfnDashboard.ParametersProperty) {
      cdkBuilder.parameters(parameters.let(CfnDashboard.ParametersProperty.Companion::unwrap))
    }

    /**
     * @param 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.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("21550b4298c987419e492e58bf3138d109f919229d2151e5a190cf76f6454438")
    override fun parameters(parameters: CfnDashboard.ParametersProperty.Builder.() -> Unit): Unit =
        parameters(CfnDashboard.ParametersProperty(parameters))

    /**
     * @param 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.
     */
    override fun permissions(permissions: IResolvable) {
      cdkBuilder.permissions(permissions.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param 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.
     */
    override fun permissions(permissions: List) {
      cdkBuilder.permissions(permissions.map{CdkObjectWrappers.unwrap(it)})
    }

    /**
     * @param 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.
     */
    override fun permissions(vararg permissions: Any): Unit = permissions(permissions.toList())

    /**
     * @param 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.
     */
    override fun sourceEntity(sourceEntity: IResolvable) {
      cdkBuilder.sourceEntity(sourceEntity.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param 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.
     */
    override fun sourceEntity(sourceEntity: CfnDashboard.DashboardSourceEntityProperty) {
      cdkBuilder.sourceEntity(sourceEntity.let(CfnDashboard.DashboardSourceEntityProperty.Companion::unwrap))
    }

    /**
     * @param 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.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("06d6d1985526f583875a7e1e9cef738e944ac695f97729117b8404af6a960e75")
    override
        fun sourceEntity(sourceEntity: CfnDashboard.DashboardSourceEntityProperty.Builder.() -> Unit):
        Unit = sourceEntity(CfnDashboard.DashboardSourceEntityProperty(sourceEntity))

    /**
     * @param tags Contains a map of the key-value pairs for the resource tag or tags assigned to
     * the dashboard.
     */
    override fun tags(tags: List) {
      cdkBuilder.tags(tags.map(CfnTag.Companion::unwrap))
    }

    /**
     * @param tags Contains a map of the key-value pairs for the resource tag or tags assigned to
     * the dashboard.
     */
    override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList())

    /**
     * @param 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.
     */
    override fun themeArn(themeArn: String) {
      cdkBuilder.themeArn(themeArn)
    }

    /**
     * @param 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.
     */
    override fun validationStrategy(validationStrategy: IResolvable) {
      cdkBuilder.validationStrategy(validationStrategy.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param 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.
     */
    override fun validationStrategy(validationStrategy: CfnDashboard.ValidationStrategyProperty) {
      cdkBuilder.validationStrategy(validationStrategy.let(CfnDashboard.ValidationStrategyProperty.Companion::unwrap))
    }

    /**
     * @param 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.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("110e591738244c24664cf30e12c1a198588010ab6c0e466ab85c7ff75132646f")
    override
        fun validationStrategy(validationStrategy: CfnDashboard.ValidationStrategyProperty.Builder.() -> Unit):
        Unit = validationStrategy(CfnDashboard.ValidationStrategyProperty(validationStrategy))

    /**
     * @param versionDescription A description for the first version of the dashboard being created.
     */
    override fun versionDescription(versionDescription: String) {
      cdkBuilder.versionDescription(versionDescription)
    }

    public fun build(): software.amazon.awscdk.services.quicksight.CfnDashboardProps =
        cdkBuilder.build()
  }

  private class Wrapper(
    cdkObject: software.amazon.awscdk.services.quicksight.CfnDashboardProps,
  ) : CdkObject(cdkObject),
      CfnDashboardProps {
    /**
     * The ID of the AWS account where you want to create the dashboard.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-awsaccountid)
     */
    override fun awsAccountId(): String = unwrap(this).getAwsAccountId()

    /**
     * The ID for the dashboard, also added to the IAM policy.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-dashboardid)
     */
    override fun dashboardId(): String = unwrap(this).getDashboardId()

    /**
     * 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.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-dashboardpublishoptions)
     */
    override fun dashboardPublishOptions(): Any? = unwrap(this).getDashboardPublishOptions()

    /**
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-definition)
     */
    override fun definition(): Any? = unwrap(this).getDefinition()

    /**
     * A list of analysis Amazon Resource Names (ARNs) to be linked to the dashboard.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-linkentities)
     */
    override fun linkEntities(): List = unwrap(this).getLinkEntities() ?: emptyList()

    /**
     * A structure that contains the link sharing configurations that you want to apply overrides
     * to.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-linksharingconfiguration)
     */
    override fun linkSharingConfiguration(): Any? = unwrap(this).getLinkSharingConfiguration()

    /**
     * The display name of the dashboard.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-name)
     */
    override fun name(): String = unwrap(this).getName()

    /**
     * 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.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-parameters)
     */
    override fun parameters(): Any? = unwrap(this).getParameters()

    /**
     * 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.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-permissions)
     */
    override fun permissions(): Any? = unwrap(this).getPermissions()

    /**
     * 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.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-sourceentity)
     */
    override fun sourceEntity(): Any? = unwrap(this).getSourceEntity()

    /**
     * Contains a map of the key-value pairs for the resource tag or tags assigned to the dashboard.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-tags)
     */
    override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

    /**
     * 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.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-themearn)
     */
    override fun themeArn(): String? = unwrap(this).getThemeArn()

    /**
     * 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.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-validationstrategy)
     */
    override fun validationStrategy(): Any? = unwrap(this).getValidationStrategy()

    /**
     * A description for the first version of the dashboard being created.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-quicksight-dashboard.html#cfn-quicksight-dashboard-versiondescription)
     */
    override fun versionDescription(): String? = unwrap(this).getVersionDescription()
  }

  public companion object {
    public operator fun invoke(block: Builder.() -> Unit = {}): CfnDashboardProps {
      val builderImpl = BuilderImpl()
      return Wrapper(builderImpl.apply(block).build())
    }

    internal fun wrap(cdkObject: software.amazon.awscdk.services.quicksight.CfnDashboardProps):
        CfnDashboardProps = CdkObjectWrappers.wrap(cdkObject) as? CfnDashboardProps ?:
        Wrapper(cdkObject)

    internal fun unwrap(wrapped: CfnDashboardProps):
        software.amazon.awscdk.services.quicksight.CfnDashboardProps = (wrapped as
        CdkObject).cdkObject as software.amazon.awscdk.services.quicksight.CfnDashboardProps
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy