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

com.pulumi.aws.quicksight.kotlin.DataSetArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 6.57.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.quicksight.kotlin

import com.pulumi.aws.quicksight.DataSetArgs.builder
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetColumnGroupArgs
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetColumnGroupArgsBuilder
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetColumnLevelPermissionRuleArgs
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetColumnLevelPermissionRuleArgsBuilder
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetDataSetUsageConfigurationArgs
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetDataSetUsageConfigurationArgsBuilder
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetFieldFolderArgs
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetFieldFolderArgsBuilder
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetLogicalTableMapArgs
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetLogicalTableMapArgsBuilder
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetPermissionArgs
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetPermissionArgsBuilder
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetPhysicalTableMapArgs
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetPhysicalTableMapArgsBuilder
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetRefreshPropertiesArgs
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetRefreshPropertiesArgsBuilder
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetRowLevelPermissionDataSetArgs
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetRowLevelPermissionDataSetArgsBuilder
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetRowLevelPermissionTagConfigurationArgs
import com.pulumi.aws.quicksight.kotlin.inputs.DataSetRowLevelPermissionTagConfigurationArgsBuilder
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.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Resource for managing a QuickSight Data Set.
 * ## Example Usage
 * ### Basic Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const example = new aws.quicksight.DataSet("example", {
 *     dataSetId: "example-id",
 *     name: "example-name",
 *     importMode: "SPICE",
 *     physicalTableMaps: [{
 *         physicalTableMapId: "example-id",
 *         s3Source: {
 *             dataSourceArn: exampleAwsQuicksightDataSource.arn,
 *             inputColumns: [{
 *                 name: "Column1",
 *                 type: "STRING",
 *             }],
 *             uploadSettings: {
 *                 format: "JSON",
 *             },
 *         },
 *     }],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * example = aws.quicksight.DataSet("example",
 *     data_set_id="example-id",
 *     name="example-name",
 *     import_mode="SPICE",
 *     physical_table_maps=[{
 *         "physical_table_map_id": "example-id",
 *         "s3_source": {
 *             "data_source_arn": example_aws_quicksight_data_source["arn"],
 *             "input_columns": [{
 *                 "name": "Column1",
 *                 "type": "STRING",
 *             }],
 *             "upload_settings": {
 *                 "format": "JSON",
 *             },
 *         },
 *     }])
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Aws.Quicksight.DataSet("example", new()
 *     {
 *         DataSetId = "example-id",
 *         Name = "example-name",
 *         ImportMode = "SPICE",
 *         PhysicalTableMaps = new[]
 *         {
 *             new Aws.Quicksight.Inputs.DataSetPhysicalTableMapArgs
 *             {
 *                 PhysicalTableMapId = "example-id",
 *                 S3Source = new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceArgs
 *                 {
 *                     DataSourceArn = exampleAwsQuicksightDataSource.Arn,
 *                     InputColumns = new[]
 *                     {
 *                         new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceInputColumnArgs
 *                         {
 *                             Name = "Column1",
 *                             Type = "STRING",
 *                         },
 *                     },
 *                     UploadSettings = new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceUploadSettingsArgs
 *                     {
 *                         Format = "JSON",
 *                     },
 *                 },
 *             },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/quicksight"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := quicksight.NewDataSet(ctx, "example", &quicksight.DataSetArgs{
 * 			DataSetId:  pulumi.String("example-id"),
 * 			Name:       pulumi.String("example-name"),
 * 			ImportMode: pulumi.String("SPICE"),
 * 			PhysicalTableMaps: quicksight.DataSetPhysicalTableMapArray{
 * 				&quicksight.DataSetPhysicalTableMapArgs{
 * 					PhysicalTableMapId: pulumi.String("example-id"),
 * 					S3Source: &quicksight.DataSetPhysicalTableMapS3SourceArgs{
 * 						DataSourceArn: pulumi.Any(exampleAwsQuicksightDataSource.Arn),
 * 						InputColumns: quicksight.DataSetPhysicalTableMapS3SourceInputColumnArray{
 * 							&quicksight.DataSetPhysicalTableMapS3SourceInputColumnArgs{
 * 								Name: pulumi.String("Column1"),
 * 								Type: pulumi.String("STRING"),
 * 							},
 * 						},
 * 						UploadSettings: &quicksight.DataSetPhysicalTableMapS3SourceUploadSettingsArgs{
 * 							Format: pulumi.String("JSON"),
 * 						},
 * 					},
 * 				},
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.quicksight.DataSet;
 * import com.pulumi.aws.quicksight.DataSetArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapS3SourceArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapS3SourceUploadSettingsArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new DataSet("example", DataSetArgs.builder()
 *             .dataSetId("example-id")
 *             .name("example-name")
 *             .importMode("SPICE")
 *             .physicalTableMaps(DataSetPhysicalTableMapArgs.builder()
 *                 .physicalTableMapId("example-id")
 *                 .s3Source(DataSetPhysicalTableMapS3SourceArgs.builder()
 *                     .dataSourceArn(exampleAwsQuicksightDataSource.arn())
 *                     .inputColumns(DataSetPhysicalTableMapS3SourceInputColumnArgs.builder()
 *                         .name("Column1")
 *                         .type("STRING")
 *                         .build())
 *                     .uploadSettings(DataSetPhysicalTableMapS3SourceUploadSettingsArgs.builder()
 *                         .format("JSON")
 *                         .build())
 *                     .build())
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: aws:quicksight:DataSet
 *     properties:
 *       dataSetId: example-id
 *       name: example-name
 *       importMode: SPICE
 *       physicalTableMaps:
 *         - physicalTableMapId: example-id
 *           s3Source:
 *             dataSourceArn: ${exampleAwsQuicksightDataSource.arn}
 *             inputColumns:
 *               - name: Column1
 *                 type: STRING
 *             uploadSettings:
 *               format: JSON
 * ```
 * 
 * ### With Column Level Permission Rules
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const example = new aws.quicksight.DataSet("example", {
 *     dataSetId: "example-id",
 *     name: "example-name",
 *     importMode: "SPICE",
 *     physicalTableMaps: [{
 *         physicalTableMapId: "example-id",
 *         s3Source: {
 *             dataSourceArn: exampleAwsQuicksightDataSource.arn,
 *             inputColumns: [{
 *                 name: "Column1",
 *                 type: "STRING",
 *             }],
 *             uploadSettings: {
 *                 format: "JSON",
 *             },
 *         },
 *     }],
 *     columnLevelPermissionRules: [{
 *         columnNames: ["Column1"],
 *         principals: [exampleAwsQuicksightUser.arn],
 *     }],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * example = aws.quicksight.DataSet("example",
 *     data_set_id="example-id",
 *     name="example-name",
 *     import_mode="SPICE",
 *     physical_table_maps=[{
 *         "physical_table_map_id": "example-id",
 *         "s3_source": {
 *             "data_source_arn": example_aws_quicksight_data_source["arn"],
 *             "input_columns": [{
 *                 "name": "Column1",
 *                 "type": "STRING",
 *             }],
 *             "upload_settings": {
 *                 "format": "JSON",
 *             },
 *         },
 *     }],
 *     column_level_permission_rules=[{
 *         "column_names": ["Column1"],
 *         "principals": [example_aws_quicksight_user["arn"]],
 *     }])
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Aws.Quicksight.DataSet("example", new()
 *     {
 *         DataSetId = "example-id",
 *         Name = "example-name",
 *         ImportMode = "SPICE",
 *         PhysicalTableMaps = new[]
 *         {
 *             new Aws.Quicksight.Inputs.DataSetPhysicalTableMapArgs
 *             {
 *                 PhysicalTableMapId = "example-id",
 *                 S3Source = new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceArgs
 *                 {
 *                     DataSourceArn = exampleAwsQuicksightDataSource.Arn,
 *                     InputColumns = new[]
 *                     {
 *                         new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceInputColumnArgs
 *                         {
 *                             Name = "Column1",
 *                             Type = "STRING",
 *                         },
 *                     },
 *                     UploadSettings = new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceUploadSettingsArgs
 *                     {
 *                         Format = "JSON",
 *                     },
 *                 },
 *             },
 *         },
 *         ColumnLevelPermissionRules = new[]
 *         {
 *             new Aws.Quicksight.Inputs.DataSetColumnLevelPermissionRuleArgs
 *             {
 *                 ColumnNames = new[]
 *                 {
 *                     "Column1",
 *                 },
 *                 Principals = new[]
 *                 {
 *                     exampleAwsQuicksightUser.Arn,
 *                 },
 *             },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/quicksight"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := quicksight.NewDataSet(ctx, "example", &quicksight.DataSetArgs{
 * 			DataSetId:  pulumi.String("example-id"),
 * 			Name:       pulumi.String("example-name"),
 * 			ImportMode: pulumi.String("SPICE"),
 * 			PhysicalTableMaps: quicksight.DataSetPhysicalTableMapArray{
 * 				&quicksight.DataSetPhysicalTableMapArgs{
 * 					PhysicalTableMapId: pulumi.String("example-id"),
 * 					S3Source: &quicksight.DataSetPhysicalTableMapS3SourceArgs{
 * 						DataSourceArn: pulumi.Any(exampleAwsQuicksightDataSource.Arn),
 * 						InputColumns: quicksight.DataSetPhysicalTableMapS3SourceInputColumnArray{
 * 							&quicksight.DataSetPhysicalTableMapS3SourceInputColumnArgs{
 * 								Name: pulumi.String("Column1"),
 * 								Type: pulumi.String("STRING"),
 * 							},
 * 						},
 * 						UploadSettings: &quicksight.DataSetPhysicalTableMapS3SourceUploadSettingsArgs{
 * 							Format: pulumi.String("JSON"),
 * 						},
 * 					},
 * 				},
 * 			},
 * 			ColumnLevelPermissionRules: quicksight.DataSetColumnLevelPermissionRuleArray{
 * 				&quicksight.DataSetColumnLevelPermissionRuleArgs{
 * 					ColumnNames: pulumi.StringArray{
 * 						pulumi.String("Column1"),
 * 					},
 * 					Principals: pulumi.StringArray{
 * 						exampleAwsQuicksightUser.Arn,
 * 					},
 * 				},
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.quicksight.DataSet;
 * import com.pulumi.aws.quicksight.DataSetArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapS3SourceArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapS3SourceUploadSettingsArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetColumnLevelPermissionRuleArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new DataSet("example", DataSetArgs.builder()
 *             .dataSetId("example-id")
 *             .name("example-name")
 *             .importMode("SPICE")
 *             .physicalTableMaps(DataSetPhysicalTableMapArgs.builder()
 *                 .physicalTableMapId("example-id")
 *                 .s3Source(DataSetPhysicalTableMapS3SourceArgs.builder()
 *                     .dataSourceArn(exampleAwsQuicksightDataSource.arn())
 *                     .inputColumns(DataSetPhysicalTableMapS3SourceInputColumnArgs.builder()
 *                         .name("Column1")
 *                         .type("STRING")
 *                         .build())
 *                     .uploadSettings(DataSetPhysicalTableMapS3SourceUploadSettingsArgs.builder()
 *                         .format("JSON")
 *                         .build())
 *                     .build())
 *                 .build())
 *             .columnLevelPermissionRules(DataSetColumnLevelPermissionRuleArgs.builder()
 *                 .columnNames("Column1")
 *                 .principals(exampleAwsQuicksightUser.arn())
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: aws:quicksight:DataSet
 *     properties:
 *       dataSetId: example-id
 *       name: example-name
 *       importMode: SPICE
 *       physicalTableMaps:
 *         - physicalTableMapId: example-id
 *           s3Source:
 *             dataSourceArn: ${exampleAwsQuicksightDataSource.arn}
 *             inputColumns:
 *               - name: Column1
 *                 type: STRING
 *             uploadSettings:
 *               format: JSON
 *       columnLevelPermissionRules:
 *         - columnNames:
 *             - Column1
 *           principals:
 *             - ${exampleAwsQuicksightUser.arn}
 * ```
 * 
 * ### With Field Folders
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const example = new aws.quicksight.DataSet("example", {
 *     dataSetId: "example-id",
 *     name: "example-name",
 *     importMode: "SPICE",
 *     physicalTableMaps: [{
 *         physicalTableMapId: "example-id",
 *         s3Source: {
 *             dataSourceArn: exampleAwsQuicksightDataSource.arn,
 *             inputColumns: [{
 *                 name: "Column1",
 *                 type: "STRING",
 *             }],
 *             uploadSettings: {
 *                 format: "JSON",
 *             },
 *         },
 *     }],
 *     fieldFolders: [{
 *         fieldFoldersId: "example-id",
 *         columns: ["Column1"],
 *         description: "example description",
 *     }],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * example = aws.quicksight.DataSet("example",
 *     data_set_id="example-id",
 *     name="example-name",
 *     import_mode="SPICE",
 *     physical_table_maps=[{
 *         "physical_table_map_id": "example-id",
 *         "s3_source": {
 *             "data_source_arn": example_aws_quicksight_data_source["arn"],
 *             "input_columns": [{
 *                 "name": "Column1",
 *                 "type": "STRING",
 *             }],
 *             "upload_settings": {
 *                 "format": "JSON",
 *             },
 *         },
 *     }],
 *     field_folders=[{
 *         "field_folders_id": "example-id",
 *         "columns": ["Column1"],
 *         "description": "example description",
 *     }])
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Aws.Quicksight.DataSet("example", new()
 *     {
 *         DataSetId = "example-id",
 *         Name = "example-name",
 *         ImportMode = "SPICE",
 *         PhysicalTableMaps = new[]
 *         {
 *             new Aws.Quicksight.Inputs.DataSetPhysicalTableMapArgs
 *             {
 *                 PhysicalTableMapId = "example-id",
 *                 S3Source = new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceArgs
 *                 {
 *                     DataSourceArn = exampleAwsQuicksightDataSource.Arn,
 *                     InputColumns = new[]
 *                     {
 *                         new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceInputColumnArgs
 *                         {
 *                             Name = "Column1",
 *                             Type = "STRING",
 *                         },
 *                     },
 *                     UploadSettings = new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceUploadSettingsArgs
 *                     {
 *                         Format = "JSON",
 *                     },
 *                 },
 *             },
 *         },
 *         FieldFolders = new[]
 *         {
 *             new Aws.Quicksight.Inputs.DataSetFieldFolderArgs
 *             {
 *                 FieldFoldersId = "example-id",
 *                 Columns = new[]
 *                 {
 *                     "Column1",
 *                 },
 *                 Description = "example description",
 *             },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/quicksight"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := quicksight.NewDataSet(ctx, "example", &quicksight.DataSetArgs{
 * 			DataSetId:  pulumi.String("example-id"),
 * 			Name:       pulumi.String("example-name"),
 * 			ImportMode: pulumi.String("SPICE"),
 * 			PhysicalTableMaps: quicksight.DataSetPhysicalTableMapArray{
 * 				&quicksight.DataSetPhysicalTableMapArgs{
 * 					PhysicalTableMapId: pulumi.String("example-id"),
 * 					S3Source: &quicksight.DataSetPhysicalTableMapS3SourceArgs{
 * 						DataSourceArn: pulumi.Any(exampleAwsQuicksightDataSource.Arn),
 * 						InputColumns: quicksight.DataSetPhysicalTableMapS3SourceInputColumnArray{
 * 							&quicksight.DataSetPhysicalTableMapS3SourceInputColumnArgs{
 * 								Name: pulumi.String("Column1"),
 * 								Type: pulumi.String("STRING"),
 * 							},
 * 						},
 * 						UploadSettings: &quicksight.DataSetPhysicalTableMapS3SourceUploadSettingsArgs{
 * 							Format: pulumi.String("JSON"),
 * 						},
 * 					},
 * 				},
 * 			},
 * 			FieldFolders: quicksight.DataSetFieldFolderArray{
 * 				&quicksight.DataSetFieldFolderArgs{
 * 					FieldFoldersId: pulumi.String("example-id"),
 * 					Columns: pulumi.StringArray{
 * 						pulumi.String("Column1"),
 * 					},
 * 					Description: pulumi.String("example description"),
 * 				},
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.quicksight.DataSet;
 * import com.pulumi.aws.quicksight.DataSetArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapS3SourceArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapS3SourceUploadSettingsArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetFieldFolderArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new DataSet("example", DataSetArgs.builder()
 *             .dataSetId("example-id")
 *             .name("example-name")
 *             .importMode("SPICE")
 *             .physicalTableMaps(DataSetPhysicalTableMapArgs.builder()
 *                 .physicalTableMapId("example-id")
 *                 .s3Source(DataSetPhysicalTableMapS3SourceArgs.builder()
 *                     .dataSourceArn(exampleAwsQuicksightDataSource.arn())
 *                     .inputColumns(DataSetPhysicalTableMapS3SourceInputColumnArgs.builder()
 *                         .name("Column1")
 *                         .type("STRING")
 *                         .build())
 *                     .uploadSettings(DataSetPhysicalTableMapS3SourceUploadSettingsArgs.builder()
 *                         .format("JSON")
 *                         .build())
 *                     .build())
 *                 .build())
 *             .fieldFolders(DataSetFieldFolderArgs.builder()
 *                 .fieldFoldersId("example-id")
 *                 .columns("Column1")
 *                 .description("example description")
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: aws:quicksight:DataSet
 *     properties:
 *       dataSetId: example-id
 *       name: example-name
 *       importMode: SPICE
 *       physicalTableMaps:
 *         - physicalTableMapId: example-id
 *           s3Source:
 *             dataSourceArn: ${exampleAwsQuicksightDataSource.arn}
 *             inputColumns:
 *               - name: Column1
 *                 type: STRING
 *             uploadSettings:
 *               format: JSON
 *       fieldFolders:
 *         - fieldFoldersId: example-id
 *           columns:
 *             - Column1
 *           description: example description
 * ```
 * 
 * ### With Permissions
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const example = new aws.quicksight.DataSet("example", {
 *     dataSetId: "example-id",
 *     name: "example-name",
 *     importMode: "SPICE",
 *     physicalTableMaps: [{
 *         physicalTableMapId: "example-id",
 *         s3Source: {
 *             dataSourceArn: exampleAwsQuicksightDataSource.arn,
 *             inputColumns: [{
 *                 name: "Column1",
 *                 type: "STRING",
 *             }],
 *             uploadSettings: {
 *                 format: "JSON",
 *             },
 *         },
 *     }],
 *     permissions: [{
 *         actions: [
 *             "quicksight:DescribeDataSet",
 *             "quicksight:DescribeDataSetPermissions",
 *             "quicksight:PassDataSet",
 *             "quicksight:DescribeIngestion",
 *             "quicksight:ListIngestions",
 *         ],
 *         principal: exampleAwsQuicksightUser.arn,
 *     }],
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * example = aws.quicksight.DataSet("example",
 *     data_set_id="example-id",
 *     name="example-name",
 *     import_mode="SPICE",
 *     physical_table_maps=[{
 *         "physical_table_map_id": "example-id",
 *         "s3_source": {
 *             "data_source_arn": example_aws_quicksight_data_source["arn"],
 *             "input_columns": [{
 *                 "name": "Column1",
 *                 "type": "STRING",
 *             }],
 *             "upload_settings": {
 *                 "format": "JSON",
 *             },
 *         },
 *     }],
 *     permissions=[{
 *         "actions": [
 *             "quicksight:DescribeDataSet",
 *             "quicksight:DescribeDataSetPermissions",
 *             "quicksight:PassDataSet",
 *             "quicksight:DescribeIngestion",
 *             "quicksight:ListIngestions",
 *         ],
 *         "principal": example_aws_quicksight_user["arn"],
 *     }])
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Aws.Quicksight.DataSet("example", new()
 *     {
 *         DataSetId = "example-id",
 *         Name = "example-name",
 *         ImportMode = "SPICE",
 *         PhysicalTableMaps = new[]
 *         {
 *             new Aws.Quicksight.Inputs.DataSetPhysicalTableMapArgs
 *             {
 *                 PhysicalTableMapId = "example-id",
 *                 S3Source = new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceArgs
 *                 {
 *                     DataSourceArn = exampleAwsQuicksightDataSource.Arn,
 *                     InputColumns = new[]
 *                     {
 *                         new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceInputColumnArgs
 *                         {
 *                             Name = "Column1",
 *                             Type = "STRING",
 *                         },
 *                     },
 *                     UploadSettings = new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceUploadSettingsArgs
 *                     {
 *                         Format = "JSON",
 *                     },
 *                 },
 *             },
 *         },
 *         Permissions = new[]
 *         {
 *             new Aws.Quicksight.Inputs.DataSetPermissionArgs
 *             {
 *                 Actions = new[]
 *                 {
 *                     "quicksight:DescribeDataSet",
 *                     "quicksight:DescribeDataSetPermissions",
 *                     "quicksight:PassDataSet",
 *                     "quicksight:DescribeIngestion",
 *                     "quicksight:ListIngestions",
 *                 },
 *                 Principal = exampleAwsQuicksightUser.Arn,
 *             },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/quicksight"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := quicksight.NewDataSet(ctx, "example", &quicksight.DataSetArgs{
 * 			DataSetId:  pulumi.String("example-id"),
 * 			Name:       pulumi.String("example-name"),
 * 			ImportMode: pulumi.String("SPICE"),
 * 			PhysicalTableMaps: quicksight.DataSetPhysicalTableMapArray{
 * 				&quicksight.DataSetPhysicalTableMapArgs{
 * 					PhysicalTableMapId: pulumi.String("example-id"),
 * 					S3Source: &quicksight.DataSetPhysicalTableMapS3SourceArgs{
 * 						DataSourceArn: pulumi.Any(exampleAwsQuicksightDataSource.Arn),
 * 						InputColumns: quicksight.DataSetPhysicalTableMapS3SourceInputColumnArray{
 * 							&quicksight.DataSetPhysicalTableMapS3SourceInputColumnArgs{
 * 								Name: pulumi.String("Column1"),
 * 								Type: pulumi.String("STRING"),
 * 							},
 * 						},
 * 						UploadSettings: &quicksight.DataSetPhysicalTableMapS3SourceUploadSettingsArgs{
 * 							Format: pulumi.String("JSON"),
 * 						},
 * 					},
 * 				},
 * 			},
 * 			Permissions: quicksight.DataSetPermissionArray{
 * 				&quicksight.DataSetPermissionArgs{
 * 					Actions: pulumi.StringArray{
 * 						pulumi.String("quicksight:DescribeDataSet"),
 * 						pulumi.String("quicksight:DescribeDataSetPermissions"),
 * 						pulumi.String("quicksight:PassDataSet"),
 * 						pulumi.String("quicksight:DescribeIngestion"),
 * 						pulumi.String("quicksight:ListIngestions"),
 * 					},
 * 					Principal: pulumi.Any(exampleAwsQuicksightUser.Arn),
 * 				},
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.quicksight.DataSet;
 * import com.pulumi.aws.quicksight.DataSetArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapS3SourceArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapS3SourceUploadSettingsArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPermissionArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new DataSet("example", DataSetArgs.builder()
 *             .dataSetId("example-id")
 *             .name("example-name")
 *             .importMode("SPICE")
 *             .physicalTableMaps(DataSetPhysicalTableMapArgs.builder()
 *                 .physicalTableMapId("example-id")
 *                 .s3Source(DataSetPhysicalTableMapS3SourceArgs.builder()
 *                     .dataSourceArn(exampleAwsQuicksightDataSource.arn())
 *                     .inputColumns(DataSetPhysicalTableMapS3SourceInputColumnArgs.builder()
 *                         .name("Column1")
 *                         .type("STRING")
 *                         .build())
 *                     .uploadSettings(DataSetPhysicalTableMapS3SourceUploadSettingsArgs.builder()
 *                         .format("JSON")
 *                         .build())
 *                     .build())
 *                 .build())
 *             .permissions(DataSetPermissionArgs.builder()
 *                 .actions(
 *                     "quicksight:DescribeDataSet",
 *                     "quicksight:DescribeDataSetPermissions",
 *                     "quicksight:PassDataSet",
 *                     "quicksight:DescribeIngestion",
 *                     "quicksight:ListIngestions")
 *                 .principal(exampleAwsQuicksightUser.arn())
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: aws:quicksight:DataSet
 *     properties:
 *       dataSetId: example-id
 *       name: example-name
 *       importMode: SPICE
 *       physicalTableMaps:
 *         - physicalTableMapId: example-id
 *           s3Source:
 *             dataSourceArn: ${exampleAwsQuicksightDataSource.arn}
 *             inputColumns:
 *               - name: Column1
 *                 type: STRING
 *             uploadSettings:
 *               format: JSON
 *       permissions:
 *         - actions:
 *             - quicksight:DescribeDataSet
 *             - quicksight:DescribeDataSetPermissions
 *             - quicksight:PassDataSet
 *             - quicksight:DescribeIngestion
 *             - quicksight:ListIngestions
 *           principal: ${exampleAwsQuicksightUser.arn}
 * ```
 * 
 * ### With Row Level Permission Tag Configuration
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const example = new aws.quicksight.DataSet("example", {
 *     dataSetId: "example-id",
 *     name: "example-name",
 *     importMode: "SPICE",
 *     physicalTableMaps: [{
 *         physicalTableMapId: "example-id",
 *         s3Source: {
 *             dataSourceArn: exampleAwsQuicksightDataSource.arn,
 *             inputColumns: [{
 *                 name: "Column1",
 *                 type: "STRING",
 *             }],
 *             uploadSettings: {
 *                 format: "JSON",
 *             },
 *         },
 *     }],
 *     rowLevelPermissionTagConfiguration: {
 *         status: "ENABLED",
 *         tagRules: [{
 *             columnName: "Column1",
 *             tagKey: "tagkey",
 *             matchAllValue: "*",
 *             tagMultiValueDelimiter: ",",
 *         }],
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * example = aws.quicksight.DataSet("example",
 *     data_set_id="example-id",
 *     name="example-name",
 *     import_mode="SPICE",
 *     physical_table_maps=[{
 *         "physical_table_map_id": "example-id",
 *         "s3_source": {
 *             "data_source_arn": example_aws_quicksight_data_source["arn"],
 *             "input_columns": [{
 *                 "name": "Column1",
 *                 "type": "STRING",
 *             }],
 *             "upload_settings": {
 *                 "format": "JSON",
 *             },
 *         },
 *     }],
 *     row_level_permission_tag_configuration={
 *         "status": "ENABLED",
 *         "tag_rules": [{
 *             "column_name": "Column1",
 *             "tag_key": "tagkey",
 *             "match_all_value": "*",
 *             "tag_multi_value_delimiter": ",",
 *         }],
 *     })
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Aws.Quicksight.DataSet("example", new()
 *     {
 *         DataSetId = "example-id",
 *         Name = "example-name",
 *         ImportMode = "SPICE",
 *         PhysicalTableMaps = new[]
 *         {
 *             new Aws.Quicksight.Inputs.DataSetPhysicalTableMapArgs
 *             {
 *                 PhysicalTableMapId = "example-id",
 *                 S3Source = new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceArgs
 *                 {
 *                     DataSourceArn = exampleAwsQuicksightDataSource.Arn,
 *                     InputColumns = new[]
 *                     {
 *                         new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceInputColumnArgs
 *                         {
 *                             Name = "Column1",
 *                             Type = "STRING",
 *                         },
 *                     },
 *                     UploadSettings = new Aws.Quicksight.Inputs.DataSetPhysicalTableMapS3SourceUploadSettingsArgs
 *                     {
 *                         Format = "JSON",
 *                     },
 *                 },
 *             },
 *         },
 *         RowLevelPermissionTagConfiguration = new Aws.Quicksight.Inputs.DataSetRowLevelPermissionTagConfigurationArgs
 *         {
 *             Status = "ENABLED",
 *             TagRules = new[]
 *             {
 *                 new Aws.Quicksight.Inputs.DataSetRowLevelPermissionTagConfigurationTagRuleArgs
 *                 {
 *                     ColumnName = "Column1",
 *                     TagKey = "tagkey",
 *                     MatchAllValue = "*",
 *                     TagMultiValueDelimiter = ",",
 *                 },
 *             },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/quicksight"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := quicksight.NewDataSet(ctx, "example", &quicksight.DataSetArgs{
 * 			DataSetId:  pulumi.String("example-id"),
 * 			Name:       pulumi.String("example-name"),
 * 			ImportMode: pulumi.String("SPICE"),
 * 			PhysicalTableMaps: quicksight.DataSetPhysicalTableMapArray{
 * 				&quicksight.DataSetPhysicalTableMapArgs{
 * 					PhysicalTableMapId: pulumi.String("example-id"),
 * 					S3Source: &quicksight.DataSetPhysicalTableMapS3SourceArgs{
 * 						DataSourceArn: pulumi.Any(exampleAwsQuicksightDataSource.Arn),
 * 						InputColumns: quicksight.DataSetPhysicalTableMapS3SourceInputColumnArray{
 * 							&quicksight.DataSetPhysicalTableMapS3SourceInputColumnArgs{
 * 								Name: pulumi.String("Column1"),
 * 								Type: pulumi.String("STRING"),
 * 							},
 * 						},
 * 						UploadSettings: &quicksight.DataSetPhysicalTableMapS3SourceUploadSettingsArgs{
 * 							Format: pulumi.String("JSON"),
 * 						},
 * 					},
 * 				},
 * 			},
 * 			RowLevelPermissionTagConfiguration: &quicksight.DataSetRowLevelPermissionTagConfigurationArgs{
 * 				Status: pulumi.String("ENABLED"),
 * 				TagRules: quicksight.DataSetRowLevelPermissionTagConfigurationTagRuleArray{
 * 					&quicksight.DataSetRowLevelPermissionTagConfigurationTagRuleArgs{
 * 						ColumnName:             pulumi.String("Column1"),
 * 						TagKey:                 pulumi.String("tagkey"),
 * 						MatchAllValue:          pulumi.String("*"),
 * 						TagMultiValueDelimiter: pulumi.String(","),
 * 					},
 * 				},
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.quicksight.DataSet;
 * import com.pulumi.aws.quicksight.DataSetArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapS3SourceArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetPhysicalTableMapS3SourceUploadSettingsArgs;
 * import com.pulumi.aws.quicksight.inputs.DataSetRowLevelPermissionTagConfigurationArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var example = new DataSet("example", DataSetArgs.builder()
 *             .dataSetId("example-id")
 *             .name("example-name")
 *             .importMode("SPICE")
 *             .physicalTableMaps(DataSetPhysicalTableMapArgs.builder()
 *                 .physicalTableMapId("example-id")
 *                 .s3Source(DataSetPhysicalTableMapS3SourceArgs.builder()
 *                     .dataSourceArn(exampleAwsQuicksightDataSource.arn())
 *                     .inputColumns(DataSetPhysicalTableMapS3SourceInputColumnArgs.builder()
 *                         .name("Column1")
 *                         .type("STRING")
 *                         .build())
 *                     .uploadSettings(DataSetPhysicalTableMapS3SourceUploadSettingsArgs.builder()
 *                         .format("JSON")
 *                         .build())
 *                     .build())
 *                 .build())
 *             .rowLevelPermissionTagConfiguration(DataSetRowLevelPermissionTagConfigurationArgs.builder()
 *                 .status("ENABLED")
 *                 .tagRules(DataSetRowLevelPermissionTagConfigurationTagRuleArgs.builder()
 *                     .columnName("Column1")
 *                     .tagKey("tagkey")
 *                     .matchAllValue("*")
 *                     .tagMultiValueDelimiter(",")
 *                     .build())
 *                 .build())
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: aws:quicksight:DataSet
 *     properties:
 *       dataSetId: example-id
 *       name: example-name
 *       importMode: SPICE
 *       physicalTableMaps:
 *         - physicalTableMapId: example-id
 *           s3Source:
 *             dataSourceArn: ${exampleAwsQuicksightDataSource.arn}
 *             inputColumns:
 *               - name: Column1
 *                 type: STRING
 *             uploadSettings:
 *               format: JSON
 *       rowLevelPermissionTagConfiguration:
 *         status: ENABLED
 *         tagRules:
 *           - columnName: Column1
 *             tagKey: tagkey
 *             matchAllValue: '*'
 *             tagMultiValueDelimiter: ','
 * ```
 * 
 * ## Import
 * Using `pulumi import`, import a QuickSight Data Set using the AWS account ID and data set ID separated by a comma (`,`). For example:
 * ```sh
 * $ pulumi import aws:quicksight/dataSet:DataSet example 123456789012,example-id
 * ```
 * @property awsAccountId AWS account ID.
 * @property columnGroups Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
 * @property columnLevelPermissionRules A set of 1 or more definitions of a [ColumnLevelPermissionRule](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ColumnLevelPermissionRule.html). See column_level_permission_rules.
 * @property dataSetId Identifier for the data set.
 * @property dataSetUsageConfiguration The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration.
 * @property fieldFolders The folder that contains fields and nested subfolders for your dataset. See field_folders.
 * @property importMode Indicates whether you want to import the data into SPICE. Valid values are `SPICE` and `DIRECT_QUERY`.
 * @property logicalTableMaps Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
 * @property name Display name for the dataset.
 * @property permissions A set of resource permissions on the data source. Maximum of 64 items. See permissions.
 * @property physicalTableMaps Declares the physical tables that are available in the underlying data sources. See physical_table_map.
 * The following arguments are optional:
 * @property refreshProperties The refresh properties for the data set. **NOTE**: Only valid when `import_mode` is set to `SPICE`. See refresh_properties.
 * @property rowLevelPermissionDataSet The row-level security configuration for the data that you want to create. See row_level_permission_data_set.
 * @property rowLevelPermissionTagConfiguration The configuration of tags on a dataset to set row-level security. Row-level security tags are currently supported for anonymous embedding only. See row_level_permission_tag_configuration.
 * @property tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
 */
public data class DataSetArgs(
    public val awsAccountId: Output? = null,
    public val columnGroups: Output>? = null,
    public val columnLevelPermissionRules: Output>? = null,
    public val dataSetId: Output? = null,
    public val dataSetUsageConfiguration: Output? = null,
    public val fieldFolders: Output>? = null,
    public val importMode: Output? = null,
    public val logicalTableMaps: Output>? = null,
    public val name: Output? = null,
    public val permissions: Output>? = null,
    public val physicalTableMaps: Output>? = null,
    public val refreshProperties: Output? = null,
    public val rowLevelPermissionDataSet: Output? = null,
    public val rowLevelPermissionTagConfiguration: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.quicksight.DataSetArgs =
        com.pulumi.aws.quicksight.DataSetArgs.builder()
            .awsAccountId(awsAccountId?.applyValue({ args0 -> args0 }))
            .columnGroups(
                columnGroups?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .columnLevelPermissionRules(
                columnLevelPermissionRules?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .dataSetId(dataSetId?.applyValue({ args0 -> args0 }))
            .dataSetUsageConfiguration(
                dataSetUsageConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .fieldFolders(
                fieldFolders?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .importMode(importMode?.applyValue({ args0 -> args0 }))
            .logicalTableMaps(
                logicalTableMaps?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .permissions(
                permissions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .physicalTableMaps(
                physicalTableMaps?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .refreshProperties(refreshProperties?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .rowLevelPermissionDataSet(
                rowLevelPermissionDataSet?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .rowLevelPermissionTagConfiguration(
                rowLevelPermissionTagConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            ).build()
}

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

    private var columnGroups: Output>? = null

    private var columnLevelPermissionRules: Output>? = null

    private var dataSetId: Output? = null

    private var dataSetUsageConfiguration: Output? = null

    private var fieldFolders: Output>? = null

    private var importMode: Output? = null

    private var logicalTableMaps: Output>? = null

    private var name: Output? = null

    private var permissions: Output>? = null

    private var physicalTableMaps: Output>? = null

    private var refreshProperties: Output? = null

    private var rowLevelPermissionDataSet: Output? = null

    private var rowLevelPermissionTagConfiguration:
        Output? = null

    private var tags: Output>? = null

    /**
     * @param value AWS account ID.
     */
    @JvmName("ykpaesvnkjputycu")
    public suspend fun awsAccountId(`value`: Output) {
        this.awsAccountId = value
    }

    /**
     * @param value Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
     */
    @JvmName("gcaycgrkuvqgjpxt")
    public suspend fun columnGroups(`value`: Output>) {
        this.columnGroups = value
    }

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

    /**
     * @param values Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
     */
    @JvmName("aduaqwnsscdncdyu")
    public suspend fun columnGroups(values: List>) {
        this.columnGroups = Output.all(values)
    }

    /**
     * @param value A set of 1 or more definitions of a [ColumnLevelPermissionRule](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ColumnLevelPermissionRule.html). See column_level_permission_rules.
     */
    @JvmName("byrxrcasetxiivnx")
    public suspend fun columnLevelPermissionRules(`value`: Output>) {
        this.columnLevelPermissionRules = value
    }

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

    /**
     * @param values A set of 1 or more definitions of a [ColumnLevelPermissionRule](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ColumnLevelPermissionRule.html). See column_level_permission_rules.
     */
    @JvmName("tbhesmhkmsfdyivr")
    public suspend fun columnLevelPermissionRules(values: List>) {
        this.columnLevelPermissionRules = Output.all(values)
    }

    /**
     * @param value Identifier for the data set.
     */
    @JvmName("qppykdovdaogtgnh")
    public suspend fun dataSetId(`value`: Output) {
        this.dataSetId = value
    }

    /**
     * @param value The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration.
     */
    @JvmName("khtxrbbcblkcrfvu")
    public suspend fun dataSetUsageConfiguration(`value`: Output) {
        this.dataSetUsageConfiguration = value
    }

    /**
     * @param value The folder that contains fields and nested subfolders for your dataset. See field_folders.
     */
    @JvmName("movaovfeowwrtuqr")
    public suspend fun fieldFolders(`value`: Output>) {
        this.fieldFolders = value
    }

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

    /**
     * @param values The folder that contains fields and nested subfolders for your dataset. See field_folders.
     */
    @JvmName("ojvvkhcpjwmcojxi")
    public suspend fun fieldFolders(values: List>) {
        this.fieldFolders = Output.all(values)
    }

    /**
     * @param value Indicates whether you want to import the data into SPICE. Valid values are `SPICE` and `DIRECT_QUERY`.
     */
    @JvmName("qyvuvfxdwevyqoqs")
    public suspend fun importMode(`value`: Output) {
        this.importMode = value
    }

    /**
     * @param value Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
     */
    @JvmName("usgknugnlgjtjvfq")
    public suspend fun logicalTableMaps(`value`: Output>) {
        this.logicalTableMaps = value
    }

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

    /**
     * @param values Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
     */
    @JvmName("dwbuuselvlfqdrps")
    public suspend fun logicalTableMaps(values: List>) {
        this.logicalTableMaps = Output.all(values)
    }

    /**
     * @param value Display name for the dataset.
     */
    @JvmName("fykldbmtpybrtmmj")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value A set of resource permissions on the data source. Maximum of 64 items. See permissions.
     */
    @JvmName("adnicteqyfjyqegy")
    public suspend fun permissions(`value`: Output>) {
        this.permissions = value
    }

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

    /**
     * @param values A set of resource permissions on the data source. Maximum of 64 items. See permissions.
     */
    @JvmName("ugfkxlypeisadcbn")
    public suspend fun permissions(values: List>) {
        this.permissions = Output.all(values)
    }

    /**
     * @param value Declares the physical tables that are available in the underlying data sources. See physical_table_map.
     * The following arguments are optional:
     */
    @JvmName("prqwjbsutrtpryfn")
    public suspend fun physicalTableMaps(`value`: Output>) {
        this.physicalTableMaps = value
    }

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

    /**
     * @param values Declares the physical tables that are available in the underlying data sources. See physical_table_map.
     * The following arguments are optional:
     */
    @JvmName("erwjrbysfcutdham")
    public suspend fun physicalTableMaps(values: List>) {
        this.physicalTableMaps = Output.all(values)
    }

    /**
     * @param value The refresh properties for the data set. **NOTE**: Only valid when `import_mode` is set to `SPICE`. See refresh_properties.
     */
    @JvmName("mnmippocrfgqjjvl")
    public suspend fun refreshProperties(`value`: Output) {
        this.refreshProperties = value
    }

    /**
     * @param value The row-level security configuration for the data that you want to create. See row_level_permission_data_set.
     */
    @JvmName("ewnpcgjatjyenxtv")
    public suspend fun rowLevelPermissionDataSet(`value`: Output) {
        this.rowLevelPermissionDataSet = value
    }

    /**
     * @param value The configuration of tags on a dataset to set row-level security. Row-level security tags are currently supported for anonymous embedding only. See row_level_permission_tag_configuration.
     */
    @JvmName("yecajwubnyuisnhf")
    public suspend fun rowLevelPermissionTagConfiguration(`value`: Output) {
        this.rowLevelPermissionTagConfiguration = value
    }

    /**
     * @param value Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("uvvqcioqqfxabjpo")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value AWS account ID.
     */
    @JvmName("pdlbtinfxeqinqdw")
    public suspend fun awsAccountId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.awsAccountId = mapped
    }

    /**
     * @param value Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
     */
    @JvmName("epsfbaskbyypwciv")
    public suspend fun columnGroups(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.columnGroups = mapped
    }

    /**
     * @param argument Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
     */
    @JvmName("kflqedpnwsfoafcy")
    public suspend fun columnGroups(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DataSetColumnGroupArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.columnGroups = mapped
    }

    /**
     * @param argument Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
     */
    @JvmName("djgbqmyanivqnbcq")
    public suspend fun columnGroups(vararg argument: suspend DataSetColumnGroupArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DataSetColumnGroupArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.columnGroups = mapped
    }

    /**
     * @param argument Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
     */
    @JvmName("aykyqrbxychibxjg")
    public suspend fun columnGroups(argument: suspend DataSetColumnGroupArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(DataSetColumnGroupArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.columnGroups = mapped
    }

    /**
     * @param values Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
     */
    @JvmName("gpbbtkjckwqhnscs")
    public suspend fun columnGroups(vararg values: DataSetColumnGroupArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.columnGroups = mapped
    }

    /**
     * @param value A set of 1 or more definitions of a [ColumnLevelPermissionRule](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ColumnLevelPermissionRule.html). See column_level_permission_rules.
     */
    @JvmName("deuigepdmhllswmp")
    public suspend fun columnLevelPermissionRules(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.columnLevelPermissionRules = mapped
    }

    /**
     * @param argument A set of 1 or more definitions of a [ColumnLevelPermissionRule](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ColumnLevelPermissionRule.html). See column_level_permission_rules.
     */
    @JvmName("bejmwokvpsoiqmvu")
    public suspend fun columnLevelPermissionRules(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DataSetColumnLevelPermissionRuleArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.columnLevelPermissionRules = mapped
    }

    /**
     * @param argument A set of 1 or more definitions of a [ColumnLevelPermissionRule](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ColumnLevelPermissionRule.html). See column_level_permission_rules.
     */
    @JvmName("fmytkiorxwwhfapp")
    public suspend fun columnLevelPermissionRules(vararg argument: suspend DataSetColumnLevelPermissionRuleArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DataSetColumnLevelPermissionRuleArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.columnLevelPermissionRules = mapped
    }

    /**
     * @param argument A set of 1 or more definitions of a [ColumnLevelPermissionRule](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ColumnLevelPermissionRule.html). See column_level_permission_rules.
     */
    @JvmName("bhpocexrtrcgspkc")
    public suspend fun columnLevelPermissionRules(argument: suspend DataSetColumnLevelPermissionRuleArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            DataSetColumnLevelPermissionRuleArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.columnLevelPermissionRules = mapped
    }

    /**
     * @param values A set of 1 or more definitions of a [ColumnLevelPermissionRule](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_ColumnLevelPermissionRule.html). See column_level_permission_rules.
     */
    @JvmName("eimwktvljscvfjow")
    public suspend fun columnLevelPermissionRules(vararg values: DataSetColumnLevelPermissionRuleArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.columnLevelPermissionRules = mapped
    }

    /**
     * @param value Identifier for the data set.
     */
    @JvmName("knexjgglnbnupsxn")
    public suspend fun dataSetId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataSetId = mapped
    }

    /**
     * @param value The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration.
     */
    @JvmName("jtgjtwpfcefcckci")
    public suspend fun dataSetUsageConfiguration(`value`: DataSetDataSetUsageConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataSetUsageConfiguration = mapped
    }

    /**
     * @param argument The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration.
     */
    @JvmName("inokuvtgewxhxkxv")
    public suspend fun dataSetUsageConfiguration(argument: suspend DataSetDataSetUsageConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataSetDataSetUsageConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.dataSetUsageConfiguration = mapped
    }

    /**
     * @param value The folder that contains fields and nested subfolders for your dataset. See field_folders.
     */
    @JvmName("xlnphdwnetfkdtlt")
    public suspend fun fieldFolders(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fieldFolders = mapped
    }

    /**
     * @param argument The folder that contains fields and nested subfolders for your dataset. See field_folders.
     */
    @JvmName("emtfykxvrmmciqrw")
    public suspend fun fieldFolders(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DataSetFieldFolderArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.fieldFolders = mapped
    }

    /**
     * @param argument The folder that contains fields and nested subfolders for your dataset. See field_folders.
     */
    @JvmName("rinacucukfgepmig")
    public suspend fun fieldFolders(vararg argument: suspend DataSetFieldFolderArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DataSetFieldFolderArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.fieldFolders = mapped
    }

    /**
     * @param argument The folder that contains fields and nested subfolders for your dataset. See field_folders.
     */
    @JvmName("ytfcpmvooyygwvsq")
    public suspend fun fieldFolders(argument: suspend DataSetFieldFolderArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(DataSetFieldFolderArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.fieldFolders = mapped
    }

    /**
     * @param values The folder that contains fields and nested subfolders for your dataset. See field_folders.
     */
    @JvmName("dtvftspyaxoqksay")
    public suspend fun fieldFolders(vararg values: DataSetFieldFolderArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.fieldFolders = mapped
    }

    /**
     * @param value Indicates whether you want to import the data into SPICE. Valid values are `SPICE` and `DIRECT_QUERY`.
     */
    @JvmName("egmmhcddylmufykv")
    public suspend fun importMode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.importMode = mapped
    }

    /**
     * @param value Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
     */
    @JvmName("agqcfbjupufqbxer")
    public suspend fun logicalTableMaps(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.logicalTableMaps = mapped
    }

    /**
     * @param argument Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
     */
    @JvmName("qjpbcgjtrbpjmeec")
    public suspend fun logicalTableMaps(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DataSetLogicalTableMapArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.logicalTableMaps = mapped
    }

    /**
     * @param argument Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
     */
    @JvmName("bmdtqqabbqtxrscv")
    public suspend fun logicalTableMaps(vararg argument: suspend DataSetLogicalTableMapArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DataSetLogicalTableMapArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.logicalTableMaps = mapped
    }

    /**
     * @param argument Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
     */
    @JvmName("jofgmltbwykiqfdb")
    public suspend fun logicalTableMaps(argument: suspend DataSetLogicalTableMapArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(DataSetLogicalTableMapArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.logicalTableMaps = mapped
    }

    /**
     * @param values Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
     */
    @JvmName("kbicxcjohqttfjsr")
    public suspend fun logicalTableMaps(vararg values: DataSetLogicalTableMapArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.logicalTableMaps = mapped
    }

    /**
     * @param value Display name for the dataset.
     */
    @JvmName("eygilqhcvbmoimkq")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value A set of resource permissions on the data source. Maximum of 64 items. See permissions.
     */
    @JvmName("nhefssmvyablgvhy")
    public suspend fun permissions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.permissions = mapped
    }

    /**
     * @param argument A set of resource permissions on the data source. Maximum of 64 items. See permissions.
     */
    @JvmName("jujnsmpufjofwnlk")
    public suspend fun permissions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DataSetPermissionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.permissions = mapped
    }

    /**
     * @param argument A set of resource permissions on the data source. Maximum of 64 items. See permissions.
     */
    @JvmName("vncljorpynpfmvdl")
    public suspend fun permissions(vararg argument: suspend DataSetPermissionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DataSetPermissionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.permissions = mapped
    }

    /**
     * @param argument A set of resource permissions on the data source. Maximum of 64 items. See permissions.
     */
    @JvmName("ofsxwjahalpcycke")
    public suspend fun permissions(argument: suspend DataSetPermissionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(DataSetPermissionArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.permissions = mapped
    }

    /**
     * @param values A set of resource permissions on the data source. Maximum of 64 items. See permissions.
     */
    @JvmName("sbywwsrgrycykpds")
    public suspend fun permissions(vararg values: DataSetPermissionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.permissions = mapped
    }

    /**
     * @param value Declares the physical tables that are available in the underlying data sources. See physical_table_map.
     * The following arguments are optional:
     */
    @JvmName("chmhonufomtvxxvs")
    public suspend fun physicalTableMaps(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.physicalTableMaps = mapped
    }

    /**
     * @param argument Declares the physical tables that are available in the underlying data sources. See physical_table_map.
     * The following arguments are optional:
     */
    @JvmName("egtceqcguwbbndxk")
    public suspend fun physicalTableMaps(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DataSetPhysicalTableMapArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.physicalTableMaps = mapped
    }

    /**
     * @param argument Declares the physical tables that are available in the underlying data sources. See physical_table_map.
     * The following arguments are optional:
     */
    @JvmName("cfkndeeifoiqfpth")
    public suspend fun physicalTableMaps(vararg argument: suspend DataSetPhysicalTableMapArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DataSetPhysicalTableMapArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.physicalTableMaps = mapped
    }

    /**
     * @param argument Declares the physical tables that are available in the underlying data sources. See physical_table_map.
     * The following arguments are optional:
     */
    @JvmName("xeqigqgvdgiuwgip")
    public suspend fun physicalTableMaps(argument: suspend DataSetPhysicalTableMapArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            DataSetPhysicalTableMapArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.physicalTableMaps = mapped
    }

    /**
     * @param values Declares the physical tables that are available in the underlying data sources. See physical_table_map.
     * The following arguments are optional:
     */
    @JvmName("quewmsjyfegwuaqp")
    public suspend fun physicalTableMaps(vararg values: DataSetPhysicalTableMapArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.physicalTableMaps = mapped
    }

    /**
     * @param value The refresh properties for the data set. **NOTE**: Only valid when `import_mode` is set to `SPICE`. See refresh_properties.
     */
    @JvmName("qussjsdbwmwtulgi")
    public suspend fun refreshProperties(`value`: DataSetRefreshPropertiesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.refreshProperties = mapped
    }

    /**
     * @param argument The refresh properties for the data set. **NOTE**: Only valid when `import_mode` is set to `SPICE`. See refresh_properties.
     */
    @JvmName("aojlrdqdckpymslx")
    public suspend fun refreshProperties(argument: suspend DataSetRefreshPropertiesArgsBuilder.() -> Unit) {
        val toBeMapped = DataSetRefreshPropertiesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.refreshProperties = mapped
    }

    /**
     * @param value The row-level security configuration for the data that you want to create. See row_level_permission_data_set.
     */
    @JvmName("kboxwhvteooncive")
    public suspend fun rowLevelPermissionDataSet(`value`: DataSetRowLevelPermissionDataSetArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rowLevelPermissionDataSet = mapped
    }

    /**
     * @param argument The row-level security configuration for the data that you want to create. See row_level_permission_data_set.
     */
    @JvmName("expbwdwwyptcjmyk")
    public suspend fun rowLevelPermissionDataSet(argument: suspend DataSetRowLevelPermissionDataSetArgsBuilder.() -> Unit) {
        val toBeMapped = DataSetRowLevelPermissionDataSetArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.rowLevelPermissionDataSet = mapped
    }

    /**
     * @param value The configuration of tags on a dataset to set row-level security. Row-level security tags are currently supported for anonymous embedding only. See row_level_permission_tag_configuration.
     */
    @JvmName("rnsmmdqmhuirpyrl")
    public suspend fun rowLevelPermissionTagConfiguration(`value`: DataSetRowLevelPermissionTagConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rowLevelPermissionTagConfiguration = mapped
    }

    /**
     * @param argument The configuration of tags on a dataset to set row-level security. Row-level security tags are currently supported for anonymous embedding only. See row_level_permission_tag_configuration.
     */
    @JvmName("dahggdhroocabryx")
    public suspend fun rowLevelPermissionTagConfiguration(argument: suspend DataSetRowLevelPermissionTagConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataSetRowLevelPermissionTagConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.rowLevelPermissionTagConfiguration = mapped
    }

    /**
     * @param value Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("vxtfnqlvqohtjltc")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("tosakvqgkbaerulw")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): DataSetArgs = DataSetArgs(
        awsAccountId = awsAccountId,
        columnGroups = columnGroups,
        columnLevelPermissionRules = columnLevelPermissionRules,
        dataSetId = dataSetId,
        dataSetUsageConfiguration = dataSetUsageConfiguration,
        fieldFolders = fieldFolders,
        importMode = importMode,
        logicalTableMaps = logicalTableMaps,
        name = name,
        permissions = permissions,
        physicalTableMaps = physicalTableMaps,
        refreshProperties = refreshProperties,
        rowLevelPermissionDataSet = rowLevelPermissionDataSet,
        rowLevelPermissionTagConfiguration = rowLevelPermissionTagConfiguration,
        tags = tags,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy