import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * 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", { * physicalTableMaps: [{ * s3Source: { * uploadSettings: { * format: "JSON", * }, * inputColumns: [{ * name: "Column1", * type: "STRING", * }], * dataSourceArn: exampleAwsQuicksightDataSource.arn, * }, * physicalTableMapId: "example-id", * }], * dataSetId: "example-id", * name: "example-name", * importMode: "SPICE", * }); * ``` * * ### With useAs * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.quicksight.DataSet("example", { * physicalTableMaps: [{ * s3Source: { * uploadSettings: { * format: "JSON", * }, * inputColumns: [{ * name: "UserName", * type: "STRING", * }], * dataSourceArn: exampleAwsQuicksightDataSource.arn, * }, * physicalTableMapId: "example-id", * }], * dataSetId: "example-id", * name: "example-name", * importMode: "SPICE", * useAs: "RLS_RULES", * }); * ``` * * ### 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", { * columnLevelPermissionRules: [{ * columnNames: ["Column1"], * principals: [exampleAwsQuicksightUser.arn], * }], * physicalTableMaps: [{ * s3Source: { * uploadSettings: { * format: "JSON", * }, * inputColumns: [{ * name: "Column1", * type: "STRING", * }], * dataSourceArn: exampleAwsQuicksightDataSource.arn, * }, * physicalTableMapId: "example-id", * }], * dataSetId: "example-id", * name: "example-name", * importMode: "SPICE", * }); * ``` * * ### With Field Folders * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.quicksight.DataSet("example", { * fieldFolders: [{ * fieldFoldersId: "example-id", * columns: ["Column1"], * description: "example description", * }], * physicalTableMaps: [{ * s3Source: { * uploadSettings: { * format: "JSON", * }, * inputColumns: [{ * name: "Column1", * type: "STRING", * }], * dataSourceArn: exampleAwsQuicksightDataSource.arn, * }, * physicalTableMapId: "example-id", * }], * dataSetId: "example-id", * name: "example-name", * importMode: "SPICE", * }); * ``` * * ### With Permissions * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.quicksight.DataSet("example", { * permissions: [{ * actions: [ * "quicksight:DescribeDataSet", * "quicksight:DescribeDataSetPermissions", * "quicksight:PassDataSet", * "quicksight:DescribeIngestion", * "quicksight:ListIngestions", * ], * principal: exampleAwsQuicksightUser.arn, * }], * physicalTableMaps: [{ * s3Source: { * uploadSettings: { * format: "JSON", * }, * inputColumns: [{ * name: "Column1", * type: "STRING", * }], * dataSourceArn: exampleAwsQuicksightDataSource.arn, * }, * physicalTableMapId: "example-id", * }], * dataSetId: "example-id", * name: "example-name", * importMode: "SPICE", * }); * ``` * * ### 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", { * rowLevelPermissionTagConfiguration: { * tagRules: [{ * columnName: "Column1", * tagKey: "tagkey", * matchAllValue: "*", * tagMultiValueDelimiter: ",", * }], * status: "ENABLED", * }, * physicalTableMaps: [{ * s3Source: { * uploadSettings: { * format: "JSON", * }, * inputColumns: [{ * name: "Column1", * type: "STRING", * }], * dataSourceArn: exampleAwsQuicksightDataSource.arn, * }, * physicalTableMapId: "example-id", * }], * dataSetId: "example-id", * name: "example-name", * importMode: "SPICE", * }); * ``` * * ## 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 * ``` */ export declare class DataSet extends pulumi.CustomResource { /** * Get an existing DataSet resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: DataSetState, opts?: pulumi.CustomResourceOptions): DataSet; /** * Returns true if the given object is an instance of DataSet. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is DataSet; /** * ARN of the data set. */ readonly arn: pulumi.Output; /** * AWS account ID. Defaults to automatically determined account ID of the Terraform AWS provider. */ readonly awsAccountId: pulumi.Output; /** * Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups. */ readonly columnGroups: pulumi.Output; /** * 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. */ readonly columnLevelPermissionRules: pulumi.Output; /** * Identifier for the data set. */ readonly dataSetId: pulumi.Output; /** * The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration. */ readonly dataSetUsageConfiguration: pulumi.Output; /** * The folder that contains fields and nested subfolders for your dataset. See field_folders. */ readonly fieldFolders: pulumi.Output; /** * Indicates whether you want to import the data into SPICE. Valid values are `SPICE` and `DIRECT_QUERY`. */ readonly importMode: pulumi.Output; /** * Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map. */ readonly logicalTableMaps: pulumi.Output; /** * Display name for the dataset. * * The following arguments are optional: */ readonly name: pulumi.Output; /** * The final set of columns available for use in analyses and dashboards after all data preparation and transformation steps have been applied within the data set. See `outputColumns` Block below. */ readonly outputColumns: pulumi.Output; /** * A set of resource permissions on the data source. Maximum of 64 items. See permissions. */ readonly permissions: pulumi.Output; /** * Declares the physical tables that are available in the underlying data sources. See physical_table_map. */ readonly physicalTableMaps: pulumi.Output; /** * The refresh properties for the data set. **NOTE**: Only valid when `importMode` is set to `SPICE`. See refresh_properties. */ readonly refreshProperties: pulumi.Output; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ readonly region: pulumi.Output; /** * The row-level security configuration for the data that you want to create. See row_level_permission_data_set. */ readonly rowLevelPermissionDataSet: pulumi.Output; /** * 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. */ readonly rowLevelPermissionTagConfiguration: pulumi.Output; /** * 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. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. */ readonly tagsAll: pulumi.Output<{ [key: string]: string; }>; /** * Specifies the purpose of the data set. The only valid value is `RLS_RULES`, which designates this data set as a Row Level Security (RLS) rules dataset. An RLS rules dataset is used to control access to data at the row level in QuickSight analyses and dashboards. See the [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSet.html#API_CreateDataSet_RequestSyntax) for details. */ readonly useAs: pulumi.Output; /** * Create a DataSet resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: DataSetArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering DataSet resources. */ export interface DataSetState { /** * ARN of the data set. */ arn?: pulumi.Input; /** * AWS account ID. Defaults to automatically determined account ID of the Terraform AWS provider. */ awsAccountId?: pulumi.Input; /** * Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups. */ columnGroups?: pulumi.Input[] | undefined>; /** * 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. */ columnLevelPermissionRules?: pulumi.Input[] | undefined>; /** * Identifier for the data set. */ dataSetId?: pulumi.Input; /** * The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration. */ dataSetUsageConfiguration?: pulumi.Input; /** * The folder that contains fields and nested subfolders for your dataset. See field_folders. */ fieldFolders?: pulumi.Input[] | undefined>; /** * Indicates whether you want to import the data into SPICE. Valid values are `SPICE` and `DIRECT_QUERY`. */ importMode?: pulumi.Input; /** * Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map. */ logicalTableMaps?: pulumi.Input[] | undefined>; /** * Display name for the dataset. * * The following arguments are optional: */ name?: pulumi.Input; /** * The final set of columns available for use in analyses and dashboards after all data preparation and transformation steps have been applied within the data set. See `outputColumns` Block below. */ outputColumns?: pulumi.Input[] | undefined>; /** * A set of resource permissions on the data source. Maximum of 64 items. See permissions. */ permissions?: pulumi.Input[] | undefined>; /** * Declares the physical tables that are available in the underlying data sources. See physical_table_map. */ physicalTableMaps?: pulumi.Input[] | undefined>; /** * The refresh properties for the data set. **NOTE**: Only valid when `importMode` is set to `SPICE`. See refresh_properties. */ refreshProperties?: pulumi.Input; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ region?: pulumi.Input; /** * The row-level security configuration for the data that you want to create. See row_level_permission_data_set. */ rowLevelPermissionDataSet?: pulumi.Input; /** * 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. */ rowLevelPermissionTagConfiguration?: pulumi.Input; /** * 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. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. */ tagsAll?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * Specifies the purpose of the data set. The only valid value is `RLS_RULES`, which designates this data set as a Row Level Security (RLS) rules dataset. An RLS rules dataset is used to control access to data at the row level in QuickSight analyses and dashboards. See the [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSet.html#API_CreateDataSet_RequestSyntax) for details. */ useAs?: pulumi.Input; } /** * The set of arguments for constructing a DataSet resource. */ export interface DataSetArgs { /** * AWS account ID. Defaults to automatically determined account ID of the Terraform AWS provider. */ awsAccountId?: pulumi.Input; /** * Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported. See column_groups. */ columnGroups?: pulumi.Input[] | undefined>; /** * 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. */ columnLevelPermissionRules?: pulumi.Input[] | undefined>; /** * Identifier for the data set. */ dataSetId: pulumi.Input; /** * The usage configuration to apply to child datasets that reference this dataset as a source. See data_set_usage_configuration. */ dataSetUsageConfiguration?: pulumi.Input; /** * The folder that contains fields and nested subfolders for your dataset. See field_folders. */ fieldFolders?: pulumi.Input[] | undefined>; /** * Indicates whether you want to import the data into SPICE. Valid values are `SPICE` and `DIRECT_QUERY`. */ importMode: pulumi.Input; /** * Configures the combination and transformation of the data from the physical tables. Maximum of 1 entry. See logical_table_map. */ logicalTableMaps?: pulumi.Input[] | undefined>; /** * Display name for the dataset. * * The following arguments are optional: */ name?: pulumi.Input; /** * A set of resource permissions on the data source. Maximum of 64 items. See permissions. */ permissions?: pulumi.Input[] | undefined>; /** * Declares the physical tables that are available in the underlying data sources. See physical_table_map. */ physicalTableMaps?: pulumi.Input[] | undefined>; /** * The refresh properties for the data set. **NOTE**: Only valid when `importMode` is set to `SPICE`. See refresh_properties. */ refreshProperties?: pulumi.Input; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ region?: pulumi.Input; /** * The row-level security configuration for the data that you want to create. See row_level_permission_data_set. */ rowLevelPermissionDataSet?: pulumi.Input; /** * 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. */ rowLevelPermissionTagConfiguration?: pulumi.Input; /** * 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. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * Specifies the purpose of the data set. The only valid value is `RLS_RULES`, which designates this data set as a Row Level Security (RLS) rules dataset. An RLS rules dataset is used to control access to data at the row level in QuickSight analyses and dashboards. See the [AWS documentation](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateDataSet.html#API_CreateDataSet_RequestSyntax) for details. */ useAs?: pulumi.Input; } //# sourceMappingURL=dataSet.d.ts.map