github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/quicksight/dataSet.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package quicksight
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Resource for managing a QuickSight Data Set.
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Basic Usage
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/quicksight"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			_, err := quicksight.NewDataSet(ctx, "example", &quicksight.DataSetArgs{
    35  //				DataSetId:  pulumi.String("example-id"),
    36  //				Name:       pulumi.String("example-name"),
    37  //				ImportMode: pulumi.String("SPICE"),
    38  //				PhysicalTableMaps: quicksight.DataSetPhysicalTableMapArray{
    39  //					&quicksight.DataSetPhysicalTableMapArgs{
    40  //						PhysicalTableMapId: pulumi.String("example-id"),
    41  //						S3Source: &quicksight.DataSetPhysicalTableMapS3SourceArgs{
    42  //							DataSourceArn: pulumi.Any(exampleAwsQuicksightDataSource.Arn),
    43  //							InputColumns: quicksight.DataSetPhysicalTableMapS3SourceInputColumnArray{
    44  //								&quicksight.DataSetPhysicalTableMapS3SourceInputColumnArgs{
    45  //									Name: pulumi.String("Column1"),
    46  //									Type: pulumi.String("STRING"),
    47  //								},
    48  //							},
    49  //							UploadSettings: &quicksight.DataSetPhysicalTableMapS3SourceUploadSettingsArgs{
    50  //								Format: pulumi.String("JSON"),
    51  //							},
    52  //						},
    53  //					},
    54  //				},
    55  //			})
    56  //			if err != nil {
    57  //				return err
    58  //			}
    59  //			return nil
    60  //		})
    61  //	}
    62  //
    63  // ```
    64  // <!--End PulumiCodeChooser -->
    65  //
    66  // ### With Column Level Permission Rules
    67  //
    68  // <!--Start PulumiCodeChooser -->
    69  // ```go
    70  // package main
    71  //
    72  // import (
    73  //
    74  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/quicksight"
    75  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    76  //
    77  // )
    78  //
    79  //	func main() {
    80  //		pulumi.Run(func(ctx *pulumi.Context) error {
    81  //			_, err := quicksight.NewDataSet(ctx, "example", &quicksight.DataSetArgs{
    82  //				DataSetId:  pulumi.String("example-id"),
    83  //				Name:       pulumi.String("example-name"),
    84  //				ImportMode: pulumi.String("SPICE"),
    85  //				PhysicalTableMaps: quicksight.DataSetPhysicalTableMapArray{
    86  //					&quicksight.DataSetPhysicalTableMapArgs{
    87  //						PhysicalTableMapId: pulumi.String("example-id"),
    88  //						S3Source: &quicksight.DataSetPhysicalTableMapS3SourceArgs{
    89  //							DataSourceArn: pulumi.Any(exampleAwsQuicksightDataSource.Arn),
    90  //							InputColumns: quicksight.DataSetPhysicalTableMapS3SourceInputColumnArray{
    91  //								&quicksight.DataSetPhysicalTableMapS3SourceInputColumnArgs{
    92  //									Name: pulumi.String("Column1"),
    93  //									Type: pulumi.String("STRING"),
    94  //								},
    95  //							},
    96  //							UploadSettings: &quicksight.DataSetPhysicalTableMapS3SourceUploadSettingsArgs{
    97  //								Format: pulumi.String("JSON"),
    98  //							},
    99  //						},
   100  //					},
   101  //				},
   102  //				ColumnLevelPermissionRules: quicksight.DataSetColumnLevelPermissionRuleArray{
   103  //					&quicksight.DataSetColumnLevelPermissionRuleArgs{
   104  //						ColumnNames: pulumi.StringArray{
   105  //							pulumi.String("Column1"),
   106  //						},
   107  //						Principals: pulumi.StringArray{
   108  //							exampleAwsQuicksightUser.Arn,
   109  //						},
   110  //					},
   111  //				},
   112  //			})
   113  //			if err != nil {
   114  //				return err
   115  //			}
   116  //			return nil
   117  //		})
   118  //	}
   119  //
   120  // ```
   121  // <!--End PulumiCodeChooser -->
   122  //
   123  // ### With Field Folders
   124  //
   125  // <!--Start PulumiCodeChooser -->
   126  // ```go
   127  // package main
   128  //
   129  // import (
   130  //
   131  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/quicksight"
   132  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   133  //
   134  // )
   135  //
   136  //	func main() {
   137  //		pulumi.Run(func(ctx *pulumi.Context) error {
   138  //			_, err := quicksight.NewDataSet(ctx, "example", &quicksight.DataSetArgs{
   139  //				DataSetId:  pulumi.String("example-id"),
   140  //				Name:       pulumi.String("example-name"),
   141  //				ImportMode: pulumi.String("SPICE"),
   142  //				PhysicalTableMaps: quicksight.DataSetPhysicalTableMapArray{
   143  //					&quicksight.DataSetPhysicalTableMapArgs{
   144  //						PhysicalTableMapId: pulumi.String("example-id"),
   145  //						S3Source: &quicksight.DataSetPhysicalTableMapS3SourceArgs{
   146  //							DataSourceArn: pulumi.Any(exampleAwsQuicksightDataSource.Arn),
   147  //							InputColumns: quicksight.DataSetPhysicalTableMapS3SourceInputColumnArray{
   148  //								&quicksight.DataSetPhysicalTableMapS3SourceInputColumnArgs{
   149  //									Name: pulumi.String("Column1"),
   150  //									Type: pulumi.String("STRING"),
   151  //								},
   152  //							},
   153  //							UploadSettings: &quicksight.DataSetPhysicalTableMapS3SourceUploadSettingsArgs{
   154  //								Format: pulumi.String("JSON"),
   155  //							},
   156  //						},
   157  //					},
   158  //				},
   159  //				FieldFolders: quicksight.DataSetFieldFolderArray{
   160  //					&quicksight.DataSetFieldFolderArgs{
   161  //						FieldFoldersId: pulumi.String("example-id"),
   162  //						Columns: pulumi.StringArray{
   163  //							pulumi.String("Column1"),
   164  //						},
   165  //						Description: pulumi.String("example description"),
   166  //					},
   167  //				},
   168  //			})
   169  //			if err != nil {
   170  //				return err
   171  //			}
   172  //			return nil
   173  //		})
   174  //	}
   175  //
   176  // ```
   177  // <!--End PulumiCodeChooser -->
   178  //
   179  // ### With Permissions
   180  //
   181  // <!--Start PulumiCodeChooser -->
   182  // ```go
   183  // package main
   184  //
   185  // import (
   186  //
   187  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/quicksight"
   188  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   189  //
   190  // )
   191  //
   192  //	func main() {
   193  //		pulumi.Run(func(ctx *pulumi.Context) error {
   194  //			_, err := quicksight.NewDataSet(ctx, "example", &quicksight.DataSetArgs{
   195  //				DataSetId:  pulumi.String("example-id"),
   196  //				Name:       pulumi.String("example-name"),
   197  //				ImportMode: pulumi.String("SPICE"),
   198  //				PhysicalTableMaps: quicksight.DataSetPhysicalTableMapArray{
   199  //					&quicksight.DataSetPhysicalTableMapArgs{
   200  //						PhysicalTableMapId: pulumi.String("example-id"),
   201  //						S3Source: &quicksight.DataSetPhysicalTableMapS3SourceArgs{
   202  //							DataSourceArn: pulumi.Any(exampleAwsQuicksightDataSource.Arn),
   203  //							InputColumns: quicksight.DataSetPhysicalTableMapS3SourceInputColumnArray{
   204  //								&quicksight.DataSetPhysicalTableMapS3SourceInputColumnArgs{
   205  //									Name: pulumi.String("Column1"),
   206  //									Type: pulumi.String("STRING"),
   207  //								},
   208  //							},
   209  //							UploadSettings: &quicksight.DataSetPhysicalTableMapS3SourceUploadSettingsArgs{
   210  //								Format: pulumi.String("JSON"),
   211  //							},
   212  //						},
   213  //					},
   214  //				},
   215  //				Permissions: quicksight.DataSetPermissionArray{
   216  //					&quicksight.DataSetPermissionArgs{
   217  //						Actions: pulumi.StringArray{
   218  //							pulumi.String("quicksight:DescribeDataSet"),
   219  //							pulumi.String("quicksight:DescribeDataSetPermissions"),
   220  //							pulumi.String("quicksight:PassDataSet"),
   221  //							pulumi.String("quicksight:DescribeIngestion"),
   222  //							pulumi.String("quicksight:ListIngestions"),
   223  //						},
   224  //						Principal: pulumi.Any(exampleAwsQuicksightUser.Arn),
   225  //					},
   226  //				},
   227  //			})
   228  //			if err != nil {
   229  //				return err
   230  //			}
   231  //			return nil
   232  //		})
   233  //	}
   234  //
   235  // ```
   236  // <!--End PulumiCodeChooser -->
   237  //
   238  // ### With Row Level Permission Tag Configuration
   239  //
   240  // <!--Start PulumiCodeChooser -->
   241  // ```go
   242  // package main
   243  //
   244  // import (
   245  //
   246  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/quicksight"
   247  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   248  //
   249  // )
   250  //
   251  //	func main() {
   252  //		pulumi.Run(func(ctx *pulumi.Context) error {
   253  //			_, err := quicksight.NewDataSet(ctx, "example", &quicksight.DataSetArgs{
   254  //				DataSetId:  pulumi.String("example-id"),
   255  //				Name:       pulumi.String("example-name"),
   256  //				ImportMode: pulumi.String("SPICE"),
   257  //				PhysicalTableMaps: quicksight.DataSetPhysicalTableMapArray{
   258  //					&quicksight.DataSetPhysicalTableMapArgs{
   259  //						PhysicalTableMapId: pulumi.String("example-id"),
   260  //						S3Source: &quicksight.DataSetPhysicalTableMapS3SourceArgs{
   261  //							DataSourceArn: pulumi.Any(exampleAwsQuicksightDataSource.Arn),
   262  //							InputColumns: quicksight.DataSetPhysicalTableMapS3SourceInputColumnArray{
   263  //								&quicksight.DataSetPhysicalTableMapS3SourceInputColumnArgs{
   264  //									Name: pulumi.String("Column1"),
   265  //									Type: pulumi.String("STRING"),
   266  //								},
   267  //							},
   268  //							UploadSettings: &quicksight.DataSetPhysicalTableMapS3SourceUploadSettingsArgs{
   269  //								Format: pulumi.String("JSON"),
   270  //							},
   271  //						},
   272  //					},
   273  //				},
   274  //				RowLevelPermissionTagConfiguration: &quicksight.DataSetRowLevelPermissionTagConfigurationArgs{
   275  //					Status: pulumi.String("ENABLED"),
   276  //					TagRules: quicksight.DataSetRowLevelPermissionTagConfigurationTagRuleArray{
   277  //						&quicksight.DataSetRowLevelPermissionTagConfigurationTagRuleArgs{
   278  //							ColumnName:             pulumi.String("Column1"),
   279  //							TagKey:                 pulumi.String("tagkey"),
   280  //							MatchAllValue:          pulumi.String("*"),
   281  //							TagMultiValueDelimiter: pulumi.String(","),
   282  //						},
   283  //					},
   284  //				},
   285  //			})
   286  //			if err != nil {
   287  //				return err
   288  //			}
   289  //			return nil
   290  //		})
   291  //	}
   292  //
   293  // ```
   294  // <!--End PulumiCodeChooser -->
   295  //
   296  // ## Import
   297  //
   298  // Using `pulumi import`, import a QuickSight Data Set using the AWS account ID and data set ID separated by a comma (`,`). For example:
   299  //
   300  // ```sh
   301  // $ pulumi import aws:quicksight/dataSet:DataSet example 123456789012,example-id
   302  // ```
   303  type DataSet struct {
   304  	pulumi.CustomResourceState
   305  
   306  	// ARN of the dataset that contains permissions for RLS.
   307  	Arn pulumi.StringOutput `pulumi:"arn"`
   308  	// AWS account ID.
   309  	AwsAccountId pulumi.StringOutput `pulumi:"awsAccountId"`
   310  	// Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
   311  	ColumnGroups DataSetColumnGroupArrayOutput `pulumi:"columnGroups"`
   312  	// 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.
   313  	ColumnLevelPermissionRules DataSetColumnLevelPermissionRuleArrayOutput `pulumi:"columnLevelPermissionRules"`
   314  	// Identifier for the data set.
   315  	DataSetId pulumi.StringOutput `pulumi:"dataSetId"`
   316  	// The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration.
   317  	DataSetUsageConfiguration DataSetDataSetUsageConfigurationOutput `pulumi:"dataSetUsageConfiguration"`
   318  	// The folder that contains fields and nested subfolders for your dataset. See field_folders.
   319  	FieldFolders DataSetFieldFolderArrayOutput `pulumi:"fieldFolders"`
   320  	// Indicates whether you want to import the data into SPICE. Valid values are `SPICE` and `DIRECT_QUERY`.
   321  	ImportMode pulumi.StringOutput `pulumi:"importMode"`
   322  	// Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
   323  	LogicalTableMaps DataSetLogicalTableMapArrayOutput `pulumi:"logicalTableMaps"`
   324  	// Display name for the dataset.
   325  	Name          pulumi.StringOutput            `pulumi:"name"`
   326  	OutputColumns DataSetOutputColumnArrayOutput `pulumi:"outputColumns"`
   327  	// A set of resource permissions on the data source. Maximum of 64 items. See permissions.
   328  	Permissions DataSetPermissionArrayOutput `pulumi:"permissions"`
   329  	// Declares the physical tables that are available in the underlying data sources. See physical_table_map.
   330  	//
   331  	// The following arguments are optional:
   332  	PhysicalTableMaps DataSetPhysicalTableMapArrayOutput `pulumi:"physicalTableMaps"`
   333  	// The refresh properties for the data set. **NOTE**: Only valid when `importMode` is set to `SPICE`. See refresh_properties.
   334  	RefreshProperties DataSetRefreshPropertiesPtrOutput `pulumi:"refreshProperties"`
   335  	// The row-level security configuration for the data that you want to create. See row_level_permission_data_set.
   336  	RowLevelPermissionDataSet DataSetRowLevelPermissionDataSetPtrOutput `pulumi:"rowLevelPermissionDataSet"`
   337  	// 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.
   338  	RowLevelPermissionTagConfiguration DataSetRowLevelPermissionTagConfigurationPtrOutput `pulumi:"rowLevelPermissionTagConfiguration"`
   339  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   340  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   341  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   342  	//
   343  	// Deprecated: Please use `tags` instead.
   344  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   345  }
   346  
   347  // NewDataSet registers a new resource with the given unique name, arguments, and options.
   348  func NewDataSet(ctx *pulumi.Context,
   349  	name string, args *DataSetArgs, opts ...pulumi.ResourceOption) (*DataSet, error) {
   350  	if args == nil {
   351  		return nil, errors.New("missing one or more required arguments")
   352  	}
   353  
   354  	if args.DataSetId == nil {
   355  		return nil, errors.New("invalid value for required argument 'DataSetId'")
   356  	}
   357  	if args.ImportMode == nil {
   358  		return nil, errors.New("invalid value for required argument 'ImportMode'")
   359  	}
   360  	opts = internal.PkgResourceDefaultOpts(opts)
   361  	var resource DataSet
   362  	err := ctx.RegisterResource("aws:quicksight/dataSet:DataSet", name, args, &resource, opts...)
   363  	if err != nil {
   364  		return nil, err
   365  	}
   366  	return &resource, nil
   367  }
   368  
   369  // GetDataSet gets an existing DataSet resource's state with the given name, ID, and optional
   370  // state properties that are used to uniquely qualify the lookup (nil if not required).
   371  func GetDataSet(ctx *pulumi.Context,
   372  	name string, id pulumi.IDInput, state *DataSetState, opts ...pulumi.ResourceOption) (*DataSet, error) {
   373  	var resource DataSet
   374  	err := ctx.ReadResource("aws:quicksight/dataSet:DataSet", name, id, state, &resource, opts...)
   375  	if err != nil {
   376  		return nil, err
   377  	}
   378  	return &resource, nil
   379  }
   380  
   381  // Input properties used for looking up and filtering DataSet resources.
   382  type dataSetState struct {
   383  	// ARN of the dataset that contains permissions for RLS.
   384  	Arn *string `pulumi:"arn"`
   385  	// AWS account ID.
   386  	AwsAccountId *string `pulumi:"awsAccountId"`
   387  	// Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
   388  	ColumnGroups []DataSetColumnGroup `pulumi:"columnGroups"`
   389  	// 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.
   390  	ColumnLevelPermissionRules []DataSetColumnLevelPermissionRule `pulumi:"columnLevelPermissionRules"`
   391  	// Identifier for the data set.
   392  	DataSetId *string `pulumi:"dataSetId"`
   393  	// The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration.
   394  	DataSetUsageConfiguration *DataSetDataSetUsageConfiguration `pulumi:"dataSetUsageConfiguration"`
   395  	// The folder that contains fields and nested subfolders for your dataset. See field_folders.
   396  	FieldFolders []DataSetFieldFolder `pulumi:"fieldFolders"`
   397  	// Indicates whether you want to import the data into SPICE. Valid values are `SPICE` and `DIRECT_QUERY`.
   398  	ImportMode *string `pulumi:"importMode"`
   399  	// Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
   400  	LogicalTableMaps []DataSetLogicalTableMap `pulumi:"logicalTableMaps"`
   401  	// Display name for the dataset.
   402  	Name          *string               `pulumi:"name"`
   403  	OutputColumns []DataSetOutputColumn `pulumi:"outputColumns"`
   404  	// A set of resource permissions on the data source. Maximum of 64 items. See permissions.
   405  	Permissions []DataSetPermission `pulumi:"permissions"`
   406  	// Declares the physical tables that are available in the underlying data sources. See physical_table_map.
   407  	//
   408  	// The following arguments are optional:
   409  	PhysicalTableMaps []DataSetPhysicalTableMap `pulumi:"physicalTableMaps"`
   410  	// The refresh properties for the data set. **NOTE**: Only valid when `importMode` is set to `SPICE`. See refresh_properties.
   411  	RefreshProperties *DataSetRefreshProperties `pulumi:"refreshProperties"`
   412  	// The row-level security configuration for the data that you want to create. See row_level_permission_data_set.
   413  	RowLevelPermissionDataSet *DataSetRowLevelPermissionDataSet `pulumi:"rowLevelPermissionDataSet"`
   414  	// 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.
   415  	RowLevelPermissionTagConfiguration *DataSetRowLevelPermissionTagConfiguration `pulumi:"rowLevelPermissionTagConfiguration"`
   416  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   417  	Tags map[string]string `pulumi:"tags"`
   418  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   419  	//
   420  	// Deprecated: Please use `tags` instead.
   421  	TagsAll map[string]string `pulumi:"tagsAll"`
   422  }
   423  
   424  type DataSetState struct {
   425  	// ARN of the dataset that contains permissions for RLS.
   426  	Arn pulumi.StringPtrInput
   427  	// AWS account ID.
   428  	AwsAccountId pulumi.StringPtrInput
   429  	// Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
   430  	ColumnGroups DataSetColumnGroupArrayInput
   431  	// 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.
   432  	ColumnLevelPermissionRules DataSetColumnLevelPermissionRuleArrayInput
   433  	// Identifier for the data set.
   434  	DataSetId pulumi.StringPtrInput
   435  	// The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration.
   436  	DataSetUsageConfiguration DataSetDataSetUsageConfigurationPtrInput
   437  	// The folder that contains fields and nested subfolders for your dataset. See field_folders.
   438  	FieldFolders DataSetFieldFolderArrayInput
   439  	// Indicates whether you want to import the data into SPICE. Valid values are `SPICE` and `DIRECT_QUERY`.
   440  	ImportMode pulumi.StringPtrInput
   441  	// Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
   442  	LogicalTableMaps DataSetLogicalTableMapArrayInput
   443  	// Display name for the dataset.
   444  	Name          pulumi.StringPtrInput
   445  	OutputColumns DataSetOutputColumnArrayInput
   446  	// A set of resource permissions on the data source. Maximum of 64 items. See permissions.
   447  	Permissions DataSetPermissionArrayInput
   448  	// Declares the physical tables that are available in the underlying data sources. See physical_table_map.
   449  	//
   450  	// The following arguments are optional:
   451  	PhysicalTableMaps DataSetPhysicalTableMapArrayInput
   452  	// The refresh properties for the data set. **NOTE**: Only valid when `importMode` is set to `SPICE`. See refresh_properties.
   453  	RefreshProperties DataSetRefreshPropertiesPtrInput
   454  	// The row-level security configuration for the data that you want to create. See row_level_permission_data_set.
   455  	RowLevelPermissionDataSet DataSetRowLevelPermissionDataSetPtrInput
   456  	// 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.
   457  	RowLevelPermissionTagConfiguration DataSetRowLevelPermissionTagConfigurationPtrInput
   458  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   459  	Tags pulumi.StringMapInput
   460  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   461  	//
   462  	// Deprecated: Please use `tags` instead.
   463  	TagsAll pulumi.StringMapInput
   464  }
   465  
   466  func (DataSetState) ElementType() reflect.Type {
   467  	return reflect.TypeOf((*dataSetState)(nil)).Elem()
   468  }
   469  
   470  type dataSetArgs struct {
   471  	// AWS account ID.
   472  	AwsAccountId *string `pulumi:"awsAccountId"`
   473  	// Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
   474  	ColumnGroups []DataSetColumnGroup `pulumi:"columnGroups"`
   475  	// 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.
   476  	ColumnLevelPermissionRules []DataSetColumnLevelPermissionRule `pulumi:"columnLevelPermissionRules"`
   477  	// Identifier for the data set.
   478  	DataSetId string `pulumi:"dataSetId"`
   479  	// The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration.
   480  	DataSetUsageConfiguration *DataSetDataSetUsageConfiguration `pulumi:"dataSetUsageConfiguration"`
   481  	// The folder that contains fields and nested subfolders for your dataset. See field_folders.
   482  	FieldFolders []DataSetFieldFolder `pulumi:"fieldFolders"`
   483  	// Indicates whether you want to import the data into SPICE. Valid values are `SPICE` and `DIRECT_QUERY`.
   484  	ImportMode string `pulumi:"importMode"`
   485  	// Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
   486  	LogicalTableMaps []DataSetLogicalTableMap `pulumi:"logicalTableMaps"`
   487  	// Display name for the dataset.
   488  	Name *string `pulumi:"name"`
   489  	// A set of resource permissions on the data source. Maximum of 64 items. See permissions.
   490  	Permissions []DataSetPermission `pulumi:"permissions"`
   491  	// Declares the physical tables that are available in the underlying data sources. See physical_table_map.
   492  	//
   493  	// The following arguments are optional:
   494  	PhysicalTableMaps []DataSetPhysicalTableMap `pulumi:"physicalTableMaps"`
   495  	// The refresh properties for the data set. **NOTE**: Only valid when `importMode` is set to `SPICE`. See refresh_properties.
   496  	RefreshProperties *DataSetRefreshProperties `pulumi:"refreshProperties"`
   497  	// The row-level security configuration for the data that you want to create. See row_level_permission_data_set.
   498  	RowLevelPermissionDataSet *DataSetRowLevelPermissionDataSet `pulumi:"rowLevelPermissionDataSet"`
   499  	// 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.
   500  	RowLevelPermissionTagConfiguration *DataSetRowLevelPermissionTagConfiguration `pulumi:"rowLevelPermissionTagConfiguration"`
   501  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   502  	Tags map[string]string `pulumi:"tags"`
   503  }
   504  
   505  // The set of arguments for constructing a DataSet resource.
   506  type DataSetArgs struct {
   507  	// AWS account ID.
   508  	AwsAccountId pulumi.StringPtrInput
   509  	// Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
   510  	ColumnGroups DataSetColumnGroupArrayInput
   511  	// 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.
   512  	ColumnLevelPermissionRules DataSetColumnLevelPermissionRuleArrayInput
   513  	// Identifier for the data set.
   514  	DataSetId pulumi.StringInput
   515  	// The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration.
   516  	DataSetUsageConfiguration DataSetDataSetUsageConfigurationPtrInput
   517  	// The folder that contains fields and nested subfolders for your dataset. See field_folders.
   518  	FieldFolders DataSetFieldFolderArrayInput
   519  	// Indicates whether you want to import the data into SPICE. Valid values are `SPICE` and `DIRECT_QUERY`.
   520  	ImportMode pulumi.StringInput
   521  	// Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
   522  	LogicalTableMaps DataSetLogicalTableMapArrayInput
   523  	// Display name for the dataset.
   524  	Name pulumi.StringPtrInput
   525  	// A set of resource permissions on the data source. Maximum of 64 items. See permissions.
   526  	Permissions DataSetPermissionArrayInput
   527  	// Declares the physical tables that are available in the underlying data sources. See physical_table_map.
   528  	//
   529  	// The following arguments are optional:
   530  	PhysicalTableMaps DataSetPhysicalTableMapArrayInput
   531  	// The refresh properties for the data set. **NOTE**: Only valid when `importMode` is set to `SPICE`. See refresh_properties.
   532  	RefreshProperties DataSetRefreshPropertiesPtrInput
   533  	// The row-level security configuration for the data that you want to create. See row_level_permission_data_set.
   534  	RowLevelPermissionDataSet DataSetRowLevelPermissionDataSetPtrInput
   535  	// 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.
   536  	RowLevelPermissionTagConfiguration DataSetRowLevelPermissionTagConfigurationPtrInput
   537  	// Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   538  	Tags pulumi.StringMapInput
   539  }
   540  
   541  func (DataSetArgs) ElementType() reflect.Type {
   542  	return reflect.TypeOf((*dataSetArgs)(nil)).Elem()
   543  }
   544  
   545  type DataSetInput interface {
   546  	pulumi.Input
   547  
   548  	ToDataSetOutput() DataSetOutput
   549  	ToDataSetOutputWithContext(ctx context.Context) DataSetOutput
   550  }
   551  
   552  func (*DataSet) ElementType() reflect.Type {
   553  	return reflect.TypeOf((**DataSet)(nil)).Elem()
   554  }
   555  
   556  func (i *DataSet) ToDataSetOutput() DataSetOutput {
   557  	return i.ToDataSetOutputWithContext(context.Background())
   558  }
   559  
   560  func (i *DataSet) ToDataSetOutputWithContext(ctx context.Context) DataSetOutput {
   561  	return pulumi.ToOutputWithContext(ctx, i).(DataSetOutput)
   562  }
   563  
   564  // DataSetArrayInput is an input type that accepts DataSetArray and DataSetArrayOutput values.
   565  // You can construct a concrete instance of `DataSetArrayInput` via:
   566  //
   567  //	DataSetArray{ DataSetArgs{...} }
   568  type DataSetArrayInput interface {
   569  	pulumi.Input
   570  
   571  	ToDataSetArrayOutput() DataSetArrayOutput
   572  	ToDataSetArrayOutputWithContext(context.Context) DataSetArrayOutput
   573  }
   574  
   575  type DataSetArray []DataSetInput
   576  
   577  func (DataSetArray) ElementType() reflect.Type {
   578  	return reflect.TypeOf((*[]*DataSet)(nil)).Elem()
   579  }
   580  
   581  func (i DataSetArray) ToDataSetArrayOutput() DataSetArrayOutput {
   582  	return i.ToDataSetArrayOutputWithContext(context.Background())
   583  }
   584  
   585  func (i DataSetArray) ToDataSetArrayOutputWithContext(ctx context.Context) DataSetArrayOutput {
   586  	return pulumi.ToOutputWithContext(ctx, i).(DataSetArrayOutput)
   587  }
   588  
   589  // DataSetMapInput is an input type that accepts DataSetMap and DataSetMapOutput values.
   590  // You can construct a concrete instance of `DataSetMapInput` via:
   591  //
   592  //	DataSetMap{ "key": DataSetArgs{...} }
   593  type DataSetMapInput interface {
   594  	pulumi.Input
   595  
   596  	ToDataSetMapOutput() DataSetMapOutput
   597  	ToDataSetMapOutputWithContext(context.Context) DataSetMapOutput
   598  }
   599  
   600  type DataSetMap map[string]DataSetInput
   601  
   602  func (DataSetMap) ElementType() reflect.Type {
   603  	return reflect.TypeOf((*map[string]*DataSet)(nil)).Elem()
   604  }
   605  
   606  func (i DataSetMap) ToDataSetMapOutput() DataSetMapOutput {
   607  	return i.ToDataSetMapOutputWithContext(context.Background())
   608  }
   609  
   610  func (i DataSetMap) ToDataSetMapOutputWithContext(ctx context.Context) DataSetMapOutput {
   611  	return pulumi.ToOutputWithContext(ctx, i).(DataSetMapOutput)
   612  }
   613  
   614  type DataSetOutput struct{ *pulumi.OutputState }
   615  
   616  func (DataSetOutput) ElementType() reflect.Type {
   617  	return reflect.TypeOf((**DataSet)(nil)).Elem()
   618  }
   619  
   620  func (o DataSetOutput) ToDataSetOutput() DataSetOutput {
   621  	return o
   622  }
   623  
   624  func (o DataSetOutput) ToDataSetOutputWithContext(ctx context.Context) DataSetOutput {
   625  	return o
   626  }
   627  
   628  // ARN of the dataset that contains permissions for RLS.
   629  func (o DataSetOutput) Arn() pulumi.StringOutput {
   630  	return o.ApplyT(func(v *DataSet) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   631  }
   632  
   633  // AWS account ID.
   634  func (o DataSetOutput) AwsAccountId() pulumi.StringOutput {
   635  	return o.ApplyT(func(v *DataSet) pulumi.StringOutput { return v.AwsAccountId }).(pulumi.StringOutput)
   636  }
   637  
   638  // Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups.
   639  func (o DataSetOutput) ColumnGroups() DataSetColumnGroupArrayOutput {
   640  	return o.ApplyT(func(v *DataSet) DataSetColumnGroupArrayOutput { return v.ColumnGroups }).(DataSetColumnGroupArrayOutput)
   641  }
   642  
   643  // 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.
   644  func (o DataSetOutput) ColumnLevelPermissionRules() DataSetColumnLevelPermissionRuleArrayOutput {
   645  	return o.ApplyT(func(v *DataSet) DataSetColumnLevelPermissionRuleArrayOutput { return v.ColumnLevelPermissionRules }).(DataSetColumnLevelPermissionRuleArrayOutput)
   646  }
   647  
   648  // Identifier for the data set.
   649  func (o DataSetOutput) DataSetId() pulumi.StringOutput {
   650  	return o.ApplyT(func(v *DataSet) pulumi.StringOutput { return v.DataSetId }).(pulumi.StringOutput)
   651  }
   652  
   653  // The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration.
   654  func (o DataSetOutput) DataSetUsageConfiguration() DataSetDataSetUsageConfigurationOutput {
   655  	return o.ApplyT(func(v *DataSet) DataSetDataSetUsageConfigurationOutput { return v.DataSetUsageConfiguration }).(DataSetDataSetUsageConfigurationOutput)
   656  }
   657  
   658  // The folder that contains fields and nested subfolders for your dataset. See field_folders.
   659  func (o DataSetOutput) FieldFolders() DataSetFieldFolderArrayOutput {
   660  	return o.ApplyT(func(v *DataSet) DataSetFieldFolderArrayOutput { return v.FieldFolders }).(DataSetFieldFolderArrayOutput)
   661  }
   662  
   663  // Indicates whether you want to import the data into SPICE. Valid values are `SPICE` and `DIRECT_QUERY`.
   664  func (o DataSetOutput) ImportMode() pulumi.StringOutput {
   665  	return o.ApplyT(func(v *DataSet) pulumi.StringOutput { return v.ImportMode }).(pulumi.StringOutput)
   666  }
   667  
   668  // Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map.
   669  func (o DataSetOutput) LogicalTableMaps() DataSetLogicalTableMapArrayOutput {
   670  	return o.ApplyT(func(v *DataSet) DataSetLogicalTableMapArrayOutput { return v.LogicalTableMaps }).(DataSetLogicalTableMapArrayOutput)
   671  }
   672  
   673  // Display name for the dataset.
   674  func (o DataSetOutput) Name() pulumi.StringOutput {
   675  	return o.ApplyT(func(v *DataSet) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   676  }
   677  
   678  func (o DataSetOutput) OutputColumns() DataSetOutputColumnArrayOutput {
   679  	return o.ApplyT(func(v *DataSet) DataSetOutputColumnArrayOutput { return v.OutputColumns }).(DataSetOutputColumnArrayOutput)
   680  }
   681  
   682  // A set of resource permissions on the data source. Maximum of 64 items. See permissions.
   683  func (o DataSetOutput) Permissions() DataSetPermissionArrayOutput {
   684  	return o.ApplyT(func(v *DataSet) DataSetPermissionArrayOutput { return v.Permissions }).(DataSetPermissionArrayOutput)
   685  }
   686  
   687  // Declares the physical tables that are available in the underlying data sources. See physical_table_map.
   688  //
   689  // The following arguments are optional:
   690  func (o DataSetOutput) PhysicalTableMaps() DataSetPhysicalTableMapArrayOutput {
   691  	return o.ApplyT(func(v *DataSet) DataSetPhysicalTableMapArrayOutput { return v.PhysicalTableMaps }).(DataSetPhysicalTableMapArrayOutput)
   692  }
   693  
   694  // The refresh properties for the data set. **NOTE**: Only valid when `importMode` is set to `SPICE`. See refresh_properties.
   695  func (o DataSetOutput) RefreshProperties() DataSetRefreshPropertiesPtrOutput {
   696  	return o.ApplyT(func(v *DataSet) DataSetRefreshPropertiesPtrOutput { return v.RefreshProperties }).(DataSetRefreshPropertiesPtrOutput)
   697  }
   698  
   699  // The row-level security configuration for the data that you want to create. See row_level_permission_data_set.
   700  func (o DataSetOutput) RowLevelPermissionDataSet() DataSetRowLevelPermissionDataSetPtrOutput {
   701  	return o.ApplyT(func(v *DataSet) DataSetRowLevelPermissionDataSetPtrOutput { return v.RowLevelPermissionDataSet }).(DataSetRowLevelPermissionDataSetPtrOutput)
   702  }
   703  
   704  // 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.
   705  func (o DataSetOutput) RowLevelPermissionTagConfiguration() DataSetRowLevelPermissionTagConfigurationPtrOutput {
   706  	return o.ApplyT(func(v *DataSet) DataSetRowLevelPermissionTagConfigurationPtrOutput {
   707  		return v.RowLevelPermissionTagConfiguration
   708  	}).(DataSetRowLevelPermissionTagConfigurationPtrOutput)
   709  }
   710  
   711  // Key-value map of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   712  func (o DataSetOutput) Tags() pulumi.StringMapOutput {
   713  	return o.ApplyT(func(v *DataSet) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   714  }
   715  
   716  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   717  //
   718  // Deprecated: Please use `tags` instead.
   719  func (o DataSetOutput) TagsAll() pulumi.StringMapOutput {
   720  	return o.ApplyT(func(v *DataSet) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   721  }
   722  
   723  type DataSetArrayOutput struct{ *pulumi.OutputState }
   724  
   725  func (DataSetArrayOutput) ElementType() reflect.Type {
   726  	return reflect.TypeOf((*[]*DataSet)(nil)).Elem()
   727  }
   728  
   729  func (o DataSetArrayOutput) ToDataSetArrayOutput() DataSetArrayOutput {
   730  	return o
   731  }
   732  
   733  func (o DataSetArrayOutput) ToDataSetArrayOutputWithContext(ctx context.Context) DataSetArrayOutput {
   734  	return o
   735  }
   736  
   737  func (o DataSetArrayOutput) Index(i pulumi.IntInput) DataSetOutput {
   738  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DataSet {
   739  		return vs[0].([]*DataSet)[vs[1].(int)]
   740  	}).(DataSetOutput)
   741  }
   742  
   743  type DataSetMapOutput struct{ *pulumi.OutputState }
   744  
   745  func (DataSetMapOutput) ElementType() reflect.Type {
   746  	return reflect.TypeOf((*map[string]*DataSet)(nil)).Elem()
   747  }
   748  
   749  func (o DataSetMapOutput) ToDataSetMapOutput() DataSetMapOutput {
   750  	return o
   751  }
   752  
   753  func (o DataSetMapOutput) ToDataSetMapOutputWithContext(ctx context.Context) DataSetMapOutput {
   754  	return o
   755  }
   756  
   757  func (o DataSetMapOutput) MapIndex(k pulumi.StringInput) DataSetOutput {
   758  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DataSet {
   759  		return vs[0].(map[string]*DataSet)[vs[1].(string)]
   760  	}).(DataSetOutput)
   761  }
   762  
   763  func init() {
   764  	pulumi.RegisterInputType(reflect.TypeOf((*DataSetInput)(nil)).Elem(), &DataSet{})
   765  	pulumi.RegisterInputType(reflect.TypeOf((*DataSetArrayInput)(nil)).Elem(), DataSetArray{})
   766  	pulumi.RegisterInputType(reflect.TypeOf((*DataSetMapInput)(nil)).Elem(), DataSetMap{})
   767  	pulumi.RegisterOutputType(DataSetOutput{})
   768  	pulumi.RegisterOutputType(DataSetArrayOutput{})
   769  	pulumi.RegisterOutputType(DataSetMapOutput{})
   770  }