The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Paws::Quicksight::CreateDataSet - Arguments for method CreateDataSet on Paws::Quicksight

DESCRIPTION

This class represents the parameters used for calling the method CreateDataSet on the Amazon QuickSight service. Use the attributes of this class as arguments to method CreateDataSet.

You shouldn't make instances of this class. Each attribute should be used as a named argument in the call to CreateDataSet.

SYNOPSIS

    my $quicksight = Paws->service('Quicksight');
    my $CreateDataSetResponse = $quicksight->CreateDataSet(
      AwsAccountId     => 'MyAwsAccountId',
      DataSetId        => 'MyResourceId',
      ImportMode       => 'SPICE',
      Name             => 'MyResourceName',
      PhysicalTableMap => {
        'MyPhysicalTableId' => {
          CustomSql => {
            DataSourceArn => 'MyArn',
            Name          => 'MyCustomSqlName',    # min: 1, max: 64
            SqlQuery      => 'MySqlQuery',         # min: 1, max: 65536
            Columns       => [
              {
                Name => 'MyColumnName',    # min: 1, max: 128
                Type => 'STRING'
                , # values: STRING, INTEGER, DECIMAL, DATETIME, BIT, BOOLEAN, JSON

              },
              ...
            ],    # min: 1, max: 2048; OPTIONAL
          },    # OPTIONAL
          RelationalTable => {
            DataSourceArn => 'MyArn',
            InputColumns  => [
              {
                Name => 'MyColumnName',    # min: 1, max: 128
                Type => 'STRING'
                , # values: STRING, INTEGER, DECIMAL, DATETIME, BIT, BOOLEAN, JSON

              },
              ...
            ],    # min: 1, max: 2048; OPTIONAL
            Name    => 'MyRelationalTableName',       # min: 1, max: 64
            Catalog => 'MyRelationalTableCatalog',    # max: 256; OPTIONAL
            Schema  => 'MyRelationalTableSchema',     # max: 64; OPTIONAL
          },    # OPTIONAL
          S3Source => {
            DataSourceArn => 'MyArn',
            InputColumns  => [
              {
                Name => 'MyColumnName',    # min: 1, max: 128
                Type => 'STRING'
                , # values: STRING, INTEGER, DECIMAL, DATETIME, BIT, BOOLEAN, JSON

              },
              ...
            ],    # min: 1, max: 2048; OPTIONAL
            UploadSettings => {
              ContainsHeader => 1,                # OPTIONAL
              Delimiter      => 'MyDelimiter',    # min: 1, max: 1; OPTIONAL
              Format         =>
                'CSV',    # values: CSV, TSV, CLF, ELF, XLSX, JSON; OPTIONAL
              StartFromRow  => 1,    # min: 1; OPTIONAL
              TextQualifier =>
                'DOUBLE_QUOTE',   # values: DOUBLE_QUOTE, SINGLE_QUOTE; OPTIONAL
            },    # OPTIONAL
          },    # OPTIONAL
        },    # key: min: 1, max: 64
      },
      ColumnGroups => [
        {
          GeoSpatialColumnGroup => {
            Columns => [
              'MyColumnName', ...    # min: 1, max: 128
            ],    # min: 1, max: 16
            CountryCode => 'US',                   # values: US
            Name        => 'MyColumnGroupName',    # min: 1, max: 64

          },    # OPTIONAL
        },
        ...
      ],    # OPTIONAL
      ColumnLevelPermissionRules => [
        {
          ColumnNames => [ 'MyString', ... ],    # min: 1; OPTIONAL
          Principals  => [ 'MyString', ... ],    # min: 1, max: 100; OPTIONAL
        },
        ...
      ],    # OPTIONAL
      FieldFolders => {
        'MyFieldFolderPath' => {
          Columns     => [ 'MyString', ... ],           # max: 5000; OPTIONAL
          Description => 'MyFieldFolderDescription',    # max: 500; OPTIONAL
        },    # key: min: 1, max: 1000
      },    # OPTIONAL
      LogicalTableMap => {
        'MyLogicalTableId' => {
          Alias  => 'MyLogicalTableAlias',    # min: 1, max: 64
          Source => {
            JoinInstruction => {
              LeftOperand  => 'MyLogicalTableId',    # min: 1, max: 64
              OnClause     => 'MyOnClause',          # min: 1, max: 512
              RightOperand => 'MyLogicalTableId',    # min: 1, max: 64
              Type         => 'INNER',    # values: INNER, OUTER, LEFT, RIGHT
              LeftJoinKeyProperties => {
                UniqueKey => 1,           # OPTIONAL
              },    # OPTIONAL
              RightJoinKeyProperties => {
                UniqueKey => 1,    # OPTIONAL
              },    # OPTIONAL
            },    # OPTIONAL
            PhysicalTableId => 'MyPhysicalTableId',    # min: 1, max: 64
          },
          DataTransforms => [
            {
              CastColumnTypeOperation => {
                ColumnName    => 'MyColumnName',    # min: 1, max: 128
                NewColumnType =>
                  'STRING',    # values: STRING, INTEGER, DECIMAL, DATETIME
                Format => 'MyTypeCastFormat',    # max: 32; OPTIONAL
              },    # OPTIONAL
              CreateColumnsOperation => {
                Columns => [
                  {
                    ColumnId   => 'MyColumnId',      # min: 1, max: 64
                    ColumnName => 'MyColumnName',    # min: 1, max: 128
                    Expression => 'MyExpression',    # min: 1, max: 4096

                  },
                  ...
                ],    # min: 1, max: 128

              },    # OPTIONAL
              FilterOperation => {
                ConditionExpression => 'MyExpression',    # min: 1, max: 4096

              },    # OPTIONAL
              ProjectOperation => {
                ProjectedColumns => [ 'MyString', ... ],    # min: 1, max: 2000

              },    # OPTIONAL
              RenameColumnOperation => {
                ColumnName    => 'MyColumnName',    # min: 1, max: 128
                NewColumnName => 'MyColumnName',    # min: 1, max: 128

              },    # OPTIONAL
              TagColumnOperation => {
                ColumnName => 'MyColumnName',    # min: 1, max: 128
                Tags       => [
                  {
                    ColumnDescription => {
                      Text => 'MyColumnDescriptiveText',    # max: 500; OPTIONAL
                    },    # OPTIONAL
                    ColumnGeographicRole => 'COUNTRY'
                    , # values: COUNTRY, STATE, COUNTY, CITY, POSTCODE, LONGITUDE, LATITUDE; OPTIONAL
                  },
                  ...
                ],    # min: 1, max: 16

              },    # OPTIONAL
            },
            ...
          ],    # min: 1, max: 2048; OPTIONAL
        },    # key: min: 1, max: 64
      },    # OPTIONAL
      Permissions => [
        {
          Actions   => [ 'MyString', ... ],    # min: 1, max: 16
          Principal => 'MyPrincipal',          # min: 1, max: 256

        },
        ...
      ],    # OPTIONAL
      RowLevelPermissionDataSet => {
        Arn              => 'MyArn',
        PermissionPolicy => 'GRANT_ACCESS',  # values: GRANT_ACCESS, DENY_ACCESS
        FormatVersion => 'VERSION_1',   # values: VERSION_1, VERSION_2; OPTIONAL
        Namespace     => 'MyNamespace', # max: 64; OPTIONAL
      },    # OPTIONAL
      Tags => [
        {
          Key   => 'MyTagKey',      # min: 1, max: 128
          Value => 'MyTagValue',    # min: 1, max: 256

        },
        ...
      ],    # OPTIONAL
    );

    # Results:
    my $Arn          = $CreateDataSetResponse->Arn;
    my $DataSetId    = $CreateDataSetResponse->DataSetId;
    my $IngestionArn = $CreateDataSetResponse->IngestionArn;
    my $IngestionId  = $CreateDataSetResponse->IngestionId;
    my $RequestId    = $CreateDataSetResponse->RequestId;
    my $Status       = $CreateDataSetResponse->Status;

    # Returns a L<Paws::Quicksight::CreateDataSetResponse> object.

Values for attributes that are native types (Int, String, Float, etc) can passed as-is (scalar values). Values for complex Types (objects) can be passed as a HashRef. The keys and values of the hashref will be used to instance the underlying object. For the AWS API documentation, see https://docs.aws.amazon.com/goto/WebAPI/quicksight/CreateDataSet

ATTRIBUTES

REQUIRED AwsAccountId => Str

The AWS account ID.

ColumnGroups => ArrayRef[Paws::Quicksight::ColumnGroup]

Groupings of columns that work together in certain QuickSight features. Currently, only geospatial hierarchy is supported.

ColumnLevelPermissionRules => ArrayRef[Paws::Quicksight::ColumnLevelPermissionRule]

A set of one or more definitions of a ColumnLevelPermissionRule .

REQUIRED DataSetId => Str

An ID for the dataset that you want to create. This ID is unique per AWS Region for each AWS account.

FieldFolders => Paws::Quicksight::FieldFolderMap

The folder that contains fields and nested subfolders for your dataset.

REQUIRED ImportMode => Str

Indicates whether you want to import the data into SPICE.

Valid values are: "SPICE", "DIRECT_QUERY"

LogicalTableMap => Paws::Quicksight::LogicalTableMap

Configures the combination and transformation of the data from the physical tables.

REQUIRED Name => Str

The display name for the dataset.

Permissions => ArrayRef[Paws::Quicksight::ResourcePermission]

A list of resource permissions on the dataset.

REQUIRED PhysicalTableMap => Paws::Quicksight::PhysicalTableMap

Declares the physical tables that are available in the underlying data sources.

RowLevelPermissionDataSet => Paws::Quicksight::RowLevelPermissionDataSet

The row-level security configuration for the data that you want to create.

Tags => ArrayRef[Paws::Quicksight::Tag]

Contains a map of the key-value pairs for the resource tag or tags assigned to the dataset.

SEE ALSO

This class forms part of Paws, documenting arguments for method CreateDataSet in Paws::Quicksight

BUGS and CONTRIBUTIONS

The source code is located here: https://github.com/pplu/aws-sdk-perl

Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues