Amazon Athena

2026/11/06 - Amazon Athena - 5 new2 updated api methods

Changes  Added support for Athena System Tables which writes Athena usage data to AWS S3 managed tables in Apache Iceberg format. Adds CreateSystemTableConfiguration, UpdateSystemTableConfiguration, DeleteSystemTableConfiguration, GetSystemTableConfiguration, and ListSystemTableStatuses.

CreateSystemTableConfiguration (new) Link ¶

Enables system tables for the current account. System tables are enabled or disabled for the entire account: creating this configuration enables them. If a configuration already exists, use UpdateSystemTableConfiguration to update it.

See also: AWS API Documentation

Request Syntax

client.create_system_table_configuration(
    ClientRequestToken='string',
    TableName='ALL',
    KmsKeyArn='string',
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ]
)
type ClientRequestToken:

string

param ClientRequestToken:

A unique case-sensitive string used to ensure the request to create the system table configuration is idempotent (executes only once). If another CreateSystemTableConfiguration request is received with the same client token but different parameters, the request fails with an InvalidRequestException.

This field is autopopulated if not provided.

type TableName:

string

param TableName:

[REQUIRED]

The system table configuration to create. The only accepted value is ALL, the reserved keyword that enables all system tables for the account.

type KmsKeyArn:

string

param KmsKeyArn:

The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) key to use for encrypting the system table data.

type Tags:

list

param Tags:

The tags to add to the system table configuration.

  • (dict) --

    A label that you assign to a resource. Athena resources include workgroups, data catalogs, and capacity reservations. Each tag consists of a key and an optional value, both of which you define. For example, you can use tags to categorize Athena resources by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter the resources in your account. For best practices, see Tagging Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. If you specify more than one tag, separate them by commas.

    • Key (string) --

      A tag key. The tag key length is from 1 to 128 Unicode characters in UTF-8. You can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys are case-sensitive and must be unique per resource.

    • Value (string) --

      A tag value. The tag value length is from 0 to 256 Unicode characters in UTF-8. You can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag values are case-sensitive.

rtype:

dict

returns:

Response Syntax

{
    'TableName': 'ALL',
    'KmsKeyArn': 'string',
    'CreatedAt': datetime(2015, 1, 1),
    'LastModifiedAt': datetime(2015, 1, 1)
}

Response Structure

  • (dict) --

    • TableName (string) --

      The system table configuration that was created. Always ALL.

    • KmsKeyArn (string) --

      The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) key used for encrypting the system table data.

    • CreatedAt (datetime) --

      The date and time the system table configuration was created.

    • LastModifiedAt (datetime) --

      The date and time the system table configuration was last modified.

UpdateSystemTableConfiguration (new) Link ¶

Updates the account-level system tables configuration. If no configuration exists, use CreateSystemTableConfiguration to create one. Fields that you omit retain their current values.

See also: AWS API Documentation

Request Syntax

client.update_system_table_configuration(
    TableName='ALL',
    KmsKeyArn='string'
)
type TableName:

string

param TableName:

[REQUIRED]

The system table configuration to update. The only accepted value is ALL.

type KmsKeyArn:

string

param KmsKeyArn:

The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) key to use for encrypting the system table data. The encryption key is immutable while the system table exists, so a change takes effect only after the table has been deleted.

rtype:

dict

returns:

Response Syntax

{
    'TableName': 'ALL',
    'KmsKeyArn': 'string',
    'CreatedAt': datetime(2015, 1, 1),
    'LastModifiedAt': datetime(2015, 1, 1)
}

Response Structure

  • (dict) --

    • TableName (string) --

      The system table configuration. Always ALL.

    • KmsKeyArn (string) --

      The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) key used for encrypting the system table data.

    • CreatedAt (datetime) --

      The date and time the system table configuration was created.

    • LastModifiedAt (datetime) --

      The date and time the system table configuration was last modified.

ListSystemTableStatuses (new) Link ¶

Lists the system tables that the account-level configuration activates, along with whether each is currently enabled. Because system tables are enabled at the account level, every entry reflects the same account-wide state.

See also: AWS API Documentation

Request Syntax

client.list_system_table_statuses(
    NextToken='string',
    MaxResults=123
)
type NextToken:

string

param NextToken:

A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated.

type MaxResults:

integer

param MaxResults:

Specifies the maximum number of results to return.

rtype:

dict

returns:

Response Syntax

{
    'Items': [
        {
            'TableName': 'QUERY_EXECUTIONS',
            'Enabled': True|False
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • Items (list) --

      The list of system tables and their enablement status for the current account.

      • (dict) --

        The enablement status of a single system table. Because system tables are enabled at the account level, every status reflects the same account-wide state.

        • TableName (string) --

          The name of the system table, such as QUERY_EXECUTIONS.

        • Enabled (boolean) --

          Indicates whether the system table is enabled for the account.

    • NextToken (string) --

      A token generated by the Athena service that specifies where to continue pagination if a previous request was truncated. To obtain the next set of pages, pass in the NextToken from the response object of the previous page call.

GetSystemTableConfiguration (new) Link ¶

Returns the account-level system tables configuration. Fails with a ResourceNotFoundException if system tables are not enabled for the account.

See also: AWS API Documentation

Request Syntax

client.get_system_table_configuration(
    TableName='ALL'
)
type TableName:

string

param TableName:

[REQUIRED]

The system table configuration to retrieve. The only accepted value is ALL.

rtype:

dict

returns:

Response Syntax

{
    'TableName': 'ALL',
    'KmsKeyArn': 'string',
    'CreatedAt': datetime(2015, 1, 1),
    'LastModifiedAt': datetime(2015, 1, 1)
}

Response Structure

  • (dict) --

    • TableName (string) --

      The system table configuration. Always ALL.

    • KmsKeyArn (string) --

      The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) key used for encrypting the system table data.

    • CreatedAt (datetime) --

      The date and time the system table configuration was created.

    • LastModifiedAt (datetime) --

      The date and time the system table configuration was last modified.

DeleteSystemTableConfiguration (new) Link ¶

Disables system tables for the current account by deleting the account-level configuration. If the configuration doesn't exist, the operation succeeds without making any changes. The system table and previously published data are left intact.

See also: AWS API Documentation

Request Syntax

client.delete_system_table_configuration(
    TableName='ALL'
)
type TableName:

string

param TableName:

[REQUIRED]

The system table configuration to delete. The only accepted value is ALL.

rtype:

dict

returns:

Response Syntax

{}

Response Structure

  • (dict) --

CreateWorkGroup (updated) Link ¶
Changes (request)
{'Configuration': {'SystemTableStatuses': [{'Enabled': 'boolean',
                                            'TableName': 'QUERY_EXECUTIONS'}]}}

Creates a workgroup with the specified name. A workgroup can be an Apache Spark enabled workgroup or an Athena SQL workgroup.

See also: AWS API Documentation

Request Syntax

client.create_work_group(
    Name='string',
    Configuration={
        'ResultConfiguration': {
            'OutputLocation': 'string',
            'EncryptionConfiguration': {
                'EncryptionOption': 'SSE_S3'|'SSE_KMS'|'CSE_KMS',
                'KmsKey': 'string'
            },
            'ExpectedBucketOwner': 'string',
            'AclConfiguration': {
                'S3AclOption': 'BUCKET_OWNER_FULL_CONTROL'
            }
        },
        'ManagedQueryResultsConfiguration': {
            'Enabled': True|False,
            'EncryptionConfiguration': {
                'KmsKey': 'string'
            }
        },
        'EnforceWorkGroupConfiguration': True|False,
        'PublishCloudWatchMetricsEnabled': True|False,
        'BytesScannedCutoffPerQuery': 123,
        'RequesterPaysEnabled': True|False,
        'EngineVersion': {
            'SelectedEngineVersion': 'string',
            'EffectiveEngineVersion': 'string'
        },
        'AdditionalConfiguration': 'string',
        'ExecutionRole': 'string',
        'MonitoringConfiguration': {
            'CloudWatchLoggingConfiguration': {
                'Enabled': True|False,
                'LogGroup': 'string',
                'LogStreamNamePrefix': 'string',
                'LogTypes': {
                    'string': [
                        'string',
                    ]
                }
            },
            'ManagedLoggingConfiguration': {
                'Enabled': True|False,
                'KmsKey': 'string'
            },
            'S3LoggingConfiguration': {
                'Enabled': True|False,
                'KmsKey': 'string',
                'LogLocation': 'string'
            }
        },
        'EngineConfiguration': {
            'CoordinatorDpuSize': 123,
            'MaxConcurrentDpus': 123,
            'DefaultExecutorDpuSize': 123,
            'AdditionalConfigs': {
                'string': 'string'
            },
            'SparkProperties': {
                'string': 'string'
            },
            'Classifications': [
                {
                    'Name': 'string',
                    'Properties': {
                        'string': 'string'
                    }
                },
            ]
        },
        'CustomerContentEncryptionConfiguration': {
            'KmsKey': 'string'
        },
        'EnableMinimumEncryptionConfiguration': True|False,
        'IdentityCenterConfiguration': {
            'EnableIdentityCenter': True|False,
            'IdentityCenterInstanceArn': 'string'
        },
        'QueryResultsS3AccessGrantsConfiguration': {
            'EnableS3AccessGrants': True|False,
            'CreateUserLevelPrefix': True|False,
            'AuthenticationType': 'DIRECTORY_IDENTITY'
        },
        'SystemTableStatuses': [
            {
                'TableName': 'QUERY_EXECUTIONS',
                'Enabled': True|False
            },
        ]
    },
    Description='string',
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ]
)
type Name:

string

param Name:

[REQUIRED]

The workgroup name.

type Configuration:

dict

param Configuration:

Contains configuration information for creating an Athena SQL workgroup or Spark enabled Athena workgroup. Athena SQL workgroup configuration includes the location in Amazon S3 where query and calculation results are stored, the encryption configuration, if any, used for encrypting query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, the limit for the amount of bytes scanned (cutoff) per query, if it is specified, and whether workgroup's settings (specified with EnforceWorkGroupConfiguration) in the WorkGroupConfiguration override client-side settings. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

  • ResultConfiguration (dict) --

    The configuration for the workgroup, which includes the location in Amazon S3 where query and calculation results are stored and the encryption option, if any, used for query and calculation results. To run the query, you must specify the query results location using one of the ways: either in the workgroup using this setting, or for individual queries (client-side), using ResultConfiguration$OutputLocation. If none of them is set, Athena issues an error that no output location is provided.

    • OutputLocation (string) --

      The location in Amazon S3 where your query and calculation results are stored, such as s3://path/to/query/bucket/. To run the query, you must specify the query results location using one of the ways: either for individual queries using either this setting (client-side), or in the workgroup, using WorkGroupConfiguration. If none of them is set, Athena issues an error that no output location is provided. If workgroup settings override client-side settings, then the query uses the settings specified for the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

    • EncryptionConfiguration (dict) --

      If query and calculation results are encrypted in Amazon S3, indicates the encryption option used (for example, SSE_KMS or CSE_KMS) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

      • EncryptionOption (string) -- [REQUIRED]

        Indicates whether Amazon S3 server-side encryption with Amazon S3-managed keys ( SSE_S3), server-side encryption with KMS-managed keys ( SSE_KMS), or client-side encryption with KMS-managed keys ( CSE_KMS) is used.

        If a query runs in a workgroup and the workgroup overrides client-side settings, then the workgroup's setting for encryption is used. It specifies whether query results must be encrypted, for all queries that run in this workgroup.

      • KmsKey (string) --

        For SSE_KMS and CSE_KMS, this is the KMS key ARN or ID.

    • ExpectedBucketOwner (string) --

      The Amazon Web Services account ID that you expect to be the owner of the Amazon S3 bucket specified by ResultConfiguration$OutputLocation. If set, Athena uses the value for ExpectedBucketOwner when it makes Amazon S3 calls to your specified output location. If the ExpectedBucketOwner Amazon Web Services account ID does not match the actual owner of the Amazon S3 bucket, the call fails with a permissions error.

      This is a client-side setting. If workgroup settings override client-side settings, then the query uses the ExpectedBucketOwner setting that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

    • AclConfiguration (dict) --

      Indicates that an Amazon S3 canned ACL should be set to control ownership of stored query results. Currently the only supported canned ACL is BUCKET_OWNER_FULL_CONTROL. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the ACL configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. For more information, see WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

      • S3AclOption (string) -- [REQUIRED]

        The Amazon S3 canned ACL that Athena should specify when storing query results, including data files inserted by Athena as the result of statements like CTAS or INSERT INTO. Currently the only supported canned ACL is BUCKET_OWNER_FULL_CONTROL. If a query runs in a workgroup and the workgroup overrides client-side settings, then the Amazon S3 canned ACL specified in the workgroup's settings is used for all queries that run in the workgroup. For more information about Amazon S3 canned ACLs, see Canned ACL in the Amazon S3 User Guide.

  • ManagedQueryResultsConfiguration (dict) --

    The configuration for storing results in Athena owned storage, which includes whether this feature is enabled; whether encryption configuration, if any, is used for encrypting query results.

    • Enabled (boolean) -- [REQUIRED]

      If set to true, allows you to store query results in Athena owned storage. If set to false, workgroup member stores query results in location specified under ResultConfiguration$OutputLocation. The default is false. A workgroup cannot have the ResultConfiguration$OutputLocation parameter when you set this field to true.

    • EncryptionConfiguration (dict) --

      If you encrypt query and calculation results in Athena owned storage, this field indicates the encryption option (for example, SSE_KMS or CSE_KMS) and key information.

      • KmsKey (string) -- [REQUIRED]

        The ARN of an KMS key for encrypting managed query results.

  • EnforceWorkGroupConfiguration (boolean) --

    If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side settings are used. This property is not required for Apache Spark enabled workgroups. For more information, see Workgroup Settings Override Client-Side Settings.

  • PublishCloudWatchMetricsEnabled (boolean) --

    Indicates that the Amazon CloudWatch metrics are enabled for the workgroup.

  • BytesScannedCutoffPerQuery (integer) --

    The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan.

  • RequesterPaysEnabled (boolean) --

    If set to true, allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries. If set to false, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is false. For more information about Requester Pays buckets, see Requester Pays Buckets in the Amazon Simple Storage Service Developer Guide.

  • EngineVersion (dict) --

    The engine version that all queries running on the workgroup use. Queries on the AmazonAthenaPreviewFunctionality workgroup run on the preview engine regardless of this setting.

    • SelectedEngineVersion (string) --

      The engine version requested by the user. Possible values are determined by the output of ListEngineVersions, including AUTO. The default is AUTO.

    • EffectiveEngineVersion (string) --

      Read only. The engine version on which the query runs. If the user requests a valid engine version other than Auto, the effective engine version is the same as the engine version that the user requested. If the user requests Auto, the effective engine version is chosen by Athena. When a request to update the engine version is made by a CreateWorkGroup or UpdateWorkGroup operation, the EffectiveEngineVersion field is ignored.

  • AdditionalConfiguration (string) --

    Specifies a user defined JSON string that is passed to the notebook engine.

  • ExecutionRole (string) --

    The ARN of the execution role used to access user resources for Spark sessions and IAM Identity Center enabled workgroups. This property applies only to Spark enabled workgroups and IAM Identity Center enabled workgroups. The property is required for IAM Identity Center enabled workgroups.

  • MonitoringConfiguration (dict) --

    Contains the configuration settings for managed log persistence, delivering logs to Amazon S3 buckets, Amazon CloudWatch log groups etc.

    • CloudWatchLoggingConfiguration (dict) --

      Configuration settings for delivering logs to Amazon CloudWatch log groups.

      • Enabled (boolean) -- [REQUIRED]

        Enables CloudWatch logging.

      • LogGroup (string) --

        The name of the log group in Amazon CloudWatch Logs where you want to publish your logs.

      • LogStreamNamePrefix (string) --

        Prefix for the CloudWatch log stream name.

      • LogTypes (dict) --

        The types of logs that you want to publish to CloudWatch.

        • (string) --

          • (list) --

            • (string) --

    • ManagedLoggingConfiguration (dict) --

      Configuration settings for managed log persistence.

      • Enabled (boolean) -- [REQUIRED]

        Enables mamanged log persistence.

      • KmsKey (string) --

        The KMS key ARN to encrypt the logs stored in managed log persistence.

    • S3LoggingConfiguration (dict) --

      Configuration settings for delivering logs to Amazon S3 buckets.

      • Enabled (boolean) -- [REQUIRED]

        Enables S3 log delivery.

      • KmsKey (string) --

        The KMS key ARN to encrypt the logs published to the given Amazon S3 destination.

      • LogLocation (string) --

        The Amazon S3 destination URI for log publishing.

  • EngineConfiguration (dict) --

    The engine configuration for the workgroup, which includes the minimum/maximum number of Data Processing Units (DPU) that queries should use when running in provisioned capacity. If not specified, Athena uses default values (Default value for min is 4 and for max is Minimum of 124 and allocated DPUs).

    To specify DPU values for PC queries the WG containing EngineConfiguration should have the following values: The name of the Classifications should be athena-query-engine-properties, with the only allowed properties as max-dpu-count and min-dpu-count.

    • CoordinatorDpuSize (integer) --

      The number of DPUs to use for the coordinator. A coordinator is a special executor that orchestrates processing work and manages other executors in a notebook session. The default is 1.

    • MaxConcurrentDpus (integer) --

      The maximum number of DPUs that can run concurrently.

    • DefaultExecutorDpuSize (integer) --

      The default number of DPUs to use for executors. An executor is the smallest unit of compute that a notebook session can request from Athena. The default is 1.

    • AdditionalConfigs (dict) --

      Contains additional notebook engine MAP<string, string> parameter mappings in the form of key-value pairs. To specify an Athena notebook that the Jupyter server will download and serve, specify a value for the StartSessionRequest$NotebookVersion field, and then add a key named NotebookId to AdditionalConfigs that has the value of the Athena notebook ID.

      • (string) --

        • (string) --

    • SparkProperties (dict) --

      Specifies custom jar files and Spark properties for use cases like cluster encryption, table formats, and general Spark tuning.

      • (string) --

        • (string) --

    • Classifications (list) --

      The configuration classifications that can be specified for the engine.

      • (dict) --

        A classification refers to a set of specific configurations.

        • Name (string) --

          The name of the configuration classification.

        • Properties (dict) --

          A set of properties specified within a configuration classification.

          • (string) --

            • (string) --

  • CustomerContentEncryptionConfiguration (dict) --

    Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not apply to Athena SQL workgroups.

    • KmsKey (string) -- [REQUIRED]

      The customer managed KMS key that is used to encrypt the user's data stores in Athena.

  • EnableMinimumEncryptionConfiguration (boolean) --

    Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or higher when they submit queries.

    The EnforceWorkGroupConfiguration setting takes precedence over the EnableMinimumEncryptionConfiguration flag. This means that if EnforceWorkGroupConfiguration is true, the EnableMinimumEncryptionConfiguration flag is ignored, and the workgroup configuration for encryption is used.

  • IdentityCenterConfiguration (dict) --

    Specifies whether the workgroup is IAM Identity Center supported.

    • EnableIdentityCenter (boolean) --

      Specifies whether the workgroup is IAM Identity Center supported.

    • IdentityCenterInstanceArn (string) --

      The IAM Identity Center instance ARN that the workgroup associates to.

  • QueryResultsS3AccessGrantsConfiguration (dict) --

    Specifies whether Amazon S3 access grants are enabled for query results.

    • EnableS3AccessGrants (boolean) -- [REQUIRED]

      Specifies whether Amazon S3 access grants are enabled for query results.

    • CreateUserLevelPrefix (boolean) --

      When enabled, appends the user ID as an Amazon S3 path prefix to the query result output location.

    • AuthenticationType (string) -- [REQUIRED]

      The authentication type used for Amazon S3 access grants. Currently, only DIRECTORY_IDENTITY is supported.

  • SystemTableStatuses (list) --

    The read-only enablement status of each system table for the account. This field is returned by GetWorkGroup and is ignored on write.

    • (dict) --

      The enablement status of a single system table. Because system tables are enabled at the account level, every status reflects the same account-wide state.

      • TableName (string) -- [REQUIRED]

        The name of the system table, such as QUERY_EXECUTIONS.

      • Enabled (boolean) -- [REQUIRED]

        Indicates whether the system table is enabled for the account.

type Description:

string

param Description:

The workgroup description.

type Tags:

list

param Tags:

A list of comma separated tags to add to the workgroup that is created.

  • (dict) --

    A label that you assign to a resource. Athena resources include workgroups, data catalogs, and capacity reservations. Each tag consists of a key and an optional value, both of which you define. For example, you can use tags to categorize Athena resources by purpose, owner, or environment. Use a consistent set of tag keys to make it easier to search and filter the resources in your account. For best practices, see Tagging Best Practices. Tag keys can be from 1 to 128 UTF-8 Unicode characters, and tag values can be from 0 to 256 UTF-8 Unicode characters. Tags can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys and values are case-sensitive. Tag keys must be unique per resource. If you specify more than one tag, separate them by commas.

    • Key (string) --

      A tag key. The tag key length is from 1 to 128 Unicode characters in UTF-8. You can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag keys are case-sensitive and must be unique per resource.

    • Value (string) --

      A tag value. The tag value length is from 0 to 256 Unicode characters in UTF-8. You can use letters and numbers representable in UTF-8, and the following characters: + - = . _ : / @. Tag values are case-sensitive.

rtype:

dict

returns:

Response Syntax

{}

Response Structure

  • (dict) --

GetWorkGroup (updated) Link ¶
Changes (response)
{'WorkGroup': {'Configuration': {'SystemTableStatuses': [{'Enabled': 'boolean',
                                                          'TableName': 'QUERY_EXECUTIONS'}]}}}

Returns information about the workgroup with the specified name.

See also: AWS API Documentation

Request Syntax

client.get_work_group(
    WorkGroup='string'
)
type WorkGroup:

string

param WorkGroup:

[REQUIRED]

The name of the workgroup.

rtype:

dict

returns:

Response Syntax

{
    'WorkGroup': {
        'Name': 'string',
        'State': 'ENABLED'|'DISABLED',
        'Configuration': {
            'ResultConfiguration': {
                'OutputLocation': 'string',
                'EncryptionConfiguration': {
                    'EncryptionOption': 'SSE_S3'|'SSE_KMS'|'CSE_KMS',
                    'KmsKey': 'string'
                },
                'ExpectedBucketOwner': 'string',
                'AclConfiguration': {
                    'S3AclOption': 'BUCKET_OWNER_FULL_CONTROL'
                }
            },
            'ManagedQueryResultsConfiguration': {
                'Enabled': True|False,
                'EncryptionConfiguration': {
                    'KmsKey': 'string'
                }
            },
            'EnforceWorkGroupConfiguration': True|False,
            'PublishCloudWatchMetricsEnabled': True|False,
            'BytesScannedCutoffPerQuery': 123,
            'RequesterPaysEnabled': True|False,
            'EngineVersion': {
                'SelectedEngineVersion': 'string',
                'EffectiveEngineVersion': 'string'
            },
            'AdditionalConfiguration': 'string',
            'ExecutionRole': 'string',
            'MonitoringConfiguration': {
                'CloudWatchLoggingConfiguration': {
                    'Enabled': True|False,
                    'LogGroup': 'string',
                    'LogStreamNamePrefix': 'string',
                    'LogTypes': {
                        'string': [
                            'string',
                        ]
                    }
                },
                'ManagedLoggingConfiguration': {
                    'Enabled': True|False,
                    'KmsKey': 'string'
                },
                'S3LoggingConfiguration': {
                    'Enabled': True|False,
                    'KmsKey': 'string',
                    'LogLocation': 'string'
                }
            },
            'EngineConfiguration': {
                'CoordinatorDpuSize': 123,
                'MaxConcurrentDpus': 123,
                'DefaultExecutorDpuSize': 123,
                'AdditionalConfigs': {
                    'string': 'string'
                },
                'SparkProperties': {
                    'string': 'string'
                },
                'Classifications': [
                    {
                        'Name': 'string',
                        'Properties': {
                            'string': 'string'
                        }
                    },
                ]
            },
            'CustomerContentEncryptionConfiguration': {
                'KmsKey': 'string'
            },
            'EnableMinimumEncryptionConfiguration': True|False,
            'IdentityCenterConfiguration': {
                'EnableIdentityCenter': True|False,
                'IdentityCenterInstanceArn': 'string'
            },
            'QueryResultsS3AccessGrantsConfiguration': {
                'EnableS3AccessGrants': True|False,
                'CreateUserLevelPrefix': True|False,
                'AuthenticationType': 'DIRECTORY_IDENTITY'
            },
            'SystemTableStatuses': [
                {
                    'TableName': 'QUERY_EXECUTIONS',
                    'Enabled': True|False
                },
            ]
        },
        'Description': 'string',
        'CreationTime': datetime(2015, 1, 1),
        'IdentityCenterApplicationArn': 'string'
    }
}

Response Structure

  • (dict) --

    • WorkGroup (dict) --

      Information about the workgroup.

      • Name (string) --

        The workgroup name.

      • State (string) --

        The state of the workgroup: ENABLED or DISABLED.

      • Configuration (dict) --

        The configuration of the workgroup, which includes the location in Amazon S3 where query and calculation results are stored, the encryption configuration, if any, used for query and calculation results; whether the Amazon CloudWatch Metrics are enabled for the workgroup; whether workgroup settings override client-side settings; and the data usage limits for the amount of data scanned per query or per workgroup. The workgroup settings override is specified in EnforceWorkGroupConfiguration (true/false) in the WorkGroupConfiguration. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

        • ResultConfiguration (dict) --

          The configuration for the workgroup, which includes the location in Amazon S3 where query and calculation results are stored and the encryption option, if any, used for query and calculation results. To run the query, you must specify the query results location using one of the ways: either in the workgroup using this setting, or for individual queries (client-side), using ResultConfiguration$OutputLocation. If none of them is set, Athena issues an error that no output location is provided.

          • OutputLocation (string) --

            The location in Amazon S3 where your query and calculation results are stored, such as s3://path/to/query/bucket/. To run the query, you must specify the query results location using one of the ways: either for individual queries using either this setting (client-side), or in the workgroup, using WorkGroupConfiguration. If none of them is set, Athena issues an error that no output location is provided. If workgroup settings override client-side settings, then the query uses the settings specified for the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.

          • EncryptionConfiguration (dict) --

            If query and calculation results are encrypted in Amazon S3, indicates the encryption option used (for example, SSE_KMS or CSE_KMS) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

            • EncryptionOption (string) --

              Indicates whether Amazon S3 server-side encryption with Amazon S3-managed keys ( SSE_S3), server-side encryption with KMS-managed keys ( SSE_KMS), or client-side encryption with KMS-managed keys ( CSE_KMS) is used.

              If a query runs in a workgroup and the workgroup overrides client-side settings, then the workgroup's setting for encryption is used. It specifies whether query results must be encrypted, for all queries that run in this workgroup.

            • KmsKey (string) --

              For SSE_KMS and CSE_KMS, this is the KMS key ARN or ID.

          • ExpectedBucketOwner (string) --

            The Amazon Web Services account ID that you expect to be the owner of the Amazon S3 bucket specified by ResultConfiguration$OutputLocation. If set, Athena uses the value for ExpectedBucketOwner when it makes Amazon S3 calls to your specified output location. If the ExpectedBucketOwner Amazon Web Services account ID does not match the actual owner of the Amazon S3 bucket, the call fails with a permissions error.

            This is a client-side setting. If workgroup settings override client-side settings, then the query uses the ExpectedBucketOwner setting that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

          • AclConfiguration (dict) --

            Indicates that an Amazon S3 canned ACL should be set to control ownership of stored query results. Currently the only supported canned ACL is BUCKET_OWNER_FULL_CONTROL. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the ACL configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. For more information, see WorkGroupConfiguration$EnforceWorkGroupConfiguration and Workgroup Settings Override Client-Side Settings.

            • S3AclOption (string) --

              The Amazon S3 canned ACL that Athena should specify when storing query results, including data files inserted by Athena as the result of statements like CTAS or INSERT INTO. Currently the only supported canned ACL is BUCKET_OWNER_FULL_CONTROL. If a query runs in a workgroup and the workgroup overrides client-side settings, then the Amazon S3 canned ACL specified in the workgroup's settings is used for all queries that run in the workgroup. For more information about Amazon S3 canned ACLs, see Canned ACL in the Amazon S3 User Guide.

        • ManagedQueryResultsConfiguration (dict) --

          The configuration for storing results in Athena owned storage, which includes whether this feature is enabled; whether encryption configuration, if any, is used for encrypting query results.

          • Enabled (boolean) --

            If set to true, allows you to store query results in Athena owned storage. If set to false, workgroup member stores query results in location specified under ResultConfiguration$OutputLocation. The default is false. A workgroup cannot have the ResultConfiguration$OutputLocation parameter when you set this field to true.

          • EncryptionConfiguration (dict) --

            If you encrypt query and calculation results in Athena owned storage, this field indicates the encryption option (for example, SSE_KMS or CSE_KMS) and key information.

            • KmsKey (string) --

              The ARN of an KMS key for encrypting managed query results.

        • EnforceWorkGroupConfiguration (boolean) --

          If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side settings are used. This property is not required for Apache Spark enabled workgroups. For more information, see Workgroup Settings Override Client-Side Settings.

        • PublishCloudWatchMetricsEnabled (boolean) --

          Indicates that the Amazon CloudWatch metrics are enabled for the workgroup.

        • BytesScannedCutoffPerQuery (integer) --

          The upper data usage limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan.

        • RequesterPaysEnabled (boolean) --

          If set to true, allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries. If set to false, workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is false. For more information about Requester Pays buckets, see Requester Pays Buckets in the Amazon Simple Storage Service Developer Guide.

        • EngineVersion (dict) --

          The engine version that all queries running on the workgroup use. Queries on the AmazonAthenaPreviewFunctionality workgroup run on the preview engine regardless of this setting.

          • SelectedEngineVersion (string) --

            The engine version requested by the user. Possible values are determined by the output of ListEngineVersions, including AUTO. The default is AUTO.

          • EffectiveEngineVersion (string) --

            Read only. The engine version on which the query runs. If the user requests a valid engine version other than Auto, the effective engine version is the same as the engine version that the user requested. If the user requests Auto, the effective engine version is chosen by Athena. When a request to update the engine version is made by a CreateWorkGroup or UpdateWorkGroup operation, the EffectiveEngineVersion field is ignored.

        • AdditionalConfiguration (string) --

          Specifies a user defined JSON string that is passed to the notebook engine.

        • ExecutionRole (string) --

          The ARN of the execution role used to access user resources for Spark sessions and IAM Identity Center enabled workgroups. This property applies only to Spark enabled workgroups and IAM Identity Center enabled workgroups. The property is required for IAM Identity Center enabled workgroups.

        • MonitoringConfiguration (dict) --

          Contains the configuration settings for managed log persistence, delivering logs to Amazon S3 buckets, Amazon CloudWatch log groups etc.

          • CloudWatchLoggingConfiguration (dict) --

            Configuration settings for delivering logs to Amazon CloudWatch log groups.

            • Enabled (boolean) --

              Enables CloudWatch logging.

            • LogGroup (string) --

              The name of the log group in Amazon CloudWatch Logs where you want to publish your logs.

            • LogStreamNamePrefix (string) --

              Prefix for the CloudWatch log stream name.

            • LogTypes (dict) --

              The types of logs that you want to publish to CloudWatch.

              • (string) --

                • (list) --

                  • (string) --

          • ManagedLoggingConfiguration (dict) --

            Configuration settings for managed log persistence.

            • Enabled (boolean) --

              Enables mamanged log persistence.

            • KmsKey (string) --

              The KMS key ARN to encrypt the logs stored in managed log persistence.

          • S3LoggingConfiguration (dict) --

            Configuration settings for delivering logs to Amazon S3 buckets.

            • Enabled (boolean) --

              Enables S3 log delivery.

            • KmsKey (string) --

              The KMS key ARN to encrypt the logs published to the given Amazon S3 destination.

            • LogLocation (string) --

              The Amazon S3 destination URI for log publishing.

        • EngineConfiguration (dict) --

          The engine configuration for the workgroup, which includes the minimum/maximum number of Data Processing Units (DPU) that queries should use when running in provisioned capacity. If not specified, Athena uses default values (Default value for min is 4 and for max is Minimum of 124 and allocated DPUs).

          To specify DPU values for PC queries the WG containing EngineConfiguration should have the following values: The name of the Classifications should be athena-query-engine-properties, with the only allowed properties as max-dpu-count and min-dpu-count.

          • CoordinatorDpuSize (integer) --

            The number of DPUs to use for the coordinator. A coordinator is a special executor that orchestrates processing work and manages other executors in a notebook session. The default is 1.

          • MaxConcurrentDpus (integer) --

            The maximum number of DPUs that can run concurrently.

          • DefaultExecutorDpuSize (integer) --

            The default number of DPUs to use for executors. An executor is the smallest unit of compute that a notebook session can request from Athena. The default is 1.

          • AdditionalConfigs (dict) --

            Contains additional notebook engine MAP<string, string> parameter mappings in the form of key-value pairs. To specify an Athena notebook that the Jupyter server will download and serve, specify a value for the StartSessionRequest$NotebookVersion field, and then add a key named NotebookId to AdditionalConfigs that has the value of the Athena notebook ID.

            • (string) --

              • (string) --

          • SparkProperties (dict) --

            Specifies custom jar files and Spark properties for use cases like cluster encryption, table formats, and general Spark tuning.

            • (string) --

              • (string) --

          • Classifications (list) --

            The configuration classifications that can be specified for the engine.

            • (dict) --

              A classification refers to a set of specific configurations.

              • Name (string) --

                The name of the configuration classification.

              • Properties (dict) --

                A set of properties specified within a configuration classification.

                • (string) --

                  • (string) --

        • CustomerContentEncryptionConfiguration (dict) --

          Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not apply to Athena SQL workgroups.

          • KmsKey (string) --

            The customer managed KMS key that is used to encrypt the user's data stores in Athena.

        • EnableMinimumEncryptionConfiguration (boolean) --

          Enforces a minimal level of encryption for the workgroup for query and calculation results that are written to Amazon S3. When enabled, workgroup users can set encryption only to the minimum level set by the administrator or higher when they submit queries.

          The EnforceWorkGroupConfiguration setting takes precedence over the EnableMinimumEncryptionConfiguration flag. This means that if EnforceWorkGroupConfiguration is true, the EnableMinimumEncryptionConfiguration flag is ignored, and the workgroup configuration for encryption is used.

        • IdentityCenterConfiguration (dict) --

          Specifies whether the workgroup is IAM Identity Center supported.

          • EnableIdentityCenter (boolean) --

            Specifies whether the workgroup is IAM Identity Center supported.

          • IdentityCenterInstanceArn (string) --

            The IAM Identity Center instance ARN that the workgroup associates to.

        • QueryResultsS3AccessGrantsConfiguration (dict) --

          Specifies whether Amazon S3 access grants are enabled for query results.

          • EnableS3AccessGrants (boolean) --

            Specifies whether Amazon S3 access grants are enabled for query results.

          • CreateUserLevelPrefix (boolean) --

            When enabled, appends the user ID as an Amazon S3 path prefix to the query result output location.

          • AuthenticationType (string) --

            The authentication type used for Amazon S3 access grants. Currently, only DIRECTORY_IDENTITY is supported.

        • SystemTableStatuses (list) --

          The read-only enablement status of each system table for the account. This field is returned by GetWorkGroup and is ignored on write.

          • (dict) --

            The enablement status of a single system table. Because system tables are enabled at the account level, every status reflects the same account-wide state.

            • TableName (string) --

              The name of the system table, such as QUERY_EXECUTIONS.

            • Enabled (boolean) --

              Indicates whether the system table is enabled for the account.

      • Description (string) --

        The workgroup description.

      • CreationTime (datetime) --

        The date and time the workgroup was created.

      • IdentityCenterApplicationArn (string) --

        The ARN of the IAM Identity Center enabled application associated with the workgroup.