

# AWS Glue API
<a name="aws-glue-api"></a>

This section describes data types and primitives used by AWS Glue SDKs and Tools. There are three general ways to interact with AWS Glue programmatically outside of the AWS Management Console, each with its own documentation: 
+  Language SDK libraries allow you to access AWS resources from common programming languages. Find more information at [Tools to Build on AWS](https://aws.amazon.com/tools/). 
+  The AWS CLI allows you to access AWS resources from the command line. Find more information at [AWS CLI Command Reference](https://docs.aws.amazon.com/cli/latest/reference/). 
+  CloudFormation allows you to define a set of AWS resources to be provisioned together consistently. Find more information at [CloudFormation: AWS Glue resource type reference](https://docs.aws.amazon.com/en_us/AWSCloudFormation/latest/UserGuide/AWS_Glue.html). 

 This section documents shared primitives independently of these SDKs and Tools. Tools use the [AWS Glue Web API Reference](https://docs.aws.amazon.com/glue/latest/webapi/WebAPI_Welcome.html) to communicate with AWS. 

**Contents**
+ [

# Security APIs in AWS Glue
](aws-glue-api-jobs-security.md)
  + [

## Data types
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-objects)
  + [

## DataCatalogEncryptionSettings structure
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-DataCatalogEncryptionSettings)
  + [

## EncryptionAtRest structure
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-EncryptionAtRest)
  + [

## ConnectionPasswordEncryption structure
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-ConnectionPasswordEncryption)
  + [

## EncryptionConfiguration structure
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-EncryptionConfiguration)
  + [

## S3Encryption structure
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-S3Encryption)
  + [

## CloudWatchEncryption structure
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-CloudWatchEncryption)
  + [

## JobBookmarksEncryption structure
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-JobBookmarksEncryption)
  + [

## SecurityConfiguration structure
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-SecurityConfiguration)
  + [

## GluePolicy structure
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-GluePolicy)
  + [

## DataQualityEncryption structure
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-DataQualityEncryption)
  + [

## Operations
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-actions)
  + [

## GetDataCatalogEncryptionSettings action (Python: get\$1data\$1catalog\$1encryption\$1settings)
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-GetDataCatalogEncryptionSettings)
  + [

## PutDataCatalogEncryptionSettings action (Python: put\$1data\$1catalog\$1encryption\$1settings)
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-PutDataCatalogEncryptionSettings)
  + [

## PutResourcePolicy action (Python: put\$1resource\$1policy)
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-PutResourcePolicy)
  + [

## GetResourcePolicy action (Python: get\$1resource\$1policy)
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-GetResourcePolicy)
  + [

## DeleteResourcePolicy action (Python: delete\$1resource\$1policy)
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-DeleteResourcePolicy)
  + [

## CreateSecurityConfiguration action (Python: create\$1security\$1configuration)
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-CreateSecurityConfiguration)
  + [

## DeleteSecurityConfiguration action (Python: delete\$1security\$1configuration)
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-DeleteSecurityConfiguration)
  + [

## GetSecurityConfiguration action (Python: get\$1security\$1configuration)
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-GetSecurityConfiguration)
  + [

## GetSecurityConfigurations action (Python: get\$1security\$1configurations)
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-GetSecurityConfigurations)
  + [

## GetResourcePolicies action (Python: get\$1resource\$1policies)
](aws-glue-api-jobs-security.md#aws-glue-api-jobs-security-GetResourcePolicies)
+ [

# Catalog objects API
](aws-glue-api-catalog.md)
  + [

# Catalogs API
](aws-glue-api-catalog-catalogs.md)
    + [

## Data types
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-objects)
    + [

## Catalog structure
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-Catalog)
    + [

## CatalogInput structure
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-CatalogInput)
    + [

## TargetRedshiftCatalog structure
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-TargetRedshiftCatalog)
    + [

## CatalogProperties structure
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-CatalogProperties)
    + [

## CatalogPropertiesOutput structure
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-CatalogPropertiesOutput)
    + [

## DataLakeAccessProperties structure
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-DataLakeAccessProperties)
    + [

## IcebergOptimizationProperties structure
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-IcebergOptimizationProperties)
    + [

## DataLakeAccessPropertiesOutput structure
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-DataLakeAccessPropertiesOutput)
    + [

## IcebergOptimizationPropertiesOutput structure
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-IcebergOptimizationPropertiesOutput)
    + [

## FederatedCatalog structure
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-FederatedCatalog)
    + [

## Operations
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-actions)
    + [

## CreateCatalog action (Python: create\$1catalog)
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-CreateCatalog)
    + [

## UpdateCatalog action (Python: update\$1catalog)
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-UpdateCatalog)
    + [

## DeleteCatalog action (Python: delete\$1catalog)
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-DeleteCatalog)
    + [

## GetCatalog action (Python: get\$1catalog)
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-GetCatalog)
    + [

## GetCatalogs action (Python: get\$1catalogs)
](aws-glue-api-catalog-catalogs.md#aws-glue-api-catalog-catalogs-GetCatalogs)
  + [

# Database API
](aws-glue-api-catalog-databases.md)
    + [

## Data types
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-objects)
    + [

## Database structure
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-Database)
    + [

## DatabaseInput structure
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-DatabaseInput)
    + [

## PrincipalPermissions structure
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-PrincipalPermissions)
    + [

## DataLakePrincipal structure
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-DataLakePrincipal)
    + [

## DatabaseIdentifier structure
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-DatabaseIdentifier)
    + [

## FederatedDatabase structure
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-FederatedDatabase)
    + [

## Operations
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-actions)
    + [

## CreateDatabase action (Python: create\$1database)
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-CreateDatabase)
    + [

## UpdateDatabase action (Python: update\$1database)
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-UpdateDatabase)
    + [

## DeleteDatabase action (Python: delete\$1database)
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-DeleteDatabase)
    + [

## GetDatabase action (Python: get\$1database)
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-GetDatabase)
    + [

## GetDatabases action (Python: get\$1databases)
](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-GetDatabases)
  + [

# Table API
](aws-glue-api-catalog-tables.md)
    + [

## Data types
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-objects)
    + [

## Table structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-Table)
    + [

## TableInput structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-TableInput)
    + [

## FederatedTable structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-FederatedTable)
    + [

## Column structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-Column)
    + [

## StorageDescriptor structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-StorageDescriptor)
    + [

## SchemaReference structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-SchemaReference)
    + [

## SerDeInfo structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-SerDeInfo)
    + [

## Order structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-Order)
    + [

## SkewedInfo structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-SkewedInfo)
    + [

## TableVersion structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-TableVersion)
    + [

## TableError structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-TableError)
    + [

## TableVersionError structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-TableVersionError)
    + [

## SortCriterion structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-SortCriterion)
    + [

## TableIdentifier structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-TableIdentifier)
    + [

## KeySchemaElement structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-KeySchemaElement)
    + [

## PartitionIndex structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-PartitionIndex)
    + [

## PartitionIndexDescriptor structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-PartitionIndexDescriptor)
    + [

## BackfillError structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-BackfillError)
    + [

## IcebergInput structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-IcebergInput)
    + [

## OpenTableFormatInput structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-OpenTableFormatInput)
    + [

## ViewDefinition structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-ViewDefinition)
    + [

## ViewDefinitionInput structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-ViewDefinitionInput)
    + [

## ViewRepresentation structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-ViewRepresentation)
    + [

## ViewRepresentationInput structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-ViewRepresentationInput)
    + [

## UpdateOpenTableFormatInput structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-UpdateOpenTableFormatInput)
    + [

## UpdateIcebergInput structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-UpdateIcebergInput)
    + [

## CreateIcebergTableInput structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-CreateIcebergTableInput)
    + [

## UpdateIcebergTableInput structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-UpdateIcebergTableInput)
    + [

## IcebergSortOrder structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-IcebergSortOrder)
    + [

## IcebergSortField structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-IcebergSortField)
    + [

## IcebergPartitionSpec structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-IcebergPartitionSpec)
    + [

## IcebergPartitionField structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-IcebergPartitionField)
    + [

## IcebergSchema structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-IcebergSchema)
    + [

## IcebergStructField structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-IcebergStructField)
    + [

## IcebergTableUpdate structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-IcebergTableUpdate)
    + [

## AuditContext structure
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-AuditContext)
    + [

## Operations
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-actions)
    + [

## CreateTable action (Python: create\$1table)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-CreateTable)
    + [

## UpdateTable action (Python: update\$1table)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-UpdateTable)
    + [

## DeleteTable action (Python: delete\$1table)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-DeleteTable)
    + [

## BatchDeleteTable action (Python: batch\$1delete\$1table)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-BatchDeleteTable)
    + [

## GetTable action (Python: get\$1table)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-GetTable)
    + [

## GetTables action (Python: get\$1tables)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-GetTables)
    + [

## GetTableVersion action (Python: get\$1table\$1version)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-GetTableVersion)
    + [

## GetTableVersions action (Python: get\$1table\$1versions)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-GetTableVersions)
    + [

## DeleteTableVersion action (Python: delete\$1table\$1version)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-DeleteTableVersion)
    + [

## BatchDeleteTableVersion action (Python: batch\$1delete\$1table\$1version)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-BatchDeleteTableVersion)
    + [

## SearchTables action (Python: search\$1tables)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-SearchTables)
    + [

## GetPartitionIndexes action (Python: get\$1partition\$1indexes)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-GetPartitionIndexes)
    + [

## CreatePartitionIndex action (Python: create\$1partition\$1index)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-CreatePartitionIndex)
    + [

## DeletePartitionIndex action (Python: delete\$1partition\$1index)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-DeletePartitionIndex)
    + [

## GetColumnStatisticsForTable action (Python: get\$1column\$1statistics\$1for\$1table)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-GetColumnStatisticsForTable)
    + [

## UpdateColumnStatisticsForTable action (Python: update\$1column\$1statistics\$1for\$1table)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-UpdateColumnStatisticsForTable)
    + [

## DeleteColumnStatisticsForTable action (Python: delete\$1column\$1statistics\$1for\$1table)
](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-DeleteColumnStatisticsForTable)
  + [

# Partition API
](aws-glue-api-catalog-partitions.md)
    + [

## Data types
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-objects)
    + [

## Partition structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-Partition)
    + [

## PartitionInput structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-PartitionInput)
    + [

## PartitionSpecWithSharedStorageDescriptor structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-PartitionSpecWithSharedStorageDescriptor)
    + [

## PartitionListComposingSpec structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-PartitionListComposingSpec)
    + [

## PartitionSpecProxy structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-PartitionSpecProxy)
    + [

## PartitionValueList structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-PartitionValueList)
    + [

## Segment structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-Segment)
    + [

## PartitionError structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-PartitionError)
    + [

## BatchUpdatePartitionFailureEntry structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-BatchUpdatePartitionFailureEntry)
    + [

## BatchUpdatePartitionRequestEntry structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-BatchUpdatePartitionRequestEntry)
    + [

## StorageDescriptor structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-StorageDescriptor)
    + [

## SchemaReference structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-SchemaReference)
    + [

## SerDeInfo structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-SerDeInfo)
    + [

## SkewedInfo structure
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-SkewedInfo)
    + [

## Operations
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-actions)
    + [

## CreatePartition action (Python: create\$1partition)
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-CreatePartition)
    + [

## BatchCreatePartition action (Python: batch\$1create\$1partition)
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-BatchCreatePartition)
    + [

## UpdatePartition action (Python: update\$1partition)
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-UpdatePartition)
    + [

## DeletePartition action (Python: delete\$1partition)
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-DeletePartition)
    + [

## BatchDeletePartition action (Python: batch\$1delete\$1partition)
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-BatchDeletePartition)
    + [

## GetPartition action (Python: get\$1partition)
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-GetPartition)
    + [

## GetPartitions action (Python: get\$1partitions)
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-GetPartitions)
    + [

## BatchGetPartition action (Python: batch\$1get\$1partition)
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-BatchGetPartition)
    + [

## BatchUpdatePartition action (Python: batch\$1update\$1partition)
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-BatchUpdatePartition)
    + [

## GetColumnStatisticsForPartition action (Python: get\$1column\$1statistics\$1for\$1partition)
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-GetColumnStatisticsForPartition)
    + [

## UpdateColumnStatisticsForPartition action (Python: update\$1column\$1statistics\$1for\$1partition)
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-UpdateColumnStatisticsForPartition)
    + [

## DeleteColumnStatisticsForPartition action (Python: delete\$1column\$1statistics\$1for\$1partition)
](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-DeleteColumnStatisticsForPartition)
  + [

# Connections API
](aws-glue-api-catalog-connections.md)
    + [

# Connection API
](aws-glue-api-catalog-connections-connections.md)
      + [

## Data types
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-objects)
      + [

## Connection structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-Connection)
      + [

## ConnectionInput structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-ConnectionInput)
      + [

## TestConnectionInput structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-TestConnectionInput)
      + [

## PhysicalConnectionRequirements structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-PhysicalConnectionRequirements)
      + [

## GetConnectionsFilter structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-GetConnectionsFilter)
      + [

## AuthenticationConfiguration structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-AuthenticationConfiguration)
      + [

## AuthenticationConfigurationInput structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-AuthenticationConfigurationInput)
      + [

## OAuth2Properties structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-OAuth2Properties)
      + [

## OAuth2PropertiesInput structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-OAuth2PropertiesInput)
      + [

## OAuth2ClientApplication structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-OAuth2ClientApplication)
      + [

## AuthorizationCodeProperties structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-AuthorizationCodeProperties)
      + [

## BasicAuthenticationCredentials structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-BasicAuthenticationCredentials)
      + [

## OAuth2Credentials structure
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-OAuth2Credentials)
      + [

## Operations
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-actions)
      + [

## CreateConnection action (Python: create\$1connection)
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-CreateConnection)
      + [

## DeleteConnection action (Python: delete\$1connection)
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-DeleteConnection)
      + [

## GetConnection action (Python: get\$1connection)
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-GetConnection)
      + [

## GetConnections action (Python: get\$1connections)
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-GetConnections)
      + [

## UpdateConnection action (Python: update\$1connection)
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-UpdateConnection)
      + [

## TestConnection action (Python: test\$1connection)
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-TestConnection)
      + [

## BatchDeleteConnection action (Python: batch\$1delete\$1connection)
](aws-glue-api-catalog-connections-connections.md#aws-glue-api-catalog-connections-connections-BatchDeleteConnection)
    + [

# Connection Types API
](aws-glue-api-catalog-connections-connections-type.md)
      + [

## Connection management APIs
](aws-glue-api-catalog-connections-connections-type.md#aws-glue-api-catalog-connections-connections-type-connection-management)
      + [

## DescribeConnectionType action (Python: describe\$1connection\$1type)
](aws-glue-api-catalog-connections-connections-type.md#aws-glue-api-catalog-connections-connections-type-DescribeConnectionType)
      + [

## ListConnectionTypes action (Python: list\$1connection\$1types)
](aws-glue-api-catalog-connections-connections-type.md#aws-glue-api-catalog-connections-connections-type-ListConnectionTypes)
      + [

## ConnectionTypeBrief structure
](aws-glue-api-catalog-connections-connections-type.md#aws-glue-api-catalog-connections-connections-type-ConnectionTypeBrief)
      + [

## ConnectionTypeVariant structure
](aws-glue-api-catalog-connections-connections-type.md#aws-glue-api-catalog-connections-connections-type-ConnectionTypeVariant)
      + [

## datatypes
](aws-glue-api-catalog-connections-connections-type.md#aws-glue-api-catalog-connections-connections-type-connection-types)
      + [

## Validation structure
](aws-glue-api-catalog-connections-connections-type.md#aws-glue-api-catalog-connections-connections-type-Validation)
      + [

## AuthConfiguration structure
](aws-glue-api-catalog-connections-connections-type.md#aws-glue-api-catalog-connections-connections-type-AuthConfiguration)
      + [

## Capabilities structure
](aws-glue-api-catalog-connections-connections-type.md#aws-glue-api-catalog-connections-connections-type-Capabilities)
      + [

## Property structure
](aws-glue-api-catalog-connections-connections-type.md#aws-glue-api-catalog-connections-connections-type-Property)
      + [

## AllowedValue structure
](aws-glue-api-catalog-connections-connections-type.md#aws-glue-api-catalog-connections-connections-type-AllowedValue)
      + [

## ComputeEnvironmentConfiguration structure
](aws-glue-api-catalog-connections-connections-type.md#aws-glue-api-catalog-connections-connections-type-ComputeEnvironmentConfiguration)
    + [

# Connection Metadata and Preview API
](aws-glue-api-catalog-connections-connections-metadata.md)
      + [

## Data types
](aws-glue-api-catalog-connections-connections-metadata.md#aws-glue-api-catalog-connections-connections-metadata-objects)
      + [

## Entity structure
](aws-glue-api-catalog-connections-connections-metadata.md#aws-glue-api-catalog-connections-connections-metadata-Entity)
      + [

## Field structure
](aws-glue-api-catalog-connections-connections-metadata.md#aws-glue-api-catalog-connections-connections-metadata-Field)
      + [

## Operations
](aws-glue-api-catalog-connections-connections-metadata.md#aws-glue-api-catalog-connections-connections-metadata-actions)
      + [

## ListEntities action (Python: list\$1entities)
](aws-glue-api-catalog-connections-connections-metadata.md#aws-glue-api-catalog-connections-connections-metadata-ListEntities)
      + [

## DescribeEntity action (Python: describe\$1entity)
](aws-glue-api-catalog-connections-connections-metadata.md#aws-glue-api-catalog-connections-connections-metadata-DescribeEntity)
      + [

## GetEntityRecords action (Python: get\$1entity\$1records)
](aws-glue-api-catalog-connections-connections-metadata.md#aws-glue-api-catalog-connections-connections-metadata-GetEntityRecords)
  + [

# User-defined Function API
](aws-glue-api-catalog-functions.md)
    + [

## Data types
](aws-glue-api-catalog-functions.md#aws-glue-api-catalog-functions-objects)
    + [

## UserDefinedFunction structure
](aws-glue-api-catalog-functions.md#aws-glue-api-catalog-functions-UserDefinedFunction)
    + [

## UserDefinedFunctionInput structure
](aws-glue-api-catalog-functions.md#aws-glue-api-catalog-functions-UserDefinedFunctionInput)
    + [

## Operations
](aws-glue-api-catalog-functions.md#aws-glue-api-catalog-functions-actions)
    + [

## CreateUserDefinedFunction action (Python: create\$1user\$1defined\$1function)
](aws-glue-api-catalog-functions.md#aws-glue-api-catalog-functions-CreateUserDefinedFunction)
    + [

## UpdateUserDefinedFunction action (Python: update\$1user\$1defined\$1function)
](aws-glue-api-catalog-functions.md#aws-glue-api-catalog-functions-UpdateUserDefinedFunction)
    + [

## DeleteUserDefinedFunction action (Python: delete\$1user\$1defined\$1function)
](aws-glue-api-catalog-functions.md#aws-glue-api-catalog-functions-DeleteUserDefinedFunction)
    + [

## GetUserDefinedFunction action (Python: get\$1user\$1defined\$1function)
](aws-glue-api-catalog-functions.md#aws-glue-api-catalog-functions-GetUserDefinedFunction)
    + [

## GetUserDefinedFunctions action (Python: get\$1user\$1defined\$1functions)
](aws-glue-api-catalog-functions.md#aws-glue-api-catalog-functions-GetUserDefinedFunctions)
  + [

# Importing an Athena catalog to AWS Glue
](aws-glue-api-catalog-migration.md)
    + [

## Data types
](aws-glue-api-catalog-migration.md#aws-glue-api-catalog-migration-objects)
    + [

## CatalogImportStatus structure
](aws-glue-api-catalog-migration.md#aws-glue-api-catalog-migration-CatalogImportStatus)
    + [

## Operations
](aws-glue-api-catalog-migration.md#aws-glue-api-catalog-migration-actions)
    + [

## ImportCatalogToGlue action (Python: import\$1catalog\$1to\$1glue)
](aws-glue-api-catalog-migration.md#aws-glue-api-catalog-migration-ImportCatalogToGlue)
    + [

## GetCatalogImportStatus action (Python: get\$1catalog\$1import\$1status)
](aws-glue-api-catalog-migration.md#aws-glue-api-catalog-migration-GetCatalogImportStatus)
+ [

# Table optimizer API
](aws-glue-api-table-optimizers.md)
  + [

## Data types
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-objects)
  + [

## TableOptimizer structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-TableOptimizer)
  + [

## TableOptimizerConfiguration structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-TableOptimizerConfiguration)
  + [

## TableOptimizerVpcConfiguration structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-TableOptimizerVpcConfiguration)
  + [

## CompactionConfiguration structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-CompactionConfiguration)
  + [

## IcebergCompactionConfiguration structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-IcebergCompactionConfiguration)
  + [

## TableOptimizerRun structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-TableOptimizerRun)
  + [

## BatchGetTableOptimizerEntry structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-BatchGetTableOptimizerEntry)
  + [

## BatchTableOptimizer structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-BatchTableOptimizer)
  + [

## BatchGetTableOptimizerError structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-BatchGetTableOptimizerError)
  + [

## RetentionConfiguration structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-RetentionConfiguration)
  + [

## IcebergRetentionConfiguration structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-IcebergRetentionConfiguration)
  + [

## OrphanFileDeletionConfiguration structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-OrphanFileDeletionConfiguration)
  + [

## IcebergOrphanFileDeletionConfiguration structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-IcebergOrphanFileDeletionConfiguration)
  + [

## CompactionMetrics structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-CompactionMetrics)
  + [

## RetentionMetrics structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-RetentionMetrics)
  + [

## OrphanFileDeletionMetrics structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-OrphanFileDeletionMetrics)
  + [

## IcebergCompactionMetrics structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-IcebergCompactionMetrics)
  + [

## IcebergRetentionMetrics structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-IcebergRetentionMetrics)
  + [

## IcebergOrphanFileDeletionMetrics structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-IcebergOrphanFileDeletionMetrics)
  + [

## RunMetrics structure
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-RunMetrics)
  + [

## Operations
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-actions)
  + [

## GetTableOptimizer action (Python: get\$1table\$1optimizer)
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-GetTableOptimizer)
  + [

## BatchGetTableOptimizer action (Python: batch\$1get\$1table\$1optimizer)
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-BatchGetTableOptimizer)
  + [

## ListTableOptimizerRuns action (Python: list\$1table\$1optimizer\$1runs)
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-ListTableOptimizerRuns)
  + [

## CreateTableOptimizer action (Python: create\$1table\$1optimizer)
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-CreateTableOptimizer)
  + [

## DeleteTableOptimizer action (Python: delete\$1table\$1optimizer)
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-DeleteTableOptimizer)
  + [

## UpdateTableOptimizer action (Python: update\$1table\$1optimizer)
](aws-glue-api-table-optimizers.md#aws-glue-api-table-optimizers-UpdateTableOptimizer)
+ [

# Crawlers and classifiers API
](aws-glue-api-crawler.md)
  + [

# Classifier API
](aws-glue-api-crawler-classifiers.md)
    + [

## Data types
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-objects)
    + [

## Classifier structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-Classifier)
    + [

## GrokClassifier structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-GrokClassifier)
    + [

## XMLClassifier structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-XMLClassifier)
    + [

## JsonClassifier structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-JsonClassifier)
    + [

## CsvClassifier structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-CsvClassifier)
    + [

## CreateGrokClassifierRequest structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-CreateGrokClassifierRequest)
    + [

## UpdateGrokClassifierRequest structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-UpdateGrokClassifierRequest)
    + [

## CreateXMLClassifierRequest structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-CreateXMLClassifierRequest)
    + [

## UpdateXMLClassifierRequest structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-UpdateXMLClassifierRequest)
    + [

## CreateJsonClassifierRequest structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-CreateJsonClassifierRequest)
    + [

## UpdateJsonClassifierRequest structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-UpdateJsonClassifierRequest)
    + [

## CreateCsvClassifierRequest structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-CreateCsvClassifierRequest)
    + [

## UpdateCsvClassifierRequest structure
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-UpdateCsvClassifierRequest)
    + [

## Operations
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-actions)
    + [

## CreateClassifier action (Python: create\$1classifier)
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-CreateClassifier)
    + [

## DeleteClassifier action (Python: delete\$1classifier)
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-DeleteClassifier)
    + [

## GetClassifier action (Python: get\$1classifier)
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-GetClassifier)
    + [

## GetClassifiers action (Python: get\$1classifiers)
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-GetClassifiers)
    + [

## UpdateClassifier action (Python: update\$1classifier)
](aws-glue-api-crawler-classifiers.md#aws-glue-api-crawler-classifiers-UpdateClassifier)
  + [

# Crawler API
](aws-glue-api-crawler-crawling.md)
    + [

## Data types
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-objects)
    + [

## Crawler structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-Crawler)
    + [

## Schedule structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-Schedule)
    + [

## CrawlerTargets structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-CrawlerTargets)
    + [

## S3Target structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-S3Target)
    + [

## S3DeltaCatalogTarget structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-S3DeltaCatalogTarget)
    + [

## S3DeltaDirectTarget structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-S3DeltaDirectTarget)
    + [

## JdbcTarget structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-JdbcTarget)
    + [

## MongoDBTarget structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-MongoDBTarget)
    + [

## DynamoDBTarget structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-DynamoDBTarget)
    + [

## DeltaTarget structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-DeltaTarget)
    + [

## IcebergTarget structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-IcebergTarget)
    + [

## HudiTarget structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-HudiTarget)
    + [

## CatalogTarget structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-CatalogTarget)
    + [

## CrawlerMetrics structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-CrawlerMetrics)
    + [

## CrawlerHistory structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-CrawlerHistory)
    + [

## CrawlsFilter structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-CrawlsFilter)
    + [

## SchemaChangePolicy structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-SchemaChangePolicy)
    + [

## LastCrawlInfo structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-LastCrawlInfo)
    + [

## RecrawlPolicy structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-RecrawlPolicy)
    + [

## LineageConfiguration structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-LineageConfiguration)
    + [

## LakeFormationConfiguration structure
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-LakeFormationConfiguration)
    + [

## Operations
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-actions)
    + [

## CreateCrawler action (Python: create\$1crawler)
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-CreateCrawler)
    + [

## DeleteCrawler action (Python: delete\$1crawler)
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-DeleteCrawler)
    + [

## GetCrawler action (Python: get\$1crawler)
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-GetCrawler)
    + [

## GetCrawlers action (Python: get\$1crawlers)
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-GetCrawlers)
    + [

## GetCrawlerMetrics action (Python: get\$1crawler\$1metrics)
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-GetCrawlerMetrics)
    + [

## UpdateCrawler action (Python: update\$1crawler)
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-UpdateCrawler)
    + [

## StartCrawler action (Python: start\$1crawler)
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-StartCrawler)
    + [

## StopCrawler action (Python: stop\$1crawler)
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-StopCrawler)
    + [

## BatchGetCrawlers action (Python: batch\$1get\$1crawlers)
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-BatchGetCrawlers)
    + [

## ListCrawlers action (Python: list\$1crawlers)
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-ListCrawlers)
    + [

## ListCrawls action (Python: list\$1crawls)
](aws-glue-api-crawler-crawling.md#aws-glue-api-crawler-crawling-ListCrawls)
  + [

# Column statistics API
](aws-glue-api-crawler-column-statistics.md)
    + [

## Data types
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-objects)
    + [

## ColumnStatisticsTaskRun structure
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskRun)
    + [

## ColumnStatisticsTaskSettings structure
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskSettings)
    + [

## ExecutionAttempt structure
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-ExecutionAttempt)
    + [

## Operations
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-actions)
    + [

## StartColumnStatisticsTaskRun action (Python: start\$1column\$1statistics\$1task\$1run)
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRun)
    + [

## GetColumnStatisticsTaskRun action (Python: get\$1column\$1statistics\$1task\$1run)
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-GetColumnStatisticsTaskRun)
    + [

## GetColumnStatisticsTaskRuns action (Python: get\$1column\$1statistics\$1task\$1runs)
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-GetColumnStatisticsTaskRuns)
    + [

## ListColumnStatisticsTaskRuns action (Python: list\$1column\$1statistics\$1task\$1runs)
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-ListColumnStatisticsTaskRuns)
    + [

## StopColumnStatisticsTaskRun action (Python: stop\$1column\$1statistics\$1task\$1run)
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-StopColumnStatisticsTaskRun)
    + [

## CreateColumnStatisticsTaskSettings action (Python: create\$1column\$1statistics\$1task\$1settings)
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-CreateColumnStatisticsTaskSettings)
    + [

## UpdateColumnStatisticsTaskSettings action (Python: update\$1column\$1statistics\$1task\$1settings)
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-UpdateColumnStatisticsTaskSettings)
    + [

## GetColumnStatisticsTaskSettings action (Python: get\$1column\$1statistics\$1task\$1settings)
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-GetColumnStatisticsTaskSettings)
    + [

## DeleteColumnStatisticsTaskSettings action (Python: delete\$1column\$1statistics\$1task\$1settings)
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-DeleteColumnStatisticsTaskSettings)
    + [

## StartColumnStatisticsTaskRunSchedule action (Python: start\$1column\$1statistics\$1task\$1run\$1schedule)
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRunSchedule)
    + [

## StopColumnStatisticsTaskRunSchedule action (Python: stop\$1column\$1statistics\$1task\$1run\$1schedule)
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-StopColumnStatisticsTaskRunSchedule)
    + [

## Exceptions
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-exceptions)
    + [

## ColumnStatisticsTaskRunningException structure
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskRunningException)
    + [

## ColumnStatisticsTaskNotRunningException structure
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskNotRunningException)
    + [

## ColumnStatisticsTaskStoppingException structure
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskStoppingException)
    + [

## ColumnStatisticsTaskAutoConcurrencyLimitException structure
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskAutoConcurrencyLimitException)
    + [

## InvalidCatalogSettingException structure
](aws-glue-api-crawler-column-statistics.md#aws-glue-api-crawler-column-statistics-InvalidCatalogSettingException)
  + [

# Crawler scheduler API
](aws-glue-api-crawler-scheduler.md)
    + [

## Data types
](aws-glue-api-crawler-scheduler.md#aws-glue-api-crawler-scheduler-objects)
    + [

## Schedule structure
](aws-glue-api-crawler-scheduler.md#aws-glue-api-crawler-scheduler-Schedule)
    + [

## Operations
](aws-glue-api-crawler-scheduler.md#aws-glue-api-crawler-scheduler-actions)
    + [

## UpdateCrawlerSchedule action (Python: update\$1crawler\$1schedule)
](aws-glue-api-crawler-scheduler.md#aws-glue-api-crawler-scheduler-UpdateCrawlerSchedule)
    + [

## StartCrawlerSchedule action (Python: start\$1crawler\$1schedule)
](aws-glue-api-crawler-scheduler.md#aws-glue-api-crawler-scheduler-StartCrawlerSchedule)
    + [

## StopCrawlerSchedule action (Python: stop\$1crawler\$1schedule)
](aws-glue-api-crawler-scheduler.md#aws-glue-api-crawler-scheduler-StopCrawlerSchedule)
+ [

# Autogenerating ETL Scripts API
](aws-glue-api-etl-script-generation.md)
  + [

## Data types
](aws-glue-api-etl-script-generation.md#aws-glue-api-etl-script-generation-objects)
  + [

## CodeGenNode structure
](aws-glue-api-etl-script-generation.md#aws-glue-api-etl-script-generation-CodeGenNode)
  + [

## CodeGenNodeArg structure
](aws-glue-api-etl-script-generation.md#aws-glue-api-etl-script-generation-CodeGenNodeArg)
  + [

## CodeGenEdge structure
](aws-glue-api-etl-script-generation.md#aws-glue-api-etl-script-generation-CodeGenEdge)
  + [

## Location structure
](aws-glue-api-etl-script-generation.md#aws-glue-api-etl-script-generation-Location)
  + [

## CatalogEntry structure
](aws-glue-api-etl-script-generation.md#aws-glue-api-etl-script-generation-CatalogEntry)
  + [

## MappingEntry structure
](aws-glue-api-etl-script-generation.md#aws-glue-api-etl-script-generation-MappingEntry)
  + [

## Operations
](aws-glue-api-etl-script-generation.md#aws-glue-api-etl-script-generation-actions)
  + [

## CreateScript action (Python: create\$1script)
](aws-glue-api-etl-script-generation.md#aws-glue-api-etl-script-generation-CreateScript)
  + [

## GetDataflowGraph action (Python: get\$1dataflow\$1graph)
](aws-glue-api-etl-script-generation.md#aws-glue-api-etl-script-generation-GetDataflowGraph)
  + [

## GetMapping action (Python: get\$1mapping)
](aws-glue-api-etl-script-generation.md#aws-glue-api-etl-script-generation-GetMapping)
  + [

## GetPlan action (Python: get\$1plan)
](aws-glue-api-etl-script-generation.md#aws-glue-api-etl-script-generation-GetPlan)
+ [

# Visual job API
](aws-glue-api-visual-job-api.md)
  + [

## Data types
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-objects)
  + [

## CodeGenConfigurationNode structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CodeGenConfigurationNode)
  + [

## JDBCConnectorOptions structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-JDBCConnectorOptions)
  + [

## StreamingDataPreviewOptions structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-StreamingDataPreviewOptions)
  + [

## AthenaConnectorSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-AthenaConnectorSource)
  + [

## JDBCConnectorSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-JDBCConnectorSource)
  + [

## SparkConnectorSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-SparkConnectorSource)
  + [

## CatalogSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CatalogSource)
  + [

## MySQLCatalogSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-MySQLCatalogSource)
  + [

## PostgreSQLCatalogSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-PostgreSQLCatalogSource)
  + [

## OracleSQLCatalogSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-OracleSQLCatalogSource)
  + [

## MicrosoftSQLServerCatalogSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-MicrosoftSQLServerCatalogSource)
  + [

## CatalogKinesisSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CatalogKinesisSource)
  + [

## DirectKinesisSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DirectKinesisSource)
  + [

## KinesisStreamingSourceOptions structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-KinesisStreamingSourceOptions)
  + [

## CatalogKafkaSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CatalogKafkaSource)
  + [

## DirectKafkaSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DirectKafkaSource)
  + [

## KafkaStreamingSourceOptions structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-KafkaStreamingSourceOptions)
  + [

## RedshiftSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-RedshiftSource)
  + [

## AmazonRedshiftSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-AmazonRedshiftSource)
  + [

## AmazonRedshiftNodeData structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-AmazonRedshiftNodeData)
  + [

## AmazonRedshiftAdvancedOption structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-AmazonRedshiftAdvancedOption)
  + [

## Option structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-Option)
  + [

## S3CatalogSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3CatalogSource)
  + [

## S3SourceAdditionalOptions structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3SourceAdditionalOptions)
  + [

## S3CsvSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3CsvSource)
  + [

## DirectJDBCSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DirectJDBCSource)
  + [

## S3DirectSourceAdditionalOptions structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3DirectSourceAdditionalOptions)
  + [

## S3JsonSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3JsonSource)
  + [

## S3ParquetSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3ParquetSource)
  + [

## S3DeltaSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3DeltaSource)
  + [

## S3CatalogDeltaSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3CatalogDeltaSource)
  + [

## CatalogDeltaSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CatalogDeltaSource)
  + [

## S3HudiSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3HudiSource)
  + [

## S3CatalogHudiSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3CatalogHudiSource)
  + [

## S3ExcelSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3ExcelSource)
  + [

## CatalogHudiSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CatalogHudiSource)
  + [

## DynamoDBCatalogSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DynamoDBCatalogSource)
  + [

## RelationalCatalogSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-RelationalCatalogSource)
  + [

## JDBCConnectorTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-JDBCConnectorTarget)
  + [

## SparkConnectorTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-SparkConnectorTarget)
  + [

## BasicCatalogTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-BasicCatalogTarget)
  + [

## MySQLCatalogTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-MySQLCatalogTarget)
  + [

## PostgreSQLCatalogTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-PostgreSQLCatalogTarget)
  + [

## OracleSQLCatalogTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-OracleSQLCatalogTarget)
  + [

## MicrosoftSQLServerCatalogTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-MicrosoftSQLServerCatalogTarget)
  + [

## RedshiftTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-RedshiftTarget)
  + [

## AmazonRedshiftTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-AmazonRedshiftTarget)
  + [

## UpsertRedshiftTargetOptions structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-UpsertRedshiftTargetOptions)
  + [

## S3CatalogTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3CatalogTarget)
  + [

## S3GlueParquetTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3GlueParquetTarget)
  + [

## CatalogSchemaChangePolicy structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CatalogSchemaChangePolicy)
  + [

## S3DirectTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3DirectTarget)
  + [

## S3HudiCatalogTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3HudiCatalogTarget)
  + [

## S3HudiDirectTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3HudiDirectTarget)
  + [

## S3DeltaCatalogTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3DeltaCatalogTarget)
  + [

## S3DeltaDirectTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3DeltaDirectTarget)
  + [

## S3HyperDirectTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3HyperDirectTarget)
  + [

## S3IcebergDirectTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3IcebergDirectTarget)
  + [

## DirectSchemaChangePolicy structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DirectSchemaChangePolicy)
  + [

## ApplyMapping structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-ApplyMapping)
  + [

## Mapping structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-Mapping)
  + [

## SelectFields structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-SelectFields)
  + [

## DropFields structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DropFields)
  + [

## RenameField structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-RenameField)
  + [

## Spigot structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-Spigot)
  + [

## Join structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-Join)
  + [

## JoinColumn structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-JoinColumn)
  + [

## SplitFields structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-SplitFields)
  + [

## SelectFromCollection structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-SelectFromCollection)
  + [

## FillMissingValues structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-FillMissingValues)
  + [

## Filter structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-Filter)
  + [

## FilterExpression structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-FilterExpression)
  + [

## FilterValue structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-FilterValue)
  + [

## CustomCode structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CustomCode)
  + [

## SparkSQL structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-SparkSQL)
  + [

## SqlAlias structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-SqlAlias)
  + [

## DropNullFields structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DropNullFields)
  + [

## NullCheckBoxList structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-NullCheckBoxList)
  + [

## NullValueField structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-NullValueField)
  + [

## Datatype structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-Datatype)
  + [

## Merge structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-Merge)
  + [

## Union structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-Union)
  + [

## PIIDetection structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-PIIDetection)
  + [

## Aggregate structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-Aggregate)
  + [

## DropDuplicates structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DropDuplicates)
  + [

## GovernedCatalogTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-GovernedCatalogTarget)
  + [

## GovernedCatalogSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-GovernedCatalogSource)
  + [

## AggregateOperation structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-AggregateOperation)
  + [

## GlueSchema structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-GlueSchema)
  + [

## GlueStudioSchemaColumn structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-GlueStudioSchemaColumn)
  + [

## GlueStudioColumn structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-GlueStudioColumn)
  + [

## DynamicTransform structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DynamicTransform)
  + [

## TransformConfigParameter structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-TransformConfigParameter)
  + [

## EvaluateDataQuality structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-EvaluateDataQuality)
  + [

## DQResultsPublishingOptions structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DQResultsPublishingOptions)
  + [

## DQStopJobOnFailureOptions structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DQStopJobOnFailureOptions)
  + [

## EvaluateDataQualityMultiFrame structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-EvaluateDataQualityMultiFrame)
  + [

## Recipe structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-Recipe)
  + [

## RecipeReference structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-RecipeReference)
  + [

## SnowflakeNodeData structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-SnowflakeNodeData)
  + [

## SnowflakeSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-SnowflakeSource)
  + [

## SnowflakeTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-SnowflakeTarget)
  + [

## ConnectorDataSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-ConnectorDataSource)
  + [

## ConnectorDataTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-ConnectorDataTarget)
  + [

## RecipeStep structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-RecipeStep)
  + [

## RecipeAction structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-RecipeAction)
  + [

## ConditionExpression structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-ConditionExpression)
  + [

## S3CatalogIcebergSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3CatalogIcebergSource)
  + [

## CatalogIcebergSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CatalogIcebergSource)
  + [

## S3IcebergCatalogTarget structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-S3IcebergCatalogTarget)
  + [

## DynamoDBELTConnectorSource structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DynamoDBELTConnectorSource)
  + [

## DDBELTConnectionOptions structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DDBELTConnectionOptions)
  + [

## DDBELTCatalogAdditionalOptions structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DDBELTCatalogAdditionalOptions)
  + [

## Route structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-Route)
  + [

## GroupFilters structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-GroupFilters)
  + [

## AutoDataQuality structure
](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-AutoDataQuality)
+ [

# Jobs API
](aws-glue-api-jobs.md)
  + [

# Jobs
](aws-glue-api-jobs-job.md)
    + [

## Data types
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-objects)
    + [

## Job structure
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-Job)
    + [

## ExecutionProperty structure
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-ExecutionProperty)
    + [

## NotificationProperty structure
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-NotificationProperty)
    + [

## JobCommand structure
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-JobCommand)
    + [

## ConnectionsList structure
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-ConnectionsList)
    + [

## JobUpdate structure
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-JobUpdate)
    + [

## SourceControlDetails structure
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-SourceControlDetails)
    + [

## Operations
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-actions)
    + [

## CreateJob action (Python: create\$1job)
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-CreateJob)
    + [

## UpdateJob action (Python: update\$1job)
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-UpdateJob)
    + [

## GetJob action (Python: get\$1job)
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-GetJob)
    + [

## GetJobs action (Python: get\$1jobs)
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-GetJobs)
    + [

## DeleteJob action (Python: delete\$1job)
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-DeleteJob)
    + [

## ListJobs action (Python: list\$1jobs)
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-ListJobs)
    + [

## BatchGetJobs action (Python: batch\$1get\$1jobs)
](aws-glue-api-jobs-job.md#aws-glue-api-jobs-job-BatchGetJobs)
  + [

# Job runs
](aws-glue-api-jobs-runs.md)
    + [

## Data types
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-objects)
    + [

## JobRun structure
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-JobRun)
    + [

## Predecessor structure
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-Predecessor)
    + [

## JobBookmarkEntry structure
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-JobBookmarkEntry)
    + [

## BatchStopJobRunSuccessfulSubmission structure
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-BatchStopJobRunSuccessfulSubmission)
    + [

## BatchStopJobRunError structure
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-BatchStopJobRunError)
    + [

## NotificationProperty structure
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-NotificationProperty)
    + [

## Operations
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-actions)
    + [

## StartJobRun action (Python: start\$1job\$1run)
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-StartJobRun)
    + [

## BatchStopJobRun action (Python: batch\$1stop\$1job\$1run)
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-BatchStopJobRun)
    + [

## GetJobRun action (Python: get\$1job\$1run)
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-GetJobRun)
    + [

## GetJobRuns action (Python: get\$1job\$1runs)
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-GetJobRuns)
    + [

## GetJobBookmark action (Python: get\$1job\$1bookmark)
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-GetJobBookmark)
    + [

## GetJobBookmarks action (Python: get\$1job\$1bookmarks)
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-GetJobBookmarks)
    + [

## ResetJobBookmark action (Python: reset\$1job\$1bookmark)
](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-ResetJobBookmark)
  + [

# Triggers
](aws-glue-api-jobs-trigger.md)
    + [

## Data types
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-objects)
    + [

## Trigger structure
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-Trigger)
    + [

## TriggerUpdate structure
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-TriggerUpdate)
    + [

## Predicate structure
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-Predicate)
    + [

## Condition structure
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-Condition)
    + [

## Action structure
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-Action)
    + [

## EventBatchingCondition structure
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-EventBatchingCondition)
    + [

## Operations
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-actions)
    + [

## CreateTrigger action (Python: create\$1trigger)
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-CreateTrigger)
    + [

## StartTrigger action (Python: start\$1trigger)
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-StartTrigger)
    + [

## GetTrigger action (Python: get\$1trigger)
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-GetTrigger)
    + [

## GetTriggers action (Python: get\$1triggers)
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-GetTriggers)
    + [

## UpdateTrigger action (Python: update\$1trigger)
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-UpdateTrigger)
    + [

## StopTrigger action (Python: stop\$1trigger)
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-StopTrigger)
    + [

## DeleteTrigger action (Python: delete\$1trigger)
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-DeleteTrigger)
    + [

## ListTriggers action (Python: list\$1triggers)
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-ListTriggers)
    + [

## BatchGetTriggers action (Python: batch\$1get\$1triggers)
](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-BatchGetTriggers)
+ [

# Integration APIs in AWS Glue
](aws-glue-api-integrations.md)
  + [

## Data types
](aws-glue-api-integrations.md#aws-glue-api-integrations-objects)
  + [

## Integration structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-Integration)
  + [

## IntegrationConfig structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-IntegrationConfig)
  + [

## IntegrationPartition structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-IntegrationPartition)
  + [

## IntegrationError structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-IntegrationError)
  + [

## IntegrationFilter structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-IntegrationFilter)
  + [

## InboundIntegration structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-InboundIntegration)
  + [

## SourceProcessingProperties structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-SourceProcessingProperties)
  + [

## TargetProcessingProperties structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-TargetProcessingProperties)
  + [

## SourceTableConfig structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-SourceTableConfig)
  + [

## TargetTableConfig structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-TargetTableConfig)
  + [

## Operations
](aws-glue-api-integrations.md#aws-glue-api-integrations-actions)
  + [

## CreateIntegration action (Python: create\$1integration)
](aws-glue-api-integrations.md#aws-glue-api-integrations-CreateIntegration)
  + [

## ModifyIntegration action (Python: modify\$1integration)
](aws-glue-api-integrations.md#aws-glue-api-integrations-ModifyIntegration)
  + [

## DescribeIntegrations action (Python: describe\$1integrations)
](aws-glue-api-integrations.md#aws-glue-api-integrations-DescribeIntegrations)
  + [

## DeleteIntegration action (Python: delete\$1integration)
](aws-glue-api-integrations.md#aws-glue-api-integrations-DeleteIntegration)
  + [

## DescribeInboundIntegrations action (Python: describe\$1inbound\$1integrations)
](aws-glue-api-integrations.md#aws-glue-api-integrations-DescribeInboundIntegrations)
  + [

## CreateIntegrationTableProperties action (Python: create\$1integration\$1table\$1properties)
](aws-glue-api-integrations.md#aws-glue-api-integrations-CreateIntegrationTableProperties)
  + [

## UpdateIntegrationTableProperties action (Python: update\$1integration\$1table\$1properties)
](aws-glue-api-integrations.md#aws-glue-api-integrations-UpdateIntegrationTableProperties)
  + [

## GetIntegrationTableProperties action (Python: get\$1integration\$1table\$1properties)
](aws-glue-api-integrations.md#aws-glue-api-integrations-GetIntegrationTableProperties)
  + [

## DeleteIntegrationTableProperties action (Python: delete\$1integration\$1table\$1properties)
](aws-glue-api-integrations.md#aws-glue-api-integrations-DeleteIntegrationTableProperties)
  + [

## CreateIntegrationResourceProperty action (Python: create\$1integration\$1resource\$1property)
](aws-glue-api-integrations.md#aws-glue-api-integrations-CreateIntegrationResourceProperty)
  + [

## UpdateIntegrationResourceProperty action (Python: update\$1integration\$1resource\$1property)
](aws-glue-api-integrations.md#aws-glue-api-integrations-UpdateIntegrationResourceProperty)
  + [

## GetIntegrationResourceProperty action (Python: get\$1integration\$1resource\$1property)
](aws-glue-api-integrations.md#aws-glue-api-integrations-GetIntegrationResourceProperty)
  + [

## UntagResource action (Python: untag\$1resource)
](aws-glue-api-integrations.md#aws-glue-api-integrations-UntagResource)
  + [

## ListTagsForResource action (Python: list\$1tags\$1for\$1resource)
](aws-glue-api-integrations.md#aws-glue-api-integrations-ListTagsForResource)
  + [

## Exceptions
](aws-glue-api-integrations.md#aws-glue-api-integrations-exceptions)
  + [

## ResourceNotFoundException structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-ResourceNotFoundException)
  + [

## InternalServerException structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-InternalServerException)
  + [

## IntegrationAlreadyExistsFault structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-IntegrationAlreadyExistsFault)
  + [

## IntegrationConflictOperationFault structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-IntegrationConflictOperationFault)
  + [

## IntegrationQuotaExceededFault structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-IntegrationQuotaExceededFault)
  + [

## KMSKeyNotAccessibleFault structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-KMSKeyNotAccessibleFault)
  + [

## IntegrationNotFoundFault structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-IntegrationNotFoundFault)
  + [

## TargetResourceNotFound structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-TargetResourceNotFound)
  + [

## InvalidIntegrationStateFault structure
](aws-glue-api-integrations.md#aws-glue-api-integrations-InvalidIntegrationStateFault)
+ [

# Interactive sessions API
](aws-glue-api-interactive-sessions.md)
  + [

## Data types
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-objects)
  + [

## Session structure
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-Session)
  + [

## SessionCommand structure
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-SessionCommand)
  + [

## Statement structure
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-Statement)
  + [

## StatementOutput structure
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-StatementOutput)
  + [

## StatementOutputData structure
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-StatementOutputData)
  + [

## ConnectionsList structure
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-ConnectionsList)
  + [

## Operations
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-actions)
  + [

## CreateSession action (Python: create\$1session)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-CreateSession)
  + [

## StopSession action (Python: stop\$1session)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-StopSession)
  + [

## DeleteSession action (Python: delete\$1session)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-DeleteSession)
  + [

## GetSession action (Python: get\$1session)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-GetSession)
  + [

## ListSessions action (Python: list\$1sessions)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-ListSessions)
  + [

## RunStatement action (Python: run\$1statement)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-RunStatement)
  + [

## CancelStatement action (Python: cancel\$1statement)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-CancelStatement)
  + [

## GetStatement action (Python: get\$1statement)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-GetStatement)
  + [

## ListStatements action (Python: list\$1statements)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-ListStatements)
  + [

## GetGlueIdentityCenterConfiguration action (Python: get\$1glue\$1identity\$1center\$1configuration)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-GetGlueIdentityCenterConfiguration)
  + [

## UpdateGlueIdentityCenterConfiguration action (Python: update\$1glue\$1identity\$1center\$1configuration)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-UpdateGlueIdentityCenterConfiguration)
  + [

## CreateGlueIdentityCenterConfiguration action (Python: create\$1glue\$1identity\$1center\$1configuration)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-CreateGlueIdentityCenterConfiguration)
  + [

## DeleteGlueIdentityCenterConfiguration action (Python: delete\$1glue\$1identity\$1center\$1configuration)
](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-DeleteGlueIdentityCenterConfiguration)
+ [

# Development endpoints API
](aws-glue-api-dev-endpoint.md)
  + [

## Data types
](aws-glue-api-dev-endpoint.md#aws-glue-api-dev-endpoint-objects)
  + [

## DevEndpoint structure
](aws-glue-api-dev-endpoint.md#aws-glue-api-dev-endpoint-DevEndpoint)
  + [

## DevEndpointCustomLibraries structure
](aws-glue-api-dev-endpoint.md#aws-glue-api-dev-endpoint-DevEndpointCustomLibraries)
  + [

## Operations
](aws-glue-api-dev-endpoint.md#aws-glue-api-dev-endpoint-actions)
  + [

## CreateDevEndpoint action (Python: create\$1dev\$1endpoint)
](aws-glue-api-dev-endpoint.md#aws-glue-api-dev-endpoint-CreateDevEndpoint)
  + [

## UpdateDevEndpoint action (Python: update\$1dev\$1endpoint)
](aws-glue-api-dev-endpoint.md#aws-glue-api-dev-endpoint-UpdateDevEndpoint)
  + [

## DeleteDevEndpoint action (Python: delete\$1dev\$1endpoint)
](aws-glue-api-dev-endpoint.md#aws-glue-api-dev-endpoint-DeleteDevEndpoint)
  + [

## GetDevEndpoint action (Python: get\$1dev\$1endpoint)
](aws-glue-api-dev-endpoint.md#aws-glue-api-dev-endpoint-GetDevEndpoint)
  + [

## GetDevEndpoints action (Python: get\$1dev\$1endpoints)
](aws-glue-api-dev-endpoint.md#aws-glue-api-dev-endpoint-GetDevEndpoints)
  + [

## BatchGetDevEndpoints action (Python: batch\$1get\$1dev\$1endpoints)
](aws-glue-api-dev-endpoint.md#aws-glue-api-dev-endpoint-BatchGetDevEndpoints)
  + [

## ListDevEndpoints action (Python: list\$1dev\$1endpoints)
](aws-glue-api-dev-endpoint.md#aws-glue-api-dev-endpoint-ListDevEndpoints)
+ [

# Schema registry
](aws-glue-api-schema-registry-api.md)
  + [

## Data types
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-objects)
  + [

## RegistryId structure
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-RegistryId)
  + [

## RegistryListItem structure
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-RegistryListItem)
  + [

## MetadataInfo structure
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-MetadataInfo)
  + [

## OtherMetadataValueListItem structure
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-OtherMetadataValueListItem)
  + [

## SchemaListItem structure
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-SchemaListItem)
  + [

## SchemaVersionListItem structure
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-SchemaVersionListItem)
  + [

## MetadataKeyValuePair structure
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-MetadataKeyValuePair)
  + [

## SchemaVersionErrorItem structure
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-SchemaVersionErrorItem)
  + [

## ErrorDetails structure
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-ErrorDetails)
  + [

## SchemaVersionNumber structure
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-SchemaVersionNumber)
  + [

## SchemaId structure
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-SchemaId)
  + [

## Operations
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-actions)
  + [

## CreateRegistry action (Python: create\$1registry)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-CreateRegistry)
  + [

## CreateSchema action (Python: create\$1schema)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-CreateSchema)
  + [

## GetSchema action (Python: get\$1schema)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-GetSchema)
  + [

## ListSchemaVersions action (Python: list\$1schema\$1versions)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-ListSchemaVersions)
  + [

## GetSchemaVersion action (Python: get\$1schema\$1version)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-GetSchemaVersion)
  + [

## GetSchemaVersionsDiff action (Python: get\$1schema\$1versions\$1diff)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-GetSchemaVersionsDiff)
  + [

## ListRegistries action (Python: list\$1registries)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-ListRegistries)
  + [

## ListSchemas action (Python: list\$1schemas)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-ListSchemas)
  + [

## RegisterSchemaVersion action (Python: register\$1schema\$1version)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-RegisterSchemaVersion)
  + [

## UpdateSchema action (Python: update\$1schema)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-UpdateSchema)
  + [

## CheckSchemaVersionValidity action (Python: check\$1schema\$1version\$1validity)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-CheckSchemaVersionValidity)
  + [

## UpdateRegistry action (Python: update\$1registry)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-UpdateRegistry)
  + [

## GetSchemaByDefinition action (Python: get\$1schema\$1by\$1definition)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-GetSchemaByDefinition)
  + [

## GetRegistry action (Python: get\$1registry)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-GetRegistry)
  + [

## PutSchemaVersionMetadata action (Python: put\$1schema\$1version\$1metadata)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-PutSchemaVersionMetadata)
  + [

## QuerySchemaVersionMetadata action (Python: query\$1schema\$1version\$1metadata)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-QuerySchemaVersionMetadata)
  + [

## RemoveSchemaVersionMetadata action (Python: remove\$1schema\$1version\$1metadata)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-RemoveSchemaVersionMetadata)
  + [

## DeleteRegistry action (Python: delete\$1registry)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-DeleteRegistry)
  + [

## DeleteSchema action (Python: delete\$1schema)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-DeleteSchema)
  + [

## DeleteSchemaVersions action (Python: delete\$1schema\$1versions)
](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-DeleteSchemaVersions)
+ [

# Workflows
](aws-glue-api-workflow.md)
  + [

## Data types
](aws-glue-api-workflow.md#aws-glue-api-workflow-objects)
  + [

## JobNodeDetails structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-JobNodeDetails)
  + [

## CrawlerNodeDetails structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-CrawlerNodeDetails)
  + [

## TriggerNodeDetails structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-TriggerNodeDetails)
  + [

## Crawl structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-Crawl)
  + [

## Node structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-Node)
  + [

## Edge structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-Edge)
  + [

## Workflow structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-Workflow)
  + [

## WorkflowGraph structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-WorkflowGraph)
  + [

## WorkflowRun structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-WorkflowRun)
  + [

## WorkflowRunStatistics structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-WorkflowRunStatistics)
  + [

## StartingEventBatchCondition structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-StartingEventBatchCondition)
  + [

## Blueprint structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-Blueprint)
  + [

## BlueprintDetails structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-BlueprintDetails)
  + [

## LastActiveDefinition structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-LastActiveDefinition)
  + [

## BlueprintRun structure
](aws-glue-api-workflow.md#aws-glue-api-workflow-BlueprintRun)
  + [

## Operations
](aws-glue-api-workflow.md#aws-glue-api-workflow-actions)
  + [

## CreateWorkflow action (Python: create\$1workflow)
](aws-glue-api-workflow.md#aws-glue-api-workflow-CreateWorkflow)
  + [

## UpdateWorkflow action (Python: update\$1workflow)
](aws-glue-api-workflow.md#aws-glue-api-workflow-UpdateWorkflow)
  + [

## DeleteWorkflow action (Python: delete\$1workflow)
](aws-glue-api-workflow.md#aws-glue-api-workflow-DeleteWorkflow)
  + [

## GetWorkflow action (Python: get\$1workflow)
](aws-glue-api-workflow.md#aws-glue-api-workflow-GetWorkflow)
  + [

## ListWorkflows action (Python: list\$1workflows)
](aws-glue-api-workflow.md#aws-glue-api-workflow-ListWorkflows)
  + [

## BatchGetWorkflows action (Python: batch\$1get\$1workflows)
](aws-glue-api-workflow.md#aws-glue-api-workflow-BatchGetWorkflows)
  + [

## GetWorkflowRun action (Python: get\$1workflow\$1run)
](aws-glue-api-workflow.md#aws-glue-api-workflow-GetWorkflowRun)
  + [

## GetWorkflowRuns action (Python: get\$1workflow\$1runs)
](aws-glue-api-workflow.md#aws-glue-api-workflow-GetWorkflowRuns)
  + [

## GetWorkflowRunProperties action (Python: get\$1workflow\$1run\$1properties)
](aws-glue-api-workflow.md#aws-glue-api-workflow-GetWorkflowRunProperties)
  + [

## PutWorkflowRunProperties action (Python: put\$1workflow\$1run\$1properties)
](aws-glue-api-workflow.md#aws-glue-api-workflow-PutWorkflowRunProperties)
  + [

## CreateBlueprint action (Python: create\$1blueprint)
](aws-glue-api-workflow.md#aws-glue-api-workflow-CreateBlueprint)
  + [

## UpdateBlueprint action (Python: update\$1blueprint)
](aws-glue-api-workflow.md#aws-glue-api-workflow-UpdateBlueprint)
  + [

## DeleteBlueprint action (Python: delete\$1blueprint)
](aws-glue-api-workflow.md#aws-glue-api-workflow-DeleteBlueprint)
  + [

## ListBlueprints action (Python: list\$1blueprints)
](aws-glue-api-workflow.md#aws-glue-api-workflow-ListBlueprints)
  + [

## BatchGetBlueprints action (Python: batch\$1get\$1blueprints)
](aws-glue-api-workflow.md#aws-glue-api-workflow-BatchGetBlueprints)
  + [

## StartBlueprintRun action (Python: start\$1blueprint\$1run)
](aws-glue-api-workflow.md#aws-glue-api-workflow-StartBlueprintRun)
  + [

## GetBlueprintRun action (Python: get\$1blueprint\$1run)
](aws-glue-api-workflow.md#aws-glue-api-workflow-GetBlueprintRun)
  + [

## GetBlueprintRuns action (Python: get\$1blueprint\$1runs)
](aws-glue-api-workflow.md#aws-glue-api-workflow-GetBlueprintRuns)
  + [

## StartWorkflowRun action (Python: start\$1workflow\$1run)
](aws-glue-api-workflow.md#aws-glue-api-workflow-StartWorkflowRun)
  + [

## StopWorkflowRun action (Python: stop\$1workflow\$1run)
](aws-glue-api-workflow.md#aws-glue-api-workflow-StopWorkflowRun)
  + [

## ResumeWorkflowRun action (Python: resume\$1workflow\$1run)
](aws-glue-api-workflow.md#aws-glue-api-workflow-ResumeWorkflowRun)
+ [

# Usage profiles
](aws-glue-api-usage-profiles.md)
  + [

## Data types
](aws-glue-api-usage-profiles.md#aws-glue-api-usage-profiles-objects)
  + [

## ProfileConfiguration structure
](aws-glue-api-usage-profiles.md#aws-glue-api-usage-profiles-ProfileConfiguration)
  + [

## ConfigurationObject structure
](aws-glue-api-usage-profiles.md#aws-glue-api-usage-profiles-ConfigurationObject)
  + [

## UsageProfileDefinition structure
](aws-glue-api-usage-profiles.md#aws-glue-api-usage-profiles-UsageProfileDefinition)
  + [

## Operations
](aws-glue-api-usage-profiles.md#aws-glue-api-usage-profiles-actions)
  + [

## CreateUsageProfile action (Python: create\$1usage\$1profile)
](aws-glue-api-usage-profiles.md#aws-glue-api-usage-profiles-CreateUsageProfile)
  + [

## GetUsageProfile action (Python: get\$1usage\$1profile)
](aws-glue-api-usage-profiles.md#aws-glue-api-usage-profiles-GetUsageProfile)
  + [

## UpdateUsageProfile action (Python: update\$1usage\$1profile)
](aws-glue-api-usage-profiles.md#aws-glue-api-usage-profiles-UpdateUsageProfile)
  + [

## DeleteUsageProfile action (Python: delete\$1usage\$1profile)
](aws-glue-api-usage-profiles.md#aws-glue-api-usage-profiles-DeleteUsageProfile)
  + [

## ListUsageProfiles action (Python: list\$1usage\$1profiles)
](aws-glue-api-usage-profiles.md#aws-glue-api-usage-profiles-ListUsageProfiles)
+ [

# Machine learning API
](aws-glue-api-machine-learning-api.md)
  + [

## Data types
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-objects)
  + [

## TransformParameters structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-TransformParameters)
  + [

## EvaluationMetrics structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-EvaluationMetrics)
  + [

## MLTransform structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-MLTransform)
  + [

## FindMatchesParameters structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-FindMatchesParameters)
  + [

## FindMatchesMetrics structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-FindMatchesMetrics)
  + [

## ConfusionMatrix structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-ConfusionMatrix)
  + [

## GlueTable structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-GlueTable)
  + [

## TaskRun structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-TaskRun)
  + [

## TransformFilterCriteria structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-TransformFilterCriteria)
  + [

## TransformSortCriteria structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-TransformSortCriteria)
  + [

## TaskRunFilterCriteria structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-TaskRunFilterCriteria)
  + [

## TaskRunSortCriteria structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-TaskRunSortCriteria)
  + [

## TaskRunProperties structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-TaskRunProperties)
  + [

## FindMatchesTaskRunProperties structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-FindMatchesTaskRunProperties)
  + [

## ImportLabelsTaskRunProperties structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-ImportLabelsTaskRunProperties)
  + [

## ExportLabelsTaskRunProperties structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-ExportLabelsTaskRunProperties)
  + [

## LabelingSetGenerationTaskRunProperties structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-LabelingSetGenerationTaskRunProperties)
  + [

## SchemaColumn structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-SchemaColumn)
  + [

## TransformEncryption structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-TransformEncryption)
  + [

## MLUserDataEncryption structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-MLUserDataEncryption)
  + [

## ColumnImportance structure
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-ColumnImportance)
  + [

## Operations
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-actions)
  + [

## CreateMLTransform action (Python: create\$1ml\$1transform)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-CreateMLTransform)
  + [

## UpdateMLTransform action (Python: update\$1ml\$1transform)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-UpdateMLTransform)
  + [

## DeleteMLTransform action (Python: delete\$1ml\$1transform)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-DeleteMLTransform)
  + [

## GetMLTransform action (Python: get\$1ml\$1transform)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-GetMLTransform)
  + [

## GetMLTransforms action (Python: get\$1ml\$1transforms)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-GetMLTransforms)
  + [

## ListMLTransforms action (Python: list\$1ml\$1transforms)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-ListMLTransforms)
  + [

## StartMLEvaluationTaskRun action (Python: start\$1ml\$1evaluation\$1task\$1run)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-StartMLEvaluationTaskRun)
  + [

## StartMLLabelingSetGenerationTaskRun action (Python: start\$1ml\$1labeling\$1set\$1generation\$1task\$1run)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-StartMLLabelingSetGenerationTaskRun)
  + [

## GetMLTaskRun action (Python: get\$1ml\$1task\$1run)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-GetMLTaskRun)
  + [

## GetMLTaskRuns action (Python: get\$1ml\$1task\$1runs)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-GetMLTaskRuns)
  + [

## CancelMLTaskRun action (Python: cancel\$1ml\$1task\$1run)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-CancelMLTaskRun)
  + [

## StartExportLabelsTaskRun action (Python: start\$1export\$1labels\$1task\$1run)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-StartExportLabelsTaskRun)
  + [

## StartImportLabelsTaskRun action (Python: start\$1import\$1labels\$1task\$1run)
](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-StartImportLabelsTaskRun)
+ [

# Data Quality API
](aws-glue-api-data-quality-api.md)
  + [

## Data types
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-objects)
  + [

## DataSource structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataSource)
  + [

## DataQualityRulesetListDetails structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityRulesetListDetails)
  + [

## DataQualityTargetTable structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityTargetTable)
  + [

## DataQualityRulesetEvaluationRunDescription structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityRulesetEvaluationRunDescription)
  + [

## DataQualityRulesetEvaluationRunFilter structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityRulesetEvaluationRunFilter)
  + [

## DataQualityEvaluationRunAdditionalRunOptions structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityEvaluationRunAdditionalRunOptions)
  + [

## DataQualityRuleRecommendationRunDescription structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityRuleRecommendationRunDescription)
  + [

## DataQualityRuleRecommendationRunFilter structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityRuleRecommendationRunFilter)
  + [

## DataQualityResult structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityResult)
  + [

## DataQualityAnalyzerResult structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityAnalyzerResult)
  + [

## DataQualityObservation structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityObservation)
  + [

## MetricBasedObservation structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-MetricBasedObservation)
  + [

## DataQualityMetricValues structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityMetricValues)
  + [

## DataQualityRuleResult structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityRuleResult)
  + [

## DataQualityResultDescription structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityResultDescription)
  + [

## DataQualityResultFilterCriteria structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityResultFilterCriteria)
  + [

## DataQualityRulesetFilterCriteria structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityRulesetFilterCriteria)
  + [

## DataQualityAggregatedMetrics structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityAggregatedMetrics)
  + [

## StatisticAnnotation structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-StatisticAnnotation)
  + [

## TimestampedInclusionAnnotation structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-TimestampedInclusionAnnotation)
  + [

## AnnotationError structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-AnnotationError)
  + [

## DatapointInclusionAnnotation structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DatapointInclusionAnnotation)
  + [

## StatisticSummaryList list
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-StatisticSummaryList)
  + [

## StatisticSummary structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-StatisticSummary)
  + [

## RunIdentifier structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-RunIdentifier)
  + [

## StatisticModelResult structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-StatisticModelResult)
  + [

## DataQualityGlueTable structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DataQualityGlueTable)
  + [

## Operations
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-actions)
  + [

## StartDataQualityRulesetEvaluationRun action (Python: start\$1data\$1quality\$1ruleset\$1evaluation\$1run)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-StartDataQualityRulesetEvaluationRun)
  + [

## CancelDataQualityRulesetEvaluationRun action (Python: cancel\$1data\$1quality\$1ruleset\$1evaluation\$1run)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-CancelDataQualityRulesetEvaluationRun)
  + [

## GetDataQualityRulesetEvaluationRun action (Python: get\$1data\$1quality\$1ruleset\$1evaluation\$1run)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-GetDataQualityRulesetEvaluationRun)
  + [

## ListDataQualityRulesetEvaluationRuns action (Python: list\$1data\$1quality\$1ruleset\$1evaluation\$1runs)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-ListDataQualityRulesetEvaluationRuns)
  + [

## StartDataQualityRuleRecommendationRun action (Python: start\$1data\$1quality\$1rule\$1recommendation\$1run)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-StartDataQualityRuleRecommendationRun)
  + [

## CancelDataQualityRuleRecommendationRun action (Python: cancel\$1data\$1quality\$1rule\$1recommendation\$1run)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-CancelDataQualityRuleRecommendationRun)
  + [

## GetDataQualityRuleRecommendationRun action (Python: get\$1data\$1quality\$1rule\$1recommendation\$1run)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-GetDataQualityRuleRecommendationRun)
  + [

## ListDataQualityRuleRecommendationRuns action (Python: list\$1data\$1quality\$1rule\$1recommendation\$1runs)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-ListDataQualityRuleRecommendationRuns)
  + [

## GetDataQualityResult action (Python: get\$1data\$1quality\$1result)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-GetDataQualityResult)
  + [

## BatchGetDataQualityResult action (Python: batch\$1get\$1data\$1quality\$1result)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-BatchGetDataQualityResult)
  + [

## ListDataQualityResults action (Python: list\$1data\$1quality\$1results)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-ListDataQualityResults)
  + [

## CreateDataQualityRuleset action (Python: create\$1data\$1quality\$1ruleset)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-CreateDataQualityRuleset)
  + [

## DeleteDataQualityRuleset action (Python: delete\$1data\$1quality\$1ruleset)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-DeleteDataQualityRuleset)
  + [

## GetDataQualityRuleset action (Python: get\$1data\$1quality\$1ruleset)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-GetDataQualityRuleset)
  + [

## ListDataQualityRulesets action (Python: list\$1data\$1quality\$1rulesets)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-ListDataQualityRulesets)
  + [

## UpdateDataQualityRuleset action (Python: update\$1data\$1quality\$1ruleset)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-UpdateDataQualityRuleset)
  + [

## ListDataQualityStatistics action (Python: list\$1data\$1quality\$1statistics)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-ListDataQualityStatistics)
  + [

## TimestampFilter structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-TimestampFilter)
  + [

## CreateDataQualityRulesetRequest structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-CreateDataQualityRulesetRequest)
  + [

## GetDataQualityRulesetResponse structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-GetDataQualityRulesetResponse)
  + [

## GetDataQualityResultResponse structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-GetDataQualityResultResponse)
  + [

## StartDataQualityRuleRecommendationRunRequest structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-StartDataQualityRuleRecommendationRunRequest)
  + [

## GetDataQualityRuleRecommendationRunResponse structure
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-GetDataQualityRuleRecommendationRunResponse)
  + [

## BatchPutDataQualityStatisticAnnotation action (Python: batch\$1put\$1data\$1quality\$1statistic\$1annotation)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-BatchPutDataQualityStatisticAnnotation)
  + [

## GetDataQualityModel action (Python: get\$1data\$1quality\$1model)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-GetDataQualityModel)
  + [

## GetDataQualityModelResult action (Python: get\$1data\$1quality\$1model\$1result)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-GetDataQualityModelResult)
  + [

## ListDataQualityStatisticAnnotations action (Python: list\$1data\$1quality\$1statistic\$1annotations)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-ListDataQualityStatisticAnnotations)
  + [

## PutDataQualityProfileAnnotation action (Python: put\$1data\$1quality\$1profile\$1annotation)
](aws-glue-api-data-quality-api.md#aws-glue-api-data-quality-api-PutDataQualityProfileAnnotation)
+ [

# Sensitive data detection API
](aws-glue-api-sensitive-data-api.md)
  + [

## Data types
](aws-glue-api-sensitive-data-api.md#aws-glue-api-sensitive-data-api-objects)
  + [

## CustomEntityType structure
](aws-glue-api-sensitive-data-api.md#aws-glue-api-sensitive-data-api-CustomEntityType)
  + [

## Operations
](aws-glue-api-sensitive-data-api.md#aws-glue-api-sensitive-data-api-actions)
  + [

## CreateCustomEntityType action (Python: create\$1custom\$1entity\$1type)
](aws-glue-api-sensitive-data-api.md#aws-glue-api-sensitive-data-api-CreateCustomEntityType)
  + [

## DeleteCustomEntityType action (Python: delete\$1custom\$1entity\$1type)
](aws-glue-api-sensitive-data-api.md#aws-glue-api-sensitive-data-api-DeleteCustomEntityType)
  + [

## GetCustomEntityType action (Python: get\$1custom\$1entity\$1type)
](aws-glue-api-sensitive-data-api.md#aws-glue-api-sensitive-data-api-GetCustomEntityType)
  + [

## BatchGetCustomEntityTypes action (Python: batch\$1get\$1custom\$1entity\$1types)
](aws-glue-api-sensitive-data-api.md#aws-glue-api-sensitive-data-api-BatchGetCustomEntityTypes)
  + [

## ListCustomEntityTypes action (Python: list\$1custom\$1entity\$1types)
](aws-glue-api-sensitive-data-api.md#aws-glue-api-sensitive-data-api-ListCustomEntityTypes)
+ [

# Tagging APIs in AWS Glue
](aws-glue-api-tags.md)
  + [

## Data types
](aws-glue-api-tags.md#aws-glue-api-tags-objects)
  + [

## Tag structure
](aws-glue-api-tags.md#aws-glue-api-tags-Tag)
  + [

## Operations
](aws-glue-api-tags.md#aws-glue-api-tags-actions)
  + [

## TagResource action (Python: tag\$1resource)
](aws-glue-api-tags.md#aws-glue-api-tags-TagResource)
  + [

## UntagResource action (Python: untag\$1resource)
](aws-glue-api-tags.md#aws-glue-api-tags-UntagResource)
  + [

## GetTags action (Python: get\$1tags)
](aws-glue-api-tags.md#aws-glue-api-tags-GetTags)
+ [

# Common data types
](aws-glue-api-common.md)
  + [

## Tag structure
](aws-glue-api-common.md#aws-glue-api-common-Tag)
  + [

## DecimalNumber structure
](aws-glue-api-common.md#aws-glue-api-common-DecimalNumber)
  + [

## ErrorDetail structure
](aws-glue-api-common.md#aws-glue-api-common-ErrorDetail)
  + [

## PropertyPredicate structure
](aws-glue-api-common.md#aws-glue-api-common-PropertyPredicate)
  + [

## ResourceUri structure
](aws-glue-api-common.md#aws-glue-api-common-ResourceUri)
  + [

## ColumnStatistics structure
](aws-glue-api-common.md#aws-glue-api-common-ColumnStatistics)
  + [

## ColumnStatisticsError structure
](aws-glue-api-common.md#aws-glue-api-common-ColumnStatisticsError)
  + [

## ColumnError structure
](aws-glue-api-common.md#aws-glue-api-common-ColumnError)
  + [

## ColumnStatisticsData structure
](aws-glue-api-common.md#aws-glue-api-common-ColumnStatisticsData)
  + [

## BooleanColumnStatisticsData structure
](aws-glue-api-common.md#aws-glue-api-common-BooleanColumnStatisticsData)
  + [

## DateColumnStatisticsData structure
](aws-glue-api-common.md#aws-glue-api-common-DateColumnStatisticsData)
  + [

## DecimalColumnStatisticsData structure
](aws-glue-api-common.md#aws-glue-api-common-DecimalColumnStatisticsData)
  + [

## DoubleColumnStatisticsData structure
](aws-glue-api-common.md#aws-glue-api-common-DoubleColumnStatisticsData)
  + [

## LongColumnStatisticsData structure
](aws-glue-api-common.md#aws-glue-api-common-LongColumnStatisticsData)
  + [

## StringColumnStatisticsData structure
](aws-glue-api-common.md#aws-glue-api-common-StringColumnStatisticsData)
  + [

## BinaryColumnStatisticsData structure
](aws-glue-api-common.md#aws-glue-api-common-BinaryColumnStatisticsData)
  + [

## String patterns
](aws-glue-api-common.md#aws-glue-api-common-_string-patterns)
+ [

# Exceptions
](aws-glue-api-exceptions.md)
  + [

## AccessDeniedException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-AccessDeniedException)
  + [

## AlreadyExistsException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-AlreadyExistsException)
  + [

## ConcurrentModificationException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-ConcurrentModificationException)
  + [

## ConcurrentRunsExceededException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-ConcurrentRunsExceededException)
  + [

## CrawlerNotRunningException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-CrawlerNotRunningException)
  + [

## CrawlerRunningException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-CrawlerRunningException)
  + [

## CrawlerStoppingException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-CrawlerStoppingException)
  + [

## EntityNotFoundException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-EntityNotFoundException)
  + [

## FederationSourceException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-FederationSourceException)
  + [

## FederationSourceRetryableException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-FederationSourceRetryableException)
  + [

## GlueEncryptionException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-GlueEncryptionException)
  + [

## IdempotentParameterMismatchException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-IdempotentParameterMismatchException)
  + [

## IllegalWorkflowStateException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-IllegalWorkflowStateException)
  + [

## InternalServiceException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-InternalServiceException)
  + [

## InvalidExecutionEngineException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-InvalidExecutionEngineException)
  + [

## InvalidInputException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-InvalidInputException)
  + [

## InvalidStateException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-InvalidStateException)
  + [

## InvalidTaskStatusTransitionException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-InvalidTaskStatusTransitionException)
  + [

## JobDefinitionErrorException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-JobDefinitionErrorException)
  + [

## JobRunInTerminalStateException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-JobRunInTerminalStateException)
  + [

## JobRunInvalidStateTransitionException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-JobRunInvalidStateTransitionException)
  + [

## JobRunNotInTerminalStateException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-JobRunNotInTerminalStateException)
  + [

## LateRunnerException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-LateRunnerException)
  + [

## NoScheduleException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-NoScheduleException)
  + [

## OperationTimeoutException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-OperationTimeoutException)
  + [

## ResourceNotReadyException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-ResourceNotReadyException)
  + [

## ResourceNumberLimitExceededException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-ResourceNumberLimitExceededException)
  + [

## SchedulerNotRunningException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-SchedulerNotRunningException)
  + [

## SchedulerRunningException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-SchedulerRunningException)
  + [

## SchedulerTransitioningException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-SchedulerTransitioningException)
  + [

## UnrecognizedRunnerException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-UnrecognizedRunnerException)
  + [

## ValidationException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-ValidationException)
  + [

## VersionMismatchException structure
](aws-glue-api-exceptions.md#aws-glue-api-exceptions-VersionMismatchException)

# Security APIs in AWS Glue
<a name="aws-glue-api-jobs-security"></a>

The Security API describes the security data types, and the API related to security in AWS Glue.

## Data types
<a name="aws-glue-api-jobs-security-objects"></a>
+ [DataCatalogEncryptionSettings structure](#aws-glue-api-jobs-security-DataCatalogEncryptionSettings)
+ [EncryptionAtRest structure](#aws-glue-api-jobs-security-EncryptionAtRest)
+ [ConnectionPasswordEncryption structure](#aws-glue-api-jobs-security-ConnectionPasswordEncryption)
+ [EncryptionConfiguration structure](#aws-glue-api-jobs-security-EncryptionConfiguration)
+ [S3Encryption structure](#aws-glue-api-jobs-security-S3Encryption)
+ [CloudWatchEncryption structure](#aws-glue-api-jobs-security-CloudWatchEncryption)
+ [JobBookmarksEncryption structure](#aws-glue-api-jobs-security-JobBookmarksEncryption)
+ [SecurityConfiguration structure](#aws-glue-api-jobs-security-SecurityConfiguration)
+ [GluePolicy structure](#aws-glue-api-jobs-security-GluePolicy)
+ [DataQualityEncryption structure](#aws-glue-api-jobs-security-DataQualityEncryption)

## DataCatalogEncryptionSettings structure
<a name="aws-glue-api-jobs-security-DataCatalogEncryptionSettings"></a>

Contains configuration information for maintaining Data Catalog security.

**Fields**
+ `EncryptionAtRest` – An [EncryptionAtRest](#aws-glue-api-jobs-security-EncryptionAtRest) object.

  Specifies the encryption-at-rest configuration for the Data Catalog.
+ `ConnectionPasswordEncryption` – A [ConnectionPasswordEncryption](#aws-glue-api-jobs-security-ConnectionPasswordEncryption) object.

  When connection password protection is enabled, the Data Catalog uses a customer-provided key to encrypt the password as part of `CreateConnection` or `UpdateConnection` and store it in the `ENCRYPTED_PASSWORD` field in the connection properties. You can enable catalog encryption or only password encryption.

## EncryptionAtRest structure
<a name="aws-glue-api-jobs-security-EncryptionAtRest"></a>

Specifies the encryption-at-rest configuration for the Data Catalog.

**Fields**
+ `CatalogEncryptionMode` – *Required:* UTF-8 string (valid values: `DISABLED` \$1 `SSE-KMS="SSEKMS"` \$1 `SSE-KMS-WITH-SERVICE-ROLE="SSEKMSWITHSERVICEROLE"`).

  The encryption-at-rest mode for encrypting Data Catalog data.
+ `SseAwsKmsKeyId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the AWS KMS key to use for encryption at rest.
+ `CatalogEncryptionServiceRole` – UTF-8 string, matching the [Custom string pattern #53](aws-glue-api-common.md#regex_53).

  The role that AWS Glue assumes to encrypt and decrypt the Data Catalog objects on the caller's behalf.

## ConnectionPasswordEncryption structure
<a name="aws-glue-api-jobs-security-ConnectionPasswordEncryption"></a>

The data structure used by the Data Catalog to encrypt the password as part of `CreateConnection` or `UpdateConnection` and store it in the `ENCRYPTED_PASSWORD` field in the connection properties. You can enable catalog encryption or only password encryption.

When a `CreationConnection` request arrives containing a password, the Data Catalog first encrypts the password using your AWS KMS key. It then encrypts the whole connection object again if catalog encryption is also enabled.

This encryption requires that you set AWS KMS key permissions to enable or restrict access on the password key according to your security requirements. For example, you might want only administrators to have decrypt permission on the password key.

**Fields**
+ `ReturnConnectionPasswordEncrypted` – *Required:* Boolean.

  When the `ReturnConnectionPasswordEncrypted` flag is set to "true", passwords remain encrypted in the responses of `GetConnection` and `GetConnections`. This encryption takes effect independently from catalog encryption. 
+ `AwsKmsKeyId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  An AWS KMS key that is used to encrypt the connection password. 

  If connection password protection is enabled, the caller of `CreateConnection` and `UpdateConnection` needs at least `kms:Encrypt` permission on the specified AWS KMS key, to encrypt passwords before storing them in the Data Catalog. 

  You can set the decrypt permission to enable or restrict access on the password key according to your security requirements.

## EncryptionConfiguration structure
<a name="aws-glue-api-jobs-security-EncryptionConfiguration"></a>

Specifies an encryption configuration.

**Fields**
+ `S3Encryption` – An array of [S3Encryption](#aws-glue-api-jobs-security-S3Encryption) objects.

  The encryption configuration for Amazon Simple Storage Service (Amazon S3) data.
+ `CloudWatchEncryption` – A [CloudWatchEncryption](#aws-glue-api-jobs-security-CloudWatchEncryption) object.

  The encryption configuration for Amazon CloudWatch.
+ `JobBookmarksEncryption` – A [JobBookmarksEncryption](#aws-glue-api-jobs-security-JobBookmarksEncryption) object.

  The encryption configuration for job bookmarks.
+ `DataQualityEncryption` – A [DataQualityEncryption](#aws-glue-api-jobs-security-DataQualityEncryption) object.

  The encryption configuration for AWS Glue Data Quality assets.

## S3Encryption structure
<a name="aws-glue-api-jobs-security-S3Encryption"></a>

Specifies how Amazon Simple Storage Service (Amazon S3) data should be encrypted.

**Fields**
+ `S3EncryptionMode` – UTF-8 string (valid values: `DISABLED` \$1 `SSE-KMS="SSEKMS"` \$1 `SSE-S3="SSES3"`).

  The encryption mode to use for Amazon S3 data.
+ `KmsKeyArn` – UTF-8 string, matching the [Custom string pattern #42](aws-glue-api-common.md#regex_42).

  The Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data.

## CloudWatchEncryption structure
<a name="aws-glue-api-jobs-security-CloudWatchEncryption"></a>

Specifies how Amazon CloudWatch data should be encrypted.

**Fields**
+ `CloudWatchEncryptionMode` – UTF-8 string (valid values: `DISABLED` \$1 `SSE-KMS="SSEKMS"`).

  The encryption mode to use for CloudWatch data.
+ `KmsKeyArn` – UTF-8 string, matching the [Custom string pattern #42](aws-glue-api-common.md#regex_42).

  The Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data.

## JobBookmarksEncryption structure
<a name="aws-glue-api-jobs-security-JobBookmarksEncryption"></a>

Specifies how job bookmark data should be encrypted.

**Fields**
+ `JobBookmarksEncryptionMode` – UTF-8 string (valid values: `DISABLED` \$1 `CSE-KMS="CSEKMS"`).

  The encryption mode to use for job bookmarks data.
+ `KmsKeyArn` – UTF-8 string, matching the [Custom string pattern #42](aws-glue-api-common.md#regex_42).

  The Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data.

## SecurityConfiguration structure
<a name="aws-glue-api-jobs-security-SecurityConfiguration"></a>

Specifies a security configuration.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the security configuration.
+ `CreatedTimeStamp` – Timestamp.

  The time at which this security configuration was created.
+ `EncryptionConfiguration` – An [EncryptionConfiguration](#aws-glue-api-jobs-security-EncryptionConfiguration) object.

  The encryption configuration associated with this security configuration.

## GluePolicy structure
<a name="aws-glue-api-jobs-security-GluePolicy"></a>

A structure for returning a resource policy.

**Fields**
+ `PolicyInJson` – UTF-8 string, at least 2 bytes long.

  Contains the requested policy document, in JSON format.
+ `PolicyHash` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Contains the hash value associated with this policy.
+ `CreateTime` – Timestamp.

  The date and time at which the policy was created.
+ `UpdateTime` – Timestamp.

  The date and time at which the policy was last updated.

## DataQualityEncryption structure
<a name="aws-glue-api-jobs-security-DataQualityEncryption"></a>

Specifies how Data Quality assets in your account should be encrypted.

**Fields**
+ `DataQualityEncryptionMode` – UTF-8 string (valid values: `DISABLED` \$1 `SSE-KMS="SSEKMS"`).

  The encryption mode to use for encrypting Data Quality assets. These assets include data quality rulesets, results, statistics, anomaly detection models and observations.

  Valid values are `SSEKMS` for encryption using a customer-managed KMS key, or `DISABLED`.
+ `KmsKeyArn` – UTF-8 string, matching the [Custom string pattern #42](aws-glue-api-common.md#regex_42).

  The Amazon Resource Name (ARN) of the KMS key to be used to encrypt the data.

## Operations
<a name="aws-glue-api-jobs-security-actions"></a>
+ [GetDataCatalogEncryptionSettings action (Python: get\$1data\$1catalog\$1encryption\$1settings)](#aws-glue-api-jobs-security-GetDataCatalogEncryptionSettings)
+ [PutDataCatalogEncryptionSettings action (Python: put\$1data\$1catalog\$1encryption\$1settings)](#aws-glue-api-jobs-security-PutDataCatalogEncryptionSettings)
+ [PutResourcePolicy action (Python: put\$1resource\$1policy)](#aws-glue-api-jobs-security-PutResourcePolicy)
+ [GetResourcePolicy action (Python: get\$1resource\$1policy)](#aws-glue-api-jobs-security-GetResourcePolicy)
+ [DeleteResourcePolicy action (Python: delete\$1resource\$1policy)](#aws-glue-api-jobs-security-DeleteResourcePolicy)
+ [CreateSecurityConfiguration action (Python: create\$1security\$1configuration)](#aws-glue-api-jobs-security-CreateSecurityConfiguration)
+ [DeleteSecurityConfiguration action (Python: delete\$1security\$1configuration)](#aws-glue-api-jobs-security-DeleteSecurityConfiguration)
+ [GetSecurityConfiguration action (Python: get\$1security\$1configuration)](#aws-glue-api-jobs-security-GetSecurityConfiguration)
+ [GetSecurityConfigurations action (Python: get\$1security\$1configurations)](#aws-glue-api-jobs-security-GetSecurityConfigurations)
+ [GetResourcePolicies action (Python: get\$1resource\$1policies)](#aws-glue-api-jobs-security-GetResourcePolicies)

## GetDataCatalogEncryptionSettings action (Python: get\$1data\$1catalog\$1encryption\$1settings)
<a name="aws-glue-api-jobs-security-GetDataCatalogEncryptionSettings"></a>

Retrieves the security configuration for a specified catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog to retrieve the security configuration for. If none is provided, the AWS account ID is used by default.

**Response**
+ `DataCatalogEncryptionSettings` – A [DataCatalogEncryptionSettings](#aws-glue-api-jobs-security-DataCatalogEncryptionSettings) object.

  The requested security configuration.

**Errors**
+ `InternalServiceException`
+ `InvalidInputException`
+ `OperationTimeoutException`

## PutDataCatalogEncryptionSettings action (Python: put\$1data\$1catalog\$1encryption\$1settings)
<a name="aws-glue-api-jobs-security-PutDataCatalogEncryptionSettings"></a>

Sets the security configuration for a specified catalog. After the configuration has been set, the specified encryption is applied to every catalog write thereafter.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog to set the security configuration for. If none is provided, the AWS account ID is used by default.
+ `DataCatalogEncryptionSettings` – *Required:* A [DataCatalogEncryptionSettings](#aws-glue-api-jobs-security-DataCatalogEncryptionSettings) object.

  The security configuration to set.

**Response**
+ *No Response parameters.*

**Errors**
+ `InternalServiceException`
+ `InvalidInputException`
+ `OperationTimeoutException`

## PutResourcePolicy action (Python: put\$1resource\$1policy)
<a name="aws-glue-api-jobs-security-PutResourcePolicy"></a>

Sets the Data Catalog resource policy for access control.

**Request**
+ `PolicyInJson` – *Required:* UTF-8 string, at least 2 bytes long.

  Contains the policy document to set, in JSON format.
+ `ResourceArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  Do not use. For internal use only.
+ `PolicyHashCondition` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The hash value returned when the previous policy was set using `PutResourcePolicy`. Its purpose is to prevent concurrent modifications of a policy. Do not use this parameter if no previous policy has been set.
+ `PolicyExistsCondition` – UTF-8 string (valid values: `MUST_EXIST` \$1 `NOT_EXIST` \$1 `NONE`).

  A value of `MUST_EXIST` is used to update a policy. A value of `NOT_EXIST` is used to create a new policy. If a value of `NONE` or a null value is used, the call does not depend on the existence of a policy.
+ `EnableHybrid` – UTF-8 string (valid values: `TRUE` \$1 `FALSE`).

  If `'TRUE'`, indicates that you are using both methods to grant cross-account access to Data Catalog resources:
  + By directly updating the resource policy with `PutResourePolicy`
  + By using the **Grant permissions** command on the AWS Management Console.

  Must be set to `'TRUE'` if you have already used the Management Console to grant cross-account access, otherwise the call fails. Default is 'FALSE'.

**Response**
+ `PolicyHash` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A hash of the policy that has just been set. This must be included in a subsequent call that overwrites or updates this policy.

**Errors**
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `ConditionCheckFailureException`

## GetResourcePolicy action (Python: get\$1resource\$1policy)
<a name="aws-glue-api-jobs-security-GetResourcePolicy"></a>

Retrieves a specified resource policy.

**Request**
+ `ResourceArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The ARN of the AWS Glue resource for which to retrieve the resource policy. If not supplied, the Data Catalog resource policy is returned. Use `GetResourcePolicies` to view all existing resource policies. For more information see [Specifying AWS Glue Resource ARNs](https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html). 

**Response**
+ `PolicyInJson` – UTF-8 string, at least 2 bytes long.

  Contains the requested policy document, in JSON format.
+ `PolicyHash` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Contains the hash value associated with this policy.
+ `CreateTime` – Timestamp.

  The date and time at which the policy was created.
+ `UpdateTime` – Timestamp.

  The date and time at which the policy was last updated.

**Errors**
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`

## DeleteResourcePolicy action (Python: delete\$1resource\$1policy)
<a name="aws-glue-api-jobs-security-DeleteResourcePolicy"></a>

Deletes a specified policy.

**Request**
+ `PolicyHashCondition` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The hash value returned when this policy was set.
+ `ResourceArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The ARN of the AWS Glue resource for the resource policy to be deleted.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `ConditionCheckFailureException`

## CreateSecurityConfiguration action (Python: create\$1security\$1configuration)
<a name="aws-glue-api-jobs-security-CreateSecurityConfiguration"></a>

Creates a new security configuration. A security configuration is a set of security properties that can be used by AWS Glue. You can use a security configuration to encrypt data at rest. For information about using security configurations in AWS Glue, see [Encrypting Data Written by Crawlers, Jobs, and Development Endpoints](https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html).

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name for the new security configuration.
+ `EncryptionConfiguration` – *Required:* An [EncryptionConfiguration](#aws-glue-api-jobs-security-EncryptionConfiguration) object.

  The encryption configuration for the new security configuration.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name assigned to the new security configuration.
+ `CreatedTimestamp` – Timestamp.

  The time at which the new security configuration was created.

**Errors**
+ `AlreadyExistsException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`

## DeleteSecurityConfiguration action (Python: delete\$1security\$1configuration)
<a name="aws-glue-api-jobs-security-DeleteSecurityConfiguration"></a>

Deletes a specified security configuration.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the security configuration to delete.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetSecurityConfiguration action (Python: get\$1security\$1configuration)
<a name="aws-glue-api-jobs-security-GetSecurityConfiguration"></a>

Retrieves a specified security configuration.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the security configuration to retrieve.

**Response**
+ `SecurityConfiguration` – A [SecurityConfiguration](#aws-glue-api-jobs-security-SecurityConfiguration) object.

  The requested security configuration.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetSecurityConfigurations action (Python: get\$1security\$1configurations)
<a name="aws-glue-api-jobs-security-GetSecurityConfigurations"></a>

Retrieves a list of all security configurations.

**Request**
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results to return.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.

**Response**
+ `SecurityConfigurations` – An array of [SecurityConfiguration](#aws-glue-api-jobs-security-SecurityConfiguration) objects.

  A list of security configurations.
+ `NextToken` – UTF-8 string.

  A continuation token, if there are more security configurations to return.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetResourcePolicies action (Python: get\$1resource\$1policies)
<a name="aws-glue-api-jobs-security-GetResourcePolicies"></a>

Retrieves the resource policies set on individual resources by AWS Resource Access Manager during cross-account permission grants. Also retrieves the Data Catalog resource policy.

If you enabled metadata encryption in Data Catalog settings, and you do not have permission on the AWS KMS key, the operation can't return the Data Catalog resource policy.

**Request**
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation request.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum size of a list to return.

**Response**
+ `GetResourcePoliciesResponseList` – An array of [GluePolicy](#aws-glue-api-jobs-security-GluePolicy) objects.

  A list of the individual resource policies and the account-level resource policy.
+ `NextToken` – UTF-8 string.

  A continuation token, if the returned list does not contain the last resource policy available.

**Errors**
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `GlueEncryptionException`

# Catalog objects API
<a name="aws-glue-api-catalog"></a>

The Catalog objects API describes the data types and API related to working with catalogs in AWS Glue.

**Topics**
+ [

# Catalogs API
](aws-glue-api-catalog-catalogs.md)
+ [

# Database API
](aws-glue-api-catalog-databases.md)
+ [

# Table API
](aws-glue-api-catalog-tables.md)
+ [

# Partition API
](aws-glue-api-catalog-partitions.md)
+ [

# Connections API
](aws-glue-api-catalog-connections.md)
+ [

# User-defined Function API
](aws-glue-api-catalog-functions.md)
+ [

# Importing an Athena catalog to AWS Glue
](aws-glue-api-catalog-migration.md)

# Catalogs API
<a name="aws-glue-api-catalog-catalogs"></a>

The Catalogs API describes the APIs for creating, deleting, locating, updating, and listing catalogs.

## Data types
<a name="aws-glue-api-catalog-catalogs-objects"></a>
+ [Catalog structure](#aws-glue-api-catalog-catalogs-Catalog)
+ [CatalogInput structure](#aws-glue-api-catalog-catalogs-CatalogInput)
+ [TargetRedshiftCatalog structure](#aws-glue-api-catalog-catalogs-TargetRedshiftCatalog)
+ [CatalogProperties structure](#aws-glue-api-catalog-catalogs-CatalogProperties)
+ [CatalogPropertiesOutput structure](#aws-glue-api-catalog-catalogs-CatalogPropertiesOutput)
+ [DataLakeAccessProperties structure](#aws-glue-api-catalog-catalogs-DataLakeAccessProperties)
+ [IcebergOptimizationProperties structure](#aws-glue-api-catalog-catalogs-IcebergOptimizationProperties)
+ [DataLakeAccessPropertiesOutput structure](#aws-glue-api-catalog-catalogs-DataLakeAccessPropertiesOutput)
+ [IcebergOptimizationPropertiesOutput structure](#aws-glue-api-catalog-catalogs-IcebergOptimizationPropertiesOutput)
+ [FederatedCatalog structure](#aws-glue-api-catalog-catalogs-FederatedCatalog)

## Catalog structure
<a name="aws-glue-api-catalog-catalogs-Catalog"></a>

The catalog object represents a logical grouping of databases in the AWS Glue Data Catalog or a federated source. You can now create a Redshift-federated catalog or a catalog containing resource links to Redshift databases in another account or region.

**Fields**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the catalog. To grant access to the default catalog, this field should not be provided.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 64 bytes long, matching the [Custom string pattern #25](aws-glue-api-common.md#regex_25).

  The name of the catalog. Cannot be the same as the account ID.
+ `ResourceArn` – UTF-8 string.

  The Amazon Resource Name (ARN) assigned to the catalog resource.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  Description string, not more than 2048 bytes long, matching the URI address multi-line string pattern. A description of the catalog.
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

   A map array of key-value pairs that define parameters and properties of the catalog.
+ `CreateTime` – Timestamp.

  The time at which the catalog was created.
+ `UpdateTime` – Timestamp.

  The time at which the catalog was last updated.
+ `TargetRedshiftCatalog` – A [TargetRedshiftCatalog](#aws-glue-api-catalog-catalogs-TargetRedshiftCatalog) object.

  A `TargetRedshiftCatalog` object that describes a target catalog for database resource linking.
+ `FederatedCatalog` – A [FederatedCatalog](#aws-glue-api-catalog-catalogs-FederatedCatalog) object.

  A `FederatedCatalog` object that points to an entity outside the AWS Glue Data Catalog.
+ `CatalogProperties` – A [CatalogPropertiesOutput](#aws-glue-api-catalog-catalogs-CatalogPropertiesOutput) object.

  A `CatalogProperties` object that specifies data lake access properties and other custom properties.
+ `CreateTableDefaultPermissions` – An array of [PrincipalPermissions](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-PrincipalPermissions) objects.

  An array of `PrincipalPermissions` objects. Creates a set of default permissions on the table(s) for principals. Used by AWS Lake Formation. Not used in the normal course of AWS Glue operations.
+ `CreateDatabaseDefaultPermissions` – An array of [PrincipalPermissions](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-PrincipalPermissions) objects.

  An array of `PrincipalPermissions` objects. Creates a set of default permissions on the database(s) for principals. Used by AWS Lake Formation. Not used in the normal course of AWS Glue operations.
+ `AllowFullTableExternalDataAccess` – UTF-8 string (valid values: `True` \$1 `False`).

   Allows third-party engines to access data in Amazon S3 locations that are registered with Lake Formation. 

## CatalogInput structure
<a name="aws-glue-api-catalog-catalogs-CatalogInput"></a>

A structure that describes catalog properties.

**Fields**
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  Description string, not more than 2048 bytes long, matching the URI address multi-line string pattern. A description of the catalog.
+ `FederatedCatalog` – A [FederatedCatalog](#aws-glue-api-catalog-catalogs-FederatedCatalog) object.

  A `FederatedCatalog` object. A `FederatedCatalog` structure that references an entity outside the AWS Glue Data Catalog, for example a Redshift database.
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  A map array of key-value pairs that define the parameters and properties of the catalog.
+ `TargetRedshiftCatalog` – A [TargetRedshiftCatalog](#aws-glue-api-catalog-catalogs-TargetRedshiftCatalog) object.

  A `TargetRedshiftCatalog` object that describes a target catalog for resource linking.
+ `CatalogProperties` – A [CatalogProperties](#aws-glue-api-catalog-catalogs-CatalogProperties) object.

  A `CatalogProperties` object that specifies data lake access properties and other custom properties.
+ `CreateTableDefaultPermissions` – An array of [PrincipalPermissions](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-PrincipalPermissions) objects.

  An array of `PrincipalPermissions` objects. Creates a set of default permissions on the table(s) for principals. Used by AWS Lake Formation. Typically should be explicitly set as an empty list.
+ `CreateDatabaseDefaultPermissions` – An array of [PrincipalPermissions](aws-glue-api-catalog-databases.md#aws-glue-api-catalog-databases-PrincipalPermissions) objects.

  An array of `PrincipalPermissions` objects. Creates a set of default permissions on the database(s) for principals. Used by AWS Lake Formation. Typically should be explicitly set as an empty list.
+ `AllowFullTableExternalDataAccess` – UTF-8 string (valid values: `True` \$1 `False`).

   Allows third-party engines to access data in Amazon S3 locations that are registered with Lake Formation. 

## TargetRedshiftCatalog structure
<a name="aws-glue-api-catalog-catalogs-TargetRedshiftCatalog"></a>

A structure that describes a target catalog for resource linking.

**Fields**
+ `CatalogArn` – *Required:* UTF-8 string.

  The Amazon Resource Name (ARN) of the catalog resource.

## CatalogProperties structure
<a name="aws-glue-api-catalog-catalogs-CatalogProperties"></a>

A structure that specifies data lake access properties and other custom properties.

**Fields**
+ `DataLakeAccessProperties` – A [DataLakeAccessProperties](#aws-glue-api-catalog-catalogs-DataLakeAccessProperties) object.

  A `DataLakeAccessProperties` object that specifies properties to configure data lake access for your catalog resource in the AWS Glue Data Catalog.
+ `IcebergOptimizationProperties` – An [IcebergOptimizationProperties](#aws-glue-api-catalog-catalogs-IcebergOptimizationProperties) object.

  A structure that specifies Iceberg table optimization properties for the catalog. This includes configuration for compaction, retention, and orphan file deletion operations that can be applied to Iceberg tables in this catalog.
+ `CustomProperties` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  Additional key-value properties for the catalog, such as column statistics optimizations.

## CatalogPropertiesOutput structure
<a name="aws-glue-api-catalog-catalogs-CatalogPropertiesOutput"></a>

Property attributes that include configuration properties for the catalog resource.

**Fields**
+ `DataLakeAccessProperties` – A [DataLakeAccessPropertiesOutput](#aws-glue-api-catalog-catalogs-DataLakeAccessPropertiesOutput) object.

  A `DataLakeAccessProperties` object with input properties to configure data lake access for your catalog resource in the AWS Glue Data Catalog.
+ `IcebergOptimizationProperties` – An [IcebergOptimizationPropertiesOutput](#aws-glue-api-catalog-catalogs-IcebergOptimizationPropertiesOutput) object.

  An `IcebergOptimizationPropertiesOutput` object that specifies Iceberg table optimization settings for the catalog, including configurations for compaction, retention, and orphan file deletion operations.
+ `CustomProperties` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  Additional key-value properties for the catalog, such as column statistics optimizations.

## DataLakeAccessProperties structure
<a name="aws-glue-api-catalog-catalogs-DataLakeAccessProperties"></a>

Input properties to configure data lake access for your catalog resource in the AWS Glue Data Catalog.

**Fields**
+ `DataLakeAccess` – Boolean.

  Turns on or off data lake access for Apache Spark applications that access Amazon Redshift databases in the Data Catalog from any non-Redshift engine, such as Amazon Athena, Amazon EMR, or AWS Glue ETL.
+ `DataTransferRole` – UTF-8 string, matching the [Custom string pattern #53](aws-glue-api-common.md#regex_53).

  A role that will be assumed by AWS Glue for transferring data into/out of the staging bucket during a query.
+ `KmsKey` – UTF-8 string.

  An encryption key that will be used for the staging bucket that will be created along with the catalog.
+ `CatalogType` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Specifies a federated catalog type for the native catalog resource. The currently supported type is `aws:redshift`.

## IcebergOptimizationProperties structure
<a name="aws-glue-api-catalog-catalogs-IcebergOptimizationProperties"></a>

A structure that specifies Iceberg table optimization properties for the catalog, including configurations for compaction, retention, and orphan file deletion operations.

**Fields**
+ `RoleArn` – UTF-8 string, matching the [Custom string pattern #53](aws-glue-api-common.md#regex_53).

  The Amazon Resource Name (ARN) of the IAM role that will be assumed to perform Iceberg table optimization operations.
+ `Compaction` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  A map of key-value pairs that specify configuration parameters for Iceberg table compaction operations, which optimize the layout of data files to improve query performance.
+ `Retention` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  A map of key-value pairs that specify configuration parameters for Iceberg table retention operations, which manage the lifecycle of table snapshots to control storage costs.
+ `OrphanFileDeletion` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  A map of key-value pairs that specify configuration parameters for Iceberg orphan file deletion operations, which identify and remove files that are no longer referenced by the table metadata.

## DataLakeAccessPropertiesOutput structure
<a name="aws-glue-api-catalog-catalogs-DataLakeAccessPropertiesOutput"></a>

The output properties of the data lake access configuration for your catalog resource in the AWS Glue Data Catalog.

**Fields**
+ `DataLakeAccess` – Boolean.

  Turns on or off data lake access for Apache Spark applications that access Amazon Redshift databases in the Data Catalog.
+ `DataTransferRole` – UTF-8 string, matching the [Custom string pattern #53](aws-glue-api-common.md#regex_53).

  A role that will be assumed by AWS Glue for transferring data into/out of the staging bucket during a query.
+ `KmsKey` – UTF-8 string.

  An encryption key that will be used for the staging bucket that will be created along with the catalog.
+ `ManagedWorkgroupName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The managed Redshift Serverless compute name that is created for your catalog resource.
+ `ManagedWorkgroupStatus` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The managed Redshift Serverless compute status.
+ `RedshiftDatabaseName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The default Redshift database resource name in the managed compute.
+ `StatusMessage` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A message that gives more detailed information about the managed workgroup status.
+ `CatalogType` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Specifies a federated catalog type for the native catalog resource. The currently supported type is `aws:redshift`.

## IcebergOptimizationPropertiesOutput structure
<a name="aws-glue-api-catalog-catalogs-IcebergOptimizationPropertiesOutput"></a>

A structure that contains the output properties of Iceberg table optimization configuration for your catalog resource in the AWS Glue Data Catalog.

**Fields**
+ `RoleArn` – UTF-8 string, matching the [Custom string pattern #53](aws-glue-api-common.md#regex_53).

  The Amazon Resource Name (ARN) of the IAM role that is used to perform Iceberg table optimization operations.
+ `Compaction` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  A map of key-value pairs that specify configuration parameters for Iceberg table compaction operations, which optimize the layout of data files to improve query performance.
+ `Retention` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  A map of key-value pairs that specify configuration parameters for Iceberg table retention operations, which manage the lifecycle of table snapshots to control storage costs.
+ `OrphanFileDeletion` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  A map of key-value pairs that specify configuration parameters for Iceberg orphan file deletion operations, which identify and remove files that are no longer referenced by the table metadata.
+ `LastUpdatedTime` – Timestamp.

  The timestamp when the Iceberg optimization properties were last updated.

## FederatedCatalog structure
<a name="aws-glue-api-catalog-catalogs-FederatedCatalog"></a>

A catalog that points to an entity outside the AWS Glue Data Catalog.

**Fields**
+ `Identifier` – UTF-8 string, not less than 1 or more than 512 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique identifier for the federated catalog.
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection to an external data source, for example a Redshift-federated catalog.
+ `ConnectionType` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The type of connection used to access the federated catalog, specifying the protocol or method for connection to the external data source.

## Operations
<a name="aws-glue-api-catalog-catalogs-actions"></a>
+ [CreateCatalog action (Python: create\$1catalog)](#aws-glue-api-catalog-catalogs-CreateCatalog)
+ [UpdateCatalog action (Python: update\$1catalog)](#aws-glue-api-catalog-catalogs-UpdateCatalog)
+ [DeleteCatalog action (Python: delete\$1catalog)](#aws-glue-api-catalog-catalogs-DeleteCatalog)
+ [GetCatalog action (Python: get\$1catalog)](#aws-glue-api-catalog-catalogs-GetCatalog)
+ [GetCatalogs action (Python: get\$1catalogs)](#aws-glue-api-catalog-catalogs-GetCatalogs)

## CreateCatalog action (Python: create\$1catalog)
<a name="aws-glue-api-catalog-catalogs-CreateCatalog"></a>

Creates a new catalog in the AWS Glue Data Catalog.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 64 bytes long, matching the [Custom string pattern #25](aws-glue-api-common.md#regex_25).

  The name of the catalog to create.
+ `CatalogInput` – *Required:* A [CatalogInput](#aws-glue-api-catalog-catalogs-CatalogInput) object.

  A `CatalogInput` object that defines the metadata for the catalog.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  A map array of key-value pairs, not more than 50 pairs. Each key is a UTF-8 string, not less than 1 or more than 128 bytes long. Each value is a UTF-8 string, not more than 256 bytes long. The tags you assign to the catalog.

**Response**
+ *No Response parameters.*

**Errors**
+ `InvalidInputException`
+ `AlreadyExistsException`
+ `ResourceNumberLimitExceededException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `ConcurrentModificationException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `FederatedResourceAlreadyExistsException`
+ `FederationSourceException`

## UpdateCatalog action (Python: update\$1catalog)
<a name="aws-glue-api-catalog-catalogs-UpdateCatalog"></a>

Updates an existing catalog's properties in the AWS Glue Data Catalog.

**Request**
+ `CatalogId` – *Required:* Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the catalog.
+ `CatalogInput` – *Required:* A [CatalogInput](#aws-glue-api-catalog-catalogs-CatalogInput) object.

  A `CatalogInput` object specifying the new properties of an existing catalog.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `ConcurrentModificationException`
+ `AccessDeniedException`
+ `FederationSourceException`

## DeleteCatalog action (Python: delete\$1catalog)
<a name="aws-glue-api-catalog-catalogs-DeleteCatalog"></a>

Removes the specified catalog from the AWS Glue Data Catalog.

After completing this operation, you no longer have access to the databases, tables (and all table versions and partitions that might belong to the tables) and the user-defined functions in the deleted catalog. AWS Glue deletes these "orphaned" resources asynchronously in a timely manner, at the discretion of the service.

To ensure the immediate deletion of all related resources before calling the `DeleteCatalog` operation, use `DeleteTableVersion` (or `BatchDeleteTableVersion`), `DeletePartition` (or `BatchDeletePartition`), `DeleteTable` (or `BatchDeleteTable`), `DeleteUserDefinedFunction` and `DeleteDatabase` to delete any resources that belong to the catalog.

**Request**
+ `CatalogId` – *Required:* Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the catalog.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `ConcurrentModificationException`
+ `AccessDeniedException`
+ `FederationSourceException`

## GetCatalog action (Python: get\$1catalog)
<a name="aws-glue-api-catalog-catalogs-GetCatalog"></a>

The name of the Catalog to retrieve. This should be all lowercase.

**Request**
+ `CatalogId` – *Required:* Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the parent catalog in which the catalog resides. If none is provided, the AWS Account Number is used by default.

**Response**
+ `Catalog` – A [Catalog](#aws-glue-api-catalog-catalogs-Catalog) object.

  A `Catalog` object. The definition of the specified catalog in the AWS Glue Data Catalog.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## GetCatalogs action (Python: get\$1catalogs)
<a name="aws-glue-api-catalog-catalogs-GetCatalogs"></a>

Retrieves all catalogs defined in a catalog in the AWS Glue Data Catalog. For a Redshift-federated catalog use case, this operation returns the list of catalogs mapped to Redshift databases in the Redshift namespace catalog.

**Request**
+ `ParentCatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the parent catalog in which the catalog resides. If none is provided, the AWS Account Number is used by default.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of catalogs to return in one response.
+ `Recursive` – Boolean.

  Whether to list all catalogs across the catalog hierarchy, starting from the `ParentCatalogId`. Defaults to `false` . When `true`, all catalog objects in the `ParentCatalogID` hierarchy are enumerated in the response.
+ `IncludeRoot` – Boolean.

  Whether to list the default catalog in the account and region in the response. Defaults to `false`. When `true` and `ParentCatalogId = NULL | AWS Account ID`, all catalogs and the default catalog are enumerated in the response.

  When the `ParentCatalogId` is not equal to null, and this attribute is passed as `false` or `true`, an `InvalidInputException` is thrown.

**Response**
+ `CatalogList` – *Required:* An array of [Catalog](#aws-glue-api-catalog-catalogs-Catalog) objects.

  An array of `Catalog` objects. A list of `Catalog` objects from the specified parent catalog.
+ `NextToken` – UTF-8 string.

  A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

# Database API
<a name="aws-glue-api-catalog-databases"></a>

The Database API describes database data types, and includes the API for creating, deleting, locating, updating, and listing databases.

## Data types
<a name="aws-glue-api-catalog-databases-objects"></a>
+ [Database structure](#aws-glue-api-catalog-databases-Database)
+ [DatabaseInput structure](#aws-glue-api-catalog-databases-DatabaseInput)
+ [PrincipalPermissions structure](#aws-glue-api-catalog-databases-PrincipalPermissions)
+ [DataLakePrincipal structure](#aws-glue-api-catalog-databases-DataLakePrincipal)
+ [DatabaseIdentifier structure](#aws-glue-api-catalog-databases-DatabaseIdentifier)
+ [FederatedDatabase structure](#aws-glue-api-catalog-databases-FederatedDatabase)

## Database structure
<a name="aws-glue-api-catalog-databases-Database"></a>

The `Database` object represents a logical grouping of tables that might reside in a Hive metastore or an RDBMS.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database. For Hive compatibility, this is folded to lowercase when it is stored.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the database.
+ `LocationUri` – Uniform resource identifier (uri), not less than 1 or more than 1024 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The location of the database (for example, an HDFS path).
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  These key-value pairs define parameters and properties of the database.
+ `CreateTime` – Timestamp.

  The time at which the metadata database was created in the catalog.
+ `CreateTableDefaultPermissions` – An array of [PrincipalPermissions](#aws-glue-api-catalog-databases-PrincipalPermissions) objects.

  Creates a set of default permissions on the table for principals. Used by AWS Lake Formation. Not used in the normal course of AWS Glue operations.
+ `TargetDatabase` – A [DatabaseIdentifier](#aws-glue-api-catalog-databases-DatabaseIdentifier) object.

  A `DatabaseIdentifier` structure that describes a target database for resource linking.
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the database resides.
+ `FederatedDatabase` – A [FederatedDatabase](#aws-glue-api-catalog-databases-FederatedDatabase) object.

  A `FederatedDatabase` structure that references an entity outside the AWS Glue Data Catalog.

## DatabaseInput structure
<a name="aws-glue-api-catalog-databases-DatabaseInput"></a>

The structure used to create or update a database.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database. For Hive compatibility, this is folded to lowercase when it is stored.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the database.
+ `LocationUri` – Uniform resource identifier (uri), not less than 1 or more than 1024 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The location of the database (for example, an HDFS path). 
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  These key-value pairs define parameters and properties of the database.

  These key-value pairs define parameters and properties of the database.
+ `CreateTableDefaultPermissions` – An array of [PrincipalPermissions](#aws-glue-api-catalog-databases-PrincipalPermissions) objects.

  Creates a set of default permissions on the table for principals. Used by AWS Lake Formation. Not used in the normal course of AWS Glue operations.
+ `TargetDatabase` – A [DatabaseIdentifier](#aws-glue-api-catalog-databases-DatabaseIdentifier) object.

  A `DatabaseIdentifier` structure that describes a target database for resource linking.
+ `FederatedDatabase` – A [FederatedDatabase](#aws-glue-api-catalog-databases-FederatedDatabase) object.

  A `FederatedDatabase` structure that references an entity outside the AWS Glue Data Catalog.

## PrincipalPermissions structure
<a name="aws-glue-api-catalog-databases-PrincipalPermissions"></a>

Permissions granted to a principal.

**Fields**
+ `Principal` – A [DataLakePrincipal](#aws-glue-api-catalog-databases-DataLakePrincipal) object.

  The principal who is granted permissions.
+ `Permissions` – An array of UTF-8 strings.

  The permissions that are granted to the principal.

## DataLakePrincipal structure
<a name="aws-glue-api-catalog-databases-DataLakePrincipal"></a>

The AWS Lake Formation principal.

**Fields**
+ `DataLakePrincipalIdentifier` – UTF-8 string, not less than 1 or more than 255 bytes long.

  An identifier for the AWS Lake Formation principal.

## DatabaseIdentifier structure
<a name="aws-glue-api-catalog-databases-DatabaseIdentifier"></a>

A structure that describes a target database for resource linking.

**Fields**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the database resides.
+ `DatabaseName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database.
+ `Region` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Region of the target database.

## FederatedDatabase structure
<a name="aws-glue-api-catalog-databases-FederatedDatabase"></a>

A database that points to an entity outside the AWS Glue Data Catalog.

**Fields**
+ `Identifier` – UTF-8 string, not less than 1 or more than 512 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique identifier for the federated database.
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection to the external metastore.
+ `ConnectionType` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The type of connection used to access the federated database, such as JDBC, ODBC, or other supported connection protocols.

## Operations
<a name="aws-glue-api-catalog-databases-actions"></a>
+ [CreateDatabase action (Python: create\$1database)](#aws-glue-api-catalog-databases-CreateDatabase)
+ [UpdateDatabase action (Python: update\$1database)](#aws-glue-api-catalog-databases-UpdateDatabase)
+ [DeleteDatabase action (Python: delete\$1database)](#aws-glue-api-catalog-databases-DeleteDatabase)
+ [GetDatabase action (Python: get\$1database)](#aws-glue-api-catalog-databases-GetDatabase)
+ [GetDatabases action (Python: get\$1databases)](#aws-glue-api-catalog-databases-GetDatabases)

## CreateDatabase action (Python: create\$1database)
<a name="aws-glue-api-catalog-databases-CreateDatabase"></a>

Creates a new database in a Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which to create the database. If none is provided, the AWS account ID is used by default.
+ `DatabaseInput` – *Required:* A [DatabaseInput](#aws-glue-api-catalog-databases-DatabaseInput) object.

  The metadata for the database.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The tags you assign to the database.

**Response**
+ *No Response parameters.*

**Errors**
+ `InvalidInputException`
+ `AlreadyExistsException`
+ `ResourceNumberLimitExceededException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `ConcurrentModificationException`
+ `FederatedResourceAlreadyExistsException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## UpdateDatabase action (Python: update\$1database)
<a name="aws-glue-api-catalog-databases-UpdateDatabase"></a>

Updates an existing database definition in a Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the metadata database resides. If none is provided, the AWS account ID is used by default.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database to update in the catalog. For Hive compatibility, this is folded to lowercase.
+ `DatabaseInput` – *Required:* A [DatabaseInput](#aws-glue-api-catalog-databases-DatabaseInput) object.

  A `DatabaseInput` object specifying the new definition of the metadata database in the catalog.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `ConcurrentModificationException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`
+ `AlreadyExistsException`

## DeleteDatabase action (Python: delete\$1database)
<a name="aws-glue-api-catalog-databases-DeleteDatabase"></a>

Removes a specified database from a Data Catalog.

**Note**  
After completing this operation, you no longer have access to the tables (and all table versions and partitions that might belong to the tables) and the user-defined functions in the deleted database. AWS Glue deletes these "orphaned" resources asynchronously in a timely manner, at the discretion of the service.  
To ensure the immediate deletion of all related resources, before calling `DeleteDatabase`, use `DeleteTableVersion` or `BatchDeleteTableVersion`, `DeletePartition` or `BatchDeletePartition`, `DeleteUserDefinedFunction`, and `DeleteTable` or `BatchDeleteTable`, to delete any resources that belong to the database.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the database resides. If none is provided, the AWS account ID is used by default.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database to delete. For Hive compatibility, this must be all lowercase.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## GetDatabase action (Python: get\$1database)
<a name="aws-glue-api-catalog-databases-GetDatabase"></a>

Retrieves the definition of a specified database.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the database resides. If none is provided, the AWS account ID is used by default.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database to retrieve. For Hive compatibility, this should be all lowercase.

**Response**
+ `Database` – A [Database](#aws-glue-api-catalog-databases-Database) object.

  The definition of the specified database in the Data Catalog.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## GetDatabases action (Python: get\$1databases)
<a name="aws-glue-api-catalog-databases-GetDatabases"></a>

Retrieves all databases defined in a given Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog from which to retrieve `Databases`. If none is provided, the AWS account ID is used by default.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.
+ `MaxResults` – Number (integer), not less than 1 or more than 100.

  The maximum number of databases to return in one response.
+ `ResourceShareType` – UTF-8 string (valid values: `FOREIGN` \$1 `ALL` \$1 `FEDERATED`).

  Allows you to specify that you want to list the databases shared with your account. The allowable values are `FEDERATED`, `FOREIGN` or `ALL`. 
  + If set to `FEDERATED`, will list the federated databases (referencing an external entity) shared with your account.
  + If set to `FOREIGN`, will list the databases shared with your account. 
  + If set to `ALL`, will list the databases shared with your account, as well as the databases in yor local account. 
+ `AttributesToGet` – An array of UTF-8 strings.

  Specifies the database fields returned by the `GetDatabases` call. This parameter doesn't accept an empty list. The request must include the `NAME`.

**Response**
+ `DatabaseList` – *Required:* An array of [Database](#aws-glue-api-catalog-databases-Database) objects.

  A list of `Database` objects from the specified catalog.
+ `NextToken` – UTF-8 string.

  A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `EntityNotFoundException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

# Table API
<a name="aws-glue-api-catalog-tables"></a>

The Table API describes data types and operations associated with tables.

## Data types
<a name="aws-glue-api-catalog-tables-objects"></a>
+ [Table structure](#aws-glue-api-catalog-tables-Table)
+ [TableInput structure](#aws-glue-api-catalog-tables-TableInput)
+ [FederatedTable structure](#aws-glue-api-catalog-tables-FederatedTable)
+ [Column structure](#aws-glue-api-catalog-tables-Column)
+ [StorageDescriptor structure](#aws-glue-api-catalog-tables-StorageDescriptor)
+ [SchemaReference structure](#aws-glue-api-catalog-tables-SchemaReference)
+ [SerDeInfo structure](#aws-glue-api-catalog-tables-SerDeInfo)
+ [Order structure](#aws-glue-api-catalog-tables-Order)
+ [SkewedInfo structure](#aws-glue-api-catalog-tables-SkewedInfo)
+ [TableVersion structure](#aws-glue-api-catalog-tables-TableVersion)
+ [TableError structure](#aws-glue-api-catalog-tables-TableError)
+ [TableVersionError structure](#aws-glue-api-catalog-tables-TableVersionError)
+ [SortCriterion structure](#aws-glue-api-catalog-tables-SortCriterion)
+ [TableIdentifier structure](#aws-glue-api-catalog-tables-TableIdentifier)
+ [KeySchemaElement structure](#aws-glue-api-catalog-tables-KeySchemaElement)
+ [PartitionIndex structure](#aws-glue-api-catalog-tables-PartitionIndex)
+ [PartitionIndexDescriptor structure](#aws-glue-api-catalog-tables-PartitionIndexDescriptor)
+ [BackfillError structure](#aws-glue-api-catalog-tables-BackfillError)
+ [IcebergInput structure](#aws-glue-api-catalog-tables-IcebergInput)
+ [OpenTableFormatInput structure](#aws-glue-api-catalog-tables-OpenTableFormatInput)
+ [ViewDefinition structure](#aws-glue-api-catalog-tables-ViewDefinition)
+ [ViewDefinitionInput structure](#aws-glue-api-catalog-tables-ViewDefinitionInput)
+ [ViewRepresentation structure](#aws-glue-api-catalog-tables-ViewRepresentation)
+ [ViewRepresentationInput structure](#aws-glue-api-catalog-tables-ViewRepresentationInput)
+ [UpdateOpenTableFormatInput structure](#aws-glue-api-catalog-tables-UpdateOpenTableFormatInput)
+ [UpdateIcebergInput structure](#aws-glue-api-catalog-tables-UpdateIcebergInput)
+ [CreateIcebergTableInput structure](#aws-glue-api-catalog-tables-CreateIcebergTableInput)
+ [UpdateIcebergTableInput structure](#aws-glue-api-catalog-tables-UpdateIcebergTableInput)
+ [IcebergSortOrder structure](#aws-glue-api-catalog-tables-IcebergSortOrder)
+ [IcebergSortField structure](#aws-glue-api-catalog-tables-IcebergSortField)
+ [IcebergPartitionSpec structure](#aws-glue-api-catalog-tables-IcebergPartitionSpec)
+ [IcebergPartitionField structure](#aws-glue-api-catalog-tables-IcebergPartitionField)
+ [IcebergSchema structure](#aws-glue-api-catalog-tables-IcebergSchema)
+ [IcebergStructField structure](#aws-glue-api-catalog-tables-IcebergStructField)
+ [IcebergTableUpdate structure](#aws-glue-api-catalog-tables-IcebergTableUpdate)
+ [AuditContext structure](#aws-glue-api-catalog-tables-AuditContext)

## Table structure
<a name="aws-glue-api-catalog-tables-Table"></a>

Represents a collection of related data organized in columns and rows.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The table name. For Hive compatibility, this must be entirely lowercase.
+ `DatabaseName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database where the table metadata resides. For Hive compatibility, this must be all lowercase.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the table.
+ `Owner` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The owner of the table.
+ `CreateTime` – Timestamp.

  The time when the table definition was created in the Data Catalog.
+ `UpdateTime` – Timestamp.

  The last time that the table was updated.
+ `LastAccessTime` – Timestamp.

  The last time that the table was accessed. This is usually taken from HDFS, and might not be reliable.
+ `LastAnalyzedTime` – Timestamp.

  The last time that column statistics were computed for this table.
+ `Retention` – Number (integer), not more than None.

  The retention time for this table.
+ `StorageDescriptor` – A [StorageDescriptor](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-StorageDescriptor) object.

  A storage descriptor containing information about the physical storage of this table.
+ `PartitionKeys` – An array of [Column](#aws-glue-api-catalog-tables-Column) objects.

  A list of columns by which the table is partitioned. Only primitive types are supported as partition keys.

  When you create a table used by Amazon Athena, and you do not specify any `partitionKeys`, you must at least set the value of `partitionKeys` to an empty list. For example:

  `"PartitionKeys": []`
+ `ViewOriginalText` – UTF-8 string, not more than 409600 bytes long.

  Included for Apache Hive compatibility. Not used in the normal course of AWS Glue operations. If the table is a `VIRTUAL_VIEW`, certain Athena configuration encoded in base64.
+ `ViewExpandedText` – UTF-8 string, not more than 409600 bytes long.

  Included for Apache Hive compatibility. Not used in the normal course of AWS Glue operations.
+ `TableType` – UTF-8 string, not more than 255 bytes long.

  The type of this table. AWS Glue will create tables with the `EXTERNAL_TABLE` type. Other services, such as Athena, may create tables with additional table types. 

  AWS Glue related table types:  
EXTERNAL\$1TABLE  
Hive compatible attribute - indicates a non-Hive managed table.  
GOVERNED  
Used by AWS Lake Formation. The AWS Glue Data Catalog understands `GOVERNED`.
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  These key-value pairs define properties associated with the table.
+ `CreatedBy` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The person or entity who created the table.
+ `IsRegisteredWithLakeFormation` – Boolean.

  Indicates whether the table has been registered with AWS Lake Formation.
+ `TargetTable` – A [TableIdentifier](#aws-glue-api-catalog-tables-TableIdentifier) object.

  A `TableIdentifier` structure that describes a target table for resource linking.
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the table resides.
+ `VersionId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the table version.
+ `FederatedTable` – A [FederatedTable](#aws-glue-api-catalog-tables-FederatedTable) object.

  A `FederatedTable` structure that references an entity outside the AWS Glue Data Catalog.
+ `ViewDefinition` – A [ViewDefinition](#aws-glue-api-catalog-tables-ViewDefinition) object.

  A structure that contains all the information that defines the view, including the dialect or dialects for the view, and the query.
+ `IsMultiDialectView` – Boolean.

  Specifies whether the view supports the SQL dialects of one or more different query engines and can therefore be read by those engines.

## TableInput structure
<a name="aws-glue-api-catalog-tables-TableInput"></a>

A structure used to define a table.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The table name. For Hive compatibility, this is folded to lowercase when it is stored.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the table.
+ `Owner` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The table owner. Included for Apache Hive compatibility. Not used in the normal course of AWS Glue operations.
+ `LastAccessTime` – Timestamp.

  The last time that the table was accessed.
+ `LastAnalyzedTime` – Timestamp.

  The last time that column statistics were computed for this table.
+ `Retention` – Number (integer), not more than None.

  The retention time for this table.
+ `StorageDescriptor` – A [StorageDescriptor](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-StorageDescriptor) object.

  A storage descriptor containing information about the physical storage of this table.
+ `PartitionKeys` – An array of [Column](#aws-glue-api-catalog-tables-Column) objects.

  A list of columns by which the table is partitioned. Only primitive types are supported as partition keys.

  When you create a table used by Amazon Athena, and you do not specify any `partitionKeys`, you must at least set the value of `partitionKeys` to an empty list. For example:

  `"PartitionKeys": []`
+ `ViewOriginalText` – UTF-8 string, not more than 409600 bytes long.

  Included for Apache Hive compatibility. Not used in the normal course of AWS Glue operations. If the table is a `VIRTUAL_VIEW`, certain Athena configuration encoded in base64.
+ `ViewExpandedText` – UTF-8 string, not more than 409600 bytes long.

  Included for Apache Hive compatibility. Not used in the normal course of AWS Glue operations.
+ `TableType` – UTF-8 string, not more than 255 bytes long.

  The type of this table. AWS Glue will create tables with the `EXTERNAL_TABLE` type. Other services, such as Athena, may create tables with additional table types. 

  AWS Glue related table types:  
EXTERNAL\$1TABLE  
Hive compatible attribute - indicates a non-Hive managed table.  
GOVERNED  
Used by AWS Lake Formation. The AWS Glue Data Catalog understands `GOVERNED`.
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  These key-value pairs define properties associated with the table.
+ `TargetTable` – A [TableIdentifier](#aws-glue-api-catalog-tables-TableIdentifier) object.

  A `TableIdentifier` structure that describes a target table for resource linking.
+ `ViewDefinition` – A [ViewDefinitionInput](#aws-glue-api-catalog-tables-ViewDefinitionInput) object.

  A structure that contains all the information that defines the view, including the dialect or dialects for the view, and the query.

## FederatedTable structure
<a name="aws-glue-api-catalog-tables-FederatedTable"></a>

A table that points to an entity outside the AWS Glue Data Catalog.

**Fields**
+ `Identifier` – UTF-8 string, not less than 1 or more than 512 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique identifier for the federated table.
+ `DatabaseIdentifier` – UTF-8 string, not less than 1 or more than 512 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique identifier for the federated database.
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection to the external metastore.
+ `ConnectionType` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The type of connection used to access the federated table, specifying the protocol or method for connecting to the external data source.

## Column structure
<a name="aws-glue-api-catalog-tables-Column"></a>

A column in a `Table`.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the `Column`.
+ `Type` – UTF-8 string, not more than 131072 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The data type of the `Column`.
+ `Comment` – Comment string, not more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A free-form text comment.
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  These key-value pairs define properties associated with the column.

## StorageDescriptor structure
<a name="aws-glue-api-catalog-tables-StorageDescriptor"></a>

Describes the physical storage of table data.

**Fields**
+ `Columns` – An array of [Column](#aws-glue-api-catalog-tables-Column) objects.

  A list of the `Columns` in the table.
+ `Location` – Location string, not more than 2056 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The physical location of the table. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name.
+ `AdditionalLocations` – An array of UTF-8 strings.

  A list of locations that point to the path where a Delta table is located.
+ `InputFormat` – Format string, not more than 128 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The input format: `SequenceFileInputFormat` (binary), or `TextInputFormat`, or a custom format.
+ `OutputFormat` – Format string, not more than 128 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The output format: `SequenceFileOutputFormat` (binary), or `IgnoreKeyTextOutputFormat`, or a custom format.
+ `Compressed` – Boolean.

  `True` if the data in the table is compressed, or `False` if not.
+ `NumberOfBuckets` – Number (integer).

  Must be specified if the table contains any dimension columns.
+ `SerdeInfo` – A [SerDeInfo](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-SerDeInfo) object.

  The serialization/deserialization (SerDe) information.
+ `BucketColumns` – An array of UTF-8 strings.

  A list of reducer grouping columns, clustering columns, and bucketing columns in the table.
+ `SortColumns` – An array of [Order](#aws-glue-api-catalog-tables-Order) objects.

  A list specifying the sort order of each bucket in the table.
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  The user-supplied properties in key-value form.
+ `SkewedInfo` – A [SkewedInfo](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-SkewedInfo) object.

  The information about values that appear frequently in a column (skewed values).
+ `StoredAsSubDirectories` – Boolean.

  `True` if the table data is stored in subdirectories, or `False` if not.
+ `SchemaReference` – A [SchemaReference](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-SchemaReference) object.

  An object that references a schema stored in the AWS Glue Schema Registry.

  When creating a table, you can pass an empty list of columns for the schema, and instead use a schema reference.

## SchemaReference structure
<a name="aws-glue-api-catalog-tables-SchemaReference"></a>

An object that references a schema stored in the AWS Glue Schema Registry.

**Fields**
+ `SchemaId` – A [SchemaId](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-SchemaId) object.

  A structure that contains schema identity fields. Either this or the `SchemaVersionId` has to be provided.
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The unique ID assigned to a version of the schema. Either this or the `SchemaId` has to be provided.
+ `SchemaVersionNumber` – Number (long), not less than 1 or more than 100000.

  The version number of the schema.

## SerDeInfo structure
<a name="aws-glue-api-catalog-tables-SerDeInfo"></a>

Information about a serialization/deserialization program (SerDe) that serves as an extractor and loader.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the SerDe.
+ `SerializationLibrary` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Usually the class that implements the SerDe. An example is `org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe`.
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  These key-value pairs define initialization parameters for the SerDe.

## Order structure
<a name="aws-glue-api-catalog-tables-Order"></a>

Specifies the sort order of a sorted column.

**Fields**
+ `Column` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the column.
+ `SortOrder` – *Required:* Number (integer), not more than 1.

  Indicates that the column is sorted in ascending order (`== 1`), or in descending order (`==0`).

## SkewedInfo structure
<a name="aws-glue-api-catalog-tables-SkewedInfo"></a>

Specifies skewed values in a table. Skewed values are those that occur with very high frequency.

**Fields**
+ `SkewedColumnNames` – An array of UTF-8 strings.

  A list of names of columns that contain skewed values.
+ `SkewedColumnValues` – An array of UTF-8 strings.

  A list of values that appear so frequently as to be considered skewed.
+ `SkewedColumnValueLocationMaps` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  A mapping of skewed values to the columns that contain them.

## TableVersion structure
<a name="aws-glue-api-catalog-tables-TableVersion"></a>

Specifies a version of a table.

**Fields**
+ `Table` – A [Table](#aws-glue-api-catalog-tables-Table) object.

  The table in question.
+ `VersionId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID value that identifies this table version. A `VersionId` is a string representation of an integer. Each version is incremented by 1.

## TableError structure
<a name="aws-glue-api-catalog-tables-TableError"></a>

An error record for table operations.

**Fields**
+ `TableName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table. For Hive compatibility, this must be entirely lowercase.
+ `ErrorDetail` – An [ErrorDetail](aws-glue-api-common.md#aws-glue-api-common-ErrorDetail) object.

  The details about the error.

## TableVersionError structure
<a name="aws-glue-api-catalog-tables-TableVersionError"></a>

An error record for table-version operations.

**Fields**
+ `TableName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table in question.
+ `VersionId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID value of the version in question. A `VersionID` is a string representation of an integer. Each version is incremented by 1.
+ `ErrorDetail` – An [ErrorDetail](aws-glue-api-common.md#aws-glue-api-common-ErrorDetail) object.

  The details about the error.

## SortCriterion structure
<a name="aws-glue-api-catalog-tables-SortCriterion"></a>

Specifies a field to sort by and a sort order.

**Fields**
+ `FieldName` – Value string, not less than 1 or more than 1024 bytes long.

  The name of the field on which to sort.
+ `Sort` – UTF-8 string (valid values: `ASC="ASCENDING"` \$1 `DESC="DESCENDING"`).

  An ascending or descending sort.

## TableIdentifier structure
<a name="aws-glue-api-catalog-tables-TableIdentifier"></a>

A structure that describes a target table for resource linking.

**Fields**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the table resides.
+ `DatabaseName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database that contains the target table.
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the target table.
+ `Region` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Region of the target table.

## KeySchemaElement structure
<a name="aws-glue-api-catalog-tables-KeySchemaElement"></a>

A partition key pair consisting of a name and a type.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of a partition key.
+ `Type` – *Required:* UTF-8 string, not more than 131072 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The type of a partition key.

## PartitionIndex structure
<a name="aws-glue-api-catalog-tables-PartitionIndex"></a>

A structure for a partition index.

**Fields**
+ `Keys` – *Required:* An array of UTF-8 strings, at least 1 string.

  The keys for the partition index.
+ `IndexName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partition index.

## PartitionIndexDescriptor structure
<a name="aws-glue-api-catalog-tables-PartitionIndexDescriptor"></a>

A descriptor for a partition index in a table.

**Fields**
+ `IndexName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partition index.
+ `Keys` – *Required:* An array of [KeySchemaElement](#aws-glue-api-catalog-tables-KeySchemaElement) objects, at least 1 structure.

  A list of one or more keys, as `KeySchemaElement` structures, for the partition index.
+ `IndexStatus` – *Required:* UTF-8 string (valid values: `CREATING` \$1 `ACTIVE` \$1 `DELETING` \$1 `FAILED`).

  The status of the partition index. 

  The possible statuses are:
  + CREATING: The index is being created. When an index is in a CREATING state, the index or its table cannot be deleted.
  + ACTIVE: The index creation succeeds.
  + FAILED: The index creation fails. 
  + DELETING: The index is deleted from the list of indexes.
+ `BackfillErrors` – An array of [BackfillError](#aws-glue-api-catalog-tables-BackfillError) objects.

  A list of errors that can occur when registering partition indexes for an existing table.

## BackfillError structure
<a name="aws-glue-api-catalog-tables-BackfillError"></a>

A list of errors that can occur when registering partition indexes for an existing table.

These errors give the details about why an index registration failed and provide a limited number of partitions in the response, so that you can fix the partitions at fault and try registering the index again. The most common set of errors that can occur are categorized as follows:
+ EncryptedPartitionError: The partitions are encrypted.
+ InvalidPartitionTypeDataError: The partition value doesn't match the data type for that partition column.
+ MissingPartitionValueError: The partitions are encrypted.
+ UnsupportedPartitionCharacterError: Characters inside the partition value are not supported. For example: U\$10000 , U\$10001, U\$10002.
+ InternalError: Any error which does not belong to other error codes.

**Fields**
+ `Code` – UTF-8 string (valid values: `ENCRYPTED_PARTITION_ERROR` \$1 `INTERNAL_ERROR` \$1 `INVALID_PARTITION_TYPE_DATA_ERROR` \$1 `MISSING_PARTITION_VALUE_ERROR` \$1 `UNSUPPORTED_PARTITION_CHARACTER_ERROR`).

  The error code for an error that occurred when registering partition indexes for an existing table.
+ `Partitions` – An array of [PartitionValueList](aws-glue-api-catalog-partitions.md#aws-glue-api-catalog-partitions-PartitionValueList) objects.

  A list of a limited number of partitions in the response.

## IcebergInput structure
<a name="aws-glue-api-catalog-tables-IcebergInput"></a>

A structure that defines an Apache Iceberg metadata table to create in the catalog.

**Fields**
+ `MetadataOperation` – *Required:* UTF-8 string (valid values: `CREATE`).

  A required metadata operation. Can only be set to `CREATE`.
+ `Version` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The table version for the Iceberg table. Defaults to 2.
+ `CreateIcebergTableInput` – A [CreateIcebergTableInput](#aws-glue-api-catalog-tables-CreateIcebergTableInput) object.

  The configuration parameters required to create a new Iceberg table in the AWS Glue Data Catalog, including table properties and metadata specifications.

## OpenTableFormatInput structure
<a name="aws-glue-api-catalog-tables-OpenTableFormatInput"></a>

A structure representing an open format table.

**Fields**
+ `IcebergInput` – An [IcebergInput](#aws-glue-api-catalog-tables-IcebergInput) object.

  Specifies an `IcebergInput` structure that defines an Apache Iceberg metadata table.

## ViewDefinition structure
<a name="aws-glue-api-catalog-tables-ViewDefinition"></a>

A structure containing details for representations.

**Fields**
+ `IsProtected` – Boolean.

  You can set this flag as true to instruct the engine not to push user-provided operations into the logical plan of the view during query planning. However, setting this flag does not guarantee that the engine will comply. Refer to the engine's documentation to understand the guarantees provided, if any.
+ `Definer` – UTF-8 string, not less than 20 or more than 2048 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The definer of a view in SQL.
+ `SubObjects` – An array of UTF-8 strings, not more than 10 strings.

  A list of table Amazon Resource Names (ARNs).
+ `Representations` – An array of [ViewRepresentation](#aws-glue-api-catalog-tables-ViewRepresentation) objects, not less than 1 or more than 1000 structures.

  A list of representations.

## ViewDefinitionInput structure
<a name="aws-glue-api-catalog-tables-ViewDefinitionInput"></a>

A structure containing details for creating or updating an AWS Glue view.

**Fields**
+ `IsProtected` – Boolean.

  You can set this flag as true to instruct the engine not to push user-provided operations into the logical plan of the view during query planning. However, setting this flag does not guarantee that the engine will comply. Refer to the engine's documentation to understand the guarantees provided, if any.
+ `Definer` – UTF-8 string, not less than 20 or more than 2048 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The definer of a view in SQL.
+ `Representations` – An array of [ViewRepresentationInput](#aws-glue-api-catalog-tables-ViewRepresentationInput) objects, not less than 1 or more than 10 structures.

  A list of structures that contains the dialect of the view, and the query that defines the view.
+ `SubObjects` – An array of UTF-8 strings, not more than 10 strings.

  A list of base table ARNs that make up the view.

## ViewRepresentation structure
<a name="aws-glue-api-catalog-tables-ViewRepresentation"></a>

A structure that contains the dialect of the view, and the query that defines the view.

**Fields**
+ `Dialect` – UTF-8 string (valid values: `REDSHIFT` \$1 `ATHENA` \$1 `SPARK`).

  The dialect of the query engine.
+ `DialectVersion` – UTF-8 string, not less than 1 or more than 255 bytes long.

  The version of the dialect of the query engine. For example, 3.0.0.
+ `ViewOriginalText` – UTF-8 string, not more than 409600 bytes long.

  The `SELECT` query provided by the customer during `CREATE VIEW DDL`. This SQL is not used during a query on a view (`ViewExpandedText` is used instead). `ViewOriginalText` is used for cases like `SHOW CREATE VIEW` where users want to see the original DDL command that created the view.
+ `ViewExpandedText` – UTF-8 string, not more than 409600 bytes long.

  The expanded SQL for the view. This SQL is used by engines while processing a query on a view. Engines may perform operations during view creation to transform `ViewOriginalText` to `ViewExpandedText`. For example:
  + Fully qualified identifiers: `SELECT * from table1 -> SELECT * from db1.table1`
+ `ValidationConnection` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection to be used to validate the specific representation of the view.
+ `IsStale` – Boolean.

  Dialects marked as stale are no longer valid and must be updated before they can be queried in their respective query engines.

## ViewRepresentationInput structure
<a name="aws-glue-api-catalog-tables-ViewRepresentationInput"></a>

A structure containing details of a representation to update or create a Lake Formation view.

**Fields**
+ `Dialect` – UTF-8 string (valid values: `REDSHIFT` \$1 `ATHENA` \$1 `SPARK`).

  A parameter that specifies the engine type of a specific representation.
+ `DialectVersion` – UTF-8 string, not less than 1 or more than 255 bytes long.

  A parameter that specifies the version of the engine of a specific representation.
+ `ViewOriginalText` – UTF-8 string, not more than 409600 bytes long.

  A string that represents the original SQL query that describes the view.
+ `ValidationConnection` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection to be used to validate the specific representation of the view.
+ `ViewExpandedText` – UTF-8 string, not more than 409600 bytes long.

  A string that represents the SQL query that describes the view with expanded resource ARNs

## UpdateOpenTableFormatInput structure
<a name="aws-glue-api-catalog-tables-UpdateOpenTableFormatInput"></a>

Input parameters for updating open table format tables in AWS GlueData Catalog, serving as a wrapper for format-specific update operations such as Apache Iceberg.

**Fields**
+ `UpdateIcebergInput` – An [UpdateIcebergInput](#aws-glue-api-catalog-tables-UpdateIcebergInput) object.

  Apache Iceberg-specific update parameters that define the table modifications to be applied, including schema changes, partition specifications, and table properties.

## UpdateIcebergInput structure
<a name="aws-glue-api-catalog-tables-UpdateIcebergInput"></a>

Input parameters specific to updating Apache Iceberg tables in AWS Glue Data Catalog, containing the update operations to be applied to an existing Iceberg table.

**Fields**
+ `UpdateIcebergTableInput` – *Required:* An [UpdateIcebergTableInput](#aws-glue-api-catalog-tables-UpdateIcebergTableInput) object.

  The specific update operations to be applied to the Iceberg table, containing a list of updates that define the new state of the table including schema, partitions, and properties.

## CreateIcebergTableInput structure
<a name="aws-glue-api-catalog-tables-CreateIcebergTableInput"></a>

The configuration parameters required to create a new Iceberg table in the AWS Glue Data Catalog, including table properties and metadata specifications.

**Fields**
+ `Location` – *Required:* Location string, not more than 2056 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The S3 location where the Iceberg table data will be stored.
+ `Schema` – *Required:* An [IcebergSchema](#aws-glue-api-catalog-tables-IcebergSchema) object.

  The schema definition that specifies the structure, field types, and metadata for the Iceberg table.
+ `PartitionSpec` – An [IcebergPartitionSpec](#aws-glue-api-catalog-tables-IcebergPartitionSpec) object.

  The partitioning specification that defines how the Iceberg table data will be organized and partitioned for optimal query performance.
+ `WriteOrder` – An [IcebergSortOrder](#aws-glue-api-catalog-tables-IcebergSortOrder) object.

  The sort order specification that defines how data should be ordered within each partition to optimize query performance.
+ `Properties` – 

  Key-value pairs of additional table properties and configuration settings for the Iceberg table.

## UpdateIcebergTableInput structure
<a name="aws-glue-api-catalog-tables-UpdateIcebergTableInput"></a>

Contains the update operations to be applied to an existing Iceberg table inAWS Glue Data Catalog, defining the new state of the table metadata. 

**Fields**
+ `Updates` – *Required:* An array of [IcebergTableUpdate](#aws-glue-api-catalog-tables-IcebergTableUpdate) objects.

  The list of table update operations that specify the changes to be made to the Iceberg table, including schema modifications, partition specifications, and table properties.

## IcebergSortOrder structure
<a name="aws-glue-api-catalog-tables-IcebergSortOrder"></a>

Defines the sort order specification for an Iceberg table, determining how data should be ordered within partitions to optimize query performance.

**Fields**
+ `OrderId` – *Required:* Number (integer).

  The unique identifier for this sort order specification within the Iceberg table's metadata.
+ `Fields` – *Required:* An array of [IcebergSortField](#aws-glue-api-catalog-tables-IcebergSortField) objects.

  The list of fields and their sort directions that define the ordering criteria for the Iceberg table data.

## IcebergSortField structure
<a name="aws-glue-api-catalog-tables-IcebergSortField"></a>

Defines a single field within an Iceberg sort order specification, including the source field, transformation, sort direction, and null value ordering.

**Fields**
+ `SourceId` – *Required:* Number (integer).

  The identifier of the source field from the table schema that this sort field is based on.
+ `Transform` – *Required:* UTF-8 string.

  The transformation function applied to the source field before sorting, such as identity, bucket, or truncate.
+ `Direction` – *Required:* UTF-8 string (valid values: `asc="ASC"` \$1 `desc="DESC"`).

  The sort direction for this field, either ascending or descending.
+ `NullOrder` – *Required:* UTF-8 string (valid values: `nulls-first="NULLS_FIRST"` \$1 `nulls-last="NULLS_LAST"`).

  The ordering behavior for null values in this field, specifying whether nulls should appear first or last in the sort order.

## IcebergPartitionSpec structure
<a name="aws-glue-api-catalog-tables-IcebergPartitionSpec"></a>

Defines the partitioning specification for an Iceberg table, determining how table data will be organized and partitioned for optimal query performance.

**Fields**
+ `Fields` – *Required:* An array of [IcebergPartitionField](#aws-glue-api-catalog-tables-IcebergPartitionField) objects.

  The list of partition fields that define how the table data should be partitioned, including source fields and their transformations.
+ `SpecId` – Number (integer).

  The unique identifier for this partition specification within the Iceberg table's metadata history.

## IcebergPartitionField structure
<a name="aws-glue-api-catalog-tables-IcebergPartitionField"></a>

Defines a single partition field within an Iceberg partition specification, including the source field, transformation function, partition name, and unique identifier.

**Fields**
+ `SourceId` – *Required:* Number (integer).

  The identifier of the source field from the table schema that this partition field is based on.
+ `Transform` – *Required:* UTF-8 string.

  The transformation function applied to the source field to create the partition, such as identity, bucket, truncate, year, month, day, or hour.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 1024 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partition field as it will appear in the partitioned table structure.
+ `FieldId` – Number (integer).

  The unique identifier assigned to this partition field within the Iceberg table's partition specification.

## IcebergSchema structure
<a name="aws-glue-api-catalog-tables-IcebergSchema"></a>

Defines the schema structure for an Iceberg table, including field definitions, data types, and schema metadata.

**Fields**
+ `SchemaId` – Number (integer).

  The unique identifier for this schema version within the Iceberg table's schema evolution history.
+ `IdentifierFieldIds` – An array of signed 32-bit integers.

  The list of field identifiers that uniquely identify records in the table, used for row-level operations and deduplication.
+ `Type` – UTF-8 string (valid values: `struct="STRUCT"`).

  The root type of the schema structure, typically "struct" for Iceberg table schemas.
+ `Fields` – *Required:* An array of [IcebergStructField](#aws-glue-api-catalog-tables-IcebergStructField) objects.

  The list of field definitions that make up the table schema, including field names, types, and metadata.

## IcebergStructField structure
<a name="aws-glue-api-catalog-tables-IcebergStructField"></a>

Defines a single field within an Iceberg table schema, including its identifier, name, data type, nullability, and documentation.

**Fields**
+ `Id` – *Required:* Number (integer).

  The unique identifier assigned to this field within the Iceberg table schema, used for schema evolution and field tracking.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 1024 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the field as it appears in the table schema and query operations.
+ `Type` – *Required:* An empty-structure named `IcebergDocument`.

  The data type definition for this field, specifying the structure and format of the data it contains.
+ `Required` – *Required:* Boolean.

  Indicates whether this field is required (non-nullable) or optional (nullable) in the table schema.
+ `Doc` – Comment string, not more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Optional documentation or description text that provides additional context about the purpose and usage of this field.

## IcebergTableUpdate structure
<a name="aws-glue-api-catalog-tables-IcebergTableUpdate"></a>

Defines a complete set of updates to be applied to an Iceberg table, including schema changes, partitioning modifications, sort order adjustments, location updates, and property changes.

**Fields**
+ `Schema` – *Required:* An [IcebergSchema](#aws-glue-api-catalog-tables-IcebergSchema) object.

  The updated schema definition for the Iceberg table, specifying any changes to field structure, data types, or schema metadata.
+ `PartitionSpec` – An [IcebergPartitionSpec](#aws-glue-api-catalog-tables-IcebergPartitionSpec) object.

  The updated partitioning specification that defines how the table data should be reorganized and partitioned.
+ `SortOrder` – An [IcebergSortOrder](#aws-glue-api-catalog-tables-IcebergSortOrder) object.

  The updated sort order specification that defines how data should be ordered within partitions for optimal query performance.
+ `Location` – *Required:* Location string, not more than 2056 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The updated S3 location where the Iceberg table data will be stored.
+ `Properties` – 

  Updated key-value pairs of table properties and configuration settings for the Iceberg table.

## AuditContext structure
<a name="aws-glue-api-catalog-tables-AuditContext"></a>

A structure containing the Lake Formation audit context.

**Fields**
+ `AdditionalAuditContext` – UTF-8 string, not more than 2048 bytes long.

  A string containing the additional audit context information.
+ `RequestedColumns` – An array of UTF-8 strings.

  The requested columns for audit.
+ `AllColumnsRequested` – Boolean.

  All columns request for audit.

## Operations
<a name="aws-glue-api-catalog-tables-actions"></a>
+ [CreateTable action (Python: create\$1table)](#aws-glue-api-catalog-tables-CreateTable)
+ [UpdateTable action (Python: update\$1table)](#aws-glue-api-catalog-tables-UpdateTable)
+ [DeleteTable action (Python: delete\$1table)](#aws-glue-api-catalog-tables-DeleteTable)
+ [BatchDeleteTable action (Python: batch\$1delete\$1table)](#aws-glue-api-catalog-tables-BatchDeleteTable)
+ [GetTable action (Python: get\$1table)](#aws-glue-api-catalog-tables-GetTable)
+ [GetTables action (Python: get\$1tables)](#aws-glue-api-catalog-tables-GetTables)
+ [GetTableVersion action (Python: get\$1table\$1version)](#aws-glue-api-catalog-tables-GetTableVersion)
+ [GetTableVersions action (Python: get\$1table\$1versions)](#aws-glue-api-catalog-tables-GetTableVersions)
+ [DeleteTableVersion action (Python: delete\$1table\$1version)](#aws-glue-api-catalog-tables-DeleteTableVersion)
+ [BatchDeleteTableVersion action (Python: batch\$1delete\$1table\$1version)](#aws-glue-api-catalog-tables-BatchDeleteTableVersion)
+ [SearchTables action (Python: search\$1tables)](#aws-glue-api-catalog-tables-SearchTables)
+ [GetPartitionIndexes action (Python: get\$1partition\$1indexes)](#aws-glue-api-catalog-tables-GetPartitionIndexes)
+ [CreatePartitionIndex action (Python: create\$1partition\$1index)](#aws-glue-api-catalog-tables-CreatePartitionIndex)
+ [DeletePartitionIndex action (Python: delete\$1partition\$1index)](#aws-glue-api-catalog-tables-DeletePartitionIndex)
+ [GetColumnStatisticsForTable action (Python: get\$1column\$1statistics\$1for\$1table)](#aws-glue-api-catalog-tables-GetColumnStatisticsForTable)
+ [UpdateColumnStatisticsForTable action (Python: update\$1column\$1statistics\$1for\$1table)](#aws-glue-api-catalog-tables-UpdateColumnStatisticsForTable)
+ [DeleteColumnStatisticsForTable action (Python: delete\$1column\$1statistics\$1for\$1table)](#aws-glue-api-catalog-tables-DeleteColumnStatisticsForTable)

## CreateTable action (Python: create\$1table)
<a name="aws-glue-api-catalog-tables-CreateTable"></a>

Creates a new table definition in the Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which to create the `Table`. If none is supplied, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The catalog database in which to create the new table. For Hive compatibility, this name is entirely lowercase.
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier for the table within the specified database that will be created in the AWS Glue Data Catalog.
+ `TableInput` – A [TableInput](#aws-glue-api-catalog-tables-TableInput) object.

  The `TableInput` object that defines the metadata table to create in the catalog.
+ `PartitionIndexes` – An array of [PartitionIndex](#aws-glue-api-catalog-tables-PartitionIndex) objects, not more than 3 structures.

  A list of partition indexes, `PartitionIndex` structures, to create in the table.
+ `TransactionId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #44](aws-glue-api-common.md#regex_44).

  The ID of the transaction.
+ `OpenTableFormatInput` – An [OpenTableFormatInput](#aws-glue-api-catalog-tables-OpenTableFormatInput) object.

  Specifies an `OpenTableFormatInput` structure when creating an open format table.

**Response**
+ *No Response parameters.*

**Errors**
+ `AlreadyExistsException`
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `ResourceNumberLimitExceededException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `ConcurrentModificationException`
+ `ResourceNotReadyException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## UpdateTable action (Python: update\$1table)
<a name="aws-glue-api-catalog-tables-UpdateTable"></a>

Updates a metadata table in the Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the table resides. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database in which the table resides. For Hive compatibility, this name is entirely lowercase.
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier for the table within the specified database that will be created in the AWS Glue Data Catalog.
+ `TableInput` – A [TableInput](#aws-glue-api-catalog-tables-TableInput) object.

  An updated `TableInput` object to define the metadata table in the catalog.
+ `SkipArchive` – Boolean.

  By default, `UpdateTable` always creates an archived version of the table before updating it. However, if `skipArchive` is set to true, `UpdateTable` does not create the archived version.
+ `TransactionId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #44](aws-glue-api-common.md#regex_44).

  The transaction ID at which to update the table contents. 
+ `VersionId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The version ID at which to update the table contents. 
+ `ViewUpdateAction` – UTF-8 string (valid values: `ADD` \$1 `REPLACE` \$1 `ADD_OR_REPLACE` \$1 `DROP`).

  The operation to be performed when updating the view.
+ `Force` – Boolean.

  A flag that can be set to true to ignore matching storage descriptor and subobject matching requirements.
+ `UpdateOpenTableFormatInput` – An [UpdateOpenTableFormatInput](#aws-glue-api-catalog-tables-UpdateOpenTableFormatInput) object.

  Input parameters for updating open table format tables in AWS GlueData Catalog, serving as a wrapper for format-specific update operations such as Apache Iceberg.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`
+ `ResourceNumberLimitExceededException`
+ `GlueEncryptionException`
+ `ResourceNotReadyException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`
+ `AlreadyExistsException`

## DeleteTable action (Python: delete\$1table)
<a name="aws-glue-api-catalog-tables-DeleteTable"></a>

Removes a table definition from the Data Catalog.

**Note**  
After completing this operation, you no longer have access to the table versions and partitions that belong to the deleted table. AWS Glue deletes these "orphaned" resources asynchronously in a timely manner, at the discretion of the service.  
To ensure the immediate deletion of all related resources, before calling `DeleteTable`, use `DeleteTableVersion` or `BatchDeleteTableVersion`, and `DeletePartition` or `BatchDeletePartition`, to delete any resources that belong to the table.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the table resides. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database in which the table resides. For Hive compatibility, this name is entirely lowercase.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table to be deleted. For Hive compatibility, this name is entirely lowercase.
+ `TransactionId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #44](aws-glue-api-common.md#regex_44).

  The transaction ID at which to delete the table contents.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`
+ `ResourceNotReadyException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## BatchDeleteTable action (Python: batch\$1delete\$1table)
<a name="aws-glue-api-catalog-tables-BatchDeleteTable"></a>

Deletes multiple tables at once.

**Note**  
After completing this operation, you no longer have access to the table versions and partitions that belong to the deleted table. AWS Glue deletes these "orphaned" resources asynchronously in a timely manner, at the discretion of the service.  
To ensure the immediate deletion of all related resources, before calling `BatchDeleteTable`, use `DeleteTableVersion` or `BatchDeleteTableVersion`, and `DeletePartition` or `BatchDeletePartition`, to delete any resources that belong to the table.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the table resides. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database in which the tables to delete reside. For Hive compatibility, this name is entirely lowercase.
+ `TablesToDelete` – *Required:* An array of UTF-8 strings, not more than 100 strings.

  A list of the table to delete.
+ `TransactionId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #44](aws-glue-api-common.md#regex_44).

  The transaction ID at which to delete the table contents.

**Response**
+ `Errors` – An array of [TableError](#aws-glue-api-catalog-tables-TableError) objects.

  A list of errors encountered in attempting to delete the specified tables.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `ResourceNotReadyException`

## GetTable action (Python: get\$1table)
<a name="aws-glue-api-catalog-tables-GetTable"></a>

Retrieves the `Table` definition in a Data Catalog for a specified table.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the table resides. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table for which to retrieve the definition. For Hive compatibility, this name is entirely lowercase.
+ `TransactionId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #44](aws-glue-api-common.md#regex_44).

  The transaction ID at which to read the table contents. 
+ `QueryAsOfTime` – Timestamp.

  The time as of when to read the table contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with `TransactionId`.
+ `AuditContext` – An [AuditContext](#aws-glue-api-catalog-tables-AuditContext) object.

  A structure containing the Lake Formation [audit context](https://docs.aws.amazon.com/glue/latest/webapi/API_AuditContext.html).
+ `IncludeStatusDetails` – Boolean.

  Specifies whether to include status details related to a request to create or update an AWS Glue Data Catalog view.

**Response**
+ `Table` – A [Table](#aws-glue-api-catalog-tables-Table) object.

  The `Table` object that defines the specified table.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `ResourceNotReadyException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## GetTables action (Python: get\$1tables)
<a name="aws-glue-api-catalog-tables-GetTables"></a>

Retrieves the definitions of some or all of the tables in a given `Database`.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the tables reside. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The database in the catalog whose tables to list. For Hive compatibility, this name is entirely lowercase.
+ `Expression` – UTF-8 string, not more than 2048 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A regular expression pattern. If present, only those tables whose names match the pattern are returned.
+ `NextToken` – UTF-8 string.

  A continuation token, included if this is a continuation call.
+ `MaxResults` – Number (integer), not less than 1 or more than 100.

  The maximum number of tables to return in a single response.
+ `TransactionId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #44](aws-glue-api-common.md#regex_44).

  The transaction ID at which to read the table contents.
+ `QueryAsOfTime` – Timestamp.

  The time as of when to read the table contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with `TransactionId`.
+ `AuditContext` – An [AuditContext](#aws-glue-api-catalog-tables-AuditContext) object.

  A structure containing the Lake Formation [audit context](https://docs.aws.amazon.com/glue/latest/webapi/API_AuditContext.html).
+ `IncludeStatusDetails` – Boolean.

  Specifies whether to include status details related to a request to create or update an AWS Glue Data Catalog view.
+ `AttributesToGet` – An array of UTF-8 strings.

   Specifies the table fields returned by the `GetTables` call. This parameter doesn't accept an empty list. The request must include `NAME`.

  The following are the valid combinations of values:
  + `NAME` - Names of all tables in the database.
  + `NAME`, `TABLE_TYPE` - Names of all tables and the table types.

**Response**
+ `TableList` – An array of [Table](#aws-glue-api-catalog-tables-Table) objects.

  A list of the requested `Table` objects.
+ `NextToken` – UTF-8 string.

  A continuation token, present if the current list segment is not the last.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `GlueEncryptionException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## GetTableVersion action (Python: get\$1table\$1version)
<a name="aws-glue-api-catalog-tables-GetTableVersion"></a>

Retrieves a specified version of a table.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the tables reside. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table. For Hive compatibility, this name is entirely lowercase.
+ `VersionId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID value of the table version to be retrieved. A `VersionID` is a string representation of an integer. Each version is incremented by 1. 

**Response**
+ `TableVersion` – A [TableVersion](#aws-glue-api-catalog-tables-TableVersion) object.

  The requested table version.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## GetTableVersions action (Python: get\$1table\$1versions)
<a name="aws-glue-api-catalog-tables-GetTableVersions"></a>

Retrieves a list of strings that identify available versions of a specified table.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the tables reside. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table. For Hive compatibility, this name is entirely lowercase.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is not the first call.
+ `MaxResults` – Number (integer), not less than 1 or more than 100.

  The maximum number of table versions to return in one response.

**Response**
+ `TableVersions` – An array of [TableVersion](#aws-glue-api-catalog-tables-TableVersion) objects.

  A list of strings identifying available versions of the specified table.
+ `NextToken` – UTF-8 string.

  A continuation token, if the list of available versions does not include the last one.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## DeleteTableVersion action (Python: delete\$1table\$1version)
<a name="aws-glue-api-catalog-tables-DeleteTableVersion"></a>

Deletes a specified version of a table.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the tables reside. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table. For Hive compatibility, this name is entirely lowercase.
+ `VersionId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the table version to be deleted. A `VersionID` is a string representation of an integer. Each version is incremented by 1.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## BatchDeleteTableVersion action (Python: batch\$1delete\$1table\$1version)
<a name="aws-glue-api-catalog-tables-BatchDeleteTableVersion"></a>

Deletes a specified batch of versions of a table.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the tables reside. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The database in the catalog in which the table resides. For Hive compatibility, this name is entirely lowercase.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table. For Hive compatibility, this name is entirely lowercase.
+ `VersionIds` – *Required:* An array of UTF-8 strings, not more than 100 strings.

  A list of the IDs of versions to be deleted. A `VersionId` is a string representation of an integer. Each version is incremented by 1.

**Response**
+ `Errors` – An array of [TableVersionError](#aws-glue-api-catalog-tables-TableVersionError) objects.

  A list of errors encountered while trying to delete the specified table versions.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## SearchTables action (Python: search\$1tables)
<a name="aws-glue-api-catalog-tables-SearchTables"></a>

Searches a set of tables based on properties in the table metadata as well as on the parent database. You can search against text or filter conditions. 

You can only get tables that you have access to based on the security policies defined in Lake Formation. You need at least a read-only access to the table for it to be returned. If you do not have access to all the columns in the table, these columns will not be searched against when returning the list of tables back to you. If you have access to the columns but not the data in the columns, those columns and the associated metadata for those columns will be included in the search. 

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique identifier, consisting of `account_id`.
+ `NextToken` – UTF-8 string.

  A continuation token, included if this is a continuation call.
+ `Filters` – An array of [PropertyPredicate](aws-glue-api-common.md#aws-glue-api-common-PropertyPredicate) objects.

  A list of key-value pairs, and a comparator used to filter the search results. Returns all entities matching the predicate.

  The `Comparator` member of the `PropertyPredicate` struct is used only for time fields, and can be omitted for other field types. Also, when comparing string values, such as when `Key=Name`, a fuzzy match algorithm is used. The `Key` field (for example, the value of the `Name` field) is split on certain punctuation characters, for example, -, :, \$1, etc. into tokens. Then each token is exact-match compared with the `Value` member of `PropertyPredicate`. For example, if `Key=Name` and `Value=link`, tables named `customer-link` and `xx-link-yy` are returned, but `xxlinkyy` is not returned.
+ `SearchText` – Value string, not less than 1 or more than 1024 bytes long.

  A string used for a text search.

  Specifying a value in quotes filters based on an exact match to the value.
+ `SortCriteria` – An array of [SortCriterion](#aws-glue-api-catalog-tables-SortCriterion) objects, not more than 1 structures.

  A list of criteria for sorting the results by a field name, in an ascending or descending order.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of tables to return in a single response.
+ `ResourceShareType` – UTF-8 string (valid values: `FOREIGN` \$1 `ALL` \$1 `FEDERATED`).

  Allows you to specify that you want to search the tables shared with your account. The allowable values are `FOREIGN` or `ALL`. 
  + If set to `FOREIGN`, will search the tables shared with your account. 
  + If set to `ALL`, will search the tables shared with your account, as well as the tables in yor local account. 
+ `IncludeStatusDetails` – Boolean.

  Specifies whether to include status details related to a request to create or update an AWS Glue Data Catalog view.

**Response**
+ `NextToken` – UTF-8 string.

  A continuation token, present if the current list segment is not the last.
+ `TableList` – An array of [Table](#aws-glue-api-catalog-tables-Table) objects.

  A list of the requested `Table` objects. The `SearchTables` response returns only the tables that you have access to.

**Errors**
+ `InternalServiceException`
+ `InvalidInputException`
+ `OperationTimeoutException`

## GetPartitionIndexes action (Python: get\$1partition\$1indexes)
<a name="aws-glue-api-catalog-tables-GetPartitionIndexes"></a>

Retrieves the partition indexes associated with a table.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The catalog ID where the table resides.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Specifies the name of a database from which you want to retrieve partition indexes.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Specifies the name of a table for which you want to retrieve the partition indexes.
+ `NextToken` – UTF-8 string.

  A continuation token, included if this is a continuation call.

**Response**
+ `PartitionIndexDescriptorList` – An array of [PartitionIndexDescriptor](#aws-glue-api-catalog-tables-PartitionIndexDescriptor) objects.

  A list of index descriptors.
+ `NextToken` – UTF-8 string.

  A continuation token, present if the current list segment is not the last.

**Errors**
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `ConflictException`

## CreatePartitionIndex action (Python: create\$1partition\$1index)
<a name="aws-glue-api-catalog-tables-CreatePartitionIndex"></a>

Creates a specified partition index in an existing table.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The catalog ID where the table resides.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Specifies the name of a database in which you want to create a partition index.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Specifies the name of a table in which you want to create a partition index.
+ `PartitionIndex` – *Required:* A [PartitionIndex](#aws-glue-api-catalog-tables-PartitionIndex) object.

  Specifies a `PartitionIndex` structure to create a partition index in an existing table.

**Response**
+ *No Response parameters.*

**Errors**
+ `AlreadyExistsException`
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `ResourceNumberLimitExceededException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## DeletePartitionIndex action (Python: delete\$1partition\$1index)
<a name="aws-glue-api-catalog-tables-DeletePartitionIndex"></a>

Deletes a specified partition index from an existing table.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The catalog ID where the table resides.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Specifies the name of a database from which you want to delete a partition index.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Specifies the name of a table from which you want to delete a partition index.
+ `IndexName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partition index to be deleted.

**Response**
+ *No Response parameters.*

**Errors**
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `ConflictException`
+ `GlueEncryptionException`

## GetColumnStatisticsForTable action (Python: get\$1column\$1statistics\$1for\$1table)
<a name="aws-glue-api-catalog-tables-GetColumnStatisticsForTable"></a>

Retrieves table statistics of columns.

The Identity and Access Management (IAM) permission required for this operation is `GetTable`.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the partitions reside.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partitions' table.
+ `ColumnNames` – *Required:* An array of UTF-8 strings, not more than 100 strings.

  A list of the column names.

**Response**
+ `ColumnStatisticsList` – An array of [ColumnStatistics](aws-glue-api-common.md#aws-glue-api-common-ColumnStatistics) objects.

  List of ColumnStatistics.
+ `Errors` – An array of [ColumnError](aws-glue-api-common.md#aws-glue-api-common-ColumnError) objects.

  List of ColumnStatistics that failed to be retrieved.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## UpdateColumnStatisticsForTable action (Python: update\$1column\$1statistics\$1for\$1table)
<a name="aws-glue-api-catalog-tables-UpdateColumnStatisticsForTable"></a>

Creates or updates table statistics of columns.

The Identity and Access Management (IAM) permission required for this operation is `UpdateTable`.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the partitions reside.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partitions' table.
+ `ColumnStatisticsList` – *Required:* An array of [ColumnStatistics](aws-glue-api-common.md#aws-glue-api-common-ColumnStatistics) objects, not more than 25 structures.

  A list of the column statistics.

**Response**
+ `Errors` – An array of [ColumnStatisticsError](aws-glue-api-common.md#aws-glue-api-common-ColumnStatisticsError) objects.

  List of ColumnStatisticsErrors.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## DeleteColumnStatisticsForTable action (Python: delete\$1column\$1statistics\$1for\$1table)
<a name="aws-glue-api-catalog-tables-DeleteColumnStatisticsForTable"></a>

Retrieves table statistics of columns.

The Identity and Access Management (IAM) permission required for this operation is `DeleteTable`.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the partitions reside.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partitions' table.
+ `ColumnName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the column.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

# Partition API
<a name="aws-glue-api-catalog-partitions"></a>

The Partition API describes data types and operations used to work with partitions.

## Data types
<a name="aws-glue-api-catalog-partitions-objects"></a>
+ [Partition structure](#aws-glue-api-catalog-partitions-Partition)
+ [PartitionInput structure](#aws-glue-api-catalog-partitions-PartitionInput)
+ [PartitionSpecWithSharedStorageDescriptor structure](#aws-glue-api-catalog-partitions-PartitionSpecWithSharedStorageDescriptor)
+ [PartitionListComposingSpec structure](#aws-glue-api-catalog-partitions-PartitionListComposingSpec)
+ [PartitionSpecProxy structure](#aws-glue-api-catalog-partitions-PartitionSpecProxy)
+ [PartitionValueList structure](#aws-glue-api-catalog-partitions-PartitionValueList)
+ [Segment structure](#aws-glue-api-catalog-partitions-Segment)
+ [PartitionError structure](#aws-glue-api-catalog-partitions-PartitionError)
+ [BatchUpdatePartitionFailureEntry structure](#aws-glue-api-catalog-partitions-BatchUpdatePartitionFailureEntry)
+ [BatchUpdatePartitionRequestEntry structure](#aws-glue-api-catalog-partitions-BatchUpdatePartitionRequestEntry)
+ [StorageDescriptor structure](#aws-glue-api-catalog-partitions-StorageDescriptor)
+ [SchemaReference structure](#aws-glue-api-catalog-partitions-SchemaReference)
+ [SerDeInfo structure](#aws-glue-api-catalog-partitions-SerDeInfo)
+ [SkewedInfo structure](#aws-glue-api-catalog-partitions-SkewedInfo)

## Partition structure
<a name="aws-glue-api-catalog-partitions-Partition"></a>

Represents a slice of table data.

**Fields**
+ `Values` – An array of UTF-8 strings.

  The values of the partition.
+ `DatabaseName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database in which to create the partition.
+ `TableName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database table in which to create the partition.
+ `CreationTime` – Timestamp.

  The time at which the partition was created.
+ `LastAccessTime` – Timestamp.

  The last time at which the partition was accessed.
+ `StorageDescriptor` – A [StorageDescriptor](#aws-glue-api-catalog-partitions-StorageDescriptor) object.

  Provides information about the physical location where the partition is stored.
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  These key-value pairs define partition parameters.
+ `LastAnalyzedTime` – Timestamp.

  The last time at which column statistics were computed for this partition.
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the partition resides.

## PartitionInput structure
<a name="aws-glue-api-catalog-partitions-PartitionInput"></a>

The structure used to create and update a partition.

**Fields**
+ `Values` – An array of UTF-8 strings.

  The values of the partition. Although this parameter is not required by the SDK, you must specify this parameter for a valid input.

  The values for the keys for the new partition must be passed as an array of String objects that must be ordered in the same order as the partition keys appearing in the Amazon S3 prefix. Otherwise AWS Glue will add the values to the wrong keys.
+ `LastAccessTime` – Timestamp.

  The last time at which the partition was accessed.
+ `StorageDescriptor` – A [StorageDescriptor](#aws-glue-api-catalog-partitions-StorageDescriptor) object.

  Provides information about the physical location where the partition is stored.
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  These key-value pairs define partition parameters.
+ `LastAnalyzedTime` – Timestamp.

  The last time at which column statistics were computed for this partition.

## PartitionSpecWithSharedStorageDescriptor structure
<a name="aws-glue-api-catalog-partitions-PartitionSpecWithSharedStorageDescriptor"></a>

A partition specification for partitions that share a physical location.

**Fields**
+ `StorageDescriptor` – A [StorageDescriptor](#aws-glue-api-catalog-partitions-StorageDescriptor) object.

  The shared physical storage information.
+ `Partitions` – An array of [Partition](#aws-glue-api-catalog-partitions-Partition) objects.

  A list of the partitions that share this physical location.

## PartitionListComposingSpec structure
<a name="aws-glue-api-catalog-partitions-PartitionListComposingSpec"></a>

Lists the related partitions.

**Fields**
+ `Partitions` – An array of [Partition](#aws-glue-api-catalog-partitions-Partition) objects.

  A list of the partitions in the composing specification.

## PartitionSpecProxy structure
<a name="aws-glue-api-catalog-partitions-PartitionSpecProxy"></a>

Provides a root path to specified partitions.

**Fields**
+ `DatabaseName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The catalog database in which the partitions reside.
+ `TableName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table that contains the partitions.
+ `RootPath` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The root path of the proxy for addressing the partitions.
+ `PartitionSpecWithSharedSD` – A [PartitionSpecWithSharedStorageDescriptor](#aws-glue-api-catalog-partitions-PartitionSpecWithSharedStorageDescriptor) object.

  A specification of partitions that share the same physical storage location.
+ `PartitionListComposingSpec` – A [PartitionListComposingSpec](#aws-glue-api-catalog-partitions-PartitionListComposingSpec) object.

  Specifies a list of partitions.

## PartitionValueList structure
<a name="aws-glue-api-catalog-partitions-PartitionValueList"></a>

Contains a list of values defining partitions.

**Fields**
+ `Values` – *Required:* An array of UTF-8 strings.

  The list of values.

## Segment structure
<a name="aws-glue-api-catalog-partitions-Segment"></a>

Defines a non-overlapping region of a table's partitions, allowing multiple requests to be run in parallel.

**Fields**
+ `SegmentNumber` – *Required:* Number (integer), not more than None.

  The zero-based index number of the segment. For example, if the total number of segments is 4, `SegmentNumber` values range from 0 through 3.
+ `TotalSegments` – *Required:* Number (integer), not less than 1 or more than 10.

  The total number of segments.

## PartitionError structure
<a name="aws-glue-api-catalog-partitions-PartitionError"></a>

Contains information about a partition error.

**Fields**
+ `PartitionValues` – An array of UTF-8 strings.

  The values that define the partition.
+ `ErrorDetail` – An [ErrorDetail](aws-glue-api-common.md#aws-glue-api-common-ErrorDetail) object.

  The details about the partition error.

## BatchUpdatePartitionFailureEntry structure
<a name="aws-glue-api-catalog-partitions-BatchUpdatePartitionFailureEntry"></a>

Contains information about a batch update partition error.

**Fields**
+ `PartitionValueList` – An array of UTF-8 strings, not more than 100 strings.

  A list of values defining the partitions.
+ `ErrorDetail` – An [ErrorDetail](aws-glue-api-common.md#aws-glue-api-common-ErrorDetail) object.

  The details about the batch update partition error.

## BatchUpdatePartitionRequestEntry structure
<a name="aws-glue-api-catalog-partitions-BatchUpdatePartitionRequestEntry"></a>

A structure that contains the values and structure used to update a partition.

**Fields**
+ `PartitionValueList` – *Required:* An array of UTF-8 strings, not more than 100 strings.

  A list of values defining the partitions.
+ `PartitionInput` – *Required:* A [PartitionInput](#aws-glue-api-catalog-partitions-PartitionInput) object.

  The structure used to update a partition.

## StorageDescriptor structure
<a name="aws-glue-api-catalog-partitions-StorageDescriptor"></a>

Describes the physical storage of table data.

**Fields**
+ `Columns` – An array of [Column](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-Column) objects.

  A list of the `Columns` in the table.
+ `Location` – Location string, not more than 2056 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The physical location of the table. By default, this takes the form of the warehouse location, followed by the database location in the warehouse, followed by the table name.
+ `AdditionalLocations` – An array of UTF-8 strings.

  A list of locations that point to the path where a Delta table is located.
+ `InputFormat` – Format string, not more than 128 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The input format: `SequenceFileInputFormat` (binary), or `TextInputFormat`, or a custom format.
+ `OutputFormat` – Format string, not more than 128 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The output format: `SequenceFileOutputFormat` (binary), or `IgnoreKeyTextOutputFormat`, or a custom format.
+ `Compressed` – Boolean.

  `True` if the data in the table is compressed, or `False` if not.
+ `NumberOfBuckets` – Number (integer).

  Must be specified if the table contains any dimension columns.
+ `SerdeInfo` – A [SerDeInfo](#aws-glue-api-catalog-partitions-SerDeInfo) object.

  The serialization/deserialization (SerDe) information.
+ `BucketColumns` – An array of UTF-8 strings.

  A list of reducer grouping columns, clustering columns, and bucketing columns in the table.
+ `SortColumns` – An array of [Order](aws-glue-api-catalog-tables.md#aws-glue-api-catalog-tables-Order) objects.

  A list specifying the sort order of each bucket in the table.
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  The user-supplied properties in key-value form.
+ `SkewedInfo` – A [SkewedInfo](#aws-glue-api-catalog-partitions-SkewedInfo) object.

  The information about values that appear frequently in a column (skewed values).
+ `StoredAsSubDirectories` – Boolean.

  `True` if the table data is stored in subdirectories, or `False` if not.
+ `SchemaReference` – A [SchemaReference](#aws-glue-api-catalog-partitions-SchemaReference) object.

  An object that references a schema stored in the AWS Glue Schema Registry.

  When creating a table, you can pass an empty list of columns for the schema, and instead use a schema reference.

## SchemaReference structure
<a name="aws-glue-api-catalog-partitions-SchemaReference"></a>

An object that references a schema stored in the AWS Glue Schema Registry.

**Fields**
+ `SchemaId` – A [SchemaId](aws-glue-api-schema-registry-api.md#aws-glue-api-schema-registry-api-SchemaId) object.

  A structure that contains schema identity fields. Either this or the `SchemaVersionId` has to be provided.
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The unique ID assigned to a version of the schema. Either this or the `SchemaId` has to be provided.
+ `SchemaVersionNumber` – Number (long), not less than 1 or more than 100000.

  The version number of the schema.

## SerDeInfo structure
<a name="aws-glue-api-catalog-partitions-SerDeInfo"></a>

Information about a serialization/deserialization program (SerDe) that serves as an extractor and loader.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the SerDe.
+ `SerializationLibrary` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Usually the class that implements the SerDe. An example is `org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe`.
+ `Parameters` – A map array of key-value pairs.

  Each key is a Key string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string, not more than 512000 bytes long.

  These key-value pairs define initialization parameters for the SerDe.

## SkewedInfo structure
<a name="aws-glue-api-catalog-partitions-SkewedInfo"></a>

Specifies skewed values in a table. Skewed values are those that occur with very high frequency.

**Fields**
+ `SkewedColumnNames` – An array of UTF-8 strings.

  A list of names of columns that contain skewed values.
+ `SkewedColumnValues` – An array of UTF-8 strings.

  A list of values that appear so frequently as to be considered skewed.
+ `SkewedColumnValueLocationMaps` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  A mapping of skewed values to the columns that contain them.

## Operations
<a name="aws-glue-api-catalog-partitions-actions"></a>
+ [CreatePartition action (Python: create\$1partition)](#aws-glue-api-catalog-partitions-CreatePartition)
+ [BatchCreatePartition action (Python: batch\$1create\$1partition)](#aws-glue-api-catalog-partitions-BatchCreatePartition)
+ [UpdatePartition action (Python: update\$1partition)](#aws-glue-api-catalog-partitions-UpdatePartition)
+ [DeletePartition action (Python: delete\$1partition)](#aws-glue-api-catalog-partitions-DeletePartition)
+ [BatchDeletePartition action (Python: batch\$1delete\$1partition)](#aws-glue-api-catalog-partitions-BatchDeletePartition)
+ [GetPartition action (Python: get\$1partition)](#aws-glue-api-catalog-partitions-GetPartition)
+ [GetPartitions action (Python: get\$1partitions)](#aws-glue-api-catalog-partitions-GetPartitions)
+ [BatchGetPartition action (Python: batch\$1get\$1partition)](#aws-glue-api-catalog-partitions-BatchGetPartition)
+ [BatchUpdatePartition action (Python: batch\$1update\$1partition)](#aws-glue-api-catalog-partitions-BatchUpdatePartition)
+ [GetColumnStatisticsForPartition action (Python: get\$1column\$1statistics\$1for\$1partition)](#aws-glue-api-catalog-partitions-GetColumnStatisticsForPartition)
+ [UpdateColumnStatisticsForPartition action (Python: update\$1column\$1statistics\$1for\$1partition)](#aws-glue-api-catalog-partitions-UpdateColumnStatisticsForPartition)
+ [DeleteColumnStatisticsForPartition action (Python: delete\$1column\$1statistics\$1for\$1partition)](#aws-glue-api-catalog-partitions-DeleteColumnStatisticsForPartition)

## CreatePartition action (Python: create\$1partition)
<a name="aws-glue-api-catalog-partitions-CreatePartition"></a>

Creates a new partition.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The AWS account ID of the catalog in which the partition is to be created.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the metadata database in which the partition is to be created.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the metadata table in which the partition is to be created.
+ `PartitionInput` – *Required:* A [PartitionInput](#aws-glue-api-catalog-partitions-PartitionInput) object.

  A `PartitionInput` structure defining the partition to be created.

**Response**
+ *No Response parameters.*

**Errors**
+ `InvalidInputException`
+ `AlreadyExistsException`
+ `ResourceNumberLimitExceededException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## BatchCreatePartition action (Python: batch\$1create\$1partition)
<a name="aws-glue-api-catalog-partitions-BatchCreatePartition"></a>

Creates one or more partitions in a batch operation.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the catalog in which the partition is to be created. Currently, this should be the AWS account ID.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the metadata database in which the partition is to be created.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the metadata table in which the partition is to be created.
+ `PartitionInputList` – *Required:* An array of [PartitionInput](#aws-glue-api-catalog-partitions-PartitionInput) objects, not more than 100 structures.

  A list of `PartitionInput` structures that define the partitions to be created.

**Response**
+ `Errors` – An array of [PartitionError](#aws-glue-api-catalog-partitions-PartitionError) objects.

  The errors encountered when trying to create the requested partitions.

**Errors**
+ `InvalidInputException`
+ `AlreadyExistsException`
+ `ResourceNumberLimitExceededException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## UpdatePartition action (Python: update\$1partition)
<a name="aws-glue-api-catalog-partitions-UpdatePartition"></a>

Updates a partition.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the partition to be updated resides. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database in which the table in question resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table in which the partition to be updated is located.
+ `PartitionValueList` – *Required:* An array of UTF-8 strings, not more than 100 strings.

  List of partition key values that define the partition to update.
+ `PartitionInput` – *Required:* A [PartitionInput](#aws-glue-api-catalog-partitions-PartitionInput) object.

  The new partition object to update the partition to.

  The `Values` property can't be changed. If you want to change the partition key values for a partition, delete and recreate the partition.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## DeletePartition action (Python: delete\$1partition)
<a name="aws-glue-api-catalog-partitions-DeletePartition"></a>

Deletes a specified partition.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the partition to be deleted resides. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database in which the table in question resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table that contains the partition to be deleted.
+ `PartitionValues` – *Required:* An array of UTF-8 strings.

  The values that define the partition.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## BatchDeletePartition action (Python: batch\$1delete\$1partition)
<a name="aws-glue-api-catalog-partitions-BatchDeletePartition"></a>

Deletes one or more partitions in a batch operation.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the partition to be deleted resides. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database in which the table in question resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table that contains the partitions to be deleted.
+ `PartitionsToDelete` – *Required:* An array of [PartitionValueList](#aws-glue-api-catalog-partitions-PartitionValueList) objects, not more than 25 structures.

  A list of `PartitionInput` structures that define the partitions to be deleted.

**Response**
+ `Errors` – An array of [PartitionError](#aws-glue-api-catalog-partitions-PartitionError) objects.

  The errors encountered when trying to delete the requested partitions.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetPartition action (Python: get\$1partition)
<a name="aws-glue-api-catalog-partitions-GetPartition"></a>

Retrieves information about a specified partition.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the partition in question resides. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the partition resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partition's table.
+ `PartitionValues` – *Required:* An array of UTF-8 strings.

  The values that define the partition.

**Response**
+ `Partition` – A [Partition](#aws-glue-api-catalog-partitions-Partition) object.

  The requested information, in the form of a `Partition` object.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## GetPartitions action (Python: get\$1partitions)
<a name="aws-glue-api-catalog-partitions-GetPartitions"></a>

Retrieves information about the partitions in a table.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the partitions in question reside. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the partitions reside.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partitions' table.
+ `Expression` – Predicate string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  An expression that filters the partitions to be returned.

  The expression uses SQL syntax similar to the SQL `WHERE` filter clause. The SQL statement parser [JSQLParser](http://jsqlparser.sourceforge.net/home.php) parses the expression. 

  *Operators*: The following are the operators that you can use in the `Expression` API call:  
=  
Checks whether the values of the two operands are equal; if yes, then the condition becomes true.  
Example: Assume 'variable a' holds 10 and 'variable b' holds 20.   
(a = b) is not true.  
< >  
Checks whether the values of two operands are equal; if the values are not equal, then the condition becomes true.  
Example: (a < > b) is true.  
>  
Checks whether the value of the left operand is greater than the value of the right operand; if yes, then the condition becomes true.  
Example: (a > b) is not true.  
<  
Checks whether the value of the left operand is less than the value of the right operand; if yes, then the condition becomes true.  
Example: (a < b) is true.  
>=  
Checks whether the value of the left operand is greater than or equal to the value of the right operand; if yes, then the condition becomes true.  
Example: (a >= b) is not true.  
<=  
Checks whether the value of the left operand is less than or equal to the value of the right operand; if yes, then the condition becomes true.  
Example: (a <= b) is true.  
AND, OR, IN, BETWEEN, LIKE, NOT, IS NULL  
Logical operators.

  *Supported Partition Key Types*: The following are the supported partition keys.
  + `string`
  + `date`
  + `timestamp`
  + `int`
  + `bigint`
  + `long`
  + `tinyint`
  + `smallint`
  + `decimal`

  If an type is encountered that is not valid, an exception is thrown. 

  The following list shows the valid operators on each type. When you define a crawler, the `partitionKey` type is created as a `STRING`, to be compatible with the catalog partitions. 

  *Sample API Call*:   
**Example**  

  The table `twitter_partition` has three partitions:

  ```
  year = 2015
          year = 2016
          year = 2017
  ```  
**Example**  

  Get partition `year` equal to 2015

  ```
  aws glue get-partitions --database-name dbname --table-name twitter_partition 
          --expression "year*=*'2015'"
  ```  
**Example**  

  Get partition `year` between 2016 and 2018 (exclusive)

  ```
  aws glue get-partitions --database-name dbname --table-name twitter_partition 
          --expression "year>'2016' AND year<'2018'"
  ```  
**Example**  

  Get partition `year` between 2015 and 2018 (inclusive). The following API calls are equivalent to each other:

  ```
  aws glue get-partitions --database-name dbname --table-name twitter_partition 
          --expression "year>='2015' AND year<='2018'"
          
          aws glue get-partitions --database-name dbname --table-name twitter_partition 
          --expression "year BETWEEN 2015 AND 2018"
          
          aws glue get-partitions --database-name dbname --table-name twitter_partition 
          --expression "year IN (2015,2016,2017,2018)"
  ```  
**Example**  

  A wildcard partition filter, where the following call output is partition year=2017. A regular expression is not supported in `LIKE`.

  ```
  aws glue get-partitions --database-name dbname --table-name twitter_partition 
          --expression "year LIKE '%7'"
  ```
+ `NextToken` – UTF-8 string.

  A continuation token, if this is not the first call to retrieve these partitions.
+ `Segment` – A [Segment](#aws-glue-api-catalog-partitions-Segment) object.

  The segment of the table's partitions to scan in this request.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of partitions to return in a single response.
+ `ExcludeColumnSchema` – Boolean.

  When true, specifies not returning the partition column schema. Useful when you are interested only in other partition attributes such as partition values or location. This approach avoids the problem of a large response by not returning duplicate data.
+ `TransactionId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #44](aws-glue-api-common.md#regex_44).

  The transaction ID at which to read the partition contents.
+ `QueryAsOfTime` – Timestamp.

  The time as of when to read the partition contents. If not set, the most recent transaction commit time will be used. Cannot be specified along with `TransactionId`.

**Response**
+ `Partitions` – An array of [Partition](#aws-glue-api-catalog-partitions-Partition) objects.

  A list of requested partitions.
+ `NextToken` – UTF-8 string.

  A continuation token, if the returned list of partitions does not include the last one.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `GlueEncryptionException`
+ `InvalidStateException`
+ `ResourceNotReadyException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## BatchGetPartition action (Python: batch\$1get\$1partition)
<a name="aws-glue-api-catalog-partitions-BatchGetPartition"></a>

Retrieves partitions in a batch request.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the partitions reside.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partitions' table.
+ `PartitionsToGet` – *Required:* An array of [PartitionValueList](#aws-glue-api-catalog-partitions-PartitionValueList) objects, not more than 1000 structures.

  A list of partition values identifying the partitions to retrieve.

**Response**
+ `Partitions` – An array of [Partition](#aws-glue-api-catalog-partitions-Partition) objects.

  A list of the requested partitions.
+ `UnprocessedKeys` – An array of [PartitionValueList](#aws-glue-api-catalog-partitions-PartitionValueList) objects, not more than 1000 structures.

  A list of the partition values in the request for which partitions were not returned.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `GlueEncryptionException`
+ `InvalidStateException`
+ `FederationSourceException`
+ `FederationSourceRetryableException`

## BatchUpdatePartition action (Python: batch\$1update\$1partition)
<a name="aws-glue-api-catalog-partitions-BatchUpdatePartition"></a>

Updates one or more partitions in a batch operation.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the catalog in which the partition is to be updated. Currently, this should be the AWS account ID.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the metadata database in which the partition is to be updated.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the metadata table in which the partition is to be updated.
+ `Entries` – *Required:* An array of [BatchUpdatePartitionRequestEntry](#aws-glue-api-catalog-partitions-BatchUpdatePartitionRequestEntry) objects, not less than 1 or more than 100 structures.

  A list of up to 100 `BatchUpdatePartitionRequestEntry` objects to update.

**Response**
+ `Errors` – An array of [BatchUpdatePartitionFailureEntry](#aws-glue-api-catalog-partitions-BatchUpdatePartitionFailureEntry) objects.

  The errors encountered when trying to update the requested partitions. A list of `BatchUpdatePartitionFailureEntry` objects.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `GlueEncryptionException`

## GetColumnStatisticsForPartition action (Python: get\$1column\$1statistics\$1for\$1partition)
<a name="aws-glue-api-catalog-partitions-GetColumnStatisticsForPartition"></a>

Retrieves partition statistics of columns.

The Identity and Access Management (IAM) permission required for this operation is `GetPartition`.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the partitions reside.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partitions' table.
+ `PartitionValues` – *Required:* An array of UTF-8 strings.

  A list of partition values identifying the partition.
+ `ColumnNames` – *Required:* An array of UTF-8 strings, not more than 100 strings.

  A list of the column names.

**Response**
+ `ColumnStatisticsList` – An array of [ColumnStatistics](aws-glue-api-common.md#aws-glue-api-common-ColumnStatistics) objects.

  List of ColumnStatistics that failed to be retrieved.
+ `Errors` – An array of [ColumnError](aws-glue-api-common.md#aws-glue-api-common-ColumnError) objects.

  Error occurred during retrieving column statistics data.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## UpdateColumnStatisticsForPartition action (Python: update\$1column\$1statistics\$1for\$1partition)
<a name="aws-glue-api-catalog-partitions-UpdateColumnStatisticsForPartition"></a>

Creates or updates partition statistics of columns.

The Identity and Access Management (IAM) permission required for this operation is `UpdatePartition`.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the partitions reside.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partitions' table.
+ `PartitionValues` – *Required:* An array of UTF-8 strings.

  A list of partition values identifying the partition.
+ `ColumnStatisticsList` – *Required:* An array of [ColumnStatistics](aws-glue-api-common.md#aws-glue-api-common-ColumnStatistics) objects, not more than 25 structures.

  A list of the column statistics.

**Response**
+ `Errors` – An array of [ColumnStatisticsError](aws-glue-api-common.md#aws-glue-api-common-ColumnStatisticsError) objects.

  Error occurred during updating column statistics data.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## DeleteColumnStatisticsForPartition action (Python: delete\$1column\$1statistics\$1for\$1partition)
<a name="aws-glue-api-catalog-partitions-DeleteColumnStatisticsForPartition"></a>

Delete the partition column statistics of a column.

The Identity and Access Management (IAM) permission required for this operation is `DeletePartition`.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the partitions in question reside. If none is supplied, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the partitions reside.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the partitions' table.
+ `PartitionValues` – *Required:* An array of UTF-8 strings.

  A list of partition values identifying the partition.
+ `ColumnName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the column.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

# Connections API
<a name="aws-glue-api-catalog-connections"></a>

The Connections API describes the data types and API related to working with connections in AWS Glue.

**Topics**
+ [

# Connection API
](aws-glue-api-catalog-connections-connections.md)
+ [

# Connection Types API
](aws-glue-api-catalog-connections-connections-type.md)
+ [

# Connection Metadata and Preview API
](aws-glue-api-catalog-connections-connections-metadata.md)

# Connection API
<a name="aws-glue-api-catalog-connections-connections"></a>

The Connection API describes AWS Glue connection data types, and the API for creating, deleting, updating, and listing connections.

## Data types
<a name="aws-glue-api-catalog-connections-connections-objects"></a>
+ [Connection structure](#aws-glue-api-catalog-connections-connections-Connection)
+ [ConnectionInput structure](#aws-glue-api-catalog-connections-connections-ConnectionInput)
+ [TestConnectionInput structure](#aws-glue-api-catalog-connections-connections-TestConnectionInput)
+ [PhysicalConnectionRequirements structure](#aws-glue-api-catalog-connections-connections-PhysicalConnectionRequirements)
+ [GetConnectionsFilter structure](#aws-glue-api-catalog-connections-connections-GetConnectionsFilter)
+ [AuthenticationConfiguration structure](#aws-glue-api-catalog-connections-connections-AuthenticationConfiguration)
+ [AuthenticationConfigurationInput structure](#aws-glue-api-catalog-connections-connections-AuthenticationConfigurationInput)
+ [OAuth2Properties structure](#aws-glue-api-catalog-connections-connections-OAuth2Properties)
+ [OAuth2PropertiesInput structure](#aws-glue-api-catalog-connections-connections-OAuth2PropertiesInput)
+ [OAuth2ClientApplication structure](#aws-glue-api-catalog-connections-connections-OAuth2ClientApplication)
+ [AuthorizationCodeProperties structure](#aws-glue-api-catalog-connections-connections-AuthorizationCodeProperties)
+ [BasicAuthenticationCredentials structure](#aws-glue-api-catalog-connections-connections-BasicAuthenticationCredentials)
+ [OAuth2Credentials structure](#aws-glue-api-catalog-connections-connections-OAuth2Credentials)

## Connection structure
<a name="aws-glue-api-catalog-connections-connections-Connection"></a>

Defines a connection to a data source.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection definition.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The description of the connection.
+ `ConnectionType` – UTF-8 string (valid values: `JDBC` \$1 `SFTP` \$1 `MONGODB` \$1 `KAFKA` \$1 `NETWORK` \$1 `MARKETPLACE` \$1 `CUSTOM` \$1 `SALESFORCE` \$1 `VIEW_VALIDATION_REDSHIFT` \$1 `VIEW_VALIDATION_ATHENA` \$1 `GOOGLEADS` \$1 `GOOGLESHEETS` \$1 `GOOGLEANALYTICS4` \$1 `SERVICENOW` \$1 `MARKETO` \$1 `SAPODATA` \$1 `ZENDESK` \$1 `JIRACLOUD` \$1 `NETSUITEERP` \$1 `HUBSPOT` \$1 `FACEBOOKADS` \$1 `INSTAGRAMADS` \$1 `ZOHOCRM` \$1 `SALESFORCEPARDOT` \$1 `SALESFORCEMARKETINGCLOUD` \$1 `ADOBEANALYTICS` \$1 `SLACK` \$1 `LINKEDIN` \$1 `MIXPANEL` \$1 `ASANA` \$1 `STRIPE` \$1 `SMARTSHEET` \$1 `DATADOG` \$1 `WOOCOMMERCE` \$1 `INTERCOM` \$1 `SNAPCHATADS` \$1 `PAYPAL` \$1 `QUICKBOOKS` \$1 `FACEBOOKPAGEINSIGHTS` \$1 `FRESHDESK` \$1 `TWILIO` \$1 `DOCUSIGNMONITOR` \$1 `FRESHSALES` \$1 `ZOOM` \$1 `GOOGLESEARCHCONSOLE` \$1 `SALESFORCECOMMERCECLOUD` \$1 `SAPCONCUR` \$1 `DYNATRACE` \$1 `MICROSOFTDYNAMIC365FINANCEANDOPS` \$1 `MICROSOFTTEAMS` \$1 `BLACKBAUDRAISEREDGENXT` \$1 `MAILCHIMP` \$1 `GITLAB` \$1 `PENDO` \$1 `PRODUCTBOARD` \$1 `CIRCLECI` \$1 `PIPEDIVE` \$1 `SENDGRID` \$1 `AZURECOSMOS` \$1 `AZURESQL` \$1 `BIGQUERY` \$1 `BLACKBAUD` \$1 `CLOUDERAHIVE` \$1 `CLOUDERAIMPALA` \$1 `CLOUDWATCH` \$1 `CLOUDWATCHMETRICS` \$1 `CMDB` \$1 `DATALAKEGEN2` \$1 `DB2` \$1 `DB2AS400` \$1 `DOCUMENTDB` \$1 `DOMO` \$1 `DYNAMODB` \$1 `GOOGLECLOUDSTORAGE` \$1 `HBASE` \$1 `KUSTOMER` \$1 `MICROSOFTDYNAMICS365CRM` \$1 `MONDAY` \$1 `MYSQL` \$1 `OKTA` \$1 `OPENSEARCH` \$1 `ORACLE` \$1 `PIPEDRIVE` \$1 `POSTGRESQL` \$1 `SAPHANA` \$1 `SQLSERVER` \$1 `SYNAPSE` \$1 `TERADATA` \$1 `TERADATANOS` \$1 `TIMESTREAM` \$1 `TPCDS` \$1 `VERTICA`).

  The type of the connection. Currently, SFTP is not supported.
+ `MatchCriteria` – An array of UTF-8 strings, not more than 10 strings.

  A list of criteria that can be used in selecting this connection.
+ `ConnectionProperties` – A map array of key-value pairs, not more than 100 pairs.

  Each key is a UTF-8 string (valid values: `HOST` \$1 `PORT` \$1 `USERNAME="USER_NAME"` \$1 `PASSWORD` \$1 `ENCRYPTED_PASSWORD` \$1 `JDBC_DRIVER_JAR_URI` \$1 `JDBC_DRIVER_CLASS_NAME` \$1 `JDBC_ENGINE` \$1 `JDBC_ENGINE_VERSION` \$1 `CONFIG_FILES` \$1 `INSTANCE_ID` \$1 `JDBC_CONNECTION_URL` \$1 `JDBC_ENFORCE_SSL` \$1 `CUSTOM_JDBC_CERT` \$1 `SKIP_CUSTOM_JDBC_CERT_VALIDATION` \$1 `CUSTOM_JDBC_CERT_STRING` \$1 `CONNECTION_URL` \$1 `KAFKA_BOOTSTRAP_SERVERS` \$1 `KAFKA_SSL_ENABLED` \$1 `KAFKA_CUSTOM_CERT` \$1 `KAFKA_SKIP_CUSTOM_CERT_VALIDATION` \$1 `KAFKA_CLIENT_KEYSTORE` \$1 `KAFKA_CLIENT_KEYSTORE_PASSWORD` \$1 `KAFKA_CLIENT_KEY_PASSWORD` \$1 `ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD` \$1 `ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD` \$1 `KAFKA_SASL_MECHANISM` \$1 `KAFKA_SASL_PLAIN_USERNAME` \$1 `KAFKA_SASL_PLAIN_PASSWORD` \$1 `ENCRYPTED_KAFKA_SASL_PLAIN_PASSWORD` \$1 `KAFKA_SASL_SCRAM_USERNAME` \$1 `KAFKA_SASL_SCRAM_PASSWORD` \$1 `KAFKA_SASL_SCRAM_SECRETS_ARN` \$1 `ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD` \$1 `KAFKA_SASL_GSSAPI_KEYTAB` \$1 `KAFKA_SASL_GSSAPI_KRB5_CONF` \$1 `KAFKA_SASL_GSSAPI_SERVICE` \$1 `KAFKA_SASL_GSSAPI_PRINCIPAL` \$1 `SECRET_ID` \$1 `CONNECTOR_URL` \$1 `CONNECTOR_TYPE` \$1 `CONNECTOR_CLASS_NAME` \$1 `ENDPOINT` \$1 `ENDPOINT_TYPE` \$1 `ROLE_ARN` \$1 `REGION` \$1 `WORKGROUP_NAME` \$1 `CLUSTER_IDENTIFIER` \$1 `DATABASE`).

  Each value is a Value string, not less than 1 or more than 1024 bytes long.

  These key-value pairs define parameters for the connection when using the version 1 Connection schema:
  + `HOST` - The host URI: either the fully qualified domain name (FQDN) or the IPv4 address of the database host.
  + `PORT` - The port number, between 1024 and 65535, of the port on which the database host is listening for database connections.
  + `USER_NAME` - The name under which to log in to the database. The value string for `USER_NAME` is "`USERNAME`".
  + `PASSWORD` - A password, if one is used, for the user name.
  + `ENCRYPTED_PASSWORD` - When you enable connection password protection by setting `ConnectionPasswordEncryption` in the Data Catalog encryption settings, this field stores the encrypted password.
  + `JDBC_DRIVER_JAR_URI` - The Amazon Simple Storage Service (Amazon S3) path of the JAR file that contains the JDBC driver to use.
  + `JDBC_DRIVER_CLASS_NAME` - The class name of the JDBC driver to use.
  + `JDBC_ENGINE` - The name of the JDBC engine to use.
  + `JDBC_ENGINE_VERSION` - The version of the JDBC engine to use.
  + `CONFIG_FILES` - (Reserved for future use.)
  + `INSTANCE_ID` - The instance ID to use.
  + `JDBC_CONNECTION_URL` - The URL for connecting to a JDBC data source.
  + `JDBC_ENFORCE_SSL` - A case-insensitive Boolean string (true, false) specifying whether Secure Sockets Layer (SSL) with hostname matching is enforced for the JDBC connection on the client. The default is false.
  + `CUSTOM_JDBC_CERT` - An Amazon S3 location specifying the customer's root certificate. AWS Glue uses this root certificate to validate the customer's certificate when connecting to the customer database. AWS Glue only handles X.509 certificates. The certificate provided must be DER-encoded and supplied in Base64 encoding PEM format.
  + `SKIP_CUSTOM_JDBC_CERT_VALIDATION` - By default, this is `false`. AWS Glue validates the Signature algorithm and Subject Public Key Algorithm for the customer certificate. The only permitted algorithms for the Signature algorithm are SHA256withRSA, SHA384withRSA or SHA512withRSA. For the Subject Public Key Algorithm, the key length must be at least 2048. You can set the value of this property to `true` to skip AWS Glue's validation of the customer certificate.
  + `CUSTOM_JDBC_CERT_STRING` - A custom JDBC certificate string which is used for domain match or distinguished name match to prevent a man-in-the-middle attack. In Oracle database, this is used as the `SSL_SERVER_CERT_DN`; in Microsoft SQL Server, this is used as the `hostNameInCertificate`.
  + `CONNECTION_URL` - The URL for connecting to a general (non-JDBC) data source.
  + `SECRET_ID` - The secret ID used for the secret manager of credentials.
  + `CONNECTOR_URL` - The connector URL for a MARKETPLACE or CUSTOM connection.
  + `CONNECTOR_TYPE` - The connector type for a MARKETPLACE or CUSTOM connection.
  + `CONNECTOR_CLASS_NAME` - The connector class name for a MARKETPLACE or CUSTOM connection.
  + `KAFKA_BOOTSTRAP_SERVERS` - A comma-separated list of host and port pairs that are the addresses of the Apache Kafka brokers in a Kafka cluster to which a Kafka client will connect to and bootstrap itself.
  + `KAFKA_SSL_ENABLED` - Whether to enable or disable SSL on an Apache Kafka connection. Default value is "true".
  + `KAFKA_CUSTOM_CERT` - The Amazon S3 URL for the private CA cert file (.pem format). The default is an empty string.
  + `KAFKA_SKIP_CUSTOM_CERT_VALIDATION` - Whether to skip the validation of the CA cert file or not. AWS Glue validates for three algorithms: SHA256withRSA, SHA384withRSA and SHA512withRSA. Default value is "false".
  + `KAFKA_CLIENT_KEYSTORE` - The Amazon S3 location of the client keystore file for Kafka client side authentication (Optional).
  + `KAFKA_CLIENT_KEYSTORE_PASSWORD` - The password to access the provided keystore (Optional).
  + `KAFKA_CLIENT_KEY_PASSWORD` - A keystore can consist of multiple keys, so this is the password to access the client key to be used with the Kafka server side key (Optional).
  + `ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD` - The encrypted version of the Kafka client keystore password (if the user has the AWS Glue encrypt passwords setting selected).
  + `ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD` - The encrypted version of the Kafka client key password (if the user has the AWS Glue encrypt passwords setting selected).
  + `KAFKA_SASL_MECHANISM` - `"SCRAM-SHA-512"`, `"GSSAPI"`, `"AWS_MSK_IAM"`, or `"PLAIN"`. These are the supported [SASL Mechanisms](https://www.iana.org/assignments/sasl-mechanisms/sasl-mechanisms.xhtml).
  + `KAFKA_SASL_PLAIN_USERNAME` - A plaintext username used to authenticate with the "PLAIN" mechanism.
  + `KAFKA_SASL_PLAIN_PASSWORD` - A plaintext password used to authenticate with the "PLAIN" mechanism.
  + `ENCRYPTED_KAFKA_SASL_PLAIN_PASSWORD` - The encrypted version of the Kafka SASL PLAIN password (if the user has the AWS Glue encrypt passwords setting selected).
  + `KAFKA_SASL_SCRAM_USERNAME` - A plaintext username used to authenticate with the "SCRAM-SHA-512" mechanism.
  + `KAFKA_SASL_SCRAM_PASSWORD` - A plaintext password used to authenticate with the "SCRAM-SHA-512" mechanism.
  + `ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD` - The encrypted version of the Kafka SASL SCRAM password (if the user has the AWS Glue encrypt passwords setting selected).
  + `KAFKA_SASL_SCRAM_SECRETS_ARN` - The Amazon Resource Name of a secret in AWS Secrets Manager.
  + `KAFKA_SASL_GSSAPI_KEYTAB` - The S3 location of a Kerberos `keytab` file. A keytab stores long-term keys for one or more principals. For more information, see [MIT Kerberos Documentation: Keytab](https://web.mit.edu/kerberos/krb5-latest/doc/basic/keytab_def.html).
  + `KAFKA_SASL_GSSAPI_KRB5_CONF` - The S3 location of a Kerberos `krb5.conf` file. A krb5.conf stores Kerberos configuration information, such as the location of the KDC server. For more information, see [MIT Kerberos Documentation: krb5.conf](https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html).
  + `KAFKA_SASL_GSSAPI_SERVICE` - The Kerberos service name, as set with `sasl.kerberos.service.name` in your [Kafka Configuration](https://kafka.apache.org/documentation/#brokerconfigs_sasl.kerberos.service.name).
  + `KAFKA_SASL_GSSAPI_PRINCIPAL` - The name of the Kerberos princial used by AWS Glue. For more information, see [Kafka Documentation: Configuring Kafka Brokers](https://kafka.apache.org/documentation/#security_sasl_kerberos_clientconfig).
  + `ROLE_ARN` - The role to be used for running queries.
  + `REGION` - The AWS Region where queries will be run.
  + `WORKGROUP_NAME` - The name of an Amazon Redshift serverless workgroup or Amazon Athena workgroup in which queries will run.
  + `CLUSTER_IDENTIFIER` - The cluster identifier of an Amazon Redshift cluster in which queries will run.
  + `DATABASE` - The Amazon Redshift database that you are connecting to.
+ `SparkProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not less than 1 or more than 2048 bytes long.

  Connection properties specific to the Spark compute environment.
+ `AthenaProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not less than 1 or more than 2048 bytes long.

  Connection properties specific to the Athena compute environment.
+ `PythonProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not less than 1 or more than 2048 bytes long.

  Connection properties specific to the Python compute environment.
+ `PhysicalConnectionRequirements` – A [PhysicalConnectionRequirements](#aws-glue-api-catalog-connections-connections-PhysicalConnectionRequirements) object.

  The physical connection requirements, such as virtual private cloud (VPC) and `SecurityGroup`, that are needed to make this connection successfully.
+ `CreationTime` – Timestamp.

  The timestamp of the time that this connection definition was created.
+ `LastUpdatedTime` – Timestamp.

  The timestamp of the last time the connection definition was updated.
+ `LastUpdatedBy` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The user, group, or role that last updated this connection definition.
+ `Status` – UTF-8 string (valid values: `READY` \$1 `IN_PROGRESS` \$1 `FAILED`).

  The status of the connection. Can be one of: `READY`, `IN_PROGRESS`, or `FAILED`.
+ `StatusReason` – UTF-8 string, not less than 1 or more than 16384 bytes long.

  The reason for the connection status.
+ `LastConnectionValidationTime` – Timestamp.

  A timestamp of the time this connection was last validated.
+ `AuthenticationConfiguration` – An [AuthenticationConfiguration](#aws-glue-api-catalog-connections-connections-AuthenticationConfiguration) object.

  The authentication properties of the connection.
+ `ConnectionSchemaVersion` – Number (integer), not less than 1 or more than 2.

  The version of the connection schema for this connection. Version 2 supports properties for specific compute environments.
+ `CompatibleComputeEnvironments` – An array of UTF-8 strings.

  A list of compute environments compatible with the connection.

## ConnectionInput structure
<a name="aws-glue-api-catalog-connections-connections-ConnectionInput"></a>

A structure that is used to specify a connection to create or update.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The description of the connection.
+ `ConnectionType` – *Required:* UTF-8 string (valid values: `JDBC` \$1 `SFTP` \$1 `MONGODB` \$1 `KAFKA` \$1 `NETWORK` \$1 `MARKETPLACE` \$1 `CUSTOM` \$1 `SALESFORCE` \$1 `VIEW_VALIDATION_REDSHIFT` \$1 `VIEW_VALIDATION_ATHENA` \$1 `GOOGLEADS` \$1 `GOOGLESHEETS` \$1 `GOOGLEANALYTICS4` \$1 `SERVICENOW` \$1 `MARKETO` \$1 `SAPODATA` \$1 `ZENDESK` \$1 `JIRACLOUD` \$1 `NETSUITEERP` \$1 `HUBSPOT` \$1 `FACEBOOKADS` \$1 `INSTAGRAMADS` \$1 `ZOHOCRM` \$1 `SALESFORCEPARDOT` \$1 `SALESFORCEMARKETINGCLOUD` \$1 `ADOBEANALYTICS` \$1 `SLACK` \$1 `LINKEDIN` \$1 `MIXPANEL` \$1 `ASANA` \$1 `STRIPE` \$1 `SMARTSHEET` \$1 `DATADOG` \$1 `WOOCOMMERCE` \$1 `INTERCOM` \$1 `SNAPCHATADS` \$1 `PAYPAL` \$1 `QUICKBOOKS` \$1 `FACEBOOKPAGEINSIGHTS` \$1 `FRESHDESK` \$1 `TWILIO` \$1 `DOCUSIGNMONITOR` \$1 `FRESHSALES` \$1 `ZOOM` \$1 `GOOGLESEARCHCONSOLE` \$1 `SALESFORCECOMMERCECLOUD` \$1 `SAPCONCUR` \$1 `DYNATRACE` \$1 `MICROSOFTDYNAMIC365FINANCEANDOPS` \$1 `MICROSOFTTEAMS` \$1 `BLACKBAUDRAISEREDGENXT` \$1 `MAILCHIMP` \$1 `GITLAB` \$1 `PENDO` \$1 `PRODUCTBOARD` \$1 `CIRCLECI` \$1 `PIPEDIVE` \$1 `SENDGRID` \$1 `AZURECOSMOS` \$1 `AZURESQL` \$1 `BIGQUERY` \$1 `BLACKBAUD` \$1 `CLOUDERAHIVE` \$1 `CLOUDERAIMPALA` \$1 `CLOUDWATCH` \$1 `CLOUDWATCHMETRICS` \$1 `CMDB` \$1 `DATALAKEGEN2` \$1 `DB2` \$1 `DB2AS400` \$1 `DOCUMENTDB` \$1 `DOMO` \$1 `DYNAMODB` \$1 `GOOGLECLOUDSTORAGE` \$1 `HBASE` \$1 `KUSTOMER` \$1 `MICROSOFTDYNAMICS365CRM` \$1 `MONDAY` \$1 `MYSQL` \$1 `OKTA` \$1 `OPENSEARCH` \$1 `ORACLE` \$1 `PIPEDRIVE` \$1 `POSTGRESQL` \$1 `SAPHANA` \$1 `SQLSERVER` \$1 `SYNAPSE` \$1 `TERADATA` \$1 `TERADATANOS` \$1 `TIMESTREAM` \$1 `TPCDS` \$1 `VERTICA`).

  The type of the connection. Currently, these types are supported:
  + `JDBC` - Designates a connection to a database through Java Database Connectivity (JDBC).

    `JDBC` Connections use the following ConnectionParameters.
    + Required: All of (`HOST`, `PORT`, `JDBC_ENGINE`) or `JDBC_CONNECTION_URL`.
    + Required: All of (`USERNAME`, `PASSWORD`) or `SECRET_ID`.
    + Optional: `JDBC_ENFORCE_SSL`, `CUSTOM_JDBC_CERT`, `CUSTOM_JDBC_CERT_STRING`, `SKIP_CUSTOM_JDBC_CERT_VALIDATION`. These parameters are used to configure SSL with JDBC.
  + `KAFKA` - Designates a connection to an Apache Kafka streaming platform.

    `KAFKA` Connections use the following ConnectionParameters.
    + Required: `KAFKA_BOOTSTRAP_SERVERS`.
    + Optional: `KAFKA_SSL_ENABLED`, `KAFKA_CUSTOM_CERT`, `KAFKA_SKIP_CUSTOM_CERT_VALIDATION`. These parameters are used to configure SSL with `KAFKA`.
    + Optional: `KAFKA_CLIENT_KEYSTORE`, `KAFKA_CLIENT_KEYSTORE_PASSWORD`, `KAFKA_CLIENT_KEY_PASSWORD`, `ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD`, `ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD`. These parameters are used to configure TLS client configuration with SSL in `KAFKA`.
    + Optional: `KAFKA_SASL_MECHANISM`. Can be specified as `SCRAM-SHA-512`, `GSSAPI`, or `AWS_MSK_IAM`.
    + Optional: `KAFKA_SASL_SCRAM_USERNAME`, `KAFKA_SASL_SCRAM_PASSWORD`, `ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD`. These parameters are used to configure SASL/SCRAM-SHA-512 authentication with `KAFKA`.
    + Optional: `KAFKA_SASL_GSSAPI_KEYTAB`, `KAFKA_SASL_GSSAPI_KRB5_CONF`, `KAFKA_SASL_GSSAPI_SERVICE`, `KAFKA_SASL_GSSAPI_PRINCIPAL`. These parameters are used to configure SASL/GSSAPI authentication with `KAFKA`.
  + `MONGODB` - Designates a connection to a MongoDB document database.

    `MONGODB` Connections use the following ConnectionParameters.
    + Required: `CONNECTION_URL`.
    + Required: All of (`USERNAME`, `PASSWORD`) or `SECRET_ID`.
  + `VIEW_VALIDATION_REDSHIFT` - Designates a connection used for view validation by Amazon Redshift.
  + `VIEW_VALIDATION_ATHENA` - Designates a connection used for view validation by Amazon Athena.
  + `NETWORK` - Designates a network connection to a data source within an Amazon Virtual Private Cloud environment (Amazon VPC).

    `NETWORK` Connections do not require ConnectionParameters. Instead, provide a PhysicalConnectionRequirements.
  + `MARKETPLACE` - Uses configuration settings contained in a connector purchased from AWS Marketplace to read from and write to data stores that are not natively supported by AWS Glue.

    `MARKETPLACE` Connections use the following ConnectionParameters.
    + Required: `CONNECTOR_TYPE`, `CONNECTOR_URL`, `CONNECTOR_CLASS_NAME`, `CONNECTION_URL`.
    + Required for `JDBC` `CONNECTOR_TYPE` connections: All of (`USERNAME`, `PASSWORD`) or `SECRET_ID`.
  + `CUSTOM` - Uses configuration settings contained in a custom connector to read from and write to data stores that are not natively supported by AWS Glue.

  For more information on the connection parameters needed for a particular connector, see the documentation for the connector in [Adding an AWS Glue connection](https://docs.aws.amazon.com/glue/latest/dg/console-connections.html)in the AWS Glue User Guide.

  `SFTP` is not supported.

  For more information about how optional ConnectionProperties are used to configure features in AWS Glue, consult [AWS Glue connection properties](https://docs.aws.amazon.com/glue/latest/dg/connection-defining.html).

  For more information about how optional ConnectionProperties are used to configure features in AWS Glue Studio, consult [Using connectors and connections](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html).
+ `MatchCriteria` – An array of UTF-8 strings, not more than 10 strings.

  A list of criteria that can be used in selecting this connection.
+ `ConnectionProperties` – *Required:* A map array of key-value pairs, not more than 100 pairs.

  Each key is a UTF-8 string (valid values: `HOST` \$1 `PORT` \$1 `USERNAME="USER_NAME"` \$1 `PASSWORD` \$1 `ENCRYPTED_PASSWORD` \$1 `JDBC_DRIVER_JAR_URI` \$1 `JDBC_DRIVER_CLASS_NAME` \$1 `JDBC_ENGINE` \$1 `JDBC_ENGINE_VERSION` \$1 `CONFIG_FILES` \$1 `INSTANCE_ID` \$1 `JDBC_CONNECTION_URL` \$1 `JDBC_ENFORCE_SSL` \$1 `CUSTOM_JDBC_CERT` \$1 `SKIP_CUSTOM_JDBC_CERT_VALIDATION` \$1 `CUSTOM_JDBC_CERT_STRING` \$1 `CONNECTION_URL` \$1 `KAFKA_BOOTSTRAP_SERVERS` \$1 `KAFKA_SSL_ENABLED` \$1 `KAFKA_CUSTOM_CERT` \$1 `KAFKA_SKIP_CUSTOM_CERT_VALIDATION` \$1 `KAFKA_CLIENT_KEYSTORE` \$1 `KAFKA_CLIENT_KEYSTORE_PASSWORD` \$1 `KAFKA_CLIENT_KEY_PASSWORD` \$1 `ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD` \$1 `ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD` \$1 `KAFKA_SASL_MECHANISM` \$1 `KAFKA_SASL_PLAIN_USERNAME` \$1 `KAFKA_SASL_PLAIN_PASSWORD` \$1 `ENCRYPTED_KAFKA_SASL_PLAIN_PASSWORD` \$1 `KAFKA_SASL_SCRAM_USERNAME` \$1 `KAFKA_SASL_SCRAM_PASSWORD` \$1 `KAFKA_SASL_SCRAM_SECRETS_ARN` \$1 `ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD` \$1 `KAFKA_SASL_GSSAPI_KEYTAB` \$1 `KAFKA_SASL_GSSAPI_KRB5_CONF` \$1 `KAFKA_SASL_GSSAPI_SERVICE` \$1 `KAFKA_SASL_GSSAPI_PRINCIPAL` \$1 `SECRET_ID` \$1 `CONNECTOR_URL` \$1 `CONNECTOR_TYPE` \$1 `CONNECTOR_CLASS_NAME` \$1 `ENDPOINT` \$1 `ENDPOINT_TYPE` \$1 `ROLE_ARN` \$1 `REGION` \$1 `WORKGROUP_NAME` \$1 `CLUSTER_IDENTIFIER` \$1 `DATABASE`).

  Each value is a Value string, not less than 1 or more than 1024 bytes long.

  These key-value pairs define parameters for the connection.
+ `SparkProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not less than 1 or more than 2048 bytes long.

  Connection properties specific to the Spark compute environment.
+ `AthenaProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not less than 1 or more than 2048 bytes long.

  Connection properties specific to the Athena compute environment.
+ `PythonProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not less than 1 or more than 2048 bytes long.

  Connection properties specific to the Python compute environment.
+ `PhysicalConnectionRequirements` – A [PhysicalConnectionRequirements](#aws-glue-api-catalog-connections-connections-PhysicalConnectionRequirements) object.

  The physical connection requirements, such as virtual private cloud (VPC) and `SecurityGroup`, that are needed to successfully make this connection.
+ `AuthenticationConfiguration` – An [AuthenticationConfigurationInput](#aws-glue-api-catalog-connections-connections-AuthenticationConfigurationInput) object.

  The authentication properties of the connection.
+ `ValidateCredentials` – Boolean.

  A flag to validate the credentials during create connection. Default is true. 
+ `ValidateForComputeEnvironments` – An array of UTF-8 strings.

  The compute environments that the specified connection properties are validated against.

## TestConnectionInput structure
<a name="aws-glue-api-catalog-connections-connections-TestConnectionInput"></a>

A structure that is used to specify testing a connection to a service.

**Fields**
+ `ConnectionType` – *Required:* UTF-8 string (valid values: `JDBC` \$1 `SFTP` \$1 `MONGODB` \$1 `KAFKA` \$1 `NETWORK` \$1 `MARKETPLACE` \$1 `CUSTOM` \$1 `SALESFORCE` \$1 `VIEW_VALIDATION_REDSHIFT` \$1 `VIEW_VALIDATION_ATHENA` \$1 `GOOGLEADS` \$1 `GOOGLESHEETS` \$1 `GOOGLEANALYTICS4` \$1 `SERVICENOW` \$1 `MARKETO` \$1 `SAPODATA` \$1 `ZENDESK` \$1 `JIRACLOUD` \$1 `NETSUITEERP` \$1 `HUBSPOT` \$1 `FACEBOOKADS` \$1 `INSTAGRAMADS` \$1 `ZOHOCRM` \$1 `SALESFORCEPARDOT` \$1 `SALESFORCEMARKETINGCLOUD` \$1 `ADOBEANALYTICS` \$1 `SLACK` \$1 `LINKEDIN` \$1 `MIXPANEL` \$1 `ASANA` \$1 `STRIPE` \$1 `SMARTSHEET` \$1 `DATADOG` \$1 `WOOCOMMERCE` \$1 `INTERCOM` \$1 `SNAPCHATADS` \$1 `PAYPAL` \$1 `QUICKBOOKS` \$1 `FACEBOOKPAGEINSIGHTS` \$1 `FRESHDESK` \$1 `TWILIO` \$1 `DOCUSIGNMONITOR` \$1 `FRESHSALES` \$1 `ZOOM` \$1 `GOOGLESEARCHCONSOLE` \$1 `SALESFORCECOMMERCECLOUD` \$1 `SAPCONCUR` \$1 `DYNATRACE` \$1 `MICROSOFTDYNAMIC365FINANCEANDOPS` \$1 `MICROSOFTTEAMS` \$1 `BLACKBAUDRAISEREDGENXT` \$1 `MAILCHIMP` \$1 `GITLAB` \$1 `PENDO` \$1 `PRODUCTBOARD` \$1 `CIRCLECI` \$1 `PIPEDIVE` \$1 `SENDGRID` \$1 `AZURECOSMOS` \$1 `AZURESQL` \$1 `BIGQUERY` \$1 `BLACKBAUD` \$1 `CLOUDERAHIVE` \$1 `CLOUDERAIMPALA` \$1 `CLOUDWATCH` \$1 `CLOUDWATCHMETRICS` \$1 `CMDB` \$1 `DATALAKEGEN2` \$1 `DB2` \$1 `DB2AS400` \$1 `DOCUMENTDB` \$1 `DOMO` \$1 `DYNAMODB` \$1 `GOOGLECLOUDSTORAGE` \$1 `HBASE` \$1 `KUSTOMER` \$1 `MICROSOFTDYNAMICS365CRM` \$1 `MONDAY` \$1 `MYSQL` \$1 `OKTA` \$1 `OPENSEARCH` \$1 `ORACLE` \$1 `PIPEDRIVE` \$1 `POSTGRESQL` \$1 `SAPHANA` \$1 `SQLSERVER` \$1 `SYNAPSE` \$1 `TERADATA` \$1 `TERADATANOS` \$1 `TIMESTREAM` \$1 `TPCDS` \$1 `VERTICA`).

  The type of connection to test. This operation is only available for the `JDBC` or `SALESFORCE` connection types.
+ `ConnectionProperties` – *Required:* A map array of key-value pairs, not more than 100 pairs.

  Each key is a UTF-8 string (valid values: `HOST` \$1 `PORT` \$1 `USERNAME="USER_NAME"` \$1 `PASSWORD` \$1 `ENCRYPTED_PASSWORD` \$1 `JDBC_DRIVER_JAR_URI` \$1 `JDBC_DRIVER_CLASS_NAME` \$1 `JDBC_ENGINE` \$1 `JDBC_ENGINE_VERSION` \$1 `CONFIG_FILES` \$1 `INSTANCE_ID` \$1 `JDBC_CONNECTION_URL` \$1 `JDBC_ENFORCE_SSL` \$1 `CUSTOM_JDBC_CERT` \$1 `SKIP_CUSTOM_JDBC_CERT_VALIDATION` \$1 `CUSTOM_JDBC_CERT_STRING` \$1 `CONNECTION_URL` \$1 `KAFKA_BOOTSTRAP_SERVERS` \$1 `KAFKA_SSL_ENABLED` \$1 `KAFKA_CUSTOM_CERT` \$1 `KAFKA_SKIP_CUSTOM_CERT_VALIDATION` \$1 `KAFKA_CLIENT_KEYSTORE` \$1 `KAFKA_CLIENT_KEYSTORE_PASSWORD` \$1 `KAFKA_CLIENT_KEY_PASSWORD` \$1 `ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD` \$1 `ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD` \$1 `KAFKA_SASL_MECHANISM` \$1 `KAFKA_SASL_PLAIN_USERNAME` \$1 `KAFKA_SASL_PLAIN_PASSWORD` \$1 `ENCRYPTED_KAFKA_SASL_PLAIN_PASSWORD` \$1 `KAFKA_SASL_SCRAM_USERNAME` \$1 `KAFKA_SASL_SCRAM_PASSWORD` \$1 `KAFKA_SASL_SCRAM_SECRETS_ARN` \$1 `ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD` \$1 `KAFKA_SASL_GSSAPI_KEYTAB` \$1 `KAFKA_SASL_GSSAPI_KRB5_CONF` \$1 `KAFKA_SASL_GSSAPI_SERVICE` \$1 `KAFKA_SASL_GSSAPI_PRINCIPAL` \$1 `SECRET_ID` \$1 `CONNECTOR_URL` \$1 `CONNECTOR_TYPE` \$1 `CONNECTOR_CLASS_NAME` \$1 `ENDPOINT` \$1 `ENDPOINT_TYPE` \$1 `ROLE_ARN` \$1 `REGION` \$1 `WORKGROUP_NAME` \$1 `CLUSTER_IDENTIFIER` \$1 `DATABASE`).

  Each value is a Value string, not less than 1 or more than 1024 bytes long.

  The key-value pairs that define parameters for the connection.

  JDBC connections use the following connection properties:
  + Required: All of (`HOST`, `PORT`, `JDBC_ENGINE`) or `JDBC_CONNECTION_URL`.
  + Required: All of (`USERNAME`, `PASSWORD`) or `SECRET_ID`.
  + Optional: `JDBC_ENFORCE_SSL`, `CUSTOM_JDBC_CERT`, `CUSTOM_JDBC_CERT_STRING`, `SKIP_CUSTOM_JDBC_CERT_VALIDATION`. These parameters are used to configure SSL with JDBC.

  SALESFORCE connections require the `AuthenticationConfiguration` member to be configured.
+ `AuthenticationConfiguration` – An [AuthenticationConfigurationInput](#aws-glue-api-catalog-connections-connections-AuthenticationConfigurationInput) object.

  A structure containing the authentication configuration in the TestConnection request. Required for a connection to Salesforce using OAuth authentication.

## PhysicalConnectionRequirements structure
<a name="aws-glue-api-catalog-connections-connections-PhysicalConnectionRequirements"></a>

The OAuth client app in GetConnection response.

**Fields**
+ `SubnetId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The subnet ID used by the connection.
+ `SecurityGroupIdList` – An array of UTF-8 strings, not more than 50 strings.

  The security group ID list used by the connection.
+ `AvailabilityZone` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The connection's Availability Zone.

## GetConnectionsFilter structure
<a name="aws-glue-api-catalog-connections-connections-GetConnectionsFilter"></a>

Filters the connection definitions that are returned by the `GetConnections` API operation.

**Fields**
+ `MatchCriteria` – An array of UTF-8 strings, not more than 10 strings.

  A criteria string that must match the criteria recorded in the connection definition for that connection definition to be returned.
+ `ConnectionType` – UTF-8 string (valid values: `JDBC` \$1 `SFTP` \$1 `MONGODB` \$1 `KAFKA` \$1 `NETWORK` \$1 `MARKETPLACE` \$1 `CUSTOM` \$1 `SALESFORCE` \$1 `VIEW_VALIDATION_REDSHIFT` \$1 `VIEW_VALIDATION_ATHENA` \$1 `GOOGLEADS` \$1 `GOOGLESHEETS` \$1 `GOOGLEANALYTICS4` \$1 `SERVICENOW` \$1 `MARKETO` \$1 `SAPODATA` \$1 `ZENDESK` \$1 `JIRACLOUD` \$1 `NETSUITEERP` \$1 `HUBSPOT` \$1 `FACEBOOKADS` \$1 `INSTAGRAMADS` \$1 `ZOHOCRM` \$1 `SALESFORCEPARDOT` \$1 `SALESFORCEMARKETINGCLOUD` \$1 `ADOBEANALYTICS` \$1 `SLACK` \$1 `LINKEDIN` \$1 `MIXPANEL` \$1 `ASANA` \$1 `STRIPE` \$1 `SMARTSHEET` \$1 `DATADOG` \$1 `WOOCOMMERCE` \$1 `INTERCOM` \$1 `SNAPCHATADS` \$1 `PAYPAL` \$1 `QUICKBOOKS` \$1 `FACEBOOKPAGEINSIGHTS` \$1 `FRESHDESK` \$1 `TWILIO` \$1 `DOCUSIGNMONITOR` \$1 `FRESHSALES` \$1 `ZOOM` \$1 `GOOGLESEARCHCONSOLE` \$1 `SALESFORCECOMMERCECLOUD` \$1 `SAPCONCUR` \$1 `DYNATRACE` \$1 `MICROSOFTDYNAMIC365FINANCEANDOPS` \$1 `MICROSOFTTEAMS` \$1 `BLACKBAUDRAISEREDGENXT` \$1 `MAILCHIMP` \$1 `GITLAB` \$1 `PENDO` \$1 `PRODUCTBOARD` \$1 `CIRCLECI` \$1 `PIPEDIVE` \$1 `SENDGRID` \$1 `AZURECOSMOS` \$1 `AZURESQL` \$1 `BIGQUERY` \$1 `BLACKBAUD` \$1 `CLOUDERAHIVE` \$1 `CLOUDERAIMPALA` \$1 `CLOUDWATCH` \$1 `CLOUDWATCHMETRICS` \$1 `CMDB` \$1 `DATALAKEGEN2` \$1 `DB2` \$1 `DB2AS400` \$1 `DOCUMENTDB` \$1 `DOMO` \$1 `DYNAMODB` \$1 `GOOGLECLOUDSTORAGE` \$1 `HBASE` \$1 `KUSTOMER` \$1 `MICROSOFTDYNAMICS365CRM` \$1 `MONDAY` \$1 `MYSQL` \$1 `OKTA` \$1 `OPENSEARCH` \$1 `ORACLE` \$1 `PIPEDRIVE` \$1 `POSTGRESQL` \$1 `SAPHANA` \$1 `SQLSERVER` \$1 `SYNAPSE` \$1 `TERADATA` \$1 `TERADATANOS` \$1 `TIMESTREAM` \$1 `TPCDS` \$1 `VERTICA`).

  The type of connections to return. Currently, SFTP is not supported.
+ `ConnectionSchemaVersion` – Number (integer), not less than 1 or more than 2.

  Denotes if the connection was created with schema version 1 or 2.

## AuthenticationConfiguration structure
<a name="aws-glue-api-catalog-connections-connections-AuthenticationConfiguration"></a>

A structure containing the authentication configuration.

**Fields**
+ `AuthenticationType` – UTF-8 string (valid values: `BASIC` \$1 `OAUTH2` \$1 `CUSTOM` \$1 `IAM`).

  A structure containing the authentication configuration.
+ `SecretArn` – UTF-8 string, matching the [Custom string pattern #36](aws-glue-api-common.md#regex_36).

  The secret manager ARN to store credentials.
+ `KmsKeyArn` – UTF-8 string, matching the [Custom string pattern #42](aws-glue-api-common.md#regex_42).

  The Amazon Resource Name (ARN) of the KMS key used to encrypt sensitive authentication information. This key is used to protect credentials and other sensitive data stored within the authentication configuration.
+ `OAuth2Properties` – An [OAuth2Properties](#aws-glue-api-catalog-connections-connections-OAuth2Properties) object.

  The properties for OAuth2 authentication.

## AuthenticationConfigurationInput structure
<a name="aws-glue-api-catalog-connections-connections-AuthenticationConfigurationInput"></a>

A structure containing the authentication configuration in the CreateConnection request.

**Fields**
+ `AuthenticationType` – UTF-8 string (valid values: `BASIC` \$1 `OAUTH2` \$1 `CUSTOM` \$1 `IAM`).

  A structure containing the authentication configuration in the CreateConnection request.
+ `OAuth2Properties` – An [OAuth2PropertiesInput](#aws-glue-api-catalog-connections-connections-OAuth2PropertiesInput) object.

  The properties for OAuth2 authentication in the CreateConnection request.
+ `SecretArn` – UTF-8 string, matching the [Custom string pattern #36](aws-glue-api-common.md#regex_36).

  The secret manager ARN to store credentials in the CreateConnection request.
+ `KmsKeyArn` – UTF-8 string, matching the [Custom string pattern #42](aws-glue-api-common.md#regex_42).

  The ARN of the KMS key used to encrypt the connection. Only taken an as input in the request and stored in the Secret Manager.
+ `BasicAuthenticationCredentials` – A [BasicAuthenticationCredentials](#aws-glue-api-catalog-connections-connections-BasicAuthenticationCredentials) object.

  The credentials used when the authentication type is basic authentication.
+ `CustomAuthenticationCredentials` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not less than 1 or more than 2048 bytes long.

  The credentials used when the authentication type is custom authentication.

## OAuth2Properties structure
<a name="aws-glue-api-catalog-connections-connections-OAuth2Properties"></a>

A structure containing properties for OAuth2 authentication.

**Fields**
+ `OAuth2GrantType` – UTF-8 string (valid values: `AUTHORIZATION_CODE` \$1 `CLIENT_CREDENTIALS` \$1 `JWT_BEARER`).

  The OAuth2 grant type. For example, `AUTHORIZATION_CODE`, `JWT_BEARER`, or `CLIENT_CREDENTIALS`.
+ `OAuth2ClientApplication` – An [OAuth2ClientApplication](#aws-glue-api-catalog-connections-connections-OAuth2ClientApplication) object.

  The client application type. For example, AWS\$1MANAGED or USER\$1MANAGED.
+ `TokenUrl` – UTF-8 string, not more than 256 bytes long, matching the [Custom string pattern #40](aws-glue-api-common.md#regex_40).

  The URL of the provider's authentication server, to exchange an authorization code for an access token.
+ `TokenUrlParametersMap` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not less than 1 or more than 512 bytes long.

  A map of parameters that are added to the token `GET` request.

## OAuth2PropertiesInput structure
<a name="aws-glue-api-catalog-connections-connections-OAuth2PropertiesInput"></a>

A structure containing properties for OAuth2 in the CreateConnection request.

**Fields**
+ `OAuth2GrantType` – UTF-8 string (valid values: `AUTHORIZATION_CODE` \$1 `CLIENT_CREDENTIALS` \$1 `JWT_BEARER`).

  The OAuth2 grant type in the CreateConnection request. For example, `AUTHORIZATION_CODE`, `JWT_BEARER`, or `CLIENT_CREDENTIALS`.
+ `OAuth2ClientApplication` – An [OAuth2ClientApplication](#aws-glue-api-catalog-connections-connections-OAuth2ClientApplication) object.

  The client application type in the CreateConnection request. For example, `AWS_MANAGED` or `USER_MANAGED`.
+ `TokenUrl` – UTF-8 string, not more than 256 bytes long, matching the [Custom string pattern #40](aws-glue-api-common.md#regex_40).

  The URL of the provider's authentication server, to exchange an authorization code for an access token.
+ `TokenUrlParametersMap` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not less than 1 or more than 512 bytes long.

  A map of parameters that are added to the token `GET` request.
+ `AuthorizationCodeProperties` – An [AuthorizationCodeProperties](#aws-glue-api-catalog-connections-connections-AuthorizationCodeProperties) object.

  The set of properties required for the the OAuth2 `AUTHORIZATION_CODE` grant type.
+ `OAuth2Credentials` – An [OAuth2Credentials](#aws-glue-api-catalog-connections-connections-OAuth2Credentials) object.

  The credentials used when the authentication type is OAuth2 authentication.

## OAuth2ClientApplication structure
<a name="aws-glue-api-catalog-connections-connections-OAuth2ClientApplication"></a>

The OAuth2 client app used for the connection.

**Fields**
+ `UserManagedClientApplicationClientId` – UTF-8 string, not more than 2048 bytes long, matching the [Custom string pattern #37](aws-glue-api-common.md#regex_37).

  The client application clientID if the ClientAppType is `USER_MANAGED`.
+ `AWSManagedClientApplicationReference` – UTF-8 string, not more than 2048 bytes long, matching the [Custom string pattern #37](aws-glue-api-common.md#regex_37).

  The reference to the SaaS-side client app that is AWS managed.

## AuthorizationCodeProperties structure
<a name="aws-glue-api-catalog-connections-connections-AuthorizationCodeProperties"></a>

The set of properties required for the the OAuth2 `AUTHORIZATION_CODE` grant type workflow.

**Fields**
+ `AuthorizationCode` – UTF-8 string, not less than 1 or more than 4096 bytes long, matching the [Custom string pattern #37](aws-glue-api-common.md#regex_37).

  An authorization code to be used in the third leg of the `AUTHORIZATION_CODE` grant workflow. This is a single-use code which becomes invalid once exchanged for an access token, thus it is acceptable to have this value as a request parameter.
+ `RedirectUri` – UTF-8 string, not more than 512 bytes long, matching the [Custom string pattern #41](aws-glue-api-common.md#regex_41).

  The redirect URI where the user gets redirected to by authorization server when issuing an authorization code. The URI is subsequently used when the authorization code is exchanged for an access token.

## BasicAuthenticationCredentials structure
<a name="aws-glue-api-catalog-connections-connections-BasicAuthenticationCredentials"></a>

For supplying basic auth credentials when not providing a `SecretArn` value.

**Fields**
+ `Username` – UTF-8 string, not more than 512 bytes long, matching the [Custom string pattern #37](aws-glue-api-common.md#regex_37).

  The username to connect to the data source.
+ `Password` – UTF-8 string, not more than 512 bytes long, matching the [Custom string pattern #33](aws-glue-api-common.md#regex_33).

  The password to connect to the data source.

## OAuth2Credentials structure
<a name="aws-glue-api-catalog-connections-connections-OAuth2Credentials"></a>

The credentials used when the authentication type is OAuth2 authentication.

**Fields**
+ `UserManagedClientApplicationClientSecret` – UTF-8 string, not more than 512 bytes long, matching the [Custom string pattern #38](aws-glue-api-common.md#regex_38).

  The client application client secret if the client application is user managed.
+ `AccessToken` – UTF-8 string, not more than 4096 bytes long, matching the [Custom string pattern #38](aws-glue-api-common.md#regex_38).

  The access token used when the authentication type is OAuth2.
+ `RefreshToken` – UTF-8 string, not more than 4096 bytes long, matching the [Custom string pattern #38](aws-glue-api-common.md#regex_38).

  The refresh token used when the authentication type is OAuth2.
+ `JwtToken` – UTF-8 string, not more than 8000 bytes long, matching the [Custom string pattern #39](aws-glue-api-common.md#regex_39).

  The JSON Web Token (JWT) used when the authentication type is OAuth2.

## Operations
<a name="aws-glue-api-catalog-connections-connections-actions"></a>
+ [CreateConnection action (Python: create\$1connection)](#aws-glue-api-catalog-connections-connections-CreateConnection)
+ [DeleteConnection action (Python: delete\$1connection)](#aws-glue-api-catalog-connections-connections-DeleteConnection)
+ [GetConnection action (Python: get\$1connection)](#aws-glue-api-catalog-connections-connections-GetConnection)
+ [GetConnections action (Python: get\$1connections)](#aws-glue-api-catalog-connections-connections-GetConnections)
+ [UpdateConnection action (Python: update\$1connection)](#aws-glue-api-catalog-connections-connections-UpdateConnection)
+ [TestConnection action (Python: test\$1connection)](#aws-glue-api-catalog-connections-connections-TestConnection)
+ [BatchDeleteConnection action (Python: batch\$1delete\$1connection)](#aws-glue-api-catalog-connections-connections-BatchDeleteConnection)

## CreateConnection action (Python: create\$1connection)
<a name="aws-glue-api-catalog-connections-connections-CreateConnection"></a>

Creates a connection definition in the Data Catalog.

Connections used for creating federated resources require the IAM `glue:PassConnection` permission.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which to create the connection. If none is provided, the AWS account ID is used by default.
+ `ConnectionInput` – *Required:* A [ConnectionInput](#aws-glue-api-catalog-connections-connections-ConnectionInput) object.

  A `ConnectionInput` object defining the connection to create.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The tags you assign to the connection.

**Response**
+ `CreateConnectionStatus` – UTF-8 string (valid values: `READY` \$1 `IN_PROGRESS` \$1 `FAILED`).

  The status of the connection creation request. The request can take some time for certain authentication types, for example when creating an OAuth connection with token exchange over VPC.

**Errors**
+ `AlreadyExistsException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `GlueEncryptionException`

## DeleteConnection action (Python: delete\$1connection)
<a name="aws-glue-api-catalog-connections-connections-DeleteConnection"></a>

Deletes a connection from the Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the connection resides. If none is provided, the AWS account ID is used by default.
+ `ConnectionName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection to delete.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `OperationTimeoutException`

## GetConnection action (Python: get\$1connection)
<a name="aws-glue-api-catalog-connections-connections-GetConnection"></a>

Retrieves a connection definition from the Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the connection resides. If none is provided, the AWS account ID is used by default.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection definition to retrieve.
+ `HidePassword` – Boolean.

  Allows you to retrieve the connection metadata without returning the password. For instance, the AWS Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the AWS KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.
+ `ApplyOverrideForComputeEnvironment` – UTF-8 string (valid values: `SPARK` \$1 `ATHENA` \$1 `PYTHON`).

  For connections that may be used in multiple services, specifies returning properties for the specified compute environment.

**Response**
+ `Connection` – A [Connection](#aws-glue-api-catalog-connections-connections-Connection) object.

  The requested connection definition.

**Errors**
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `GlueEncryptionException`

## GetConnections action (Python: get\$1connections)
<a name="aws-glue-api-catalog-connections-connections-GetConnections"></a>

Retrieves a list of connection definitions from the Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the connections reside. If none is provided, the AWS account ID is used by default.
+ `Filter` – A [GetConnectionsFilter](#aws-glue-api-catalog-connections-connections-GetConnectionsFilter) object.

  A filter that controls which connections are returned.
+ `HidePassword` – Boolean.

  Allows you to retrieve the connection metadata without returning the password. For instance, the AWS Glue console uses this flag to retrieve the connection, and does not display the password. Set this parameter when the caller might not have permission to use the AWS KMS key to decrypt the password, but it does have permission to access the rest of the connection properties.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of connections to return in one response.

**Response**
+ `ConnectionList` – An array of [Connection](#aws-glue-api-catalog-connections-connections-Connection) objects.

  A list of requested connection definitions.
+ `NextToken` – UTF-8 string.

  A continuation token, if the list of connections returned does not include the last of the filtered connections.

**Errors**
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `GlueEncryptionException`

## UpdateConnection action (Python: update\$1connection)
<a name="aws-glue-api-catalog-connections-connections-UpdateConnection"></a>

Updates a connection definition in the Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the connection resides. If none is provided, the AWS account ID is used by default.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection definition to update.
+ `ConnectionInput` – *Required:* A [ConnectionInput](#aws-glue-api-catalog-connections-connections-ConnectionInput) object.

  A `ConnectionInput` object that redefines the connection in question.

**Response**
+ *No Response parameters.*

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `GlueEncryptionException`

## TestConnection action (Python: test\$1connection)
<a name="aws-glue-api-catalog-connections-connections-TestConnection"></a>

Tests a connection to a service to validate the service credentials that you provide.

You can either provide an existing connection name or a `TestConnectionInput` for testing a non-existing connection input. Providing both at the same time will cause an error.

If the action is successful, the service sends back an HTTP 200 response.

**Request**
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Optional. The name of the connection to test. If only name is provided, the operation will get the connection and use that for testing.
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The catalog ID where the connection resides.
+ `TestConnectionInput` – A [TestConnectionInput](#aws-glue-api-catalog-connections-connections-TestConnectionInput) object.

  A structure that is used to specify testing a connection to a service.

**Response**
+ *No Response parameters.*

**Errors**
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `GlueEncryptionException`
+ `FederationSourceException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `ConflictException`
+ `InternalServiceException`

## BatchDeleteConnection action (Python: batch\$1delete\$1connection)
<a name="aws-glue-api-catalog-connections-connections-BatchDeleteConnection"></a>

Deletes a list of connection definitions from the Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the connections reside. If none is provided, the AWS account ID is used by default.
+ `ConnectionNameList` – *Required:* An array of UTF-8 strings, not more than 25 strings.

  A list of names of the connections to delete.

**Response**
+ `Succeeded` – An array of UTF-8 strings.

  A list of names of the connection definitions that were successfully deleted.
+ `Errors` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a An [ErrorDetail](aws-glue-api-common.md#aws-glue-api-common-ErrorDetail) object.

  A map of the names of connections that were not successfully deleted to error details.

**Errors**
+ `InternalServiceException`
+ `OperationTimeoutException`

# Connection Types API
<a name="aws-glue-api-catalog-connections-connections-type"></a>

The Connection Type API describes AWS Glue APIs related to describing connection types.

## Connection management APIs
<a name="aws-glue-api-catalog-connections-connections-type-connection-management"></a>
+ [DescribeConnectionType action (Python: describe\$1connection\$1type)](#aws-glue-api-catalog-connections-connections-type-DescribeConnectionType)
+ [ListConnectionTypes action (Python: list\$1connection\$1types)](#aws-glue-api-catalog-connections-connections-type-ListConnectionTypes)
+ [ConnectionTypeBrief structure](#aws-glue-api-catalog-connections-connections-type-ConnectionTypeBrief)
+ [ConnectionTypeVariant structure](#aws-glue-api-catalog-connections-connections-type-ConnectionTypeVariant)

## DescribeConnectionType action (Python: describe\$1connection\$1type)
<a name="aws-glue-api-catalog-connections-connections-type-DescribeConnectionType"></a>

The `DescribeConnectionType` API provides full details of the supported options for a given connection type in AWS Glue.

**Request**
+ `ConnectionType` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection type to be described.

**Response**
+ `ConnectionType` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection type.
+ `Description` – UTF-8 string, not more than 1024 bytes long.

  A description of the connection type.
+ `Capabilities` – A [Capabilities](#aws-glue-api-catalog-connections-connections-type-Capabilities) object.

  The supported authentication types, data interface types (compute environments), and data operations of the connector.
+ `ConnectionProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a A [Property](#aws-glue-api-catalog-connections-connections-type-Property) object.

  Connection properties which are common across compute environments.
+ `ConnectionOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a A [Property](#aws-glue-api-catalog-connections-connections-type-Property) object.

  Returns properties that can be set when creating a connection in the `ConnectionInput.ConnectionProperties`. `ConnectionOptions` defines parameters that can be set in a Spark ETL script in the connection options map passed to a dataframe.
+ `AuthenticationConfiguration` – An [AuthConfiguration](#aws-glue-api-catalog-connections-connections-type-AuthConfiguration) object.

  The type of authentication used for the connection.
+ `ComputeEnvironmentConfigurations` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a A [ComputeEnvironmentConfiguration](#aws-glue-api-catalog-connections-connections-type-ComputeEnvironmentConfiguration) object.

  The compute environments that are supported by the connection.
+ `PhysicalConnectionRequirements` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a A [Property](#aws-glue-api-catalog-connections-connections-type-Property) object.

  Physical requirements for a connection, such as VPC, Subnet and Security Group specifications.
+ `AthenaConnectionProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a A [Property](#aws-glue-api-catalog-connections-connections-type-Property) object.

  Connection properties specific to the Athena compute environment.
+ `PythonConnectionProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a A [Property](#aws-glue-api-catalog-connections-connections-type-Property) object.

  Connection properties specific to the Python compute environment.
+ `SparkConnectionProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a A [Property](#aws-glue-api-catalog-connections-connections-type-Property) object.

  Connection properties specific to the Spark compute environment.

**Errors**
+ `ValidationException`
+ `InvalidInputException`
+ `InternalServiceException`

## ListConnectionTypes action (Python: list\$1connection\$1types)
<a name="aws-glue-api-catalog-connections-connections-type-ListConnectionTypes"></a>

The `ListConnectionTypes` API provides a discovery mechanism to learn available connection types in AWS Glue. The response contains a list of connection types with high-level details of what is supported for each connection type. The connection types listed are the set of supported options for the `ConnectionType` value in the `CreateConnection` API.

**Request**
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results to return.
+ `NextToken` – UTF-8 string, not less than 1 or more than 2048 bytes long, matching the [Custom string pattern #11](aws-glue-api-common.md#regex_11).

  A continuation token, if this is a continuation call.

**Response**
+ `ConnectionTypes` – An array of [ConnectionTypeBrief](#aws-glue-api-catalog-connections-connections-type-ConnectionTypeBrief) objects.

  A list of `ConnectionTypeBrief` objects containing brief information about the supported connection types.
+ `NextToken` – UTF-8 string, not less than 1 or more than 2048 bytes long, matching the [Custom string pattern #11](aws-glue-api-common.md#regex_11).

  A continuation token, if the current list segment is not the last.

**Errors**
+ `InternalServiceException`

## ConnectionTypeBrief structure
<a name="aws-glue-api-catalog-connections-connections-type-ConnectionTypeBrief"></a>

Brief information about a supported connection type returned by the `ListConnectionTypes` API.

**Fields**
+ `ConnectionType` – UTF-8 string (valid values: `JDBC` \$1 `SFTP` \$1 `MONGODB` \$1 `KAFKA` \$1 `NETWORK` \$1 `MARKETPLACE` \$1 `CUSTOM` \$1 `SALESFORCE` \$1 `VIEW_VALIDATION_REDSHIFT` \$1 `VIEW_VALIDATION_ATHENA` \$1 `GOOGLEADS` \$1 `GOOGLESHEETS` \$1 `GOOGLEANALYTICS4` \$1 `SERVICENOW` \$1 `MARKETO` \$1 `SAPODATA` \$1 `ZENDESK` \$1 `JIRACLOUD` \$1 `NETSUITEERP` \$1 `HUBSPOT` \$1 `FACEBOOKADS` \$1 `INSTAGRAMADS` \$1 `ZOHOCRM` \$1 `SALESFORCEPARDOT` \$1 `SALESFORCEMARKETINGCLOUD` \$1 `ADOBEANALYTICS` \$1 `SLACK` \$1 `LINKEDIN` \$1 `MIXPANEL` \$1 `ASANA` \$1 `STRIPE` \$1 `SMARTSHEET` \$1 `DATADOG` \$1 `WOOCOMMERCE` \$1 `INTERCOM` \$1 `SNAPCHATADS` \$1 `PAYPAL` \$1 `QUICKBOOKS` \$1 `FACEBOOKPAGEINSIGHTS` \$1 `FRESHDESK` \$1 `TWILIO` \$1 `DOCUSIGNMONITOR` \$1 `FRESHSALES` \$1 `ZOOM` \$1 `GOOGLESEARCHCONSOLE` \$1 `SALESFORCECOMMERCECLOUD` \$1 `SAPCONCUR` \$1 `DYNATRACE` \$1 `MICROSOFTDYNAMIC365FINANCEANDOPS` \$1 `MICROSOFTTEAMS` \$1 `BLACKBAUDRAISEREDGENXT` \$1 `MAILCHIMP` \$1 `GITLAB` \$1 `PENDO` \$1 `PRODUCTBOARD` \$1 `CIRCLECI` \$1 `PIPEDIVE` \$1 `SENDGRID` \$1 `AZURECOSMOS` \$1 `AZURESQL` \$1 `BIGQUERY` \$1 `BLACKBAUD` \$1 `CLOUDERAHIVE` \$1 `CLOUDERAIMPALA` \$1 `CLOUDWATCH` \$1 `CLOUDWATCHMETRICS` \$1 `CMDB` \$1 `DATALAKEGEN2` \$1 `DB2` \$1 `DB2AS400` \$1 `DOCUMENTDB` \$1 `DOMO` \$1 `DYNAMODB` \$1 `GOOGLECLOUDSTORAGE` \$1 `HBASE` \$1 `KUSTOMER` \$1 `MICROSOFTDYNAMICS365CRM` \$1 `MONDAY` \$1 `MYSQL` \$1 `OKTA` \$1 `OPENSEARCH` \$1 `ORACLE` \$1 `PIPEDRIVE` \$1 `POSTGRESQL` \$1 `SAPHANA` \$1 `SQLSERVER` \$1 `SYNAPSE` \$1 `TERADATA` \$1 `TERADATANOS` \$1 `TIMESTREAM` \$1 `TPCDS` \$1 `VERTICA`).

  The name of the connection type.
+ `DisplayName` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The human-readable name for the connection type that is displayed in the AWS Glue console.
+ `Vendor` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The name of the vendor or provider that created or maintains this connection type.
+ `Description` – UTF-8 string, not more than 1024 bytes long.

  A description of the connection type.
+ `Categories` – .

  A list of categories that this connection type belongs to. Categories help users filter and find appropriate connection types based on their use cases.
+ `Capabilities` – A [Capabilities](#aws-glue-api-catalog-connections-connections-type-Capabilities) object.

  The supported authentication types, data interface types (compute environments), and data operations of the connector.
+ `LogoUrl` – UTF-8 string.

  The URL of the logo associated with a connection type.
+ `ConnectionTypeVariants` – An array of [ConnectionTypeVariant](#aws-glue-api-catalog-connections-connections-type-ConnectionTypeVariant) objects.

  A list of variants available for this connection type. Different variants may provide specialized configurations for specific use cases or implementations of the same general connection type.

## ConnectionTypeVariant structure
<a name="aws-glue-api-catalog-connections-connections-type-ConnectionTypeVariant"></a>

Represents a variant of a connection type in AWS Glue Data Catalog. Connection type variants provide specific configurations and behaviors for different implementations of the same general connection type.

**Fields**
+ `ConnectionTypeVariantName` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The unique identifier for the connection type variant. This name is used internally to identify the specific variant of a connection type. 
+ `DisplayName` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The human-readable name for the connection type variant that is displayed in the AWS Glue console.
+ `Description` – UTF-8 string, not more than 1024 bytes long.

  A detailed description of the connection type variant, including its purpose, use cases, and any specific configuration requirements.
+ `LogoUrl` – UTF-8 string.

  The URL of the logo associated with a connection type variant.

## datatypes
<a name="aws-glue-api-catalog-connections-connections-type-connection-types"></a>
+ [Validation structure](#aws-glue-api-catalog-connections-connections-type-Validation)
+ [AuthConfiguration structure](#aws-glue-api-catalog-connections-connections-type-AuthConfiguration)
+ [Capabilities structure](#aws-glue-api-catalog-connections-connections-type-Capabilities)
+ [Property structure](#aws-glue-api-catalog-connections-connections-type-Property)
+ [AllowedValue structure](#aws-glue-api-catalog-connections-connections-type-AllowedValue)
+ [ComputeEnvironmentConfiguration structure](#aws-glue-api-catalog-connections-connections-type-ComputeEnvironmentConfiguration)

## Validation structure
<a name="aws-glue-api-catalog-connections-connections-type-Validation"></a>

Defines how a validation is performed on a connection property.

**Fields**
+ `ValidationType` – *Required:* UTF-8 string (valid values: `REGEX` \$1 `RANGE`).

  The type of validation to be performed, such as `REGEX`.
+ `Patterns` – .

  A list of patterns that apply to the validation.
+ `Description` – *Required:* UTF-8 string, not less than 1 or more than 1024 bytes long.

  A description for the validation.
+ `MaxLength` – Number (integer).

  A maximum length for a string connection property.
+ `Maximum` – Number (integer).

  A maximum value when specifying a `RANGE` type of validation.
+ `Minimum` – Number (integer).

  A minimum value when specifying a `RANGE` type of validation.

## AuthConfiguration structure
<a name="aws-glue-api-catalog-connections-connections-type-AuthConfiguration"></a>

The authentication configuration for a connection returned by the `DescribeConnectionType` API.

**Fields**
+ `AuthenticationType` – *Required:* A [Property](#aws-glue-api-catalog-connections-connections-type-Property) object.

  The type of authentication for a connection.
+ `SecretArn` – A [Property](#aws-glue-api-catalog-connections-connections-type-Property) object.

  The Amazon Resource Name (ARN) for the Secrets Manager.
+ `OAuth2Properties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a A [Property](#aws-glue-api-catalog-connections-connections-type-Property) object.

  A map of key-value pairs for the OAuth2 properties. Each value is a a `Property` object.
+ `BasicAuthenticationProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a A [Property](#aws-glue-api-catalog-connections-connections-type-Property) object.

  A map of key-value pairs for the OAuth2 properties. Each value is a a `Property` object.
+ `CustomAuthenticationProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a A [Property](#aws-glue-api-catalog-connections-connections-type-Property) object.

  A map of key-value pairs for the custom authentication properties. Each value is a a `Property` object.

## Capabilities structure
<a name="aws-glue-api-catalog-connections-connections-type-Capabilities"></a>

Specifies the supported authentication types returned by the `DescribeConnectionType` API.

**Fields**
+ `SupportedAuthenticationTypes` – *Required:* An array of UTF-8 strings.

  A list of supported authentication types.
+ `SupportedDataOperations` – *Required:* An array of UTF-8 strings.

  A list of supported data operations.
+ `SupportedComputeEnvironments` – *Required:* An array of UTF-8 strings.

  A list of supported compute environments.

## Property structure
<a name="aws-glue-api-catalog-connections-connections-type-Property"></a>

An object that defines a connection type for a compute environment.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The name of the property.
+ `Description` – *Required:* UTF-8 string, not more than 1024 bytes long.

  A description of the property.
+ `Required` – *Required:* Boolean.

  Indicates whether the property is required.
+ `PropertyTypes` – *Required:* An array of UTF-8 strings.

  Describes the type of property.
+ `AllowedValues` – An array of [AllowedValue](#aws-glue-api-catalog-connections-connections-type-AllowedValue) objects.

  A list of `AllowedValue` objects representing the values allowed for the property.
+ `DataOperationScopes` – An array of UTF-8 strings.

  Indicates which data operations are applicable to the property.

## AllowedValue structure
<a name="aws-glue-api-catalog-connections-connections-type-AllowedValue"></a>

An object representing a value allowed for a property.

**Fields**
+ `Description` – UTF-8 string, not more than 1024 bytes long.

  A description of the allowed value.
+ `Value` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The value allowed for the property.

## ComputeEnvironmentConfiguration structure
<a name="aws-glue-api-catalog-connections-connections-type-ComputeEnvironmentConfiguration"></a>

An object containing configuration for a compute environment (such as Spark, Python or Athena) returned by the `DescribeConnectionType` API.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  A name for the compute environment configuration.
+ `Description` – *Required:* UTF-8 string, not more than 1024 bytes long.

  A description of the compute environment.
+ `ComputeEnvironment` – *Required:* UTF-8 string (valid values: `SPARK` \$1 `ATHENA` \$1 `PYTHON`).

  The type of compute environment.
+ `SupportedAuthenticationTypes` – *Required:* An array of UTF-8 strings.

  The supported authentication types for the compute environment.
+ `ConnectionOptions` – *Required:* A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a A [Property](#aws-glue-api-catalog-connections-connections-type-Property) object.

  The parameters used as connection options for the compute environment.
+ `ConnectionPropertyNameOverrides` – *Required:* A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not less than 1 or more than 128 bytes long.

  The connection property name overrides for the compute environment.
+ `ConnectionOptionNameOverrides` – *Required:* A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not less than 1 or more than 128 bytes long.

  The connection option name overrides for the compute environment.
+ `ConnectionPropertiesRequiredOverrides` – *Required:* .

  The connection properties that are required as overrides for the compute environment.
+ `PhysicalConnectionPropertiesRequired` – Boolean.

  Indicates whether `PhysicalConnectionProperties` are required for the compute environment.

# Connection Metadata and Preview API
<a name="aws-glue-api-catalog-connections-connections-metadata"></a>

The following connection APIs describe operations for describing connection metadata.

## Data types
<a name="aws-glue-api-catalog-connections-connections-metadata-objects"></a>
+ [Entity structure](#aws-glue-api-catalog-connections-connections-metadata-Entity)
+ [Field structure](#aws-glue-api-catalog-connections-connections-metadata-Field)

## Entity structure
<a name="aws-glue-api-catalog-connections-connections-metadata-Entity"></a>

An entity supported by a given `ConnectionType`.

**Fields**
+ `EntityName` – UTF-8 string.

  The name of the entity.
+ `Label` – UTF-8 string.

  Label used for the entity.
+ `IsParentEntity` – Boolean.

  A Boolean value which helps to determine whether there are sub objects that can be listed.
+ `Description` – UTF-8 string.

  A description of the entity.
+ `Category` – UTF-8 string.

  The type of entities that are present in the response. This value depends on the source connection. For example this is `SObjects` for Salesforce and `databases` or `schemas` or `tables` for sources like Amazon Redshift.
+ `CustomProperties` – 

  An optional map of keys which may be returned for an entity by a connector.

## Field structure
<a name="aws-glue-api-catalog-connections-connections-metadata-Field"></a>

The `Field` object has information about the different properties associated with a field in the connector.

**Fields**
+ `FieldName` – UTF-8 string.

  A unique identifier for the field.
+ `Label` – UTF-8 string.

  A readable label used for the field.
+ `Description` – UTF-8 string.

  A description of the field.
+ `FieldType` – UTF-8 string (valid values: `INT` \$1 `SMALLINT` \$1 `BIGINT` \$1 `FLOAT` \$1 `LONG` \$1 `DATE` \$1 `BOOLEAN` \$1 `MAP` \$1 `ARRAY` \$1 `STRING` \$1 `TIMESTAMP` \$1 `DECIMAL` \$1 `BYTE` \$1 `SHORT` \$1 `DOUBLE` \$1 `STRUCT`).

  The type of data in the field.
+ `IsPrimaryKey` – Boolean.

  Indicates whether this field can used as a primary key for the given entity.
+ `IsNullable` – Boolean.

  Indicates whether this field can be nullable or not.
+ `IsRetrievable` – Boolean.

  Indicates whether this field can be added in Select clause of SQL query or whether it is retrievable or not.
+ `IsFilterable` – Boolean.

   Indicates whether this field can used in a filter clause (`WHERE` clause) of a SQL statement when querying data. 
+ `IsPartitionable` – Boolean.

  Indicates whether a given field can be used in partitioning the query made to SaaS.
+ `IsCreateable` – Boolean.

  Indicates whether this field can be created as part of a destination write.
+ `IsUpdateable` – Boolean.

  Indicates whether this field can be updated as part of a destination write.
+ `IsUpsertable` – Boolean.

  Indicates whether this field can be upserted as part of a destination write.
+ `IsDefaultOnCreate` – Boolean.

  Indicates whether this field is populated automatically when the object is created, such as a created at timestamp.
+ `SupportedValues` – .

  A list of supported values for the field.
+ `SupportedFilterOperators` – An array of UTF-8 strings.

  Indicates the support filter operators for this field.
+ `CustomProperties` – 

  Optional map of keys which may be returned.

## Operations
<a name="aws-glue-api-catalog-connections-connections-metadata-actions"></a>
+ [ListEntities action (Python: list\$1entities)](#aws-glue-api-catalog-connections-connections-metadata-ListEntities)
+ [DescribeEntity action (Python: describe\$1entity)](#aws-glue-api-catalog-connections-connections-metadata-DescribeEntity)
+ [GetEntityRecords action (Python: get\$1entity\$1records)](#aws-glue-api-catalog-connections-connections-metadata-GetEntityRecords)

## ListEntities action (Python: list\$1entities)
<a name="aws-glue-api-catalog-connections-connections-metadata-ListEntities"></a>

Returns the available entities supported by the connection type. 

**Request**
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A name for the connection that has required credentials to query any connection type.
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The catalog ID of the catalog that contains the connection. This can be null, By default, the AWS Account ID is the catalog ID.
+ `ParentEntityName` – UTF-8 string.

  Name of the parent entity for which you want to list the children. This parameter takes a fully-qualified path of the entity in order to list the child entities.
+ `NextToken` – UTF-8 string, not less than 1 or more than 2048 bytes long, matching the [Custom string pattern #11](aws-glue-api-common.md#regex_11).

  A continuation token, included if this is a continuation call.
+ `DataStoreApiVersion` – UTF-8 string, not less than 1 or more than 256 bytes long, matching the [Custom string pattern #23](aws-glue-api-common.md#regex_23).

  The API version of the SaaS connector.

**Response**
+ `Entities` – An array of [Entity](#aws-glue-api-catalog-connections-connections-metadata-Entity) objects.

  A list of `Entity` objects.
+ `NextToken` – UTF-8 string, not less than 1 or more than 2048 bytes long, matching the [Custom string pattern #11](aws-glue-api-common.md#regex_11).

  A continuation token, present if the current segment is not the last.

**Errors**
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `GlueEncryptionException`
+ `ValidationException`
+ `FederationSourceException`
+ `AccessDeniedException`

## DescribeEntity action (Python: describe\$1entity)
<a name="aws-glue-api-catalog-connections-connections-metadata-DescribeEntity"></a>

Provides details regarding the entity used with the connection type, with a description of the data model for each field in the selected entity.

 The response includes all the fields which make up the entity.

**Request**
+ `ConnectionName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection that contains the connection type credentials.
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The catalog ID of the catalog that contains the connection. This can be null, By default, the AWS Account ID is the catalog ID.
+ `EntityName` – *Required:* UTF-8 string.

  The name of the entity that you want to describe from the connection type.
+ `NextToken` – UTF-8 string, not less than 1 or more than 2048 bytes long, matching the [Custom string pattern #11](aws-glue-api-common.md#regex_11).

  A continuation token, included if this is a continuation call.
+ `DataStoreApiVersion` – UTF-8 string, not less than 1 or more than 256 bytes long, matching the [Custom string pattern #23](aws-glue-api-common.md#regex_23).

  The version of the API used for the data store.

**Response**
+ `Fields` – An array of [Field](#aws-glue-api-catalog-connections-connections-metadata-Field) objects.

  Describes the fields for that connector entity. This is the list of `Field` objects. `Field` is very similar to column in a database. The `Field` object has information about different properties associated with fields in the connector.
+ `NextToken` – UTF-8 string, not less than 1 or more than 2048 bytes long, matching the [Custom string pattern #11](aws-glue-api-common.md#regex_11).

  A continuation token, present if the current segment is not the last.

**Errors**
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `GlueEncryptionException`
+ `ValidationException`
+ `FederationSourceException`
+ `AccessDeniedException`

## GetEntityRecords action (Python: get\$1entity\$1records)
<a name="aws-glue-api-catalog-connections-connections-metadata-GetEntityRecords"></a>

This API is used to query preview data from a given connection type or from a native Amazon S3 based AWS Glue Data Catalog.

Returns records as an array of JSON blobs. Each record is formatted using Jackson JsonNode based on the field type defined by the `DescribeEntity` API.

Spark connectors generate schemas according to the same data type mapping as in the `DescribeEntity` API. Spark connectors convert data to the appropriate data types matching the schema when returning rows.

**Request**
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection that contains the connection type credentials.
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The catalog ID of the catalog that contains the connection. This can be null, By default, the AWS Account ID is the catalog ID.
+ `EntityName` – *Required:* UTF-8 string.

  Name of the entity that we want to query the preview data from the given connection type.
+ `NextToken` – UTF-8 string, not less than 1 or more than 2048 bytes long, matching the [Custom string pattern #11](aws-glue-api-common.md#regex_11).

  A continuation token, included if this is a continuation call.
+ `DataStoreApiVersion` – UTF-8 string, not less than 1 or more than 256 bytes long, matching the [Custom string pattern #23](aws-glue-api-common.md#regex_23).

  The API version of the SaaS connector.
+ `ConnectionOptions` – A map array of key-value pairs, not more than 100 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 256 bytes long, matching the [Custom string pattern #18](aws-glue-api-common.md#regex_18).

  Each value is a UTF-8 string, not less than 1 or more than 256 bytes long, matching the [Custom string pattern #17](aws-glue-api-common.md#regex_17).

  Connector options that are required to query the data.
+ `FilterPredicate` – UTF-8 string, not less than 1 or more than 100000 bytes long.

  A filter predicate that you can apply in the query request.
+ `Limit` – *Required:* Number (long), not less than 1 or more than 1000.

  Limits the number of records fetched with the request.
+ `SelectedFields` – An array of UTF-8 strings, not less than 1 or more than 1000 strings.

   List of fields that we want to fetch as part of preview data.

**Response**
+ `Records` – An array of a structures.

  A list of the requested objects.
+ `NextToken` – UTF-8 string, not less than 1 or more than 2048 bytes long, matching the [Custom string pattern #11](aws-glue-api-common.md#regex_11).

  A continuation token, present if the current segment is not the last.

**Errors**
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `GlueEncryptionException`
+ `ValidationException`
+ `FederationSourceException`
+ `AccessDeniedException`

# User-defined Function API
<a name="aws-glue-api-catalog-functions"></a>

The User-defined Function API describes AWS Glue data types and operations used in working with functions.

## Data types
<a name="aws-glue-api-catalog-functions-objects"></a>
+ [UserDefinedFunction structure](#aws-glue-api-catalog-functions-UserDefinedFunction)
+ [UserDefinedFunctionInput structure](#aws-glue-api-catalog-functions-UserDefinedFunctionInput)

## UserDefinedFunction structure
<a name="aws-glue-api-catalog-functions-UserDefinedFunction"></a>

Represents the equivalent of a Hive user-defined function (`UDF`) definition.

**Fields**
+ `FunctionName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the function.
+ `DatabaseName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database that contains the function.
+ `ClassName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Java class that contains the function code.
+ `OwnerName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The owner of the function.
+ `OwnerType` – UTF-8 string (valid values: `USER` \$1 `ROLE` \$1 `GROUP`).

  The owner type.
+ `CreateTime` – Timestamp.

  The time at which the function was created.
+ `ResourceUris` – An array of [ResourceUri](aws-glue-api-common.md#aws-glue-api-common-ResourceUri) objects, not more than 1000 structures.

  The resource URIs for the function.
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the function resides.

## UserDefinedFunctionInput structure
<a name="aws-glue-api-catalog-functions-UserDefinedFunctionInput"></a>

A structure used to create or update a user-defined function.

**Fields**
+ `FunctionName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the function.
+ `ClassName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Java class that contains the function code.
+ `OwnerName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The owner of the function.
+ `OwnerType` – UTF-8 string (valid values: `USER` \$1 `ROLE` \$1 `GROUP`).

  The owner type.
+ `ResourceUris` – An array of [ResourceUri](aws-glue-api-common.md#aws-glue-api-common-ResourceUri) objects, not more than 1000 structures.

  The resource URIs for the function.

## Operations
<a name="aws-glue-api-catalog-functions-actions"></a>
+ [CreateUserDefinedFunction action (Python: create\$1user\$1defined\$1function)](#aws-glue-api-catalog-functions-CreateUserDefinedFunction)
+ [UpdateUserDefinedFunction action (Python: update\$1user\$1defined\$1function)](#aws-glue-api-catalog-functions-UpdateUserDefinedFunction)
+ [DeleteUserDefinedFunction action (Python: delete\$1user\$1defined\$1function)](#aws-glue-api-catalog-functions-DeleteUserDefinedFunction)
+ [GetUserDefinedFunction action (Python: get\$1user\$1defined\$1function)](#aws-glue-api-catalog-functions-GetUserDefinedFunction)
+ [GetUserDefinedFunctions action (Python: get\$1user\$1defined\$1functions)](#aws-glue-api-catalog-functions-GetUserDefinedFunctions)

## CreateUserDefinedFunction action (Python: create\$1user\$1defined\$1function)
<a name="aws-glue-api-catalog-functions-CreateUserDefinedFunction"></a>

Creates a new function definition in the Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which to create the function. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database in which to create the function.
+ `FunctionInput` – *Required:* An [UserDefinedFunctionInput](#aws-glue-api-catalog-functions-UserDefinedFunctionInput) object.

  A `FunctionInput` object that defines the function to create in the Data Catalog.

**Response**
+ *No Response parameters.*

**Errors**
+ `AlreadyExistsException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `GlueEncryptionException`

## UpdateUserDefinedFunction action (Python: update\$1user\$1defined\$1function)
<a name="aws-glue-api-catalog-functions-UpdateUserDefinedFunction"></a>

Updates an existing function definition in the Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the function to be updated is located. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the function to be updated is located.
+ `FunctionName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the function.
+ `FunctionInput` – *Required:* An [UserDefinedFunctionInput](#aws-glue-api-catalog-functions-UserDefinedFunctionInput) object.

  A `FunctionInput` object that redefines the function in the Data Catalog.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## DeleteUserDefinedFunction action (Python: delete\$1user\$1defined\$1function)
<a name="aws-glue-api-catalog-functions-DeleteUserDefinedFunction"></a>

Deletes an existing function definition from the Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the function to be deleted is located. If none is supplied, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the function is located.
+ `FunctionName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the function definition to be deleted.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetUserDefinedFunction action (Python: get\$1user\$1defined\$1function)
<a name="aws-glue-api-catalog-functions-GetUserDefinedFunction"></a>

Retrieves a specified function definition from the Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the function to be retrieved is located. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the function is located.
+ `FunctionName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the function.

**Response**
+ `UserDefinedFunction` – An [UserDefinedFunction](#aws-glue-api-catalog-functions-UserDefinedFunction) object.

  The requested function definition.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `GlueEncryptionException`

## GetUserDefinedFunctions action (Python: get\$1user\$1defined\$1functions)
<a name="aws-glue-api-catalog-functions-GetUserDefinedFunctions"></a>

Retrieves multiple function definitions from the Data Catalog.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the functions to be retrieved are located. If none is provided, the AWS account ID is used by default.
+ `DatabaseName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the catalog database where the functions are located. If none is provided, functions from all the databases across the catalog will be returned.
+ `Pattern` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  An optional function-name pattern string that filters the function definitions returned.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.
+ `MaxResults` – Number (integer), not less than 1 or more than 100.

  The maximum number of functions to return in one response.

**Response**
+ `UserDefinedFunctions` – An array of [UserDefinedFunction](#aws-glue-api-catalog-functions-UserDefinedFunction) objects.

  A list of requested function definitions.
+ `NextToken` – UTF-8 string.

  A continuation token, if the list of functions returned does not include the last requested function.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `GlueEncryptionException`

# Importing an Athena catalog to AWS Glue
<a name="aws-glue-api-catalog-migration"></a>

The Migration API describes AWS Glue data types and operations having to do with migrating an Athena Data catalog to AWS Glue.

## Data types
<a name="aws-glue-api-catalog-migration-objects"></a>
+ [CatalogImportStatus structure](#aws-glue-api-catalog-migration-CatalogImportStatus)

## CatalogImportStatus structure
<a name="aws-glue-api-catalog-migration-CatalogImportStatus"></a>

A structure containing migration status information.

**Fields**
+ `ImportCompleted` – Boolean.

  `True` if the migration has completed, or `False` otherwise.
+ `ImportTime` – Timestamp.

  The time that the migration was started.
+ `ImportedBy` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the person who initiated the migration.

## Operations
<a name="aws-glue-api-catalog-migration-actions"></a>
+ [ImportCatalogToGlue action (Python: import\$1catalog\$1to\$1glue)](#aws-glue-api-catalog-migration-ImportCatalogToGlue)
+ [GetCatalogImportStatus action (Python: get\$1catalog\$1import\$1status)](#aws-glue-api-catalog-migration-GetCatalogImportStatus)

## ImportCatalogToGlue action (Python: import\$1catalog\$1to\$1glue)
<a name="aws-glue-api-catalog-migration-ImportCatalogToGlue"></a>

Imports an existing Amazon Athena Data Catalog to AWS Glue.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the catalog to import. Currently, this should be the AWS account ID.

**Response**
+ *No Response parameters.*

**Errors**
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetCatalogImportStatus action (Python: get\$1catalog\$1import\$1status)
<a name="aws-glue-api-catalog-migration-GetCatalogImportStatus"></a>

Retrieves the status of a migration operation.

**Request**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the catalog to migrate. Currently, this should be the AWS account ID.

**Response**
+ `ImportStatus` – A [CatalogImportStatus](#aws-glue-api-catalog-migration-CatalogImportStatus) object.

  The status of the specified catalog migration.

**Errors**
+ `InternalServiceException`
+ `OperationTimeoutException`

# Table optimizer API
<a name="aws-glue-api-table-optimizers"></a>

The table optimizer API describes the AWS Glue API for enabling compaction to improve read performance.

## Data types
<a name="aws-glue-api-table-optimizers-objects"></a>
+ [TableOptimizer structure](#aws-glue-api-table-optimizers-TableOptimizer)
+ [TableOptimizerConfiguration structure](#aws-glue-api-table-optimizers-TableOptimizerConfiguration)
+ [TableOptimizerVpcConfiguration structure](#aws-glue-api-table-optimizers-TableOptimizerVpcConfiguration)
+ [CompactionConfiguration structure](#aws-glue-api-table-optimizers-CompactionConfiguration)
+ [IcebergCompactionConfiguration structure](#aws-glue-api-table-optimizers-IcebergCompactionConfiguration)
+ [TableOptimizerRun structure](#aws-glue-api-table-optimizers-TableOptimizerRun)
+ [BatchGetTableOptimizerEntry structure](#aws-glue-api-table-optimizers-BatchGetTableOptimizerEntry)
+ [BatchTableOptimizer structure](#aws-glue-api-table-optimizers-BatchTableOptimizer)
+ [BatchGetTableOptimizerError structure](#aws-glue-api-table-optimizers-BatchGetTableOptimizerError)
+ [RetentionConfiguration structure](#aws-glue-api-table-optimizers-RetentionConfiguration)
+ [IcebergRetentionConfiguration structure](#aws-glue-api-table-optimizers-IcebergRetentionConfiguration)
+ [OrphanFileDeletionConfiguration structure](#aws-glue-api-table-optimizers-OrphanFileDeletionConfiguration)
+ [IcebergOrphanFileDeletionConfiguration structure](#aws-glue-api-table-optimizers-IcebergOrphanFileDeletionConfiguration)
+ [CompactionMetrics structure](#aws-glue-api-table-optimizers-CompactionMetrics)
+ [RetentionMetrics structure](#aws-glue-api-table-optimizers-RetentionMetrics)
+ [OrphanFileDeletionMetrics structure](#aws-glue-api-table-optimizers-OrphanFileDeletionMetrics)
+ [IcebergCompactionMetrics structure](#aws-glue-api-table-optimizers-IcebergCompactionMetrics)
+ [IcebergRetentionMetrics structure](#aws-glue-api-table-optimizers-IcebergRetentionMetrics)
+ [IcebergOrphanFileDeletionMetrics structure](#aws-glue-api-table-optimizers-IcebergOrphanFileDeletionMetrics)
+ [RunMetrics structure](#aws-glue-api-table-optimizers-RunMetrics)

## TableOptimizer structure
<a name="aws-glue-api-table-optimizers-TableOptimizer"></a>

Contains details about an optimizer associated with a table.

**Fields**
+ `type` – UTF-8 string (valid values: `compaction="COMPACTION"` \$1 `retention="RETENTION"` \$1 `orphan_file_deletion="ORPHAN_FILE_DELETION"`).

  The type of table optimizer. The valid values are:
  + `compaction`: for managing compaction with a table optimizer.
  + `retention`: for managing the retention of snapshot with a table optimizer.
  + `orphan_file_deletion`: for managing the deletion of orphan files with a table optimizer.
+ `configuration` – A [TableOptimizerConfiguration](#aws-glue-api-table-optimizers-TableOptimizerConfiguration) object.

  A `TableOptimizerConfiguration` object that was specified when creating or updating a table optimizer.
+ `lastRun` – A [TableOptimizerRun](#aws-glue-api-table-optimizers-TableOptimizerRun) object.

  A `TableOptimizerRun` object representing the last run of the table optimizer.
+ `configurationSource` – UTF-8 string (valid values: `catalog="CATALOG"` \$1 `table="TABLE"`).

   Specifies the source of the optimizer configuration. This indicates how the table optimizer was configured and which entity or service initiated the configuration. 

## TableOptimizerConfiguration structure
<a name="aws-glue-api-table-optimizers-TableOptimizerConfiguration"></a>

Contains details on the configuration of a table optimizer. You pass this configuration when creating or updating a table optimizer.

**Fields**
+ `roleArn` – UTF-8 string, not less than 20 or more than 2048 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A role passed by the caller which gives the service permission to update the resources associated with the optimizer on the caller's behalf.
+ `enabled` – Boolean.

  Whether table optimization is enabled.
+ `vpcConfiguration` – A [TableOptimizerVpcConfiguration](#aws-glue-api-table-optimizers-TableOptimizerVpcConfiguration) object.

  A `TableOptimizerVpcConfiguration` object representing the VPC configuration for a table optimizer.

  This configuration is necessary to perform optimization on tables that are in a customer VPC.
+ `compactionConfiguration` – A [CompactionConfiguration](#aws-glue-api-table-optimizers-CompactionConfiguration) object.

  The configuration for a compaction optimizer. This configuration defines how data files in your table will be compacted to improve query performance and reduce storage costs.
+ `retentionConfiguration` – A [RetentionConfiguration](#aws-glue-api-table-optimizers-RetentionConfiguration) object.

  The configuration for a snapshot retention optimizer.
+ `orphanFileDeletionConfiguration` – An [OrphanFileDeletionConfiguration](#aws-glue-api-table-optimizers-OrphanFileDeletionConfiguration) object.

  The configuration for an orphan file deletion optimizer.

## TableOptimizerVpcConfiguration structure
<a name="aws-glue-api-table-optimizers-TableOptimizerVpcConfiguration"></a>

An object that describes the VPC configuration for a table optimizer.

This configuration is necessary to perform optimization on tables that are in a customer VPC.

**Fields**
+ `glueConnectionName` – UTF-8 string, at least 1 byte long.

  The name of the AWS Glue connection used for the VPC for the table optimizer.

## CompactionConfiguration structure
<a name="aws-glue-api-table-optimizers-CompactionConfiguration"></a>

The configuration for a compaction optimizer. This configuration defines how data files in your table will be compacted to improve query performance and reduce storage costs.

**Fields**
+ `icebergConfiguration` – An [IcebergCompactionConfiguration](#aws-glue-api-table-optimizers-IcebergCompactionConfiguration) object.

  The configuration for an Iceberg compaction optimizer.

## IcebergCompactionConfiguration structure
<a name="aws-glue-api-table-optimizers-IcebergCompactionConfiguration"></a>

The configuration for an Iceberg compaction optimizer. This configuration defines parameters for optimizing the layout of data files in Iceberg tables.

**Fields**
+ `strategy` – UTF-8 string (valid values: `binpack="BINPACK"` \$1 `sort="SORT"` \$1 `z-order="ZORDER"`).

  The strategy to use for compaction. Valid values are:
  +  `binpack`: Combines small files into larger files, typically targeting sizes over 100MB, while applying any pending deletes. This is the recommended compaction strategy for most use cases. 
  +  `sort`: Organizes data based on specified columns which are sorted hierarchically during compaction, improving query performance for filtered operations. This strategy is recommended when your queries frequently filter on specific columns. To use this strategy, you must first define a sort order in your Iceberg table properties using the `sort_order` table property.
  +  `z-order`: Optimizes data organization by blending multiple attributes into a single scalar value that can be used for sorting, allowing efficient querying across multiple dimensions. This strategy is recommended when you need to query data across multiple dimensions simultaneously. To use this strategy, you must first define a sort order in your Iceberg table properties using the `sort_order` table property. 

  If an input is not provided, the default value 'binpack' will be used.
+ `minInputFiles` – Number (integer).

  The minimum number of data files that must be present in a partition before compaction will actually compact files. This parameter helps control when compaction is triggered, preventing unnecessary compaction operations on partitions with few files. If an input is not provided, the default value 100 will be used.
+ `deleteFileThreshold` – Number (integer).

  The minimum number of deletes that must be present in a data file to make it eligible for compaction. This parameter helps optimize compaction by focusing on files that contain a significant number of delete operations, which can improve query performance by removing deleted records. If an input is not provided, the default value 1 will be used.

## TableOptimizerRun structure
<a name="aws-glue-api-table-optimizers-TableOptimizerRun"></a>

Contains details for a table optimizer run.

**Fields**
+ `eventType` – UTF-8 string (valid values: `starting="STARTING"` \$1 `completed="COMPLETED"` \$1 `failed="FAILED"` \$1 `in_progress="IN_PROGRESS"`).

  An event type representing the status of the table optimizer run.
+ `startTimestamp` – Timestamp.

  Represents the epoch timestamp at which the compaction job was started within Lake Formation.
+ `endTimestamp` – Timestamp.

  Represents the epoch timestamp at which the compaction job ended.
+ `metrics` – A [RunMetrics](#aws-glue-api-table-optimizers-RunMetrics) object.

  A `RunMetrics` object containing metrics for the optimizer run.

  This member is deprecated. See the individual metric members for compaction, retention, and orphan file deletion.
+ `error` – UTF-8 string.

  An error that occured during the optimizer run.
+ `compactionMetrics` – A [CompactionMetrics](#aws-glue-api-table-optimizers-CompactionMetrics) object.

  A `CompactionMetrics` object containing metrics for the optimizer run.
+ `compactionStrategy` – UTF-8 string (valid values: `binpack="BINPACK"` \$1 `sort="SORT"` \$1 `z-order="ZORDER"`).

  The strategy used for the compaction run. Indicates which algorithm was applied to determine how files were selected and combined during the compaction process. Valid values are:
  +  `binpack`: Combines small files into larger files, typically targeting sizes over 100MB, while applying any pending deletes. This is the recommended compaction strategy for most use cases. 
  +  `sort`: Organizes data based on specified columns which are sorted hierarchically during compaction, improving query performance for filtered operations. This strategy is recommended when your queries frequently filter on specific columns. To use this strategy, you must first define a sort order in your Iceberg table properties using the `sort_order` table property.
  +  `z-order`: Optimizes data organization by blending multiple attributes into a single scalar value that can be used for sorting, allowing efficient querying across multiple dimensions. This strategy is recommended when you need to query data across multiple dimensions simultaneously. To use this strategy, you must first define a sort order in your Iceberg table properties using the `sort_order` table property. 
+ `retentionMetrics` – A [RetentionMetrics](#aws-glue-api-table-optimizers-RetentionMetrics) object.

  A `RetentionMetrics` object containing metrics for the optimizer run.
+ `orphanFileDeletionMetrics` – An [OrphanFileDeletionMetrics](#aws-glue-api-table-optimizers-OrphanFileDeletionMetrics) object.

  An `OrphanFileDeletionMetrics` object containing metrics for the optimizer run.

## BatchGetTableOptimizerEntry structure
<a name="aws-glue-api-table-optimizers-BatchGetTableOptimizerEntry"></a>

Represents a table optimizer to retrieve in the `BatchGetTableOptimizer` operation.

**Fields**
+ `catalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Catalog ID of the table.
+ `databaseName` – UTF-8 string, at least 1 byte long.

  The name of the database in the catalog in which the table resides.
+ `tableName` – UTF-8 string, at least 1 byte long.

  The name of the table.
+ `type` – UTF-8 string (valid values: `compaction="COMPACTION"` \$1 `retention="RETENTION"` \$1 `orphan_file_deletion="ORPHAN_FILE_DELETION"`).

  The type of table optimizer.

## BatchTableOptimizer structure
<a name="aws-glue-api-table-optimizers-BatchTableOptimizer"></a>

Contains details for one of the table optimizers returned by the `BatchGetTableOptimizer` operation.

**Fields**
+ `catalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Catalog ID of the table.
+ `databaseName` – UTF-8 string, at least 1 byte long.

  The name of the database in the catalog in which the table resides.
+ `tableName` – UTF-8 string, at least 1 byte long.

  The name of the table.
+ `tableOptimizer` – A [TableOptimizer](#aws-glue-api-table-optimizers-TableOptimizer) object.

  A `TableOptimizer` object that contains details on the configuration and last run of a table optimizer.

## BatchGetTableOptimizerError structure
<a name="aws-glue-api-table-optimizers-BatchGetTableOptimizerError"></a>

Contains details on one of the errors in the error list returned by the `BatchGetTableOptimizer` operation.

**Fields**
+ `error` – An [ErrorDetail](aws-glue-api-common.md#aws-glue-api-common-ErrorDetail) object.

  An `ErrorDetail` object containing code and message details about the error.
+ `catalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Catalog ID of the table.
+ `databaseName` – UTF-8 string, at least 1 byte long.

  The name of the database in the catalog in which the table resides.
+ `tableName` – UTF-8 string, at least 1 byte long.

  The name of the table.
+ `type` – UTF-8 string (valid values: `compaction="COMPACTION"` \$1 `retention="RETENTION"` \$1 `orphan_file_deletion="ORPHAN_FILE_DELETION"`).

  The type of table optimizer.

## RetentionConfiguration structure
<a name="aws-glue-api-table-optimizers-RetentionConfiguration"></a>

The configuration for a snapshot retention optimizer.

**Fields**
+ `icebergConfiguration` – An [IcebergRetentionConfiguration](#aws-glue-api-table-optimizers-IcebergRetentionConfiguration) object.

  The configuration for an Iceberg snapshot retention optimizer.

## IcebergRetentionConfiguration structure
<a name="aws-glue-api-table-optimizers-IcebergRetentionConfiguration"></a>

The configuration for an Iceberg snapshot retention optimizer.

**Fields**
+ `snapshotRetentionPeriodInDays` – Number (integer).

  The number of days to retain the Iceberg snapshots. If an input is not provided, the corresponding Iceberg table configuration field will be used or if not present, the default value 5 will be used.
+ `numberOfSnapshotsToRetain` – Number (integer).

  The number of Iceberg snapshots to retain within the retention period. If an input is not provided, the corresponding Iceberg table configuration field will be used or if not present, the default value 1 will be used.
+ `cleanExpiredFiles` – Boolean.

  If set to false, snapshots are only deleted from table metadata, and the underlying data and metadata files are not deleted.
+ `runRateInHours` – Number (integer).

  The interval in hours between retention job runs. This parameter controls how frequently the retention optimizer will run to clean up expired snapshots. The value must be between 3 and 168 hours (7 days). If an input is not provided, the default value 24 will be used.

## OrphanFileDeletionConfiguration structure
<a name="aws-glue-api-table-optimizers-OrphanFileDeletionConfiguration"></a>

The configuration for an orphan file deletion optimizer.

**Fields**
+ `icebergConfiguration` – An [IcebergOrphanFileDeletionConfiguration](#aws-glue-api-table-optimizers-IcebergOrphanFileDeletionConfiguration) object.

  The configuration for an Iceberg orphan file deletion optimizer.

## IcebergOrphanFileDeletionConfiguration structure
<a name="aws-glue-api-table-optimizers-IcebergOrphanFileDeletionConfiguration"></a>

The configuration for an Iceberg orphan file deletion optimizer.

**Fields**
+ `orphanFileRetentionPeriodInDays` – Number (integer).

  The number of days that orphan files should be retained before file deletion. If an input is not provided, the default value 3 will be used.
+ `location` – UTF-8 string.

  Specifies a directory in which to look for files (defaults to the table's location). You may choose a sub-directory rather than the top-level table location.
+ `runRateInHours` – Number (integer).

  The interval in hours between orphan file deletion job runs. This parameter controls how frequently the orphan file deletion optimizer will run to clean up orphan files. The value must be between 3 and 168 hours (7 days). If an input is not provided, the default value 24 will be used.

## CompactionMetrics structure
<a name="aws-glue-api-table-optimizers-CompactionMetrics"></a>

A structure that contains compaction metrics for the optimizer run.

**Fields**
+ `IcebergMetrics` – An [IcebergCompactionMetrics](#aws-glue-api-table-optimizers-IcebergCompactionMetrics) object.

  A structure containing the Iceberg compaction metrics for the optimizer run.

## RetentionMetrics structure
<a name="aws-glue-api-table-optimizers-RetentionMetrics"></a>

A structure that contains retention metrics for the optimizer run.

**Fields**
+ `IcebergMetrics` – An [IcebergRetentionMetrics](#aws-glue-api-table-optimizers-IcebergRetentionMetrics) object.

  A structure containing the Iceberg retention metrics for the optimizer run.

## OrphanFileDeletionMetrics structure
<a name="aws-glue-api-table-optimizers-OrphanFileDeletionMetrics"></a>

A structure that contains orphan file deletion metrics for the optimizer run.

**Fields**
+ `IcebergMetrics` – An [IcebergOrphanFileDeletionMetrics](#aws-glue-api-table-optimizers-IcebergOrphanFileDeletionMetrics) object.

  A structure containing the Iceberg orphan file deletion metrics for the optimizer run.

## IcebergCompactionMetrics structure
<a name="aws-glue-api-table-optimizers-IcebergCompactionMetrics"></a>

Compaction metrics for Iceberg for the optimizer run.

**Fields**
+ `DpuHours` – Number (double).

  The number of DPU hours consumed by the job.
+ `NumberOfDpus` – Number (Integer).

  The number of DPUs consumed by the job, rounded up to the nearest whole number.
+ `JobDurationInHour` – Number (double).

  The duration of the job in hours.

## IcebergRetentionMetrics structure
<a name="aws-glue-api-table-optimizers-IcebergRetentionMetrics"></a>

Snapshot retention metrics for Iceberg for the optimizer run.

**Fields**
+ `DpuHours` – Number (double).

  The number of DPU hours consumed by the job.
+ `NumberOfDpus` – Number (Integer).

  The number of DPUs consumed by the job, rounded up to the nearest whole number.
+ `JobDurationInHour` – Number (double).

  The duration of the job in hours.

## IcebergOrphanFileDeletionMetrics structure
<a name="aws-glue-api-table-optimizers-IcebergOrphanFileDeletionMetrics"></a>

Orphan file deletion metrics for Iceberg for the optimizer run.

**Fields**
+ `DpuHours` – Number (double).

  The number of DPU hours consumed by the job.
+ `NumberOfDpus` – Number (Integer).

  The number of DPUs consumed by the job, rounded up to the nearest whole number.
+ `JobDurationInHour` – Number (double).

  The duration of the job in hours.

## RunMetrics structure
<a name="aws-glue-api-table-optimizers-RunMetrics"></a>

Metrics for the optimizer run.

This structure is deprecated. See the individual metric members for compaction, retention, and orphan file deletion.

**Fields**
+ `NumberOfBytesCompacted` – UTF-8 string.

  The number of bytes removed by the compaction job run.
+ `NumberOfFilesCompacted` – UTF-8 string.

  The number of files removed by the compaction job run.
+ `NumberOfDpus` – UTF-8 string.

  The number of DPUs consumed by the job, rounded up to the nearest whole number.
+ `JobDurationInHour` – UTF-8 string.

  The duration of the job in hours.

## Operations
<a name="aws-glue-api-table-optimizers-actions"></a>
+ [GetTableOptimizer action (Python: get\$1table\$1optimizer)](#aws-glue-api-table-optimizers-GetTableOptimizer)
+ [BatchGetTableOptimizer action (Python: batch\$1get\$1table\$1optimizer)](#aws-glue-api-table-optimizers-BatchGetTableOptimizer)
+ [ListTableOptimizerRuns action (Python: list\$1table\$1optimizer\$1runs)](#aws-glue-api-table-optimizers-ListTableOptimizerRuns)
+ [CreateTableOptimizer action (Python: create\$1table\$1optimizer)](#aws-glue-api-table-optimizers-CreateTableOptimizer)
+ [DeleteTableOptimizer action (Python: delete\$1table\$1optimizer)](#aws-glue-api-table-optimizers-DeleteTableOptimizer)
+ [UpdateTableOptimizer action (Python: update\$1table\$1optimizer)](#aws-glue-api-table-optimizers-UpdateTableOptimizer)

## GetTableOptimizer action (Python: get\$1table\$1optimizer)
<a name="aws-glue-api-table-optimizers-GetTableOptimizer"></a>

Returns the configuration of all optimizers associated with a specified table.

**Request**
+ `CatalogId` – *Required:* Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Catalog ID of the table.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database in the catalog in which the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table.
+ `Type` – *Required:* UTF-8 string (valid values: `compaction="COMPACTION"` \$1 `retention="RETENTION"` \$1 `orphan_file_deletion="ORPHAN_FILE_DELETION"`).

  The type of table optimizer.

**Response**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Catalog ID of the table.
+ `DatabaseName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database in the catalog in which the table resides.
+ `TableName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table.
+ `TableOptimizer` – A [TableOptimizer](#aws-glue-api-table-optimizers-TableOptimizer) object.

  The optimizer associated with the specified table.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `AccessDeniedException`
+ `InternalServiceException`
+ `ThrottlingException`

## BatchGetTableOptimizer action (Python: batch\$1get\$1table\$1optimizer)
<a name="aws-glue-api-table-optimizers-BatchGetTableOptimizer"></a>

Returns the configuration for the specified table optimizers.

**Request**
+ `Entries` – *Required:* An array of [BatchGetTableOptimizerEntry](#aws-glue-api-table-optimizers-BatchGetTableOptimizerEntry) objects.

  A list of `BatchGetTableOptimizerEntry` objects specifying the table optimizers to retrieve.

**Response**
+ `TableOptimizers` – An array of [BatchTableOptimizer](#aws-glue-api-table-optimizers-BatchTableOptimizer) objects.

  A list of `BatchTableOptimizer` objects.
+ `Failures` – An array of [BatchGetTableOptimizerError](#aws-glue-api-table-optimizers-BatchGetTableOptimizerError) objects.

  A list of errors from the operation.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `AccessDeniedException`
+ `InternalServiceException`
+ `ThrottlingException`

## ListTableOptimizerRuns action (Python: list\$1table\$1optimizer\$1runs)
<a name="aws-glue-api-table-optimizers-ListTableOptimizerRuns"></a>

Lists the history of previous optimizer runs for a specific table.

**Request**
+ `CatalogId` – *Required:* Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Catalog ID of the table.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database in the catalog in which the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table.
+ `Type` – *Required:* UTF-8 string (valid values: `compaction="COMPACTION"` \$1 `retention="RETENTION"` \$1 `orphan_file_deletion="ORPHAN_FILE_DELETION"`).

  The type of table optimizer.
+ `MaxResults` – Number (integer).

  The maximum number of optimizer runs to return on each call.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.

**Response**
+ `CatalogId` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Catalog ID of the table.
+ `DatabaseName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database in the catalog in which the table resides.
+ `TableName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table.
+ `NextToken` – UTF-8 string.

  A continuation token for paginating the returned list of optimizer runs, returned if the current segment of the list is not the last.
+ `TableOptimizerRuns` – An array of [TableOptimizerRun](#aws-glue-api-table-optimizers-TableOptimizerRun) objects.

  A list of the optimizer runs associated with a table.

**Errors**
+ `EntityNotFoundException`
+ `AccessDeniedException`
+ `InvalidInputException`
+ `ValidationException`
+ `InternalServiceException`
+ `ThrottlingException`

## CreateTableOptimizer action (Python: create\$1table\$1optimizer)
<a name="aws-glue-api-table-optimizers-CreateTableOptimizer"></a>

Creates a new table optimizer for a specific function. 

**Request**
+ `CatalogId` – *Required:* Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Catalog ID of the table.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database in the catalog in which the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table.
+ `Type` – *Required:* UTF-8 string (valid values: `compaction="COMPACTION"` \$1 `retention="RETENTION"` \$1 `orphan_file_deletion="ORPHAN_FILE_DELETION"`).

  The type of table optimizer.
+ `TableOptimizerConfiguration` – *Required:* A [TableOptimizerConfiguration](#aws-glue-api-table-optimizers-TableOptimizerConfiguration) object.

  A `TableOptimizerConfiguration` object representing the configuration of a table optimizer.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `ValidationException`
+ `InvalidInputException`
+ `AccessDeniedException`
+ `AlreadyExistsException`
+ `InternalServiceException`
+ `ThrottlingException`

## DeleteTableOptimizer action (Python: delete\$1table\$1optimizer)
<a name="aws-glue-api-table-optimizers-DeleteTableOptimizer"></a>

Deletes an optimizer and all associated metadata for a table. The optimization will no longer be performed on the table.

**Request**
+ `CatalogId` – *Required:* Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Catalog ID of the table.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database in the catalog in which the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table.
+ `Type` – *Required:* UTF-8 string (valid values: `compaction="COMPACTION"` \$1 `retention="RETENTION"` \$1 `orphan_file_deletion="ORPHAN_FILE_DELETION"`).

  The type of table optimizer.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `AccessDeniedException`
+ `InternalServiceException`
+ `ThrottlingException`

## UpdateTableOptimizer action (Python: update\$1table\$1optimizer)
<a name="aws-glue-api-table-optimizers-UpdateTableOptimizer"></a>

Updates the configuration for an existing table optimizer.

**Request**
+ `CatalogId` – *Required:* Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Catalog ID of the table.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database in the catalog in which the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table.
+ `Type` – *Required:* UTF-8 string (valid values: `compaction="COMPACTION"` \$1 `retention="RETENTION"` \$1 `orphan_file_deletion="ORPHAN_FILE_DELETION"`).

  The type of table optimizer.
+ `TableOptimizerConfiguration` – *Required:* A [TableOptimizerConfiguration](#aws-glue-api-table-optimizers-TableOptimizerConfiguration) object.

  A `TableOptimizerConfiguration` object representing the configuration of a table optimizer.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `AccessDeniedException`
+ `ValidationException`
+ `InternalServiceException`
+ `ThrottlingException`
+ `ConcurrentModificationException`

# Crawlers and classifiers API
<a name="aws-glue-api-crawler"></a>

The Crawler and classifiers API describes the AWS Glue crawler and classifier data types, and includes the API for creating, deleting, updating, and listing crawlers or classifiers.

**Topics**
+ [

# Classifier API
](aws-glue-api-crawler-classifiers.md)
+ [

# Crawler API
](aws-glue-api-crawler-crawling.md)
+ [

# Column statistics API
](aws-glue-api-crawler-column-statistics.md)
+ [

# Crawler scheduler API
](aws-glue-api-crawler-scheduler.md)

# Classifier API
<a name="aws-glue-api-crawler-classifiers"></a>

The Classifier API describes AWS Glue classifier data types, and includes the API for creating, deleting, updating, and listing classifiers.

## Data types
<a name="aws-glue-api-crawler-classifiers-objects"></a>
+ [Classifier structure](#aws-glue-api-crawler-classifiers-Classifier)
+ [GrokClassifier structure](#aws-glue-api-crawler-classifiers-GrokClassifier)
+ [XMLClassifier structure](#aws-glue-api-crawler-classifiers-XMLClassifier)
+ [JsonClassifier structure](#aws-glue-api-crawler-classifiers-JsonClassifier)
+ [CsvClassifier structure](#aws-glue-api-crawler-classifiers-CsvClassifier)
+ [CreateGrokClassifierRequest structure](#aws-glue-api-crawler-classifiers-CreateGrokClassifierRequest)
+ [UpdateGrokClassifierRequest structure](#aws-glue-api-crawler-classifiers-UpdateGrokClassifierRequest)
+ [CreateXMLClassifierRequest structure](#aws-glue-api-crawler-classifiers-CreateXMLClassifierRequest)
+ [UpdateXMLClassifierRequest structure](#aws-glue-api-crawler-classifiers-UpdateXMLClassifierRequest)
+ [CreateJsonClassifierRequest structure](#aws-glue-api-crawler-classifiers-CreateJsonClassifierRequest)
+ [UpdateJsonClassifierRequest structure](#aws-glue-api-crawler-classifiers-UpdateJsonClassifierRequest)
+ [CreateCsvClassifierRequest structure](#aws-glue-api-crawler-classifiers-CreateCsvClassifierRequest)
+ [UpdateCsvClassifierRequest structure](#aws-glue-api-crawler-classifiers-UpdateCsvClassifierRequest)

## Classifier structure
<a name="aws-glue-api-crawler-classifiers-Classifier"></a>

Classifiers are triggered during a crawl task. A classifier checks whether a given file is in a format it can handle. If it is, the classifier creates a schema in the form of a `StructType` object that matches that data format.

You can use the standard classifiers that AWS Glue provides, or you can write your own classifiers to best categorize your data sources and specify the appropriate schemas to use for them. A classifier can be a `grok` classifier, an `XML` classifier, a `JSON` classifier, or a custom `CSV` classifier, as specified in one of the fields in the `Classifier` object.

**Fields**
+ `GrokClassifier` – A [GrokClassifier](#aws-glue-api-crawler-classifiers-GrokClassifier) object.

  A classifier that uses `grok`.
+ `XMLClassifier` – A [XMLClassifier](#aws-glue-api-crawler-classifiers-XMLClassifier) object.

  A classifier for XML content.
+ `JsonClassifier` – A [JsonClassifier](#aws-glue-api-crawler-classifiers-JsonClassifier) object.

  A classifier for JSON content.
+ `CsvClassifier` – A [CsvClassifier](#aws-glue-api-crawler-classifiers-CsvClassifier) object.

  A classifier for comma-separated values (CSV).

## GrokClassifier structure
<a name="aws-glue-api-crawler-classifiers-GrokClassifier"></a>

A classifier that uses `grok` patterns.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the classifier.
+ `Classification` – *Required:* UTF-8 string.

  An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, and so on.
+ `CreationTime` – Timestamp.

  The time that this classifier was registered.
+ `LastUpdated` – Timestamp.

  The time that this classifier was last updated.
+ `Version` – Number (long).

  The version of this classifier.
+ `GrokPattern` – *Required:* UTF-8 string, not less than 1 or more than 2048 bytes long, matching the [A Logstash Grok string pattern](aws-glue-api-common.md#aws-glue-api-grok-pattern).

  The grok pattern applied to a data store by this classifier. For more information, see built-in patterns in [Writing Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html).
+ `CustomPatterns` – UTF-8 string, not more than 16000 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  Optional custom grok patterns defined by this classifier. For more information, see custom patterns in [Writing Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html).

## XMLClassifier structure
<a name="aws-glue-api-crawler-classifiers-XMLClassifier"></a>

A classifier for `XML` content.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the classifier.
+ `Classification` – *Required:* UTF-8 string.

  An identifier of the data format that the classifier matches.
+ `CreationTime` – Timestamp.

  The time that this classifier was registered.
+ `LastUpdated` – Timestamp.

  The time that this classifier was last updated.
+ `Version` – Number (long).

  The version of this classifier.
+ `RowTag` – UTF-8 string.

  The XML tag designating the element that contains each record in an XML document being parsed. This can't identify a self-closing element (closed by `/>`). An empty row element that contains only attributes can be parsed as long as it ends with a closing tag (for example, `<row item_a="A" item_b="B"></row>` is okay, but `<row item_a="A" item_b="B" />` is not).

## JsonClassifier structure
<a name="aws-glue-api-crawler-classifiers-JsonClassifier"></a>

A classifier for `JSON` content.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the classifier.
+ `CreationTime` – Timestamp.

  The time that this classifier was registered.
+ `LastUpdated` – Timestamp.

  The time that this classifier was last updated.
+ `Version` – Number (long).

  The version of this classifier.
+ `JsonPath` – *Required:* UTF-8 string.

  A `JsonPath` string defining the JSON data for the classifier to classify. AWS Glue supports a subset of JsonPath, as described in [Writing JsonPath Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json).

## CsvClassifier structure
<a name="aws-glue-api-crawler-classifiers-CsvClassifier"></a>

A classifier for custom `CSV` content.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the classifier.
+ `CreationTime` – Timestamp.

  The time that this classifier was registered.
+ `LastUpdated` – Timestamp.

  The time that this classifier was last updated.
+ `Version` – Number (long).

  The version of this classifier.
+ `Delimiter` – UTF-8 string, not less than 1 or more than 1 bytes long, matching the [Custom string pattern #26](aws-glue-api-common.md#regex_26).

  A custom symbol to denote what separates each column entry in the row.
+ `QuoteSymbol` – UTF-8 string, not less than 1 or more than 1 bytes long, matching the [Custom string pattern #26](aws-glue-api-common.md#regex_26).

  A custom symbol to denote what combines content into a single column value. It must be different from the column delimiter.
+ `ContainsHeader` – UTF-8 string (valid values: `UNKNOWN` \$1 `PRESENT` \$1 `ABSENT`).

  Indicates whether the CSV file contains a header.
+ `Header` – An array of UTF-8 strings.

  A list of strings representing column names.
+ `DisableValueTrimming` – Boolean.

  Specifies not to trim values before identifying the type of column values. The default value is `true`.
+ `AllowSingleColumn` – Boolean.

  Enables the processing of files that contain only one column.
+ `CustomDatatypeConfigured` – Boolean.

  Enables the custom datatype to be configured.
+ `CustomDatatypes` – An array of UTF-8 strings.

  A list of custom datatypes including "BINARY", "BOOLEAN", "DATE", "DECIMAL", "DOUBLE", "FLOAT", "INT", "LONG", "SHORT", "STRING", "TIMESTAMP".
+ `Serde` – UTF-8 string (valid values: `OpenCSVSerDe` \$1 `LazySimpleSerDe` \$1 `None`).

  Sets the SerDe for processing CSV in the classifier, which will be applied in the Data Catalog. Valid values are `OpenCSVSerDe`, `LazySimpleSerDe`, and `None`. You can specify the `None` value when you want the crawler to do the detection.

## CreateGrokClassifierRequest structure
<a name="aws-glue-api-crawler-classifiers-CreateGrokClassifierRequest"></a>

Specifies a `grok` classifier for `CreateClassifier` to create.

**Fields**
+ `Classification` – *Required:* UTF-8 string.

  An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, Amazon CloudWatch Logs, and so on.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the new classifier.
+ `GrokPattern` – *Required:* UTF-8 string, not less than 1 or more than 2048 bytes long, matching the [A Logstash Grok string pattern](aws-glue-api-common.md#aws-glue-api-grok-pattern).

  The grok pattern used by this classifier.
+ `CustomPatterns` – UTF-8 string, not more than 16000 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  Optional custom grok patterns used by this classifier.

## UpdateGrokClassifierRequest structure
<a name="aws-glue-api-crawler-classifiers-UpdateGrokClassifierRequest"></a>

Specifies a grok classifier to update when passed to `UpdateClassifier`.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the `GrokClassifier`.
+ `Classification` – UTF-8 string.

  An identifier of the data format that the classifier matches, such as Twitter, JSON, Omniture logs, Amazon CloudWatch Logs, and so on.
+ `GrokPattern` – UTF-8 string, not less than 1 or more than 2048 bytes long, matching the [A Logstash Grok string pattern](aws-glue-api-common.md#aws-glue-api-grok-pattern).

  The grok pattern used by this classifier.
+ `CustomPatterns` – UTF-8 string, not more than 16000 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  Optional custom grok patterns used by this classifier.

## CreateXMLClassifierRequest structure
<a name="aws-glue-api-crawler-classifiers-CreateXMLClassifierRequest"></a>

Specifies an XML classifier for `CreateClassifier` to create.

**Fields**
+ `Classification` – *Required:* UTF-8 string.

  An identifier of the data format that the classifier matches.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the classifier.
+ `RowTag` – UTF-8 string.

  The XML tag designating the element that contains each record in an XML document being parsed. This can't identify a self-closing element (closed by `/>`). An empty row element that contains only attributes can be parsed as long as it ends with a closing tag (for example, `<row item_a="A" item_b="B"></row>` is okay, but `<row item_a="A" item_b="B" />` is not).

## UpdateXMLClassifierRequest structure
<a name="aws-glue-api-crawler-classifiers-UpdateXMLClassifierRequest"></a>

Specifies an XML classifier to be updated.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the classifier.
+ `Classification` – UTF-8 string.

  An identifier of the data format that the classifier matches.
+ `RowTag` – UTF-8 string.

  The XML tag designating the element that contains each record in an XML document being parsed. This cannot identify a self-closing element (closed by `/>`). An empty row element that contains only attributes can be parsed as long as it ends with a closing tag (for example, `<row item_a="A" item_b="B"></row>` is okay, but `<row item_a="A" item_b="B" />` is not).

## CreateJsonClassifierRequest structure
<a name="aws-glue-api-crawler-classifiers-CreateJsonClassifierRequest"></a>

Specifies a JSON classifier for `CreateClassifier` to create.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the classifier.
+ `JsonPath` – *Required:* UTF-8 string.

  A `JsonPath` string defining the JSON data for the classifier to classify. AWS Glue supports a subset of JsonPath, as described in [Writing JsonPath Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json).

## UpdateJsonClassifierRequest structure
<a name="aws-glue-api-crawler-classifiers-UpdateJsonClassifierRequest"></a>

Specifies a JSON classifier to be updated.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the classifier.
+ `JsonPath` – UTF-8 string.

  A `JsonPath` string defining the JSON data for the classifier to classify. AWS Glue supports a subset of JsonPath, as described in [Writing JsonPath Custom Classifiers](https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json).

## CreateCsvClassifierRequest structure
<a name="aws-glue-api-crawler-classifiers-CreateCsvClassifierRequest"></a>

Specifies a custom CSV classifier for `CreateClassifier` to create.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the classifier.
+ `Delimiter` – UTF-8 string, not less than 1 or more than 1 bytes long, matching the [Custom string pattern #26](aws-glue-api-common.md#regex_26).

  A custom symbol to denote what separates each column entry in the row.
+ `QuoteSymbol` – UTF-8 string, not less than 1 or more than 1 bytes long, matching the [Custom string pattern #26](aws-glue-api-common.md#regex_26).

  A custom symbol to denote what combines content into a single column value. Must be different from the column delimiter.
+ `ContainsHeader` – UTF-8 string (valid values: `UNKNOWN` \$1 `PRESENT` \$1 `ABSENT`).

  Indicates whether the CSV file contains a header.
+ `Header` – An array of UTF-8 strings.

  A list of strings representing column names.
+ `DisableValueTrimming` – Boolean.

  Specifies not to trim values before identifying the type of column values. The default value is true.
+ `AllowSingleColumn` – Boolean.

  Enables the processing of files that contain only one column.
+ `CustomDatatypeConfigured` – Boolean.

  Enables the configuration of custom datatypes.
+ `CustomDatatypes` – An array of UTF-8 strings.

  Creates a list of supported custom datatypes.
+ `Serde` – UTF-8 string (valid values: `OpenCSVSerDe` \$1 `LazySimpleSerDe` \$1 `None`).

  Sets the SerDe for processing CSV in the classifier, which will be applied in the Data Catalog. Valid values are `OpenCSVSerDe`, `LazySimpleSerDe`, and `None`. You can specify the `None` value when you want the crawler to do the detection.

## UpdateCsvClassifierRequest structure
<a name="aws-glue-api-crawler-classifiers-UpdateCsvClassifierRequest"></a>

Specifies a custom CSV classifier to be updated.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the classifier.
+ `Delimiter` – UTF-8 string, not less than 1 or more than 1 bytes long, matching the [Custom string pattern #26](aws-glue-api-common.md#regex_26).

  A custom symbol to denote what separates each column entry in the row.
+ `QuoteSymbol` – UTF-8 string, not less than 1 or more than 1 bytes long, matching the [Custom string pattern #26](aws-glue-api-common.md#regex_26).

  A custom symbol to denote what combines content into a single column value. It must be different from the column delimiter.
+ `ContainsHeader` – UTF-8 string (valid values: `UNKNOWN` \$1 `PRESENT` \$1 `ABSENT`).

  Indicates whether the CSV file contains a header.
+ `Header` – An array of UTF-8 strings.

  A list of strings representing column names.
+ `DisableValueTrimming` – Boolean.

  Specifies not to trim values before identifying the type of column values. The default value is true.
+ `AllowSingleColumn` – Boolean.

  Enables the processing of files that contain only one column.
+ `CustomDatatypeConfigured` – Boolean.

  Specifies the configuration of custom datatypes.
+ `CustomDatatypes` – An array of UTF-8 strings.

  Specifies a list of supported custom datatypes.
+ `Serde` – UTF-8 string (valid values: `OpenCSVSerDe` \$1 `LazySimpleSerDe` \$1 `None`).

  Sets the SerDe for processing CSV in the classifier, which will be applied in the Data Catalog. Valid values are `OpenCSVSerDe`, `LazySimpleSerDe`, and `None`. You can specify the `None` value when you want the crawler to do the detection.

## Operations
<a name="aws-glue-api-crawler-classifiers-actions"></a>
+ [CreateClassifier action (Python: create\$1classifier)](#aws-glue-api-crawler-classifiers-CreateClassifier)
+ [DeleteClassifier action (Python: delete\$1classifier)](#aws-glue-api-crawler-classifiers-DeleteClassifier)
+ [GetClassifier action (Python: get\$1classifier)](#aws-glue-api-crawler-classifiers-GetClassifier)
+ [GetClassifiers action (Python: get\$1classifiers)](#aws-glue-api-crawler-classifiers-GetClassifiers)
+ [UpdateClassifier action (Python: update\$1classifier)](#aws-glue-api-crawler-classifiers-UpdateClassifier)

## CreateClassifier action (Python: create\$1classifier)
<a name="aws-glue-api-crawler-classifiers-CreateClassifier"></a>

Creates a classifier in the user's account. This can be a `GrokClassifier`, an `XMLClassifier`, a `JsonClassifier`, or a `CsvClassifier`, depending on which field of the request is present.

**Request**
+ `GrokClassifier` – A [CreateGrokClassifierRequest](#aws-glue-api-crawler-classifiers-CreateGrokClassifierRequest) object.

  A `GrokClassifier` object specifying the classifier to create.
+ `XMLClassifier` – A [CreateXMLClassifierRequest](#aws-glue-api-crawler-classifiers-CreateXMLClassifierRequest) object.

  An `XMLClassifier` object specifying the classifier to create.
+ `JsonClassifier` – A [CreateJsonClassifierRequest](#aws-glue-api-crawler-classifiers-CreateJsonClassifierRequest) object.

  A `JsonClassifier` object specifying the classifier to create.
+ `CsvClassifier` – A [CreateCsvClassifierRequest](#aws-glue-api-crawler-classifiers-CreateCsvClassifierRequest) object.

  A `CsvClassifier` object specifying the classifier to create.

**Response**
+ *No Response parameters.*

**Errors**
+ `AlreadyExistsException`
+ `InvalidInputException`
+ `OperationTimeoutException`

## DeleteClassifier action (Python: delete\$1classifier)
<a name="aws-glue-api-crawler-classifiers-DeleteClassifier"></a>

Removes a classifier from the Data Catalog.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the classifier to remove.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `OperationTimeoutException`

## GetClassifier action (Python: get\$1classifier)
<a name="aws-glue-api-crawler-classifiers-GetClassifier"></a>

Retrieve a classifier by name.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the classifier to retrieve.

**Response**
+ `Classifier` – A [Classifier](#aws-glue-api-crawler-classifiers-Classifier) object.

  The requested classifier.

**Errors**
+ `EntityNotFoundException`
+ `OperationTimeoutException`

## GetClassifiers action (Python: get\$1classifiers)
<a name="aws-glue-api-crawler-classifiers-GetClassifiers"></a>

Lists all classifier objects in the Data Catalog.

**Request**
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The size of the list to return (optional).
+ `NextToken` – UTF-8 string.

  An optional continuation token.

**Response**
+ `Classifiers` – An array of [Classifier](#aws-glue-api-crawler-classifiers-Classifier) objects.

  The requested list of classifier objects.
+ `NextToken` – UTF-8 string.

  A continuation token.

**Errors**
+ `OperationTimeoutException`

## UpdateClassifier action (Python: update\$1classifier)
<a name="aws-glue-api-crawler-classifiers-UpdateClassifier"></a>

Modifies an existing classifier (a `GrokClassifier`, an `XMLClassifier`, a `JsonClassifier`, or a `CsvClassifier`, depending on which field is present).

**Request**
+ `GrokClassifier` – An [UpdateGrokClassifierRequest](#aws-glue-api-crawler-classifiers-UpdateGrokClassifierRequest) object.

  A `GrokClassifier` object with updated fields.
+ `XMLClassifier` – An [UpdateXMLClassifierRequest](#aws-glue-api-crawler-classifiers-UpdateXMLClassifierRequest) object.

  An `XMLClassifier` object with updated fields.
+ `JsonClassifier` – An [UpdateJsonClassifierRequest](#aws-glue-api-crawler-classifiers-UpdateJsonClassifierRequest) object.

  A `JsonClassifier` object with updated fields.
+ `CsvClassifier` – An [UpdateCsvClassifierRequest](#aws-glue-api-crawler-classifiers-UpdateCsvClassifierRequest) object.

  A `CsvClassifier` object with updated fields.

**Response**
+ *No Response parameters.*

**Errors**
+ `InvalidInputException`
+ `VersionMismatchException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`

# Crawler API
<a name="aws-glue-api-crawler-crawling"></a>

The Crawler API describes AWS Glue crawler data types, along with the API for creating, deleting, updating, and listing crawlers.

## Data types
<a name="aws-glue-api-crawler-crawling-objects"></a>
+ [Crawler structure](#aws-glue-api-crawler-crawling-Crawler)
+ [Schedule structure](#aws-glue-api-crawler-crawling-Schedule)
+ [CrawlerTargets structure](#aws-glue-api-crawler-crawling-CrawlerTargets)
+ [S3Target structure](#aws-glue-api-crawler-crawling-S3Target)
+ [S3DeltaCatalogTarget structure](#aws-glue-api-crawler-crawling-S3DeltaCatalogTarget)
+ [S3DeltaDirectTarget structure](#aws-glue-api-crawler-crawling-S3DeltaDirectTarget)
+ [JdbcTarget structure](#aws-glue-api-crawler-crawling-JdbcTarget)
+ [MongoDBTarget structure](#aws-glue-api-crawler-crawling-MongoDBTarget)
+ [DynamoDBTarget structure](#aws-glue-api-crawler-crawling-DynamoDBTarget)
+ [DeltaTarget structure](#aws-glue-api-crawler-crawling-DeltaTarget)
+ [IcebergTarget structure](#aws-glue-api-crawler-crawling-IcebergTarget)
+ [HudiTarget structure](#aws-glue-api-crawler-crawling-HudiTarget)
+ [CatalogTarget structure](#aws-glue-api-crawler-crawling-CatalogTarget)
+ [CrawlerMetrics structure](#aws-glue-api-crawler-crawling-CrawlerMetrics)
+ [CrawlerHistory structure](#aws-glue-api-crawler-crawling-CrawlerHistory)
+ [CrawlsFilter structure](#aws-glue-api-crawler-crawling-CrawlsFilter)
+ [SchemaChangePolicy structure](#aws-glue-api-crawler-crawling-SchemaChangePolicy)
+ [LastCrawlInfo structure](#aws-glue-api-crawler-crawling-LastCrawlInfo)
+ [RecrawlPolicy structure](#aws-glue-api-crawler-crawling-RecrawlPolicy)
+ [LineageConfiguration structure](#aws-glue-api-crawler-crawling-LineageConfiguration)
+ [LakeFormationConfiguration structure](#aws-glue-api-crawler-crawling-LakeFormationConfiguration)

## Crawler structure
<a name="aws-glue-api-crawler-crawling-Crawler"></a>

Specifies a crawler program that examines a data source and uses classifiers to try to determine its schema. If successful, the crawler records metadata concerning the data source in the AWS Glue Data Catalog.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the crawler.
+ `Role` – UTF-8 string.

  The Amazon Resource Name (ARN) of an IAM role that's used to access customer resources, such as Amazon Simple Storage Service (Amazon S3) data.
+ `Targets` – A [CrawlerTargets](#aws-glue-api-crawler-crawling-CrawlerTargets) object.

  A collection of targets to crawl.
+ `DatabaseName` – UTF-8 string.

  The name of the database in which the crawler's output is stored.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the crawler.
+ `Classifiers` – An array of UTF-8 strings.

  A list of UTF-8 strings that specify the custom classifiers that are associated with the crawler.
+ `RecrawlPolicy` – A [RecrawlPolicy](#aws-glue-api-crawler-crawling-RecrawlPolicy) object.

  A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.
+ `SchemaChangePolicy` – A [SchemaChangePolicy](#aws-glue-api-crawler-crawling-SchemaChangePolicy) object.

  The policy that specifies update and delete behaviors for the crawler.
+ `LineageConfiguration` – A [LineageConfiguration](#aws-glue-api-crawler-crawling-LineageConfiguration) object.

  A configuration that specifies whether data lineage is enabled for the crawler.
+ `State` – UTF-8 string (valid values: `READY` \$1 `RUNNING` \$1 `STOPPING`).

  Indicates whether the crawler is running, or whether a run is pending.
+ `TablePrefix` – UTF-8 string, not more than 128 bytes long.

  The prefix added to the names of tables that are created.
+ `Schedule` – A [Schedule](aws-glue-api-crawler-scheduler.md#aws-glue-api-crawler-scheduler-Schedule) object.

  For scheduled crawlers, the schedule when the crawler runs.
+ `CrawlElapsedTime` – Number (long).

  If the crawler is running, contains the total time elapsed since the last crawl began.
+ `CreationTime` – Timestamp.

  The time that the crawler was created.
+ `LastUpdated` – Timestamp.

  The time that the crawler was last updated.
+ `LastCrawl` – A [LastCrawlInfo](#aws-glue-api-crawler-crawling-LastCrawlInfo) object.

  The status of the last crawl, and potentially error information if an error occurred.
+ `Version` – Number (long).

  The version of the crawler.
+ `Configuration` – UTF-8 string.

  Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see [Setting crawler configuration options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html).
+ `CrawlerSecurityConfiguration` – UTF-8 string, not more than 128 bytes long.

  The name of the `SecurityConfiguration` structure to be used by this crawler.
+ `LakeFormationConfiguration` – A [LakeFormationConfiguration](#aws-glue-api-crawler-crawling-LakeFormationConfiguration) object.

  Specifies whether the crawler should use AWS Lake Formation credentials for the crawler instead of the IAM role credentials.

## Schedule structure
<a name="aws-glue-api-crawler-crawling-Schedule"></a>

A scheduling object using a `cron` statement to schedule an event.

**Fields**
+ `ScheduleExpression` – UTF-8 string.

  A `cron` expression used to specify the schedule (see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`.
+ `State` – UTF-8 string (valid values: `SCHEDULED` \$1 `NOT_SCHEDULED` \$1 `TRANSITIONING`).

  The state of the schedule.

## CrawlerTargets structure
<a name="aws-glue-api-crawler-crawling-CrawlerTargets"></a>

Specifies data stores to crawl.

**Fields**
+ `S3Targets` – An array of [S3Target](#aws-glue-api-crawler-crawling-S3Target) objects.

  Specifies Amazon Simple Storage Service (Amazon S3) targets.
+ `JdbcTargets` – An array of [JdbcTarget](#aws-glue-api-crawler-crawling-JdbcTarget) objects.

  Specifies JDBC targets.
+ `MongoDBTargets` – An array of [MongoDBTarget](#aws-glue-api-crawler-crawling-MongoDBTarget) objects.

  Specifies Amazon DocumentDB or MongoDB targets.
+ `DynamoDBTargets` – An array of [DynamoDBTarget](#aws-glue-api-crawler-crawling-DynamoDBTarget) objects.

  Specifies Amazon DynamoDB targets.
+ `CatalogTargets` – An array of [CatalogTarget](#aws-glue-api-crawler-crawling-CatalogTarget) objects.

  Specifies AWS Glue Data Catalog targets.
+ `DeltaTargets` – An array of [DeltaTarget](#aws-glue-api-crawler-crawling-DeltaTarget) objects.

  Specifies Delta data store targets.
+ `IcebergTargets` – An array of [IcebergTarget](#aws-glue-api-crawler-crawling-IcebergTarget) objects.

  Specifies Apache Iceberg data store targets.
+ `HudiTargets` – An array of [HudiTarget](#aws-glue-api-crawler-crawling-HudiTarget) objects.

  Specifies Apache Hudi data store targets.

## S3Target structure
<a name="aws-glue-api-crawler-crawling-S3Target"></a>

Specifies a data store in Amazon Simple Storage Service (Amazon S3).

**Fields**
+ `Path` – UTF-8 string.

  The path to the Amazon S3 target.
+ `Exclusions` – An array of UTF-8 strings.

  A list of glob patterns used to exclude from the crawl. For more information, see [Catalog Tables with a Crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html).
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The name of a connection which allows a job or crawler to access data in Amazon S3 within an Amazon Virtual Private Cloud environment (Amazon VPC).
+ `SampleSize` – Number (integer).

  Sets the number of files in each leaf folder to be crawled when crawling sample files in a dataset. If not set, all the files are crawled. A valid value is an integer between 1 and 249.
+ `EventQueueArn` – UTF-8 string.

  A valid Amazon SQS ARN. For example, `arn:aws:sqs:region:account:sqs`.
+ `DlqEventQueueArn` – UTF-8 string.

  A valid Amazon dead-letter SQS ARN. For example, `arn:aws:sqs:region:account:deadLetterQueue`.

## S3DeltaCatalogTarget structure
<a name="aws-glue-api-crawler-crawling-S3DeltaCatalogTarget"></a>

Specifies a target that writes to a Delta Lake data source in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `PartitionKeys` – An array of UTF-8 strings.

  Specifies native partitioning using a sequence of keys.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to write to.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to write to.
+ `AdditionalOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options for the connector.
+ `SchemaChangePolicy` – A [CatalogSchemaChangePolicy](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CatalogSchemaChangePolicy) object.

  A policy that specifies update behavior for the crawler.
+ `AutoDataQuality` – An [AutoDataQuality](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-AutoDataQuality) object.

  Specifies whether to automatically enable data quality evaluation for the S3 Delta catalog target. When set to `true`, data quality checks are performed automatically during the write operation.
+ `OutputSchemas` – An array of [GlueSchema](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the S3 Delta catalog target.

## S3DeltaDirectTarget structure
<a name="aws-glue-api-crawler-crawling-S3DeltaDirectTarget"></a>

Specifies a target that writes to a Delta Lake data source in Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `PartitionKeys` – An array of UTF-8 strings.

  Specifies native partitioning using a sequence of keys.
+ `Path` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The Amazon S3 path of your Delta Lake data source to write to.
+ `Compression` – *Required:* UTF-8 string (valid values: `uncompressed="UNCOMPRESSED"` \$1 `snappy="SNAPPY"`).

  Specifies how the data is compressed. This is generally not necessary if the data has a standard file extension. Possible values are `"gzip"` and `"bzip"`).
+ `NumberTargetPartitions` – UTF-8 string.

  Specifies the number of target partitions for distributing Delta Lake dataset files across Amazon S3.
+ `Format` – *Required:* UTF-8 string (valid values: `json="JSON"` \$1 `csv="CSV"` \$1 `avro="AVRO"` \$1 `orc="ORC"` \$1 `parquet="PARQUET"` \$1 `hudi="HUDI"` \$1 `delta="DELTA"` \$1 `iceberg="ICEBERG"` \$1 `hyper="HYPER"` \$1 `xml="XML"`).

  Specifies the data output format for the target.
+ `AdditionalOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options for the connector.
+ `SchemaChangePolicy` – A [DirectSchemaChangePolicy](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-DirectSchemaChangePolicy) object.

  A policy that specifies update behavior for the crawler.
+ `AutoDataQuality` – An [AutoDataQuality](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-AutoDataQuality) object.

  Specifies whether to automatically enable data quality evaluation for the S3 Delta direct target. When set to `true`, data quality checks are performed automatically during the write operation.

## JdbcTarget structure
<a name="aws-glue-api-crawler-crawling-JdbcTarget"></a>

Specifies a JDBC data store to crawl.

**Fields**
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The name of the connection to use to connect to the JDBC target.
+ `Path` – UTF-8 string.

  The path of the JDBC target.
+ `Exclusions` – An array of UTF-8 strings.

  A list of glob patterns used to exclude from the crawl. For more information, see [Catalog Tables with a Crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html).
+ `EnableAdditionalMetadata` – An array of UTF-8 strings.

  Specify a value of `RAWTYPES` or `COMMENTS` to enable additional metadata in table responses. `RAWTYPES` provides the native-level datatype. `COMMENTS` provides comments associated with a column or table in the database.

  If you do not need additional metadata, keep the field empty.

## MongoDBTarget structure
<a name="aws-glue-api-crawler-crawling-MongoDBTarget"></a>

Specifies an Amazon DocumentDB or MongoDB data store to crawl.

**Fields**
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The name of the connection to use to connect to the Amazon DocumentDB or MongoDB target.
+ `Path` – UTF-8 string.

  The path of the Amazon DocumentDB or MongoDB target (database/collection).
+ `ScanAll` – Boolean.

  Indicates whether to scan all the records, or to sample rows from the table. Scanning all the records can take a long time when the table is not a high throughput table.

  A value of `true` means to scan all records, while a value of `false` means to sample the records. If no value is specified, the value defaults to `true`.

## DynamoDBTarget structure
<a name="aws-glue-api-crawler-crawling-DynamoDBTarget"></a>

Specifies an Amazon DynamoDB table to crawl.

**Fields**
+ `Path` – UTF-8 string.

  The name of the DynamoDB table to crawl.
+ `scanAll` – Boolean.

  Indicates whether to scan all the records, or to sample rows from the table. Scanning all the records can take a long time when the table is not a high throughput table.

  A value of `true` means to scan all records, while a value of `false` means to sample the records. If no value is specified, the value defaults to `true`.
+ `scanRate` – Number (double).

  The percentage of the configured read capacity units to use by the AWS Glue crawler. Read capacity units is a term defined by DynamoDB, and is a numeric value that acts as rate limiter for the number of reads that can be performed on that table per second.

  The valid values are null or a value between 0.1 to 1.5. A null value is used when user does not provide a value, and defaults to 0.5 of the configured Read Capacity Unit (for provisioned tables), or 0.25 of the max configured Read Capacity Unit (for tables using on-demand mode).

## DeltaTarget structure
<a name="aws-glue-api-crawler-crawling-DeltaTarget"></a>

Specifies a Delta data store to crawl one or more Delta tables.

**Fields**
+ `DeltaTables` – An array of UTF-8 strings.

  A list of the Amazon S3 paths to the Delta tables.
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The name of the connection to use to connect to the Delta table target.
+ `WriteManifest` – Boolean.

  Specifies whether to write the manifest files to the Delta table path.
+ `CreateNativeDeltaTable` – Boolean.

  Specifies whether the crawler will create native tables, to allow integration with query engines that support querying of the Delta transaction log directly.

## IcebergTarget structure
<a name="aws-glue-api-crawler-crawling-IcebergTarget"></a>

Specifies an Apache Iceberg data source where Iceberg tables are stored in Amazon S3.

**Fields**
+ `Paths` – An array of UTF-8 strings.

  One or more Amazon S3 paths that contains Iceberg metadata folders as `s3://bucket/prefix`.
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The name of the connection to use to connect to the Iceberg target.
+ `Exclusions` – An array of UTF-8 strings.

  A list of glob patterns used to exclude from the crawl. For more information, see [Catalog Tables with a Crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html).
+ `MaximumTraversalDepth` – Number (integer).

  The maximum depth of Amazon S3 paths that the crawler can traverse to discover the Iceberg metadata folder in your Amazon S3 path. Used to limit the crawler run time.

## HudiTarget structure
<a name="aws-glue-api-crawler-crawling-HudiTarget"></a>

Specifies an Apache Hudi data source.

**Fields**
+ `Paths` – An array of UTF-8 strings.

  An array of Amazon S3 location strings for Hudi, each indicating the root folder with which the metadata files for a Hudi table resides. The Hudi folder may be located in a child folder of the root folder.

  The crawler will scan all folders underneath a path for a Hudi folder.
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The name of the connection to use to connect to the Hudi target. If your Hudi files are stored in buckets that require VPC authorization, you can set their connection properties here.
+ `Exclusions` – An array of UTF-8 strings.

  A list of glob patterns used to exclude from the crawl. For more information, see [Catalog Tables with a Crawler](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html).
+ `MaximumTraversalDepth` – Number (integer).

  The maximum depth of Amazon S3 paths that the crawler can traverse to discover the Hudi metadata folder in your Amazon S3 path. Used to limit the crawler run time.

## CatalogTarget structure
<a name="aws-glue-api-crawler-crawling-CatalogTarget"></a>

Specifies an AWS Glue Data Catalog target.

**Fields**
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database to be synchronized.
+ `Tables` – *Required:* An array of UTF-8 strings, at least 1 string.

  A list of the tables to be synchronized.
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The name of the connection for an Amazon S3-backed Data Catalog table to be a target of the crawl when using a `Catalog` connection type paired with a `NETWORK` Connection type.
+ `EventQueueArn` – UTF-8 string.

  A valid Amazon SQS ARN. For example, `arn:aws:sqs:region:account:sqs`.
+ `DlqEventQueueArn` – UTF-8 string.

  A valid Amazon dead-letter SQS ARN. For example, `arn:aws:sqs:region:account:deadLetterQueue`.

## CrawlerMetrics structure
<a name="aws-glue-api-crawler-crawling-CrawlerMetrics"></a>

Metrics for a specified crawler.

**Fields**
+ `CrawlerName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the crawler.
+ `TimeLeftSeconds` – Number (double), not more than None.

  The estimated time left to complete a running crawl.
+ `StillEstimating` – Boolean.

  True if the crawler is still estimating how long it will take to complete this run.
+ `LastRuntimeSeconds` – Number (double), not more than None.

  The duration of the crawler's most recent run, in seconds.
+ `MedianRuntimeSeconds` – Number (double), not more than None.

  The median duration of this crawler's runs, in seconds.
+ `TablesCreated` – Number (integer), not more than None.

  The number of tables created by this crawler.
+ `TablesUpdated` – Number (integer), not more than None.

  The number of tables updated by this crawler.
+ `TablesDeleted` – Number (integer), not more than None.

  The number of tables deleted by this crawler.

## CrawlerHistory structure
<a name="aws-glue-api-crawler-crawling-CrawlerHistory"></a>

Contains the information for a run of a crawler.

**Fields**
+ `CrawlId` – UTF-8 string.

  A UUID identifier for each crawl.
+ `State` – UTF-8 string (valid values: `RUNNING` \$1 `COMPLETED` \$1 `FAILED` \$1 `STOPPED`).

  The state of the crawl.
+ `StartTime` – Timestamp.

  The date and time on which the crawl started.
+ `EndTime` – Timestamp.

  The date and time on which the crawl ended.
+ `Summary` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A run summary for the specific crawl in JSON. Contains the catalog tables and partitions that were added, updated, or deleted.
+ `ErrorMessage` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  If an error occurred, the error message associated with the crawl.
+ `LogGroup` – UTF-8 string, not less than 1 or more than 512 bytes long, matching the [Log group string pattern](aws-glue-api-common.md#aws-glue-api-regex-logGroup-id).

  The log group associated with the crawl.
+ `LogStream` – UTF-8 string, not less than 1 or more than 512 bytes long, matching the [Log-stream string pattern](aws-glue-api-common.md#aws-glue-api-regex-logStream-id).

  The log stream associated with the crawl.
+ `MessagePrefix` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The prefix for a CloudWatch message about this crawl.
+ `DPUHour` – Number (double), not more than None.

  The number of data processing units (DPU) used in hours for the crawl.

## CrawlsFilter structure
<a name="aws-glue-api-crawler-crawling-CrawlsFilter"></a>

A list of fields, comparators and value that you can use to filter the crawler runs for a specified crawler.

**Fields**
+ `FieldName` – UTF-8 string (valid values: `CRAWL_ID` \$1 `STATE` \$1 `START_TIME` \$1 `END_TIME` \$1 `DPU_HOUR`).

  A key used to filter the crawler runs for a specified crawler. Valid values for each of the field names are:
  + `CRAWL_ID`: A string representing the UUID identifier for a crawl.
  + `STATE`: A string representing the state of the crawl.
  + `START_TIME` and `END_TIME`: The epoch timestamp in milliseconds.
  + `DPU_HOUR`: The number of data processing unit (DPU) hours used for the crawl.
+ `FilterOperator` – UTF-8 string (valid values: `GT` \$1 `GE` \$1 `LT` \$1 `LE` \$1 `EQ` \$1 `NE`).

  A defined comparator that operates on the value. The available operators are:
  + `GT`: Greater than.
  + `GE`: Greater than or equal to.
  + `LT`: Less than.
  + `LE`: Less than or equal to.
  + `EQ`: Equal to.
  + `NE`: Not equal to.
+ `FieldValue` – UTF-8 string.

  The value provided for comparison on the crawl field. 

## SchemaChangePolicy structure
<a name="aws-glue-api-crawler-crawling-SchemaChangePolicy"></a>

A policy that specifies update and deletion behaviors for the crawler.

**Fields**
+ `UpdateBehavior` – UTF-8 string (valid values: `LOG` \$1 `UPDATE_IN_DATABASE`).

  The update behavior when the crawler finds a changed schema.
+ `DeleteBehavior` – UTF-8 string (valid values: `LOG` \$1 `DELETE_FROM_DATABASE` \$1 `DEPRECATE_IN_DATABASE`).

  The deletion behavior when the crawler finds a deleted object.

## LastCrawlInfo structure
<a name="aws-glue-api-crawler-crawling-LastCrawlInfo"></a>

Status and error information about the most recent crawl.

**Fields**
+ `Status` – UTF-8 string (valid values: `SUCCEEDED` \$1 `CANCELLED` \$1 `FAILED`).

  Status of the last crawl.
+ `ErrorMessage` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  If an error occurred, the error information about the last crawl.
+ `LogGroup` – UTF-8 string, not less than 1 or more than 512 bytes long, matching the [Log group string pattern](aws-glue-api-common.md#aws-glue-api-regex-logGroup-id).

  The log group for the last crawl.
+ `LogStream` – UTF-8 string, not less than 1 or more than 512 bytes long, matching the [Log-stream string pattern](aws-glue-api-common.md#aws-glue-api-regex-logStream-id).

  The log stream for the last crawl.
+ `MessagePrefix` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The prefix for a message about this crawl.
+ `StartTime` – Timestamp.

  The time at which the crawl started.

## RecrawlPolicy structure
<a name="aws-glue-api-crawler-crawling-RecrawlPolicy"></a>

When crawling an Amazon S3 data source after the first crawl is complete, specifies whether to crawl the entire dataset again or to crawl only folders that were added since the last crawler run. For more information, see [Incremental Crawls in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/incremental-crawls.html) in the developer guide.

**Fields**
+ `RecrawlBehavior` – UTF-8 string (valid values: `CRAWL_EVERYTHING` \$1 `CRAWL_NEW_FOLDERS_ONLY` \$1 `CRAWL_EVENT_MODE`).

  Specifies whether to crawl the entire dataset again or to crawl only folders that were added since the last crawler run.

  A value of `CRAWL_EVERYTHING` specifies crawling the entire dataset again.

  A value of `CRAWL_NEW_FOLDERS_ONLY` specifies crawling only folders that were added since the last crawler run.

  A value of `CRAWL_EVENT_MODE` specifies crawling only the changes identified by Amazon S3 events.

## LineageConfiguration structure
<a name="aws-glue-api-crawler-crawling-LineageConfiguration"></a>

Specifies data lineage configuration settings for the crawler.

**Fields**
+ `CrawlerLineageSettings` – UTF-8 string (valid values: `ENABLE` \$1 `DISABLE`).

  Specifies whether data lineage is enabled for the crawler. Valid values are:
  + ENABLE: enables data lineage for the crawler
  + DISABLE: disables data lineage for the crawler

## LakeFormationConfiguration structure
<a name="aws-glue-api-crawler-crawling-LakeFormationConfiguration"></a>

Specifies AWS Lake Formation configuration settings for the crawler.

**Fields**
+ `UseLakeFormationCredentials` – Boolean.

  Specifies whether to use AWS Lake Formation credentials for the crawler instead of the IAM role credentials.
+ `AccountId` – UTF-8 string, not more than 12 bytes long.

  Required for cross account crawls. For same account crawls as the target data, this can be left as null.

## Operations
<a name="aws-glue-api-crawler-crawling-actions"></a>
+ [CreateCrawler action (Python: create\$1crawler)](#aws-glue-api-crawler-crawling-CreateCrawler)
+ [DeleteCrawler action (Python: delete\$1crawler)](#aws-glue-api-crawler-crawling-DeleteCrawler)
+ [GetCrawler action (Python: get\$1crawler)](#aws-glue-api-crawler-crawling-GetCrawler)
+ [GetCrawlers action (Python: get\$1crawlers)](#aws-glue-api-crawler-crawling-GetCrawlers)
+ [GetCrawlerMetrics action (Python: get\$1crawler\$1metrics)](#aws-glue-api-crawler-crawling-GetCrawlerMetrics)
+ [UpdateCrawler action (Python: update\$1crawler)](#aws-glue-api-crawler-crawling-UpdateCrawler)
+ [StartCrawler action (Python: start\$1crawler)](#aws-glue-api-crawler-crawling-StartCrawler)
+ [StopCrawler action (Python: stop\$1crawler)](#aws-glue-api-crawler-crawling-StopCrawler)
+ [BatchGetCrawlers action (Python: batch\$1get\$1crawlers)](#aws-glue-api-crawler-crawling-BatchGetCrawlers)
+ [ListCrawlers action (Python: list\$1crawlers)](#aws-glue-api-crawler-crawling-ListCrawlers)
+ [ListCrawls action (Python: list\$1crawls)](#aws-glue-api-crawler-crawling-ListCrawls)

## CreateCrawler action (Python: create\$1crawler)
<a name="aws-glue-api-crawler-crawling-CreateCrawler"></a>

Creates a new crawler with specified targets, role, configuration, and optional schedule. At least one crawl target must be specified, in the `s3Targets` field, the `jdbcTargets` field, or the `DynamoDBTargets` field.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the new crawler.
+ `Role` – *Required:* UTF-8 string.

  The IAM role or Amazon Resource Name (ARN) of an IAM role used by the new crawler to access customer resources.
+ `DatabaseName` – UTF-8 string.

  The AWS Glue database where results are written, such as: `arn:aws:daylight:us-east-1::database/sometable/*`.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the new crawler.
+ `Targets` – *Required:* A [CrawlerTargets](#aws-glue-api-crawler-crawling-CrawlerTargets) object.

  A list of collection of targets to crawl.
+ `Schedule` – UTF-8 string.

  A `cron` expression used to specify the schedule (see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`.
+ `Classifiers` – An array of UTF-8 strings.

  A list of custom classifiers that the user has registered. By default, all built-in classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.
+ `TablePrefix` – UTF-8 string, not more than 128 bytes long.

  The table prefix used for catalog tables that are created.
+ `SchemaChangePolicy` – A [SchemaChangePolicy](#aws-glue-api-crawler-crawling-SchemaChangePolicy) object.

  The policy for the crawler's update and deletion behavior.
+ `RecrawlPolicy` – A [RecrawlPolicy](#aws-glue-api-crawler-crawling-RecrawlPolicy) object.

  A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.
+ `LineageConfiguration` – A [LineageConfiguration](#aws-glue-api-crawler-crawling-LineageConfiguration) object.

  Specifies data lineage configuration settings for the crawler.
+ `LakeFormationConfiguration` – A [LakeFormationConfiguration](#aws-glue-api-crawler-crawling-LakeFormationConfiguration) object.

  Specifies AWS Lake Formation configuration settings for the crawler.
+ `Configuration` – UTF-8 string.

  Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see [Setting crawler configuration options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html).
+ `CrawlerSecurityConfiguration` – UTF-8 string, not more than 128 bytes long.

  The name of the `SecurityConfiguration` structure to be used by this crawler.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The tags to use with this crawler request. You may use tags to limit access to the crawler. For more information about tags in AWS Glue, see [AWS Tags in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the developer guide.

**Response**
+ *No Response parameters.*

**Errors**
+ `InvalidInputException`
+ `AlreadyExistsException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`

## DeleteCrawler action (Python: delete\$1crawler)
<a name="aws-glue-api-crawler-crawling-DeleteCrawler"></a>

Removes a specified crawler from the AWS Glue Data Catalog, unless the crawler state is `RUNNING`.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the crawler to remove.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `CrawlerRunningException`
+ `SchedulerTransitioningException`
+ `OperationTimeoutException`

## GetCrawler action (Python: get\$1crawler)
<a name="aws-glue-api-crawler-crawling-GetCrawler"></a>

Retrieves metadata for a specified crawler.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the crawler to retrieve metadata for.

**Response**
+ `Crawler` – A [Crawler](#aws-glue-api-crawler-crawling-Crawler) object.

  The metadata for the specified crawler.

**Errors**
+ `EntityNotFoundException`
+ `OperationTimeoutException`

## GetCrawlers action (Python: get\$1crawlers)
<a name="aws-glue-api-crawler-crawling-GetCrawlers"></a>

Retrieves metadata for all crawlers defined in the customer account.

**Request**
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The number of crawlers to return on each call.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation request.

**Response**
+ `Crawlers` – An array of [Crawler](#aws-glue-api-crawler-crawling-Crawler) objects.

  A list of crawler metadata.
+ `NextToken` – UTF-8 string.

  A continuation token, if the returned list has not reached the end of those defined in this customer account.

**Errors**
+ `OperationTimeoutException`

## GetCrawlerMetrics action (Python: get\$1crawler\$1metrics)
<a name="aws-glue-api-crawler-crawling-GetCrawlerMetrics"></a>

Retrieves metrics about specified crawlers.

**Request**
+ `CrawlerNameList` – An array of UTF-8 strings, not more than 100 strings.

  A list of the names of crawlers about which to retrieve metrics.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum size of a list to return.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.

**Response**
+ `CrawlerMetricsList` – An array of [CrawlerMetrics](#aws-glue-api-crawler-crawling-CrawlerMetrics) objects.

  A list of metrics for the specified crawler.
+ `NextToken` – UTF-8 string.

  A continuation token, if the returned list does not contain the last metric available.

**Errors**
+ `OperationTimeoutException`

## UpdateCrawler action (Python: update\$1crawler)
<a name="aws-glue-api-crawler-crawling-UpdateCrawler"></a>

Updates a crawler. If a crawler is running, you must stop it using `StopCrawler` before updating it.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the new crawler.
+ `Role` – UTF-8 string.

  The IAM role or Amazon Resource Name (ARN) of an IAM role that is used by the new crawler to access customer resources.
+ `DatabaseName` – UTF-8 string.

  The AWS Glue database where results are stored, such as: `arn:aws:daylight:us-east-1::database/sometable/*`.
+ `Description` – UTF-8 string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the new crawler.
+ `Targets` – A [CrawlerTargets](#aws-glue-api-crawler-crawling-CrawlerTargets) object.

  A list of targets to crawl.
+ `Schedule` – UTF-8 string.

  A `cron` expression used to specify the schedule (see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`.
+ `Classifiers` – An array of UTF-8 strings.

  A list of custom classifiers that the user has registered. By default, all built-in classifiers are included in a crawl, but these custom classifiers always override the default classifiers for a given classification.
+ `TablePrefix` – UTF-8 string, not more than 128 bytes long.

  The table prefix used for catalog tables that are created.
+ `SchemaChangePolicy` – A [SchemaChangePolicy](#aws-glue-api-crawler-crawling-SchemaChangePolicy) object.

  The policy for the crawler's update and deletion behavior.
+ `RecrawlPolicy` – A [RecrawlPolicy](#aws-glue-api-crawler-crawling-RecrawlPolicy) object.

  A policy that specifies whether to crawl the entire dataset again, or to crawl only folders that were added since the last crawler run.
+ `LineageConfiguration` – A [LineageConfiguration](#aws-glue-api-crawler-crawling-LineageConfiguration) object.

  Specifies data lineage configuration settings for the crawler.
+ `LakeFormationConfiguration` – A [LakeFormationConfiguration](#aws-glue-api-crawler-crawling-LakeFormationConfiguration) object.

  Specifies AWS Lake Formation configuration settings for the crawler.
+ `Configuration` – UTF-8 string.

  Crawler configuration information. This versioned JSON string allows users to specify aspects of a crawler's behavior. For more information, see [Setting crawler configuration options](https://docs.aws.amazon.com/glue/latest/dg/crawler-configuration.html).
+ `CrawlerSecurityConfiguration` – UTF-8 string, not more than 128 bytes long.

  The name of the `SecurityConfiguration` structure to be used by this crawler.

**Response**
+ *No Response parameters.*

**Errors**
+ `InvalidInputException`
+ `VersionMismatchException`
+ `EntityNotFoundException`
+ `CrawlerRunningException`
+ `OperationTimeoutException`

## StartCrawler action (Python: start\$1crawler)
<a name="aws-glue-api-crawler-crawling-StartCrawler"></a>

Starts a crawl using the specified crawler, regardless of what is scheduled. If the crawler is already running, returns a [CrawlerRunningException](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-exceptions.html#aws-glue-api-exceptions-CrawlerRunningException).

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the crawler to start.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `CrawlerRunningException`
+ `OperationTimeoutException`

## StopCrawler action (Python: stop\$1crawler)
<a name="aws-glue-api-crawler-crawling-StopCrawler"></a>

If the specified crawler is running, stops the crawl.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the crawler to stop.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `CrawlerNotRunningException`
+ `CrawlerStoppingException`
+ `OperationTimeoutException`

## BatchGetCrawlers action (Python: batch\$1get\$1crawlers)
<a name="aws-glue-api-crawler-crawling-BatchGetCrawlers"></a>

Returns a list of resource metadata for a given list of crawler names. After calling the `ListCrawlers` operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags.

**Request**
+ `CrawlerNames` – *Required:* An array of UTF-8 strings, not more than 100 strings.

  A list of crawler names, which might be the names returned from the `ListCrawlers` operation.

**Response**
+ `Crawlers` – An array of [Crawler](#aws-glue-api-crawler-crawling-Crawler) objects.

  A list of crawler definitions.
+ `CrawlersNotFound` – An array of UTF-8 strings, not more than 100 strings.

  A list of names of crawlers that were not found.

**Errors**
+ `InvalidInputException`
+ `OperationTimeoutException`

## ListCrawlers action (Python: list\$1crawlers)
<a name="aws-glue-api-crawler-crawling-ListCrawlers"></a>

Retrieves the names of all crawler resources in this AWS account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names.

This operation takes the optional `Tags` field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.

**Request**
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum size of a list to return.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation request.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  Specifies to return only these tagged resources.

**Response**
+ `CrawlerNames` – An array of UTF-8 strings, not more than 100 strings.

  The names of all crawlers in the account, or the crawlers with the specified tags.
+ `NextToken` – UTF-8 string.

  A continuation token, if the returned list does not contain the last metric available.

**Errors**
+ `OperationTimeoutException`

## ListCrawls action (Python: list\$1crawls)
<a name="aws-glue-api-crawler-crawling-ListCrawls"></a>

Returns all the crawls of a specified crawler. Returns only the crawls that have occurred since the launch date of the crawler history feature, and only retains up to 12 months of crawls. Older crawls will not be returned.

You may use this API to:
+ Retrive all the crawls of a specified crawler.
+ Retrieve all the crawls of a specified crawler within a limited count.
+ Retrieve all the crawls of a specified crawler in a specific time range.
+ Retrieve all the crawls of a specified crawler with a particular state, crawl ID, or DPU hour value.

**Request**
+ `CrawlerName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the crawler whose runs you want to retrieve.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results to return. The default is 20, and maximum is 100.
+ `Filters` – An array of [CrawlsFilter](#aws-glue-api-crawler-crawling-CrawlsFilter) objects.

  Filters the crawls by the criteria you specify in a list of `CrawlsFilter` objects.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.

**Response**
+ `Crawls` – An array of [CrawlerHistory](#aws-glue-api-crawler-crawling-CrawlerHistory) objects.

  A list of `CrawlerHistory` objects representing the crawl runs that meet your criteria.
+ `NextToken` – UTF-8 string.

  A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.

**Errors**
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `InvalidInputException`

# Column statistics API
<a name="aws-glue-api-crawler-column-statistics"></a>

The column statistics API describes AWS Glue APIs for returning statistics on columns in a table.

## Data types
<a name="aws-glue-api-crawler-column-statistics-objects"></a>
+ [ColumnStatisticsTaskRun structure](#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskRun)
+ [ColumnStatisticsTaskSettings structure](#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskSettings)
+ [ExecutionAttempt structure](#aws-glue-api-crawler-column-statistics-ExecutionAttempt)

## ColumnStatisticsTaskRun structure
<a name="aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskRun"></a>

The object that shows the details of the column stats run.

**Fields**
+ `CustomerId` – UTF-8 string, not more than 12 bytes long.

  The AWS account ID.
+ `ColumnStatisticsTaskRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The identifier for the particular column statistics task run.
+ `DatabaseName` – UTF-8 string.

  The database where the table resides.
+ `TableName` – UTF-8 string.

  The name of the table for which column statistics is generated.
+ `ColumnNameList` – An array of UTF-8 strings.

  A list of the column names. If none is supplied, all column names for the table will be used by default.
+ `CatalogID` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the table resides. If none is supplied, the AWS account ID is used by default.
+ `Role` – UTF-8 string.

  The IAM role that the service assumes to generate statistics.
+ `SampleSize` – Number (double), not more than 100.

  The percentage of rows used to generate statistics. If none is supplied, the entire table will be used to generate stats.
+ `SecurityConfiguration` – UTF-8 string, not more than 128 bytes long.

  Name of the security configuration that is used to encrypt CloudWatch logs for the column stats task run.
+ `NumberOfWorkers` – Number (integer), at least 1.

  The number of workers used to generate column statistics. The job is preconfigured to autoscale up to 25 instances.
+ `WorkerType` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The type of workers being used for generating stats. The default is `g.1x`.
+ `ComputationType` – UTF-8 string (valid values: `FULL` \$1 `INCREMENTAL`).

  The type of column statistics computation.
+ `Status` – UTF-8 string (valid values: `STARTING` \$1 `RUNNING` \$1 `SUCCEEDED` \$1 `FAILED` \$1 `STOPPED`).

  The status of the task run.
+ `CreationTime` – Timestamp.

  The time that this task was created.
+ `LastUpdated` – Timestamp.

  The last point in time when this task was modified.
+ `StartTime` – Timestamp.

  The start time of the task.
+ `EndTime` – Timestamp.

  The end time of the task.
+ `ErrorMessage` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The error message for the job.
+ `DPUSeconds` – Number (double), not more than None.

  The calculated DPU usage in seconds for all autoscaled workers.

## ColumnStatisticsTaskSettings structure
<a name="aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskSettings"></a>

The settings for a column statistics task.

**Fields**
+ `DatabaseName` – UTF-8 string.

  The name of the database where the table resides.
+ `TableName` – UTF-8 string.

  The name of the table for which to generate column statistics.
+ `Schedule` – A [Schedule](aws-glue-api-crawler-scheduler.md#aws-glue-api-crawler-scheduler-Schedule) object.

  A schedule for running the column statistics, specified in CRON syntax.
+ `ColumnNameList` – An array of UTF-8 strings.

  A list of column names for which to run statistics.
+ `CatalogID` – Catalog id string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the database resides.
+ `Role` – UTF-8 string.

  The role used for running the column statistics.
+ `SampleSize` – Number (double), not more than 100.

  The percentage of data to sample.
+ `SecurityConfiguration` – UTF-8 string, not more than 128 bytes long.

  Name of the security configuration that is used to encrypt CloudWatch logs.
+ `ScheduleType` – UTF-8 string (valid values: `CRON` \$1 `AUTO`).

  The type of schedule for a column statistics task. Possible values may be `CRON` or `AUTO`.
+ `SettingSource` – UTF-8 string (valid values: `CATALOG` \$1 `TABLE`).

  The source of setting the column statistics task. Possible values may be `CATALOG` or `TABLE`.
+ `LastExecutionAttempt` – An [ExecutionAttempt](#aws-glue-api-crawler-column-statistics-ExecutionAttempt) object.

  The last `ExecutionAttempt` for the column statistics task run.

## ExecutionAttempt structure
<a name="aws-glue-api-crawler-column-statistics-ExecutionAttempt"></a>

A run attempt for a column statistics task run.

**Fields**
+ `Status` – UTF-8 string (valid values: `FAILED` \$1 `STARTED`).

  The status of the last column statistics task run.
+ `ColumnStatisticsTaskRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A task run ID for the last column statistics task run.
+ `ExecutionTimestamp` – Timestamp.

  A timestamp when the last column statistics task run occurred.
+ `ErrorMessage` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  An error message associated with the last column statistics task run.

## Operations
<a name="aws-glue-api-crawler-column-statistics-actions"></a>
+ [StartColumnStatisticsTaskRun action (Python: start\$1column\$1statistics\$1task\$1run)](#aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRun)
+ [GetColumnStatisticsTaskRun action (Python: get\$1column\$1statistics\$1task\$1run)](#aws-glue-api-crawler-column-statistics-GetColumnStatisticsTaskRun)
+ [GetColumnStatisticsTaskRuns action (Python: get\$1column\$1statistics\$1task\$1runs)](#aws-glue-api-crawler-column-statistics-GetColumnStatisticsTaskRuns)
+ [ListColumnStatisticsTaskRuns action (Python: list\$1column\$1statistics\$1task\$1runs)](#aws-glue-api-crawler-column-statistics-ListColumnStatisticsTaskRuns)
+ [StopColumnStatisticsTaskRun action (Python: stop\$1column\$1statistics\$1task\$1run)](#aws-glue-api-crawler-column-statistics-StopColumnStatisticsTaskRun)
+ [CreateColumnStatisticsTaskSettings action (Python: create\$1column\$1statistics\$1task\$1settings)](#aws-glue-api-crawler-column-statistics-CreateColumnStatisticsTaskSettings)
+ [UpdateColumnStatisticsTaskSettings action (Python: update\$1column\$1statistics\$1task\$1settings)](#aws-glue-api-crawler-column-statistics-UpdateColumnStatisticsTaskSettings)
+ [GetColumnStatisticsTaskSettings action (Python: get\$1column\$1statistics\$1task\$1settings)](#aws-glue-api-crawler-column-statistics-GetColumnStatisticsTaskSettings)
+ [DeleteColumnStatisticsTaskSettings action (Python: delete\$1column\$1statistics\$1task\$1settings)](#aws-glue-api-crawler-column-statistics-DeleteColumnStatisticsTaskSettings)
+ [StartColumnStatisticsTaskRunSchedule action (Python: start\$1column\$1statistics\$1task\$1run\$1schedule)](#aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRunSchedule)
+ [StopColumnStatisticsTaskRunSchedule action (Python: stop\$1column\$1statistics\$1task\$1run\$1schedule)](#aws-glue-api-crawler-column-statistics-StopColumnStatisticsTaskRunSchedule)

## StartColumnStatisticsTaskRun action (Python: start\$1column\$1statistics\$1task\$1run)
<a name="aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRun"></a>

Starts a column statistics task run, for a specified table and columns.

**Request**
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database where the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table to generate statistics.
+ `ColumnNameList` – An array of UTF-8 strings.

  A list of the column names to generate statistics. If none is supplied, all column names for the table will be used by default.
+ `Role` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The IAM role that the service assumes to generate statistics.
+ `SampleSize` – Number (double), not more than 100.

  The percentage of rows used to generate statistics. If none is supplied, the entire table will be used to generate stats.
+ `CatalogID` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog where the table reside. If none is supplied, the AWS account ID is used by default.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the security configuration that is used to encrypt CloudWatch logs for the column stats task run.

**Response**
+ `ColumnStatisticsTaskRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The identifier for the column statistics task run.

**Errors**
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `ColumnStatisticsTaskRunningException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `InvalidInputException`

## GetColumnStatisticsTaskRun action (Python: get\$1column\$1statistics\$1task\$1run)
<a name="aws-glue-api-crawler-column-statistics-GetColumnStatisticsTaskRun"></a>

Get the associated metadata/information for a task run, given a task run ID.

**Request**
+ `ColumnStatisticsTaskRunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The identifier for the particular column statistics task run.

**Response**
+ `ColumnStatisticsTaskRun` – A [ColumnStatisticsTaskRun](#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskRun) object.

  A `ColumnStatisticsTaskRun` object representing the details of the column stats run.

**Errors**
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `InvalidInputException`

## GetColumnStatisticsTaskRuns action (Python: get\$1column\$1statistics\$1task\$1runs)
<a name="aws-glue-api-crawler-column-statistics-GetColumnStatisticsTaskRuns"></a>

Retrieves information about all runs associated with the specified table.

**Request**
+ `DatabaseName` – *Required:* UTF-8 string.

  The name of the database where the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum size of the response.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.

**Response**
+ `ColumnStatisticsTaskRuns` – An array of [ColumnStatisticsTaskRun](#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskRun) objects.

  A list of column statistics task runs.
+ `NextToken` – UTF-8 string.

  A continuation token, if not all task runs have yet been returned.

**Errors**
+ `OperationTimeoutException`

## ListColumnStatisticsTaskRuns action (Python: list\$1column\$1statistics\$1task\$1runs)
<a name="aws-glue-api-crawler-column-statistics-ListColumnStatisticsTaskRuns"></a>

List all task runs for a particular account.

**Request**
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum size of the response.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.

**Response**
+ `ColumnStatisticsTaskRunIds` – An array of UTF-8 strings, not more than 100 strings.

  A list of column statistics task run IDs.
+ `NextToken` – UTF-8 string.

  A continuation token, if not all task run IDs have yet been returned.

**Errors**
+ `OperationTimeoutException`

## StopColumnStatisticsTaskRun action (Python: stop\$1column\$1statistics\$1task\$1run)
<a name="aws-glue-api-crawler-column-statistics-StopColumnStatisticsTaskRun"></a>

Stops a task run for the specified table.

**Request**
+ `DatabaseName` – *Required:* UTF-8 string.

  The name of the database where the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `ColumnStatisticsTaskNotRunningException`
+ `ColumnStatisticsTaskStoppingException`
+ `OperationTimeoutException`

## CreateColumnStatisticsTaskSettings action (Python: create\$1column\$1statistics\$1task\$1settings)
<a name="aws-glue-api-crawler-column-statistics-CreateColumnStatisticsTaskSettings"></a>

Creates settings for a column statistics task.

**Request**
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database where the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table for which to generate column statistics.
+ `Role` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The role used for running the column statistics.
+ `Schedule` – UTF-8 string.

  A schedule for running the column statistics, specified in CRON syntax.
+ `ColumnNameList` – An array of UTF-8 strings.

  A list of column names for which to run statistics.
+ `SampleSize` – Number (double), not more than 100.

  The percentage of data to sample.
+ `CatalogID` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the database resides.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the security configuration that is used to encrypt CloudWatch logs.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  A map of tags.

**Response**
+ *No Response parameters.*

**Errors**
+ `AlreadyExistsException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `ColumnStatisticsTaskRunningException`

## UpdateColumnStatisticsTaskSettings action (Python: update\$1column\$1statistics\$1task\$1settings)
<a name="aws-glue-api-crawler-column-statistics-UpdateColumnStatisticsTaskSettings"></a>

Updates settings for a column statistics task.

**Request**
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database where the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table for which to generate column statistics.
+ `Role` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The role used for running the column statistics.
+ `Schedule` – UTF-8 string.

  A schedule for running the column statistics, specified in CRON syntax.
+ `ColumnNameList` – An array of UTF-8 strings.

  A list of column names for which to run statistics.
+ `SampleSize` – Number (double), not more than 100.

  The percentage of data to sample.
+ `CatalogID` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the Data Catalog in which the database resides.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the security configuration that is used to encrypt CloudWatch logs.

**Response**
+ *No Response parameters.*

**Errors**
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `VersionMismatchException`
+ `OperationTimeoutException`

## GetColumnStatisticsTaskSettings action (Python: get\$1column\$1statistics\$1task\$1settings)
<a name="aws-glue-api-crawler-column-statistics-GetColumnStatisticsTaskSettings"></a>

Gets settings for a column statistics task.

**Request**
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database where the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table for which to retrieve column statistics.

**Response**
+ `ColumnStatisticsTaskSettings` – A [ColumnStatisticsTaskSettings](#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskSettings) object.

  A `ColumnStatisticsTaskSettings` object representing the settings for the column statistics task.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`

## DeleteColumnStatisticsTaskSettings action (Python: delete\$1column\$1statistics\$1task\$1settings)
<a name="aws-glue-api-crawler-column-statistics-DeleteColumnStatisticsTaskSettings"></a>

Deletes settings for a column statistics task.

**Request**
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database where the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table for which to delete column statistics.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`

## StartColumnStatisticsTaskRunSchedule action (Python: start\$1column\$1statistics\$1task\$1run\$1schedule)
<a name="aws-glue-api-crawler-column-statistics-StartColumnStatisticsTaskRunSchedule"></a>

Starts a column statistics task run schedule.

**Request**
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database where the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table for which to start a column statistic task run schedule.

**Response**
+ *No Response parameters.*

**Errors**
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`

## StopColumnStatisticsTaskRunSchedule action (Python: stop\$1column\$1statistics\$1task\$1run\$1schedule)
<a name="aws-glue-api-crawler-column-statistics-StopColumnStatisticsTaskRunSchedule"></a>

Stops a column statistics task run schedule.

**Request**
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database where the table resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table for which to stop a column statistic task run schedule.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`

## Exceptions
<a name="aws-glue-api-crawler-column-statistics-exceptions"></a>
+ [ColumnStatisticsTaskRunningException structure](#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskRunningException)
+ [ColumnStatisticsTaskNotRunningException structure](#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskNotRunningException)
+ [ColumnStatisticsTaskStoppingException structure](#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskStoppingException)
+ [ColumnStatisticsTaskAutoConcurrencyLimitException structure](#aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskAutoConcurrencyLimitException)
+ [InvalidCatalogSettingException structure](#aws-glue-api-crawler-column-statistics-InvalidCatalogSettingException)

## ColumnStatisticsTaskRunningException structure
<a name="aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskRunningException"></a>

An exception thrown when you try to start another job while running a column stats generation job.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## ColumnStatisticsTaskNotRunningException structure
<a name="aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskNotRunningException"></a>

An exception thrown when you try to stop a task run when there is no task running.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## ColumnStatisticsTaskStoppingException structure
<a name="aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskStoppingException"></a>

An exception thrown when you try to stop a task run.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## ColumnStatisticsTaskAutoConcurrencyLimitException structure
<a name="aws-glue-api-crawler-column-statistics-ColumnStatisticsTaskAutoConcurrencyLimitException"></a>

An exception thrown when you have already reached the limit of concurrent auto statistics jobs.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## InvalidCatalogSettingException structure
<a name="aws-glue-api-crawler-column-statistics-InvalidCatalogSettingException"></a>

An exception thrown when there is a problem with the catalog settings.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

# Crawler scheduler API
<a name="aws-glue-api-crawler-scheduler"></a>

The Crawler scheduler API describes AWS Glue crawler data types, along with the API for creating, deleting, updating, and listing crawlers.

## Data types
<a name="aws-glue-api-crawler-scheduler-objects"></a>
+ [Schedule structure](#aws-glue-api-crawler-scheduler-Schedule)

## Schedule structure
<a name="aws-glue-api-crawler-scheduler-Schedule"></a>

A scheduling object using a `cron` statement to schedule an event.

**Fields**
+ `ScheduleExpression` – UTF-8 string.

  A `cron` expression used to specify the schedule (see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`.
+ `State` – UTF-8 string (valid values: `SCHEDULED` \$1 `NOT_SCHEDULED` \$1 `TRANSITIONING`).

  The state of the schedule.

## Operations
<a name="aws-glue-api-crawler-scheduler-actions"></a>
+ [UpdateCrawlerSchedule action (Python: update\$1crawler\$1schedule)](#aws-glue-api-crawler-scheduler-UpdateCrawlerSchedule)
+ [StartCrawlerSchedule action (Python: start\$1crawler\$1schedule)](#aws-glue-api-crawler-scheduler-StartCrawlerSchedule)
+ [StopCrawlerSchedule action (Python: stop\$1crawler\$1schedule)](#aws-glue-api-crawler-scheduler-StopCrawlerSchedule)

## UpdateCrawlerSchedule action (Python: update\$1crawler\$1schedule)
<a name="aws-glue-api-crawler-scheduler-UpdateCrawlerSchedule"></a>

Updates the schedule of a crawler using a `cron` expression. 

**Request**
+ `CrawlerName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the crawler whose schedule to update.
+ `Schedule` – UTF-8 string.

  The updated `cron` expression used to specify the schedule (see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `VersionMismatchException`
+ `SchedulerTransitioningException`
+ `OperationTimeoutException`

## StartCrawlerSchedule action (Python: start\$1crawler\$1schedule)
<a name="aws-glue-api-crawler-scheduler-StartCrawlerSchedule"></a>

Changes the schedule state of the specified crawler to `SCHEDULED`, unless the crawler is already running or the schedule state is already `SCHEDULED`.

**Request**
+ `CrawlerName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the crawler to schedule.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `SchedulerRunningException`
+ `SchedulerTransitioningException`
+ `NoScheduleException`
+ `OperationTimeoutException`

## StopCrawlerSchedule action (Python: stop\$1crawler\$1schedule)
<a name="aws-glue-api-crawler-scheduler-StopCrawlerSchedule"></a>

Sets the schedule state of the specified crawler to `NOT_SCHEDULED`, but does not stop the crawler if it is already running.

**Request**
+ `CrawlerName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the crawler whose schedule state to set.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `SchedulerNotRunningException`
+ `SchedulerTransitioningException`
+ `OperationTimeoutException`

# Autogenerating ETL Scripts API
<a name="aws-glue-api-etl-script-generation"></a>

The ETL script-generation API describes the datatypes and API for generating ETL scripts in AWS Glue.

## Data types
<a name="aws-glue-api-etl-script-generation-objects"></a>
+ [CodeGenNode structure](#aws-glue-api-etl-script-generation-CodeGenNode)
+ [CodeGenNodeArg structure](#aws-glue-api-etl-script-generation-CodeGenNodeArg)
+ [CodeGenEdge structure](#aws-glue-api-etl-script-generation-CodeGenEdge)
+ [Location structure](#aws-glue-api-etl-script-generation-Location)
+ [CatalogEntry structure](#aws-glue-api-etl-script-generation-CatalogEntry)
+ [MappingEntry structure](#aws-glue-api-etl-script-generation-MappingEntry)

## CodeGenNode structure
<a name="aws-glue-api-etl-script-generation-CodeGenNode"></a>

Represents a node in a directed acyclic graph (DAG)

**Fields**
+ `Id` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id).

  A node identifier that is unique within the node's graph.
+ `NodeType` – *Required:* UTF-8 string.

  The type of node that this is.
+ `Args` – *Required:* An array of [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) objects, not more than 50 structures.

  Properties of the node, in the form of name-value pairs.
+ `LineNumber` – Number (integer).

  The line number of the node.

## CodeGenNodeArg structure
<a name="aws-glue-api-etl-script-generation-CodeGenNodeArg"></a>

An argument or property of a node.

**Fields**
+ `Name` – *Required:* UTF-8 string.

  The name of the argument or property.
+ `Value` – *Required:* UTF-8 string.

  The value of the argument or property.
+ `Param` – Boolean.

  True if the value is used as a parameter.

## CodeGenEdge structure
<a name="aws-glue-api-etl-script-generation-CodeGenEdge"></a>

Represents a directional edge in a directed acyclic graph (DAG).

**Fields**
+ `Source` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id).

  The ID of the node at which the edge starts.
+ `Target` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Identifier string pattern](aws-glue-api-common.md#aws-glue-api-regex-id).

  The ID of the node at which the edge ends.
+ `TargetParameter` – UTF-8 string.

  The target of the edge.

## Location structure
<a name="aws-glue-api-etl-script-generation-Location"></a>

The location of resources.

**Fields**
+ `Jdbc` – An array of [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) objects, not more than 50 structures.

  A JDBC location.
+ `S3` – An array of [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) objects, not more than 50 structures.

  An Amazon Simple Storage Service (Amazon S3) location.
+ `DynamoDB` – An array of [CodeGenNodeArg](#aws-glue-api-etl-script-generation-CodeGenNodeArg) objects, not more than 50 structures.

  An Amazon DynamoDB table location.

## CatalogEntry structure
<a name="aws-glue-api-etl-script-generation-CatalogEntry"></a>

Specifies a table definition in the AWS Glue Data Catalog.

**Fields**
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The database in which the table metadata resides.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the table in question.

## MappingEntry structure
<a name="aws-glue-api-etl-script-generation-MappingEntry"></a>

Defines a mapping.

**Fields**
+ `SourceTable` – UTF-8 string.

  The name of the source table.
+ `SourcePath` – UTF-8 string.

  The source path.
+ `SourceType` – UTF-8 string.

  The source type.
+ `TargetTable` – UTF-8 string.

  The target table.
+ `TargetPath` – UTF-8 string.

  The target path.
+ `TargetType` – UTF-8 string.

  The target type.

## Operations
<a name="aws-glue-api-etl-script-generation-actions"></a>
+ [CreateScript action (Python: create\$1script)](#aws-glue-api-etl-script-generation-CreateScript)
+ [GetDataflowGraph action (Python: get\$1dataflow\$1graph)](#aws-glue-api-etl-script-generation-GetDataflowGraph)
+ [GetMapping action (Python: get\$1mapping)](#aws-glue-api-etl-script-generation-GetMapping)
+ [GetPlan action (Python: get\$1plan)](#aws-glue-api-etl-script-generation-GetPlan)

## CreateScript action (Python: create\$1script)
<a name="aws-glue-api-etl-script-generation-CreateScript"></a>

Transforms a directed acyclic graph (DAG) into code.

**Request**
+ `DagNodes` – An array of [CodeGenNode](#aws-glue-api-etl-script-generation-CodeGenNode) objects.

  A list of the nodes in the DAG.
+ `DagEdges` – An array of [CodeGenEdge](#aws-glue-api-etl-script-generation-CodeGenEdge) objects.

  A list of the edges in the DAG.
+ `Language` – UTF-8 string (valid values: `PYTHON` \$1 `SCALA`).

  The programming language of the resulting code from the DAG.

**Response**
+ `PythonScript` – UTF-8 string.

  The Python script generated from the DAG.
+ `ScalaCode` – UTF-8 string.

  The Scala code generated from the DAG.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetDataflowGraph action (Python: get\$1dataflow\$1graph)
<a name="aws-glue-api-etl-script-generation-GetDataflowGraph"></a>

Transforms a Python script into a directed acyclic graph (DAG). 

**Request**
+ `PythonScript` – UTF-8 string.

  The Python script to transform.

**Response**
+ `DagNodes` – An array of [CodeGenNode](#aws-glue-api-etl-script-generation-CodeGenNode) objects.

  A list of the nodes in the resulting DAG.
+ `DagEdges` – An array of [CodeGenEdge](#aws-glue-api-etl-script-generation-CodeGenEdge) objects.

  A list of the edges in the resulting DAG.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetMapping action (Python: get\$1mapping)
<a name="aws-glue-api-etl-script-generation-GetMapping"></a>

Creates mappings.

**Request**
+ `Source` – *Required:* A [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry) object.

  Specifies the source table.
+ `Sinks` – An array of [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry) objects.

  A list of target tables.
+ `Location` – A [Location](#aws-glue-api-etl-script-generation-Location) object.

  Parameters for the mapping.

**Response**
+ `Mapping` – *Required:* An array of [MappingEntry](#aws-glue-api-etl-script-generation-MappingEntry) objects.

  A list of mappings to the specified targets.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `EntityNotFoundException`

## GetPlan action (Python: get\$1plan)
<a name="aws-glue-api-etl-script-generation-GetPlan"></a>

Gets code to perform a specified mapping.

**Request**
+ `Mapping` – *Required:* An array of [MappingEntry](#aws-glue-api-etl-script-generation-MappingEntry) objects.

  The list of mappings from a source table to target tables.
+ `Source` – *Required:* A [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry) object.

  The source table.
+ `Sinks` – An array of [CatalogEntry](#aws-glue-api-etl-script-generation-CatalogEntry) objects.

  The target tables.
+ `Location` – A [Location](#aws-glue-api-etl-script-generation-Location) object.

  The parameters for the mapping.
+ `Language` – UTF-8 string (valid values: `PYTHON` \$1 `SCALA`).

  The programming language of the code to perform the mapping.
+ `AdditionalPlanOptionsMap` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  A map to hold additional optional key-value parameters.

  Currently, these key-value pairs are supported:
  + `inferSchema`  —  Specifies whether to set `inferSchema` to true or false for the default script generated by an AWS Glue job. For example, to set `inferSchema` to true, pass the following key value pair:

    `--additional-plan-options-map '{"inferSchema":"true"}'`

**Response**
+ `PythonScript` – UTF-8 string.

  A Python script to perform the mapping.
+ `ScalaCode` – UTF-8 string.

  The Scala code to perform the mapping.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

# Visual job API
<a name="aws-glue-api-visual-job-api"></a>

The Visual job API allows you to create data integration jobs by using the AWS Glue API from a JSON object that represents a visual configuration of a AWS Glue job. 

A list of `CodeGenConfigurationNodes` are provided to a create or update job API to register a DAG in AWS Glue Studio for the created job and generate the associated code.

## Data types
<a name="aws-glue-api-visual-job-api-objects"></a>
+ [CodeGenConfigurationNode structure](#aws-glue-api-visual-job-api-CodeGenConfigurationNode)
+ [JDBCConnectorOptions structure](#aws-glue-api-visual-job-api-JDBCConnectorOptions)
+ [StreamingDataPreviewOptions structure](#aws-glue-api-visual-job-api-StreamingDataPreviewOptions)
+ [AthenaConnectorSource structure](#aws-glue-api-visual-job-api-AthenaConnectorSource)
+ [JDBCConnectorSource structure](#aws-glue-api-visual-job-api-JDBCConnectorSource)
+ [SparkConnectorSource structure](#aws-glue-api-visual-job-api-SparkConnectorSource)
+ [CatalogSource structure](#aws-glue-api-visual-job-api-CatalogSource)
+ [MySQLCatalogSource structure](#aws-glue-api-visual-job-api-MySQLCatalogSource)
+ [PostgreSQLCatalogSource structure](#aws-glue-api-visual-job-api-PostgreSQLCatalogSource)
+ [OracleSQLCatalogSource structure](#aws-glue-api-visual-job-api-OracleSQLCatalogSource)
+ [MicrosoftSQLServerCatalogSource structure](#aws-glue-api-visual-job-api-MicrosoftSQLServerCatalogSource)
+ [CatalogKinesisSource structure](#aws-glue-api-visual-job-api-CatalogKinesisSource)
+ [DirectKinesisSource structure](#aws-glue-api-visual-job-api-DirectKinesisSource)
+ [KinesisStreamingSourceOptions structure](#aws-glue-api-visual-job-api-KinesisStreamingSourceOptions)
+ [CatalogKafkaSource structure](#aws-glue-api-visual-job-api-CatalogKafkaSource)
+ [DirectKafkaSource structure](#aws-glue-api-visual-job-api-DirectKafkaSource)
+ [KafkaStreamingSourceOptions structure](#aws-glue-api-visual-job-api-KafkaStreamingSourceOptions)
+ [RedshiftSource structure](#aws-glue-api-visual-job-api-RedshiftSource)
+ [AmazonRedshiftSource structure](#aws-glue-api-visual-job-api-AmazonRedshiftSource)
+ [AmazonRedshiftNodeData structure](#aws-glue-api-visual-job-api-AmazonRedshiftNodeData)
+ [AmazonRedshiftAdvancedOption structure](#aws-glue-api-visual-job-api-AmazonRedshiftAdvancedOption)
+ [Option structure](#aws-glue-api-visual-job-api-Option)
+ [S3CatalogSource structure](#aws-glue-api-visual-job-api-S3CatalogSource)
+ [S3SourceAdditionalOptions structure](#aws-glue-api-visual-job-api-S3SourceAdditionalOptions)
+ [S3CsvSource structure](#aws-glue-api-visual-job-api-S3CsvSource)
+ [DirectJDBCSource structure](#aws-glue-api-visual-job-api-DirectJDBCSource)
+ [S3DirectSourceAdditionalOptions structure](#aws-glue-api-visual-job-api-S3DirectSourceAdditionalOptions)
+ [S3JsonSource structure](#aws-glue-api-visual-job-api-S3JsonSource)
+ [S3ParquetSource structure](#aws-glue-api-visual-job-api-S3ParquetSource)
+ [S3DeltaSource structure](#aws-glue-api-visual-job-api-S3DeltaSource)
+ [S3CatalogDeltaSource structure](#aws-glue-api-visual-job-api-S3CatalogDeltaSource)
+ [CatalogDeltaSource structure](#aws-glue-api-visual-job-api-CatalogDeltaSource)
+ [S3HudiSource structure](#aws-glue-api-visual-job-api-S3HudiSource)
+ [S3CatalogHudiSource structure](#aws-glue-api-visual-job-api-S3CatalogHudiSource)
+ [S3ExcelSource structure](#aws-glue-api-visual-job-api-S3ExcelSource)
+ [CatalogHudiSource structure](#aws-glue-api-visual-job-api-CatalogHudiSource)
+ [DynamoDBCatalogSource structure](#aws-glue-api-visual-job-api-DynamoDBCatalogSource)
+ [RelationalCatalogSource structure](#aws-glue-api-visual-job-api-RelationalCatalogSource)
+ [JDBCConnectorTarget structure](#aws-glue-api-visual-job-api-JDBCConnectorTarget)
+ [SparkConnectorTarget structure](#aws-glue-api-visual-job-api-SparkConnectorTarget)
+ [BasicCatalogTarget structure](#aws-glue-api-visual-job-api-BasicCatalogTarget)
+ [MySQLCatalogTarget structure](#aws-glue-api-visual-job-api-MySQLCatalogTarget)
+ [PostgreSQLCatalogTarget structure](#aws-glue-api-visual-job-api-PostgreSQLCatalogTarget)
+ [OracleSQLCatalogTarget structure](#aws-glue-api-visual-job-api-OracleSQLCatalogTarget)
+ [MicrosoftSQLServerCatalogTarget structure](#aws-glue-api-visual-job-api-MicrosoftSQLServerCatalogTarget)
+ [RedshiftTarget structure](#aws-glue-api-visual-job-api-RedshiftTarget)
+ [AmazonRedshiftTarget structure](#aws-glue-api-visual-job-api-AmazonRedshiftTarget)
+ [UpsertRedshiftTargetOptions structure](#aws-glue-api-visual-job-api-UpsertRedshiftTargetOptions)
+ [S3CatalogTarget structure](#aws-glue-api-visual-job-api-S3CatalogTarget)
+ [S3GlueParquetTarget structure](#aws-glue-api-visual-job-api-S3GlueParquetTarget)
+ [CatalogSchemaChangePolicy structure](#aws-glue-api-visual-job-api-CatalogSchemaChangePolicy)
+ [S3DirectTarget structure](#aws-glue-api-visual-job-api-S3DirectTarget)
+ [S3HudiCatalogTarget structure](#aws-glue-api-visual-job-api-S3HudiCatalogTarget)
+ [S3HudiDirectTarget structure](#aws-glue-api-visual-job-api-S3HudiDirectTarget)
+ [S3DeltaCatalogTarget structure](#aws-glue-api-visual-job-api-S3DeltaCatalogTarget)
+ [S3DeltaDirectTarget structure](#aws-glue-api-visual-job-api-S3DeltaDirectTarget)
+ [S3HyperDirectTarget structure](#aws-glue-api-visual-job-api-S3HyperDirectTarget)
+ [S3IcebergDirectTarget structure](#aws-glue-api-visual-job-api-S3IcebergDirectTarget)
+ [DirectSchemaChangePolicy structure](#aws-glue-api-visual-job-api-DirectSchemaChangePolicy)
+ [ApplyMapping structure](#aws-glue-api-visual-job-api-ApplyMapping)
+ [Mapping structure](#aws-glue-api-visual-job-api-Mapping)
+ [SelectFields structure](#aws-glue-api-visual-job-api-SelectFields)
+ [DropFields structure](#aws-glue-api-visual-job-api-DropFields)
+ [RenameField structure](#aws-glue-api-visual-job-api-RenameField)
+ [Spigot structure](#aws-glue-api-visual-job-api-Spigot)
+ [Join structure](#aws-glue-api-visual-job-api-Join)
+ [JoinColumn structure](#aws-glue-api-visual-job-api-JoinColumn)
+ [SplitFields structure](#aws-glue-api-visual-job-api-SplitFields)
+ [SelectFromCollection structure](#aws-glue-api-visual-job-api-SelectFromCollection)
+ [FillMissingValues structure](#aws-glue-api-visual-job-api-FillMissingValues)
+ [Filter structure](#aws-glue-api-visual-job-api-Filter)
+ [FilterExpression structure](#aws-glue-api-visual-job-api-FilterExpression)
+ [FilterValue structure](#aws-glue-api-visual-job-api-FilterValue)
+ [CustomCode structure](#aws-glue-api-visual-job-api-CustomCode)
+ [SparkSQL structure](#aws-glue-api-visual-job-api-SparkSQL)
+ [SqlAlias structure](#aws-glue-api-visual-job-api-SqlAlias)
+ [DropNullFields structure](#aws-glue-api-visual-job-api-DropNullFields)
+ [NullCheckBoxList structure](#aws-glue-api-visual-job-api-NullCheckBoxList)
+ [NullValueField structure](#aws-glue-api-visual-job-api-NullValueField)
+ [Datatype structure](#aws-glue-api-visual-job-api-Datatype)
+ [Merge structure](#aws-glue-api-visual-job-api-Merge)
+ [Union structure](#aws-glue-api-visual-job-api-Union)
+ [PIIDetection structure](#aws-glue-api-visual-job-api-PIIDetection)
+ [Aggregate structure](#aws-glue-api-visual-job-api-Aggregate)
+ [DropDuplicates structure](#aws-glue-api-visual-job-api-DropDuplicates)
+ [GovernedCatalogTarget structure](#aws-glue-api-visual-job-api-GovernedCatalogTarget)
+ [GovernedCatalogSource structure](#aws-glue-api-visual-job-api-GovernedCatalogSource)
+ [AggregateOperation structure](#aws-glue-api-visual-job-api-AggregateOperation)
+ [GlueSchema structure](#aws-glue-api-visual-job-api-GlueSchema)
+ [GlueStudioSchemaColumn structure](#aws-glue-api-visual-job-api-GlueStudioSchemaColumn)
+ [GlueStudioColumn structure](#aws-glue-api-visual-job-api-GlueStudioColumn)
+ [DynamicTransform structure](#aws-glue-api-visual-job-api-DynamicTransform)
+ [TransformConfigParameter structure](#aws-glue-api-visual-job-api-TransformConfigParameter)
+ [EvaluateDataQuality structure](#aws-glue-api-visual-job-api-EvaluateDataQuality)
+ [DQResultsPublishingOptions structure](#aws-glue-api-visual-job-api-DQResultsPublishingOptions)
+ [DQStopJobOnFailureOptions structure](#aws-glue-api-visual-job-api-DQStopJobOnFailureOptions)
+ [EvaluateDataQualityMultiFrame structure](#aws-glue-api-visual-job-api-EvaluateDataQualityMultiFrame)
+ [Recipe structure](#aws-glue-api-visual-job-api-Recipe)
+ [RecipeReference structure](#aws-glue-api-visual-job-api-RecipeReference)
+ [SnowflakeNodeData structure](#aws-glue-api-visual-job-api-SnowflakeNodeData)
+ [SnowflakeSource structure](#aws-glue-api-visual-job-api-SnowflakeSource)
+ [SnowflakeTarget structure](#aws-glue-api-visual-job-api-SnowflakeTarget)
+ [ConnectorDataSource structure](#aws-glue-api-visual-job-api-ConnectorDataSource)
+ [ConnectorDataTarget structure](#aws-glue-api-visual-job-api-ConnectorDataTarget)
+ [RecipeStep structure](#aws-glue-api-visual-job-api-RecipeStep)
+ [RecipeAction structure](#aws-glue-api-visual-job-api-RecipeAction)
+ [ConditionExpression structure](#aws-glue-api-visual-job-api-ConditionExpression)
+ [S3CatalogIcebergSource structure](#aws-glue-api-visual-job-api-S3CatalogIcebergSource)
+ [CatalogIcebergSource structure](#aws-glue-api-visual-job-api-CatalogIcebergSource)
+ [S3IcebergCatalogTarget structure](#aws-glue-api-visual-job-api-S3IcebergCatalogTarget)
+ [DynamoDBELTConnectorSource structure](#aws-glue-api-visual-job-api-DynamoDBELTConnectorSource)
+ [DDBELTConnectionOptions structure](#aws-glue-api-visual-job-api-DDBELTConnectionOptions)
+ [DDBELTCatalogAdditionalOptions structure](#aws-glue-api-visual-job-api-DDBELTCatalogAdditionalOptions)
+ [Route structure](#aws-glue-api-visual-job-api-Route)
+ [GroupFilters structure](#aws-glue-api-visual-job-api-GroupFilters)
+ [AutoDataQuality structure](#aws-glue-api-visual-job-api-AutoDataQuality)

## CodeGenConfigurationNode structure
<a name="aws-glue-api-visual-job-api-CodeGenConfigurationNode"></a>

`CodeGenConfigurationNode` enumerates all valid Node types. One and only one of its member variables can be populated.

**Fields**
+ `AthenaConnectorSource` – An [AthenaConnectorSource](#aws-glue-api-visual-job-api-AthenaConnectorSource) object.

  Specifies a connector to an Amazon Athena data source.
+ `JDBCConnectorSource` – A [JDBCConnectorSource](#aws-glue-api-visual-job-api-JDBCConnectorSource) object.

  Specifies a connector to a JDBC data source.
+ `SparkConnectorSource` – A [SparkConnectorSource](#aws-glue-api-visual-job-api-SparkConnectorSource) object.

  Specifies a connector to an Apache Spark data source.
+ `CatalogSource` – A [CatalogSource](#aws-glue-api-visual-job-api-CatalogSource) object.

  Specifies a data store in the AWS Glue Data Catalog.
+ `RedshiftSource` – A [RedshiftSource](#aws-glue-api-visual-job-api-RedshiftSource) object.

  Specifies an Amazon Redshift data store.
+ `S3CatalogSource` – A [S3CatalogSource](#aws-glue-api-visual-job-api-S3CatalogSource) object.

  Specifies an Amazon S3 data store in the AWS Glue Data Catalog.
+ `S3CsvSource` – A [S3CsvSource](#aws-glue-api-visual-job-api-S3CsvSource) object.

  Specifies a command-separated value (CSV) data store stored in Amazon S3.
+ `S3JsonSource` – A [S3JsonSource](#aws-glue-api-visual-job-api-S3JsonSource) object.

  Specifies a JSON data store stored in Amazon S3.
+ `S3ParquetSource` – A [S3ParquetSource](#aws-glue-api-visual-job-api-S3ParquetSource) object.

  Specifies an Apache Parquet data store stored in Amazon S3.
+ `RelationalCatalogSource` – A [RelationalCatalogSource](#aws-glue-api-visual-job-api-RelationalCatalogSource) object.

  Specifies a relational catalog data store in the AWS Glue Data Catalog.
+ `DynamoDBCatalogSource` – A [DynamoDBCatalogSource](#aws-glue-api-visual-job-api-DynamoDBCatalogSource) object.

  Specifies a DynamoDBC Catalog data store in the AWS Glue Data Catalog.
+ `JDBCConnectorTarget` – A [JDBCConnectorTarget](#aws-glue-api-visual-job-api-JDBCConnectorTarget) object.

  Specifies a data target that writes to Amazon S3 in Apache Parquet columnar storage.
+ `SparkConnectorTarget` – A [SparkConnectorTarget](#aws-glue-api-visual-job-api-SparkConnectorTarget) object.

  Specifies a target that uses an Apache Spark connector.
+ `CatalogTarget` – A [BasicCatalogTarget](#aws-glue-api-visual-job-api-BasicCatalogTarget) object.

  Specifies a target that uses a AWS Glue Data Catalog table.
+ `RedshiftTarget` – A [RedshiftTarget](#aws-glue-api-visual-job-api-RedshiftTarget) object.

  Specifies a target that uses Amazon Redshift.
+ `S3CatalogTarget` – A [S3CatalogTarget](#aws-glue-api-visual-job-api-S3CatalogTarget) object.

  Specifies a data target that writes to Amazon S3 using the AWS Glue Data Catalog.
+ `S3GlueParquetTarget` – A [S3GlueParquetTarget](#aws-glue-api-visual-job-api-S3GlueParquetTarget) object.

  Specifies a data target that writes to Amazon S3 in Apache Parquet columnar storage.
+ `S3DirectTarget` – A [S3DirectTarget](#aws-glue-api-visual-job-api-S3DirectTarget) object.

  Specifies a data target that writes to Amazon S3.
+ `ApplyMapping` – An [ApplyMapping](#aws-glue-api-visual-job-api-ApplyMapping) object.

  Specifies a transform that maps data property keys in the data source to data property keys in the data target. You can rename keys, modify the data types for keys, and choose which keys to drop from the dataset.
+ `SelectFields` – A [SelectFields](#aws-glue-api-visual-job-api-SelectFields) object.

  Specifies a transform that chooses the data property keys that you want to keep.
+ `DropFields` – A [DropFields](#aws-glue-api-visual-job-api-DropFields) object.

  Specifies a transform that chooses the data property keys that you want to drop.
+ `RenameField` – A [RenameField](#aws-glue-api-visual-job-api-RenameField) object.

  Specifies a transform that renames a single data property key.
+ `Spigot` – A [Spigot](#aws-glue-api-visual-job-api-Spigot) object.

  Specifies a transform that writes samples of the data to an Amazon S3 bucket.
+ `Join` – A [Join](#aws-glue-api-visual-job-api-Join) object.

  Specifies a transform that joins two datasets into one dataset using a comparison phrase on the specified data property keys. You can use inner, outer, left, right, left semi, and left anti joins.
+ `SplitFields` – A [SplitFields](#aws-glue-api-visual-job-api-SplitFields) object.

  Specifies a transform that splits data property keys into two `DynamicFrames`. The output is a collection of `DynamicFrames`: one with selected data property keys, and one with the remaining data property keys.
+ `SelectFromCollection` – A [SelectFromCollection](#aws-glue-api-visual-job-api-SelectFromCollection) object.

  Specifies a transform that chooses one `DynamicFrame` from a collection of `DynamicFrames`. The output is the selected `DynamicFrame`
+ `FillMissingValues` – A [FillMissingValues](#aws-glue-api-visual-job-api-FillMissingValues) object.

  Specifies a transform that locates records in the dataset that have missing values and adds a new field with a value determined by imputation. The input data set is used to train the machine learning model that determines what the missing value should be.
+ `Filter` – A [Filter](#aws-glue-api-visual-job-api-Filter) object.

  Specifies a transform that splits a dataset into two, based on a filter condition.
+ `CustomCode` – A [CustomCode](#aws-glue-api-visual-job-api-CustomCode) object.

  Specifies a transform that uses custom code you provide to perform the data transformation. The output is a collection of DynamicFrames.
+ `SparkSQL` – A [SparkSQL](#aws-glue-api-visual-job-api-SparkSQL) object.

  Specifies a transform where you enter a SQL query using Spark SQL syntax to transform the data. The output is a single `DynamicFrame`.
+ `DirectKinesisSource` – A [DirectKinesisSource](#aws-glue-api-visual-job-api-DirectKinesisSource) object.

  Specifies a direct Amazon Kinesis data source.
+ `DirectKafkaSource` – A [DirectKafkaSource](#aws-glue-api-visual-job-api-DirectKafkaSource) object.

  Specifies an Apache Kafka data store.
+ `CatalogKinesisSource` – A [CatalogKinesisSource](#aws-glue-api-visual-job-api-CatalogKinesisSource) object.

  Specifies a Kinesis data source in the AWS Glue Data Catalog.
+ `CatalogKafkaSource` – A [CatalogKafkaSource](#aws-glue-api-visual-job-api-CatalogKafkaSource) object.

  Specifies an Apache Kafka data store in the Data Catalog.
+ `DropNullFields` – A [DropNullFields](#aws-glue-api-visual-job-api-DropNullFields) object.

  Specifies a transform that removes columns from the dataset if all values in the column are 'null'. By default, AWS Glue Studio will recognize null objects, but some values such as empty strings, strings that are "null", -1 integers or other placeholders such as zeros, are not automatically recognized as nulls.
+ `Merge` – A [Merge](#aws-glue-api-visual-job-api-Merge) object.

  Specifies a transform that merges a `DynamicFrame` with a staging `DynamicFrame` based on the specified primary keys to identify records. Duplicate records (records with the same primary keys) are not de-duplicated. 
+ `Union` – An [Union](#aws-glue-api-visual-job-api-Union) object.

  Specifies a transform that combines the rows from two or more datasets into a single result.
+ `PIIDetection` – A [PIIDetection](#aws-glue-api-visual-job-api-PIIDetection) object.

  Specifies a transform that identifies, removes or masks PII data.
+ `Aggregate` – An [Aggregate](#aws-glue-api-visual-job-api-Aggregate) object.

  Specifies a transform that groups rows by chosen fields and computes the aggregated value by specified function.
+ `DropDuplicates` – A [DropDuplicates](#aws-glue-api-visual-job-api-DropDuplicates) object.

  Specifies a transform that removes rows of repeating data from a data set.
+ `GovernedCatalogTarget` – A [GovernedCatalogTarget](#aws-glue-api-visual-job-api-GovernedCatalogTarget) object.

  Specifies a data target that writes to a goverened catalog.
+ `GovernedCatalogSource` – A [GovernedCatalogSource](#aws-glue-api-visual-job-api-GovernedCatalogSource) object.

  Specifies a data source in a goverened Data Catalog.
+ `MicrosoftSQLServerCatalogSource` – A [MicrosoftSQLServerCatalogSource](#aws-glue-api-visual-job-api-MicrosoftSQLServerCatalogSource) object.

  Specifies a Microsoft SQL server data source in the AWS Glue Data Catalog.
+ `MySQLCatalogSource` – A [MySQLCatalogSource](#aws-glue-api-visual-job-api-MySQLCatalogSource) object.

  Specifies a MySQL data source in the AWS Glue Data Catalog.
+ `OracleSQLCatalogSource` – An [OracleSQLCatalogSource](#aws-glue-api-visual-job-api-OracleSQLCatalogSource) object.

  Specifies an Oracle data source in the AWS Glue Data Catalog.
+ `PostgreSQLCatalogSource` – A [PostgreSQLCatalogSource](#aws-glue-api-visual-job-api-PostgreSQLCatalogSource) object.

  Specifies a PostgresSQL data source in the AWS Glue Data Catalog.
+ `MicrosoftSQLServerCatalogTarget` – A [MicrosoftSQLServerCatalogTarget](#aws-glue-api-visual-job-api-MicrosoftSQLServerCatalogTarget) object.

  Specifies a target that uses Microsoft SQL.
+ `MySQLCatalogTarget` – A [MySQLCatalogTarget](#aws-glue-api-visual-job-api-MySQLCatalogTarget) object.

  Specifies a target that uses MySQL.
+ `OracleSQLCatalogTarget` – An [OracleSQLCatalogTarget](#aws-glue-api-visual-job-api-OracleSQLCatalogTarget) object.

  Specifies a target that uses Oracle SQL.
+ `PostgreSQLCatalogTarget` – A [PostgreSQLCatalogTarget](#aws-glue-api-visual-job-api-PostgreSQLCatalogTarget) object.

  Specifies a target that uses Postgres SQL.
+ `Route` – A [Route](#aws-glue-api-visual-job-api-Route) object.

  Specifies a route node that directs data to different output paths based on defined filtering conditions.
+ `DynamicTransform` – A [DynamicTransform](#aws-glue-api-visual-job-api-DynamicTransform) object.

  Specifies a custom visual transform created by a user.
+ `EvaluateDataQuality` – An [EvaluateDataQuality](#aws-glue-api-visual-job-api-EvaluateDataQuality) object.

  Specifies your data quality evaluation criteria.
+ `S3CatalogHudiSource` – A [S3CatalogHudiSource](#aws-glue-api-visual-job-api-S3CatalogHudiSource) object.

  Specifies a Hudi data source that is registered in the AWS Glue Data Catalog. The data source must be stored in Amazon S3.
+ `CatalogHudiSource` – A [CatalogHudiSource](#aws-glue-api-visual-job-api-CatalogHudiSource) object.

  Specifies a Hudi data source that is registered in the AWS Glue Data Catalog.
+ `S3HudiSource` – A [S3HudiSource](#aws-glue-api-visual-job-api-S3HudiSource) object.

  Specifies a Hudi data source stored in Amazon S3.
+ `S3HudiCatalogTarget` – A [S3HudiCatalogTarget](#aws-glue-api-visual-job-api-S3HudiCatalogTarget) object.

  Specifies a target that writes to a Hudi data source in the AWS Glue Data Catalog.
+ `S3HudiDirectTarget` – A [S3HudiDirectTarget](#aws-glue-api-visual-job-api-S3HudiDirectTarget) object.

  Specifies a target that writes to a Hudi data source in Amazon S3.
+ `S3CatalogDeltaSource` – A [S3CatalogDeltaSource](#aws-glue-api-visual-job-api-S3CatalogDeltaSource) object.

  Specifies a Delta Lake data source that is registered in the AWS Glue Data Catalog. The data source must be stored in Amazon S3.
+ `CatalogDeltaSource` – A [CatalogDeltaSource](#aws-glue-api-visual-job-api-CatalogDeltaSource) object.

  Specifies a Delta Lake data source that is registered in the AWS Glue Data Catalog.
+ `S3DeltaSource` – A [S3DeltaSource](#aws-glue-api-visual-job-api-S3DeltaSource) object.

  Specifies a Delta Lake data source stored in Amazon S3.
+ `S3DeltaCatalogTarget` – A [S3DeltaCatalogTarget](#aws-glue-api-visual-job-api-S3DeltaCatalogTarget) object.

  Specifies a target that writes to a Delta Lake data source in the AWS Glue Data Catalog.
+ `S3DeltaDirectTarget` – A [S3DeltaDirectTarget](#aws-glue-api-visual-job-api-S3DeltaDirectTarget) object.

  Specifies a target that writes to a Delta Lake data source in Amazon S3.
+ `AmazonRedshiftSource` – An [AmazonRedshiftSource](#aws-glue-api-visual-job-api-AmazonRedshiftSource) object.

  Specifies a target that writes to a data source in Amazon Redshift.
+ `AmazonRedshiftTarget` – An [AmazonRedshiftTarget](#aws-glue-api-visual-job-api-AmazonRedshiftTarget) object.

  Specifies a target that writes to a data target in Amazon Redshift.
+ `EvaluateDataQualityMultiFrame` – An [EvaluateDataQualityMultiFrame](#aws-glue-api-visual-job-api-EvaluateDataQualityMultiFrame) object.

  Specifies your data quality evaluation criteria. Allows multiple input data and returns a collection of Dynamic Frames.
+ `Recipe` – A [Recipe](#aws-glue-api-visual-job-api-Recipe) object.

  Specifies a AWS Glue DataBrew recipe node.
+ `SnowflakeSource` – A [SnowflakeSource](#aws-glue-api-visual-job-api-SnowflakeSource) object.

  Specifies a Snowflake data source.
+ `SnowflakeTarget` – A [SnowflakeTarget](#aws-glue-api-visual-job-api-SnowflakeTarget) object.

  Specifies a target that writes to a Snowflake data source.
+ `ConnectorDataSource` – A [ConnectorDataSource](#aws-glue-api-visual-job-api-ConnectorDataSource) object.

  Specifies a source generated with standard connection options.
+ `ConnectorDataTarget` – A [ConnectorDataTarget](#aws-glue-api-visual-job-api-ConnectorDataTarget) object.

  Specifies a target generated with standard connection options.
+ `S3CatalogIcebergSource` – A [S3CatalogIcebergSource](#aws-glue-api-visual-job-api-S3CatalogIcebergSource) object.

  Specifies an Apache Iceberg data source that is registered in the AWS Glue Data Catalog. The Iceberg data source must be stored in Amazon S3.
+ `CatalogIcebergSource` – A [CatalogIcebergSource](#aws-glue-api-visual-job-api-CatalogIcebergSource) object.

  Specifies an Apache Iceberg data source that is registered in the AWS Glue Data Catalog.
+ `S3IcebergCatalogTarget` – A [S3IcebergCatalogTarget](#aws-glue-api-visual-job-api-S3IcebergCatalogTarget) object.

  Specifies an Apache Iceberg catalog target that writes data to Amazon S3 and registers the table in the AWS Glue Data Catalog.
+ `S3IcebergDirectTarget` – A [S3IcebergDirectTarget](#aws-glue-api-visual-job-api-S3IcebergDirectTarget) object.

  Defines configuration parameters for writing data to Amazon S3 as an Apache Iceberg table.
+ `S3ExcelSource` – A [S3ExcelSource](#aws-glue-api-visual-job-api-S3ExcelSource) object.

  Defines configuration parameters for reading Excel files from Amazon S3.
+ `S3HyperDirectTarget` – A [S3HyperDirectTarget](#aws-glue-api-visual-job-api-S3HyperDirectTarget) object.

  Defines configuration parameters for writing data to Amazon S3 using HyperDirect optimization.
+ `DynamoDBELTConnectorSource` – A [DynamoDBELTConnectorSource](#aws-glue-api-visual-job-api-DynamoDBELTConnectorSource) object.

  Specifies a DynamoDB ELT connector source for extracting data from DynamoDB tables.

## JDBCConnectorOptions structure
<a name="aws-glue-api-visual-job-api-JDBCConnectorOptions"></a>

Additional connection options for the connector.

**Fields**
+ `FilterPredicate` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Extra condition clause to filter data from source. For example:

  `BillingCity='Mountain View'`

  When using a query instead of a table name, you should validate that the query works with the specified `filterPredicate`.
+ `PartitionColumn` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of an integer column that is used for partitioning. This option works only when it's included with `lowerBound`, `upperBound`, and `numPartitions`. This option works the same way as in the Spark SQL JDBC reader.
+ `LowerBound` – Number (long), not more than None.

  The minimum value of `partitionColumn` that is used to decide partition stride.
+ `UpperBound` – Number (long), not more than None.

  The maximum value of `partitionColumn` that is used to decide partition stride.
+ `NumPartitions` – Number (long), not more than None.

  The number of partitions. This value, along with `lowerBound` (inclusive) and `upperBound` (exclusive), form partition strides for generated `WHERE` clause expressions that are used to split the `partitionColumn`.
+ `JobBookmarkKeys` – An array of UTF-8 strings.

  The name of the job bookmark keys on which to sort.
+ `JobBookmarkKeysSortOrder` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies an ascending or descending sort order.
+ `DataTypeMapping` – A map array of key-value pairs.

  Each key is a UTF-8 string (valid values: `ARRAY` \$1 `BIGINT` \$1 `BINARY` \$1 `BIT` \$1 `BLOB` \$1 `BOOLEAN` \$1 `CHAR` \$1 `CLOB` \$1 `DATALINK` \$1 `DATE` \$1 `DECIMAL` \$1 `DISTINCT` \$1 `DOUBLE` \$1 `FLOAT` \$1 `INTEGER` \$1 `JAVA_OBJECT` \$1 `LONGNVARCHAR` \$1 `LONGVARBINARY` \$1 `LONGVARCHAR` \$1 `NCHAR` \$1 `NCLOB` \$1 `NULL` \$1 `NUMERIC` \$1 `NVARCHAR` \$1 `OTHER` \$1 `REAL` \$1 `REF` \$1 `REF_CURSOR` \$1 `ROWID` \$1 `SMALLINT` \$1 `SQLXML` \$1 `STRUCT` \$1 `TIME` \$1 `TIME_WITH_TIMEZONE` \$1 `TIMESTAMP` \$1 `TIMESTAMP_WITH_TIMEZONE` \$1 `TINYINT` \$1 `VARBINARY` \$1 `VARCHAR`).

  Each value is a UTF-8 string (valid values: `DATE` \$1 `STRING` \$1 `TIMESTAMP` \$1 `INT` \$1 `FLOAT` \$1 `LONG` \$1 `BIGDECIMAL` \$1 `BYTE` \$1 `SHORT` \$1 `DOUBLE`).

  Custom data type mapping that builds a mapping from a JDBC data type to an AWS Glue data type. For example, the option `"dataTypeMapping":{"FLOAT":"STRING"}` maps data fields of JDBC type `FLOAT` into the Java `String` type by calling the `ResultSet.getString()` method of the driver, and uses it to build the AWS Glue record. The `ResultSet` object is implemented by each driver, so the behavior is specific to the driver you use. Refer to the documentation for your JDBC driver to understand how the driver performs the conversions.

## StreamingDataPreviewOptions structure
<a name="aws-glue-api-visual-job-api-StreamingDataPreviewOptions"></a>

Specifies options related to data preview for viewing a sample of your data.

**Fields**
+ `PollingTime` – Number (long), at least 10.

  The polling time in milliseconds.
+ `RecordPollingLimit` – Number (long), at least 1.

  The limit to the number of records polled.

## AthenaConnectorSource structure
<a name="aws-glue-api-visual-job-api-AthenaConnectorSource"></a>

Specifies a connector to an Amazon Athena data source.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data source.
+ `ConnectionName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the connection that is associated with the connector.
+ `ConnectorName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of a connector that assists with accessing the data store in AWS Glue Studio.
+ `ConnectionType` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The type of connection, such as marketplace.athena or custom.athena, designating a connection to an Amazon Athena data store.
+ `ConnectionTable` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the data source.
+ `SchemaName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the Cloudwatch log group to read from. For example, `/aws-glue/jobs/output`.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the custom Athena source.

## JDBCConnectorSource structure
<a name="aws-glue-api-visual-job-api-JDBCConnectorSource"></a>

Specifies a connector to a JDBC data source.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data source.
+ `ConnectionName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the connection that is associated with the connector.
+ `ConnectorName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of a connector that assists with accessing the data store in AWS Glue Studio.
+ `ConnectionType` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The type of connection, such as marketplace.jdbc or custom.jdbc, designating a connection to a JDBC data store.
+ `AdditionalOptions` – A [JDBCConnectorOptions](#aws-glue-api-visual-job-api-JDBCConnectorOptions) object.

  Additional connection options for the connector.
+ `ConnectionTable` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the data source.
+ `Query` – UTF-8 string, matching the [Custom string pattern #62](aws-glue-api-common.md#regex_62).

  The table or SQL query to get the data from. You can specify either `ConnectionTable` or `query`, but not both.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the custom JDBC source.

## SparkConnectorSource structure
<a name="aws-glue-api-visual-job-api-SparkConnectorSource"></a>

Specifies a connector to an Apache Spark data source.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data source.
+ `ConnectionName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the connection that is associated with the connector.
+ `ConnectorName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of a connector that assists with accessing the data store in AWS Glue Studio.
+ `ConnectionType` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The type of connection, such as marketplace.spark or custom.spark, designating a connection to an Apache Spark data store.
+ `AdditionalOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Additional connection options for the connector.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies data schema for the custom spark source.

## CatalogSource structure
<a name="aws-glue-api-visual-job-api-CatalogSource"></a>

Specifies a data store in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data store.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.
+ `PartitionPredicate` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

   Partitions satisfying this predicate are deleted. Files within the retention period in these partitions are not deleted. 
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the catalog source.

## MySQLCatalogSource structure
<a name="aws-glue-api-visual-job-api-MySQLCatalogSource"></a>

Specifies a MySQL data source in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data source.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.

## PostgreSQLCatalogSource structure
<a name="aws-glue-api-visual-job-api-PostgreSQLCatalogSource"></a>

Specifies a PostgresSQL data source in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data source.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.

## OracleSQLCatalogSource structure
<a name="aws-glue-api-visual-job-api-OracleSQLCatalogSource"></a>

Specifies an Oracle data source in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data source.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.

## MicrosoftSQLServerCatalogSource structure
<a name="aws-glue-api-visual-job-api-MicrosoftSQLServerCatalogSource"></a>

Specifies a Microsoft SQL server data source in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data source.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.

## CatalogKinesisSource structure
<a name="aws-glue-api-visual-job-api-CatalogKinesisSource"></a>

Specifies a Kinesis data source in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data source.
+ `WindowSize` – Number (integer), not more than None.

  The amount of time to spend processing each micro batch.
+ `DetectSchema` – Boolean.

  Whether to automatically determine the schema from the incoming data.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `StreamingOptions` – A [KinesisStreamingSourceOptions](#aws-glue-api-visual-job-api-KinesisStreamingSourceOptions) object.

  Additional options for the Kinesis streaming data source.
+ `DataPreviewOptions` – A [StreamingDataPreviewOptions](#aws-glue-api-visual-job-api-StreamingDataPreviewOptions) object.

  Additional options for data preview.

## DirectKinesisSource structure
<a name="aws-glue-api-visual-job-api-DirectKinesisSource"></a>

Specifies a direct Amazon Kinesis data source.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data source.
+ `WindowSize` – Number (integer), not more than None.

  The amount of time to spend processing each micro batch.
+ `DetectSchema` – Boolean.

  Whether to automatically determine the schema from the incoming data.
+ `StreamingOptions` – A [KinesisStreamingSourceOptions](#aws-glue-api-visual-job-api-KinesisStreamingSourceOptions) object.

  Additional options for the Kinesis streaming data source.
+ `DataPreviewOptions` – A [StreamingDataPreviewOptions](#aws-glue-api-visual-job-api-StreamingDataPreviewOptions) object.

  Additional options for data preview.

## KinesisStreamingSourceOptions structure
<a name="aws-glue-api-visual-job-api-KinesisStreamingSourceOptions"></a>

Additional options for the Amazon Kinesis streaming data source.

**Fields**
+ `EndpointUrl` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The URL of the Kinesis endpoint.
+ `StreamName` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the Kinesis data stream.
+ `Classification` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  An optional classification.
+ `Delimiter` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the delimiter character.
+ `StartingPosition` – UTF-8 string (valid values: `latest="LATEST"` \$1 `trim_horizon="TRIM_HORIZON"` \$1 `earliest="EARLIEST"` \$1 `timestamp="TIMESTAMP"`).

  The starting position in the Kinesis data stream to read data from. The possible values are `"latest"`, `"trim_horizon"`, `"earliest"`, or a timestamp string in UTC format in the pattern `yyyy-mm-ddTHH:MM:SSZ` (where `Z` represents a UTC timezone offset with a \$1/-. For example: "2023-04-04T08:00:00-04:00"). The default value is `"latest"`.

  Note: Using a value that is a timestamp string in UTC format for "startingPosition" is supported only for AWS Glue version 4.0 or later.
+ `MaxFetchTimeInMs` – Number (long), not more than None.

  The maximum time spent for the job executor to read records for the current batch from the Kinesis data stream, specified in milliseconds (ms). Multiple `GetRecords` API calls may be made within this time. The default value is `1000`.
+ `MaxFetchRecordsPerShard` – Number (long), not more than None.

  The maximum number of records to fetch per shard in the Kinesis data stream per microbatch. Note: The client can exceed this limit if the streaming job has already read extra records from Kinesis (in the same get-records call). If `MaxFetchRecordsPerShard` needs to be strict then it needs to be a multiple of `MaxRecordPerRead`. The default value is `100000`.
+ `MaxRecordPerRead` – Number (long), not more than None.

  The maximum number of records to fetch from the Kinesis data stream in each getRecords operation. The default value is `10000`.
+ `AddIdleTimeBetweenReads` – Boolean.

  Adds a time delay between two consecutive getRecords operations. The default value is `"False"`. This option is only configurable for AWS Glue version 2.0 and above.
+ `IdleTimeBetweenReadsInMs` – Number (long), not more than None.

  The minimum time delay between two consecutive getRecords operations, specified in ms. The default value is `1000`. This option is only configurable for AWS Glue version 2.0 and above.
+ `DescribeShardInterval` – Number (long), not more than None.

  The minimum time interval between two ListShards API calls for your script to consider resharding. The default value is `1s`.
+ `NumRetries` – Number (integer), not more than None.

  The maximum number of retries for Kinesis Data Streams API requests. The default value is `3`.
+ `RetryIntervalMs` – Number (long), not more than None.

  The cool-off time period (specified in ms) before retrying the Kinesis Data Streams API call. The default value is `1000`.
+ `MaxRetryIntervalMs` – Number (long), not more than None.

  The maximum cool-off time period (specified in ms) between two retries of a Kinesis Data Streams API call. The default value is `10000`.
+ `AvoidEmptyBatches` – Boolean.

  Avoids creating an empty microbatch job by checking for unread data in the Kinesis data stream before the batch is started. The default value is `"False"`.
+ `StreamArn` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The Amazon Resource Name (ARN) of the Kinesis data stream.
+ `RoleArn` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The Amazon Resource Name (ARN) of the role to assume using AWS Security Token Service (AWS STS). This role must have permissions for describe or read record operations for the Kinesis data stream. You must use this parameter when accessing a data stream in a different account. Used in conjunction with `"awsSTSSessionName"`.
+ `RoleSessionName` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  An identifier for the session assuming the role using AWS STS. You must use this parameter when accessing a data stream in a different account. Used in conjunction with `"awsSTSRoleARN"`.
+ `AddRecordTimestamp` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  When this option is set to 'true', the data output will contain an additional column named "\$1\$1src\$1timestamp" that indicates the time when the corresponding record received by the stream. The default value is 'false'. This option is supported in AWS Glue version 4.0 or later.
+ `EmitConsumerLagMetrics` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  When this option is set to 'true', for each batch, it will emit the metrics for the duration between the oldest record received by the stream and the time it arrives in AWS Glue to CloudWatch. The metric's name is "glue.driver.streaming.maxConsumerLagInMs". The default value is 'false'. This option is supported in AWS Glue version 4.0 or later.
+ `StartingTimestamp` – UTF-8 string.

  The timestamp of the record in the Kinesis data stream to start reading data from. The possible values are a timestamp string in UTC format of the pattern `yyyy-mm-ddTHH:MM:SSZ` (where Z represents a UTC timezone offset with a \$1/-. For example: "2023-04-04T08:00:00\$108:00"). 
+ `FanoutConsumerARN` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The Amazon Resource Name (ARN) of the Kinesis Data Streams enhanced fan-out consumer. When specified, enables enhanced fan-out for dedicated throughput and lower latency data consumption.

## CatalogKafkaSource structure
<a name="aws-glue-api-visual-job-api-CatalogKafkaSource"></a>

Specifies an Apache Kafka data store in the Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data store.
+ `WindowSize` – Number (integer), not more than None.

  The amount of time to spend processing each micro batch.
+ `DetectSchema` – Boolean.

  Whether to automatically determine the schema from the incoming data.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `StreamingOptions` – A [KafkaStreamingSourceOptions](#aws-glue-api-visual-job-api-KafkaStreamingSourceOptions) object.

  Specifies the streaming options.
+ `DataPreviewOptions` – A [StreamingDataPreviewOptions](#aws-glue-api-visual-job-api-StreamingDataPreviewOptions) object.

  Specifies options related to data preview for viewing a sample of your data.

## DirectKafkaSource structure
<a name="aws-glue-api-visual-job-api-DirectKafkaSource"></a>

Specifies an Apache Kafka data store.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data store.
+ `StreamingOptions` – A [KafkaStreamingSourceOptions](#aws-glue-api-visual-job-api-KafkaStreamingSourceOptions) object.

  Specifies the streaming options.
+ `WindowSize` – Number (integer), not more than None.

  The amount of time to spend processing each micro batch.
+ `DetectSchema` – Boolean.

  Whether to automatically determine the schema from the incoming data.
+ `DataPreviewOptions` – A [StreamingDataPreviewOptions](#aws-glue-api-visual-job-api-StreamingDataPreviewOptions) object.

  Specifies options related to data preview for viewing a sample of your data.

## KafkaStreamingSourceOptions structure
<a name="aws-glue-api-visual-job-api-KafkaStreamingSourceOptions"></a>

Additional options for streaming.

**Fields**
+ `BootstrapServers` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  A list of bootstrap server URLs, for example, as `b-1.vpc-test-2.o4q88o.c6.kafka.us-east-1.amazonaws.com:9094`. This option must be specified in the API call or defined in the table metadata in the Data Catalog.
+ `SecurityProtocol` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The protocol used to communicate with brokers. The possible values are `"SSL"` or `"PLAINTEXT"`.
+ `ConnectionName` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the connection.
+ `TopicName` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The topic name as specified in Apache Kafka. You must specify at least one of `"topicName"`, `"assign"` or `"subscribePattern"`.
+ `Assign` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The specific `TopicPartitions` to consume. You must specify at least one of `"topicName"`, `"assign"` or `"subscribePattern"`.
+ `SubscribePattern` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  A Java regex string that identifies the topic list to subscribe to. You must specify at least one of `"topicName"`, `"assign"` or `"subscribePattern"`.
+ `Classification` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  An optional classification.
+ `Delimiter` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the delimiter character.
+ `StartingOffsets` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The starting position in the Kafka topic to read data from. The possible values are `"earliest"` or `"latest"`. The default value is `"latest"`.
+ `EndingOffsets` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The end point when a batch query is ended. Possible values are either `"latest"` or a JSON string that specifies an ending offset for each `TopicPartition`.
+ `PollTimeoutMs` – Number (long), not more than None.

  The timeout in milliseconds to poll data from Kafka in Spark job executors. The default value is `512`.
+ `NumRetries` – Number (integer), not more than None.

  The number of times to retry before failing to fetch Kafka offsets. The default value is `3`.
+ `RetryIntervalMs` – Number (long), not more than None.

  The time in milliseconds to wait before retrying to fetch Kafka offsets. The default value is `10`.
+ `MaxOffsetsPerTrigger` – Number (long), not more than None.

  The rate limit on the maximum number of offsets that are processed per trigger interval. The specified total number of offsets is proportionally split across `topicPartitions` of different volumes. The default value is null, which means that the consumer reads all offsets until the known latest offset.
+ `MinPartitions` – Number (integer), not more than None.

  The desired minimum number of partitions to read from Kafka. The default value is null, which means that the number of spark partitions is equal to the number of Kafka partitions.
+ `IncludeHeaders` – Boolean.

  Whether to include the Kafka headers. When the option is set to "true", the data output will contain an additional column named "glue\$1streaming\$1kafka\$1headers" with type `Array[Struct(key: String, value: String)]`. The default value is "false". This option is available in AWS Glue version 3.0 or later only.
+ `AddRecordTimestamp` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  When this option is set to 'true', the data output will contain an additional column named "\$1\$1src\$1timestamp" that indicates the time when the corresponding record received by the topic. The default value is 'false'. This option is supported in AWS Glue version 4.0 or later.
+ `EmitConsumerLagMetrics` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  When this option is set to 'true', for each batch, it will emit the metrics for the duration between the oldest record received by the topic and the time it arrives in AWS Glue to CloudWatch. The metric's name is "glue.driver.streaming.maxConsumerLagInMs". The default value is 'false'. This option is supported in AWS Glue version 4.0 or later.
+ `StartingTimestamp` – UTF-8 string.

  The timestamp of the record in the Kafka topic to start reading data from. The possible values are a timestamp string in UTC format of the pattern `yyyy-mm-ddTHH:MM:SSZ` (where Z represents a UTC timezone offset with a \$1/-. For example: "2023-04-04T08:00:00\$108:00"). 

  Only one of `StartingTimestamp` or `StartingOffsets` must be set.

## RedshiftSource structure
<a name="aws-glue-api-visual-job-api-RedshiftSource"></a>

Specifies an Amazon Redshift data store.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Amazon Redshift data store.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The database table to read from.
+ `RedshiftTmpDir` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The Amazon S3 path where temporary data can be staged when copying out of the database.
+ `TmpDirIAMRole` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The IAM role with permissions.

## AmazonRedshiftSource structure
<a name="aws-glue-api-visual-job-api-AmazonRedshiftSource"></a>

Specifies an Amazon Redshift source.

**Fields**
+ `Name` – UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Amazon Redshift source.
+ `Data` – An [AmazonRedshiftNodeData](#aws-glue-api-visual-job-api-AmazonRedshiftNodeData) object.

  Specifies the data of the Amazon Reshift source node.

## AmazonRedshiftNodeData structure
<a name="aws-glue-api-visual-job-api-AmazonRedshiftNodeData"></a>

Specifies an Amazon Redshift node.

**Fields**
+ `AccessType` – UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  The access type for the Redshift connection. Can be a direct connection or catalog connections.
+ `SourceType` – UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  The source type to specify whether a specific table is the source or a custom query.
+ `Connection` – An [Option](#aws-glue-api-visual-job-api-Option) object.

  The AWS Glue connection to the Redshift cluster.
+ `Schema` – An [Option](#aws-glue-api-visual-job-api-Option) object.

  The Redshift schema name when working with a direct connection.
+ `Table` – An [Option](#aws-glue-api-visual-job-api-Option) object.

  The Redshift table name when working with a direct connection.
+ `CatalogDatabase` – An [Option](#aws-glue-api-visual-job-api-Option) object.

  The name of the AWS Glue Data Catalog database when working with a data catalog.
+ `CatalogTable` – An [Option](#aws-glue-api-visual-job-api-Option) object.

  The AWS Glue Data Catalog table name when working with a data catalog.
+ `CatalogRedshiftSchema` – UTF-8 string.

  The Redshift schema name when working with a data catalog.
+ `CatalogRedshiftTable` – UTF-8 string.

  The database table to read from.
+ `TempDir` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The Amazon S3 path where temporary data can be staged when copying out of the database.
+ `IamRole` – An [Option](#aws-glue-api-visual-job-api-Option) object.

  Optional. The role name use when connection to S3. The IAM role ill default to the role on the job when left blank.
+ `AdvancedOptions` – An array of [AmazonRedshiftAdvancedOption](#aws-glue-api-visual-job-api-AmazonRedshiftAdvancedOption) objects.

  Optional values when connecting to the Redshift cluster.
+ `SampleQuery` – UTF-8 string.

  The SQL used to fetch the data from a Redshift sources when the SourceType is 'query'.
+ `PreAction` – UTF-8 string.

  The SQL used before a MERGE or APPEND with upsert is run.
+ `PostAction` – UTF-8 string.

  The SQL used before a MERGE or APPEND with upsert is run.
+ `Action` – UTF-8 string.

  Specifies how writing to a Redshift cluser will occur.
+ `TablePrefix` – UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  Specifies the prefix to a table.
+ `Upsert` – Boolean.

  The action used on Redshift sinks when doing an APPEND.
+ `MergeAction` – UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  The action used when to detemine how a MERGE in a Redshift sink will be handled.
+ `MergeWhenMatched` – UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  The action used when to detemine how a MERGE in a Redshift sink will be handled when an existing record matches a new record.
+ `MergeWhenNotMatched` – UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  The action used when to detemine how a MERGE in a Redshift sink will be handled when an existing record doesn't match a new record.
+ `MergeClause` – UTF-8 string.

  The SQL used in a custom merge to deal with matching records.
+ `CrawlerConnection` – UTF-8 string.

  Specifies the name of the connection that is associated with the catalog table used.
+ `TableSchema` – An array of [Option](#aws-glue-api-visual-job-api-Option) objects.

  The array of schema output for a given node.
+ `StagingTable` – UTF-8 string.

  The name of the temporary staging table that is used when doing a MERGE or APPEND with upsert.
+ `SelectedColumns` – An array of [Option](#aws-glue-api-visual-job-api-Option) objects.

  The list of column names used to determine a matching record when doing a MERGE or APPEND with upsert.

## AmazonRedshiftAdvancedOption structure
<a name="aws-glue-api-visual-job-api-AmazonRedshiftAdvancedOption"></a>

Specifies an optional value when connecting to the Redshift cluster.

**Fields**
+ `Key` – UTF-8 string.

  The key for the additional connection option.
+ `Value` – UTF-8 string.

  The value for the additional connection option.

## Option structure
<a name="aws-glue-api-visual-job-api-Option"></a>

Specifies an option value.

**Fields**
+ `Value` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the value of the option.
+ `Label` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the label of the option.
+ `Description` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the description of the option.

## S3CatalogSource structure
<a name="aws-glue-api-visual-job-api-S3CatalogSource"></a>

Specifies an Amazon S3 data store in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data store.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The database table to read from.
+ `PartitionPredicate` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Partitions satisfying this predicate are deleted. Files within the retention period in these partitions are not deleted. Set to `""` – empty by default.
+ `AdditionalOptions` – A [S3SourceAdditionalOptions](#aws-glue-api-visual-job-api-S3SourceAdditionalOptions) object.

  Specifies additional connection options.

## S3SourceAdditionalOptions structure
<a name="aws-glue-api-visual-job-api-S3SourceAdditionalOptions"></a>

Specifies additional connection options for the Amazon S3 data store.

**Fields**
+ `BoundedSize` – Number (long).

  Sets the upper limit for the target size of the dataset in bytes that will be processed.
+ `BoundedFiles` – Number (long).

  Sets the upper limit for the target number of files that will be processed.

## S3CsvSource structure
<a name="aws-glue-api-visual-job-api-S3CsvSource"></a>

Specifies a command-separated value (CSV) data store stored in Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data store.
+ `Paths` – *Required:* An array of UTF-8 strings.

  A list of the Amazon S3 paths to read from.
+ `CompressionType` – UTF-8 string (valid values: `gzip="GZIP"` \$1 `bzip2="BZIP2"`).

  Specifies how the data is compressed. This is generally not necessary if the data has a standard file extension. Possible values are `"gzip"` and `"bzip"`).
+ `Exclusions` – An array of UTF-8 strings.

  A string containing a JSON list of Unix-style glob patterns to exclude. For example, "[\$1"\$1\$1.pdf\$1"]" excludes all PDF files. 
+ `GroupSize` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The target group size in bytes. The default is computed based on the input data size and the size of your cluster. When there are fewer than 50,000 input files, `"groupFiles"` must be set to `"inPartition"` for this to take effect.
+ `GroupFiles` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Grouping files is turned on by default when the input contains more than 50,000 files. To turn on grouping with fewer than 50,000 files, set this parameter to "inPartition". To disable grouping when there are more than 50,000 files, set this parameter to `"none"`.
+ `Recurse` – Boolean.

  If set to true, recursively reads files in all subdirectories under the specified paths.
+ `MaxBand` – Number (integer), not more than None.

  This option controls the duration in milliseconds after which the s3 listing is likely to be consistent. Files with modification timestamps falling within the last maxBand milliseconds are tracked specially when using JobBookmarks to account for Amazon S3 eventual consistency. Most users don't need to set this option. The default is 900000 milliseconds, or 15 minutes.
+ `MaxFilesInBand` – Number (integer), not more than None.

  This option specifies the maximum number of files to save from the last maxBand seconds. If this number is exceeded, extra files are skipped and only processed in the next job run.
+ `AdditionalOptions` – A [S3DirectSourceAdditionalOptions](#aws-glue-api-visual-job-api-S3DirectSourceAdditionalOptions) object.

  Specifies additional connection options.
+ `Separator` – *Required:* UTF-8 string (valid values: `comma="COMMA"` \$1 `ctrla="CTRLA"` \$1 `pipe="PIPE"` \$1 `semicolon="SEMICOLON"` \$1 `tab="TAB"`).

  Specifies the delimiter character. The default is a comma: ",", but any other character can be specified.
+ `Escaper` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies a character to use for escaping. This option is used only when reading CSV files. The default value is `none`. If enabled, the character which immediately follows is used as-is, except for a small set of well-known escapes (`\n`, `\r`, `\t`, and `\0`).
+ `QuoteChar` – *Required:* UTF-8 string (valid values: `quote="QUOTE"` \$1 `quillemet="QUILLEMET"` \$1 `single_quote="SINGLE_QUOTE"` \$1 `disabled="DISABLED"`).

  Specifies the character to use for quoting. The default is a double quote: `'"'`. Set this to `-1` to turn off quoting entirely.
+ `Multiline` – Boolean.

  A Boolean value that specifies whether a single record can span multiple lines. This can occur when a field contains a quoted new-line character. You must set this option to True if any record spans multiple lines. The default value is `False`, which allows for more aggressive file-splitting during parsing.
+ `WithHeader` – Boolean.

  A Boolean value that specifies whether to treat the first line as a header. The default value is `False`.
+ `WriteHeader` – Boolean.

  A Boolean value that specifies whether to write the header to output. The default value is `True`. 
+ `SkipFirst` – Boolean.

  A Boolean value that specifies whether to skip the first data line. The default value is `False`.
+ `OptimizePerformance` – Boolean.

  A Boolean value that specifies whether to use the advanced SIMD CSV reader along with Apache Arrow based columnar memory formats. Only available in AWS Glue version 3.0.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the S3 CSV source.

## DirectJDBCSource structure
<a name="aws-glue-api-visual-job-api-DirectJDBCSource"></a>

Specifies the direct JDBC source connection.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the JDBC source connection.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The database of the JDBC source connection.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The table of the JDBC source connection.
+ `ConnectionName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The connection name of the JDBC source.
+ `ConnectionType` – *Required:* UTF-8 string (valid values: `sqlserver` \$1 `mysql` \$1 `oracle` \$1 `postgresql` \$1 `redshift`).

  The connection type of the JDBC source.
+ `RedshiftTmpDir` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The temp directory of the JDBC Redshift source.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the direct JDBC source.

## S3DirectSourceAdditionalOptions structure
<a name="aws-glue-api-visual-job-api-S3DirectSourceAdditionalOptions"></a>

Specifies additional connection options for the Amazon S3 data store.

**Fields**
+ `BoundedSize` – Number (long).

  Sets the upper limit for the target size of the dataset in bytes that will be processed.
+ `BoundedFiles` – Number (long).

  Sets the upper limit for the target number of files that will be processed.
+ `EnableSamplePath` – Boolean.

  Sets option to enable a sample path.
+ `SamplePath` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  If enabled, specifies the sample path.

## S3JsonSource structure
<a name="aws-glue-api-visual-job-api-S3JsonSource"></a>

Specifies a JSON data store stored in Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data store.
+ `Paths` – *Required:* An array of UTF-8 strings.

  A list of the Amazon S3 paths to read from.
+ `CompressionType` – UTF-8 string (valid values: `gzip="GZIP"` \$1 `bzip2="BZIP2"`).

  Specifies how the data is compressed. This is generally not necessary if the data has a standard file extension. Possible values are `"gzip"` and `"bzip"`).
+ `Exclusions` – An array of UTF-8 strings.

  A string containing a JSON list of Unix-style glob patterns to exclude. For example, "[\$1"\$1\$1.pdf\$1"]" excludes all PDF files. 
+ `GroupSize` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The target group size in bytes. The default is computed based on the input data size and the size of your cluster. When there are fewer than 50,000 input files, `"groupFiles"` must be set to `"inPartition"` for this to take effect.
+ `GroupFiles` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Grouping files is turned on by default when the input contains more than 50,000 files. To turn on grouping with fewer than 50,000 files, set this parameter to "inPartition". To disable grouping when there are more than 50,000 files, set this parameter to `"none"`.
+ `Recurse` – Boolean.

  If set to true, recursively reads files in all subdirectories under the specified paths.
+ `MaxBand` – Number (integer), not more than None.

  This option controls the duration in milliseconds after which the s3 listing is likely to be consistent. Files with modification timestamps falling within the last maxBand milliseconds are tracked specially when using JobBookmarks to account for Amazon S3 eventual consistency. Most users don't need to set this option. The default is 900000 milliseconds, or 15 minutes.
+ `MaxFilesInBand` – Number (integer), not more than None.

  This option specifies the maximum number of files to save from the last maxBand seconds. If this number is exceeded, extra files are skipped and only processed in the next job run.
+ `AdditionalOptions` – A [S3DirectSourceAdditionalOptions](#aws-glue-api-visual-job-api-S3DirectSourceAdditionalOptions) object.

  Specifies additional connection options.
+ `JsonPath` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  A JsonPath string defining the JSON data.
+ `Multiline` – Boolean.

  A Boolean value that specifies whether a single record can span multiple lines. This can occur when a field contains a quoted new-line character. You must set this option to True if any record spans multiple lines. The default value is `False`, which allows for more aggressive file-splitting during parsing.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the S3 JSON source.

## S3ParquetSource structure
<a name="aws-glue-api-visual-job-api-S3ParquetSource"></a>

Specifies an Apache Parquet data store stored in Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data store.
+ `Paths` – *Required:* An array of UTF-8 strings.

  A list of the Amazon S3 paths to read from.
+ `CompressionType` – UTF-8 string (valid values: `snappy="SNAPPY"` \$1 `lzo="LZO"` \$1 `gzip="GZIP"` \$1 `brotli="BROTLI"` \$1 `lz4="LZ4"` \$1 `uncompressed="UNCOMPRESSED"` \$1 `none="NONE"`).

  Specifies how the data is compressed. This is generally not necessary if the data has a standard file extension. Possible values are `"gzip"` and `"bzip"`).
+ `Exclusions` – An array of UTF-8 strings.

  A string containing a JSON list of Unix-style glob patterns to exclude. For example, "[\$1"\$1\$1.pdf\$1"]" excludes all PDF files. 
+ `GroupSize` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The target group size in bytes. The default is computed based on the input data size and the size of your cluster. When there are fewer than 50,000 input files, `"groupFiles"` must be set to `"inPartition"` for this to take effect.
+ `GroupFiles` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Grouping files is turned on by default when the input contains more than 50,000 files. To turn on grouping with fewer than 50,000 files, set this parameter to "inPartition". To disable grouping when there are more than 50,000 files, set this parameter to `"none"`.
+ `Recurse` – Boolean.

  If set to true, recursively reads files in all subdirectories under the specified paths.
+ `MaxBand` – Number (integer), not more than None.

  This option controls the duration in milliseconds after which the s3 listing is likely to be consistent. Files with modification timestamps falling within the last maxBand milliseconds are tracked specially when using JobBookmarks to account for Amazon S3 eventual consistency. Most users don't need to set this option. The default is 900000 milliseconds, or 15 minutes.
+ `MaxFilesInBand` – Number (integer), not more than None.

  This option specifies the maximum number of files to save from the last maxBand seconds. If this number is exceeded, extra files are skipped and only processed in the next job run.
+ `AdditionalOptions` – A [S3DirectSourceAdditionalOptions](#aws-glue-api-visual-job-api-S3DirectSourceAdditionalOptions) object.

  Specifies additional connection options.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the S3 Parquet source.

## S3DeltaSource structure
<a name="aws-glue-api-visual-job-api-S3DeltaSource"></a>

Specifies a Delta Lake data source stored in Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Delta Lake source.
+ `Paths` – *Required:* An array of UTF-8 strings.

  A list of the Amazon S3 paths to read from.
+ `AdditionalDeltaOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options.
+ `AdditionalOptions` – A [S3DirectSourceAdditionalOptions](#aws-glue-api-visual-job-api-S3DirectSourceAdditionalOptions) object.

  Specifies additional options for the connector.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the Delta Lake source.

## S3CatalogDeltaSource structure
<a name="aws-glue-api-visual-job-api-S3CatalogDeltaSource"></a>

Specifies a Delta Lake data source that is registered in the AWS Glue Data Catalog. The data source must be stored in Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Delta Lake data source.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.
+ `AdditionalDeltaOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the Delta Lake source.

## CatalogDeltaSource structure
<a name="aws-glue-api-visual-job-api-CatalogDeltaSource"></a>

Specifies a Delta Lake data source that is registered in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Delta Lake data source.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.
+ `AdditionalDeltaOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the Delta Lake source.

## S3HudiSource structure
<a name="aws-glue-api-visual-job-api-S3HudiSource"></a>

Specifies a Hudi data source stored in Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Hudi source.
+ `Paths` – *Required:* An array of UTF-8 strings.

  A list of the Amazon S3 paths to read from.
+ `AdditionalHudiOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options.
+ `AdditionalOptions` – A [S3DirectSourceAdditionalOptions](#aws-glue-api-visual-job-api-S3DirectSourceAdditionalOptions) object.

  Specifies additional options for the connector.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the Hudi source.

## S3CatalogHudiSource structure
<a name="aws-glue-api-visual-job-api-S3CatalogHudiSource"></a>

Specifies a Hudi data source that is registered in the AWS Glue Data Catalog. The Hudi data source must be stored in Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Hudi data source.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.
+ `AdditionalHudiOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the Hudi source.

## S3ExcelSource structure
<a name="aws-glue-api-visual-job-api-S3ExcelSource"></a>

Specifies an S3 Excel data source.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the S3 Excel data source.
+ `Paths` – *Required:* An array of UTF-8 strings.

  The S3 paths where the Excel files are located.
+ `CompressionType` – UTF-8 string (valid values: `snappy="SNAPPY"` \$1 `lzo="LZO"` \$1 `gzip="GZIP"` \$1 `brotli="BROTLI"` \$1 `lz4="LZ4"` \$1 `uncompressed="UNCOMPRESSED"` \$1 `none="NONE"`).

  The compression format used for the Excel files.
+ `Exclusions` – An array of UTF-8 strings.

  Patterns to exclude specific files or paths from processing.
+ `GroupSize` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Defines the size of file groups for batch processing.
+ `GroupFiles` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies how files should be grouped for processing.
+ `Recurse` – Boolean.

  Indicates whether to recursively process subdirectories.
+ `MaxBand` – Number (integer), not more than None.

  The maximum number of processing bands to use.
+ `MaxFilesInBand` – Number (integer), not more than None.

  The maximum number of files to process in each band.
+ `AdditionalOptions` – A [S3DirectSourceAdditionalOptions](#aws-glue-api-visual-job-api-S3DirectSourceAdditionalOptions) object.

  Additional configuration options for S3 direct source processing.
+ `NumberRows` – Number (long).

  The number of rows to process from each Excel file.
+ `SkipFooter` – Number (integer), not more than None.

  The number of rows to skip at the end of each Excel file.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  The AWS Glue schemas to apply to the processed data.

## CatalogHudiSource structure
<a name="aws-glue-api-visual-job-api-CatalogHudiSource"></a>

Specifies a Hudi data source that is registered in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Hudi data source.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.
+ `AdditionalHudiOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the Hudi source.

## DynamoDBCatalogSource structure
<a name="aws-glue-api-visual-job-api-DynamoDBCatalogSource"></a>

Specifies a DynamoDB data source in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data source.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.
+ `PitrEnabled` – Boolean.

  Specifies whether Point-in-Time Recovery (PITR) is enabled for the DynamoDB table. When set to `true`, allows reading from a specific point in time. The default value is `false`.
+ `AdditionalOptions` – A [DDBELTCatalogAdditionalOptions](#aws-glue-api-visual-job-api-DDBELTCatalogAdditionalOptions) object.

  Specifies additional connection options for the DynamoDB data source.

## RelationalCatalogSource structure
<a name="aws-glue-api-visual-job-api-RelationalCatalogSource"></a>

Specifies a Relational database data source in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data source.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.

## JDBCConnectorTarget structure
<a name="aws-glue-api-visual-job-api-JDBCConnectorTarget"></a>

Specifies a data target that writes to Amazon S3 in Apache Parquet columnar storage.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `ConnectionName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the connection that is associated with the connector.
+ `ConnectionTable` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the data target.
+ `ConnectorName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of a connector that will be used.
+ `ConnectionType` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The type of connection, such as marketplace.jdbc or custom.jdbc, designating a connection to a JDBC data target.
+ `AdditionalOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Additional connection options for the connector.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the JDBC target.

## SparkConnectorTarget structure
<a name="aws-glue-api-visual-job-api-SparkConnectorTarget"></a>

Specifies a target that uses an Apache Spark connector.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `ConnectionName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of a connection for an Apache Spark connector.
+ `ConnectorName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of an Apache Spark connector.
+ `ConnectionType` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The type of connection, such as marketplace.spark or custom.spark, designating a connection to an Apache Spark data store.
+ `AdditionalOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Additional connection options for the connector.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the custom spark target.

## BasicCatalogTarget structure
<a name="aws-glue-api-visual-job-api-BasicCatalogTarget"></a>

Specifies a target that uses a AWS Glue Data Catalog table.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of your data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `PartitionKeys` – An array of UTF-8 strings.

  The partition keys used to distribute data across multiple partitions or shards based on a specific key or set of key.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The database that contains the table you want to use as the target. This database must already exist in the Data Catalog.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The table that defines the schema of your output data. This table must already exist in the Data Catalog.

## MySQLCatalogTarget structure
<a name="aws-glue-api-visual-job-api-MySQLCatalogTarget"></a>

Specifies a target that uses MySQL.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to write to.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to write to.

## PostgreSQLCatalogTarget structure
<a name="aws-glue-api-visual-job-api-PostgreSQLCatalogTarget"></a>

Specifies a target that uses Postgres SQL.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to write to.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to write to.

## OracleSQLCatalogTarget structure
<a name="aws-glue-api-visual-job-api-OracleSQLCatalogTarget"></a>

Specifies a target that uses Oracle SQL.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to write to.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to write to.

## MicrosoftSQLServerCatalogTarget structure
<a name="aws-glue-api-visual-job-api-MicrosoftSQLServerCatalogTarget"></a>

Specifies a target that uses Microsoft SQL.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to write to.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to write to.

## RedshiftTarget structure
<a name="aws-glue-api-visual-job-api-RedshiftTarget"></a>

Specifies a target that uses Amazon Redshift.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to write to.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to write to.
+ `RedshiftTmpDir` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The Amazon S3 path where temporary data can be staged when copying out of the database.
+ `TmpDirIAMRole` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The IAM role with permissions.
+ `UpsertRedshiftOptions` – An [UpsertRedshiftTargetOptions](#aws-glue-api-visual-job-api-UpsertRedshiftTargetOptions) object.

  The set of options to configure an upsert operation when writing to a Redshift target.

## AmazonRedshiftTarget structure
<a name="aws-glue-api-visual-job-api-AmazonRedshiftTarget"></a>

Specifies an Amazon Redshift target.

**Fields**
+ `Name` – UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Amazon Redshift target.
+ `Data` – An [AmazonRedshiftNodeData](#aws-glue-api-visual-job-api-AmazonRedshiftNodeData) object.

  Specifies the data of the Amazon Redshift target node.
+ `Inputs` – An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.

## UpsertRedshiftTargetOptions structure
<a name="aws-glue-api-visual-job-api-UpsertRedshiftTargetOptions"></a>

The options to configure an upsert operation when writing to a Redshift target .

**Fields**
+ `TableLocation` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The physical location of the Redshift table.
+ `ConnectionName` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the connection to use to write to Redshift.
+ `UpsertKeys` – An array of UTF-8 strings.

  The keys used to determine whether to perform an update or insert.

## S3CatalogTarget structure
<a name="aws-glue-api-visual-job-api-S3CatalogTarget"></a>

Specifies a data target that writes to Amazon S3 using the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `PartitionKeys` – An array of UTF-8 strings.

  Specifies native partitioning using a sequence of keys.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to write to.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to write to.
+ `SchemaChangePolicy` – A [CatalogSchemaChangePolicy](#aws-glue-api-visual-job-api-CatalogSchemaChangePolicy) object.

  A policy that specifies update behavior for the crawler.
+ `AutoDataQuality` – An [AutoDataQuality](#aws-glue-api-visual-job-api-AutoDataQuality) object.

  Specifies whether to automatically enable data quality evaluation for the S3 catalog target. When set to `true`, data quality checks are performed automatically during the write operation.

## S3GlueParquetTarget structure
<a name="aws-glue-api-visual-job-api-S3GlueParquetTarget"></a>

Specifies a data target that writes to Amazon S3 in Apache Parquet columnar storage.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `PartitionKeys` – An array of UTF-8 strings.

  Specifies native partitioning using a sequence of keys.
+ `Path` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  A single Amazon S3 path to write to.
+ `Compression` – UTF-8 string (valid values: `snappy="SNAPPY"` \$1 `lzo="LZO"` \$1 `gzip="GZIP"` \$1 `brotli="BROTLI"` \$1 `lz4="LZ4"` \$1 `uncompressed="UNCOMPRESSED"` \$1 `none="NONE"`).

  Specifies how the data is compressed. This is generally not necessary if the data has a standard file extension. Possible values are `"gzip"` and `"bzip"`).
+ `NumberTargetPartitions` – UTF-8 string.

  Specifies the number of target partitions for Parquet files when writing to Amazon S3 using AWS Glue.
+ `SchemaChangePolicy` – A [DirectSchemaChangePolicy](#aws-glue-api-visual-job-api-DirectSchemaChangePolicy) object.

  A policy that specifies update behavior for the crawler.
+ `AutoDataQuality` – An [AutoDataQuality](#aws-glue-api-visual-job-api-AutoDataQuality) object.

  Specifies whether to automatically enable data quality evaluation for the S3 AWS Glue Parquet target. When set to `true`, data quality checks are performed automatically during the write operation.

## CatalogSchemaChangePolicy structure
<a name="aws-glue-api-visual-job-api-CatalogSchemaChangePolicy"></a>

A policy that specifies update behavior for the crawler.

**Fields**
+ `EnableUpdateCatalog` – Boolean.

  Whether to use the specified update behavior when the crawler finds a changed schema.
+ `UpdateBehavior` – UTF-8 string (valid values: `UPDATE_IN_DATABASE` \$1 `LOG`).

  The update behavior when the crawler finds a changed schema.

## S3DirectTarget structure
<a name="aws-glue-api-visual-job-api-S3DirectTarget"></a>

Specifies a data target that writes to Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `PartitionKeys` – An array of UTF-8 strings.

  Specifies native partitioning using a sequence of keys.
+ `Path` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  A single Amazon S3 path to write to.
+ `Compression` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies how the data is compressed. This is generally not necessary if the data has a standard file extension. Possible values are `"gzip"` and `"bzip"`).
+ `NumberTargetPartitions` – UTF-8 string.

  Specifies the number of target partitions when writing data directly to Amazon S3.
+ `Format` – *Required:* UTF-8 string (valid values: `json="JSON"` \$1 `csv="CSV"` \$1 `avro="AVRO"` \$1 `orc="ORC"` \$1 `parquet="PARQUET"` \$1 `hudi="HUDI"` \$1 `delta="DELTA"` \$1 `iceberg="ICEBERG"` \$1 `hyper="HYPER"` \$1 `xml="XML"`).

  Specifies the data output format for the target.
+ `SchemaChangePolicy` – A [DirectSchemaChangePolicy](#aws-glue-api-visual-job-api-DirectSchemaChangePolicy) object.

  A policy that specifies update behavior for the crawler.
+ `AutoDataQuality` – An [AutoDataQuality](#aws-glue-api-visual-job-api-AutoDataQuality) object.

  Specifies whether to automatically enable data quality evaluation for the S3 direct target. When set to `true`, data quality checks are performed automatically during the write operation.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the S3 direct target.

## S3HudiCatalogTarget structure
<a name="aws-glue-api-visual-job-api-S3HudiCatalogTarget"></a>

Specifies a target that writes to a Hudi data source in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `PartitionKeys` – An array of UTF-8 strings.

  Specifies native partitioning using a sequence of keys.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to write to.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to write to.
+ `AdditionalOptions` – *Required:* A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options for the connector.
+ `SchemaChangePolicy` – A [CatalogSchemaChangePolicy](#aws-glue-api-visual-job-api-CatalogSchemaChangePolicy) object.

  A policy that specifies update behavior for the crawler.
+ `AutoDataQuality` – An [AutoDataQuality](#aws-glue-api-visual-job-api-AutoDataQuality) object.

  Specifies whether to automatically enable data quality evaluation for the S3 Hudi catalog target. When set to `true`, data quality checks are performed automatically during the write operation.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the S3 Hudi catalog target.

## S3HudiDirectTarget structure
<a name="aws-glue-api-visual-job-api-S3HudiDirectTarget"></a>

Specifies a target that writes to a Hudi data source in Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `Path` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The Amazon S3 path of your Hudi data source to write to.
+ `Compression` – *Required:* UTF-8 string (valid values: `gzip="GZIP"` \$1 `lzo="LZO"` \$1 `uncompressed="UNCOMPRESSED"` \$1 `snappy="SNAPPY"`).

  Specifies how the data is compressed. This is generally not necessary if the data has a standard file extension. Possible values are `"gzip"` and `"bzip"`).
+ `NumberTargetPartitions` – UTF-8 string.

  Specifies the number of target partitions for distributing Hudi dataset files across Amazon S3.
+ `PartitionKeys` – An array of UTF-8 strings.

  Specifies native partitioning using a sequence of keys.
+ `Format` – *Required:* UTF-8 string (valid values: `json="JSON"` \$1 `csv="CSV"` \$1 `avro="AVRO"` \$1 `orc="ORC"` \$1 `parquet="PARQUET"` \$1 `hudi="HUDI"` \$1 `delta="DELTA"` \$1 `iceberg="ICEBERG"` \$1 `hyper="HYPER"` \$1 `xml="XML"`).

  Specifies the data output format for the target.
+ `AdditionalOptions` – *Required:* A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options for the connector.
+ `SchemaChangePolicy` – A [DirectSchemaChangePolicy](#aws-glue-api-visual-job-api-DirectSchemaChangePolicy) object.

  A policy that specifies update behavior for the crawler.
+ `AutoDataQuality` – An [AutoDataQuality](#aws-glue-api-visual-job-api-AutoDataQuality) object.

  Specifies whether to automatically enable data quality evaluation for the S3 Hudi direct target. When set to `true`, data quality checks are performed automatically during the write operation.

## S3DeltaCatalogTarget structure
<a name="aws-glue-api-visual-job-api-S3DeltaCatalogTarget"></a>

Specifies a target that writes to a Delta Lake data source in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `PartitionKeys` – An array of UTF-8 strings.

  Specifies native partitioning using a sequence of keys.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to write to.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to write to.
+ `AdditionalOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options for the connector.
+ `SchemaChangePolicy` – A [CatalogSchemaChangePolicy](#aws-glue-api-visual-job-api-CatalogSchemaChangePolicy) object.

  A policy that specifies update behavior for the crawler.
+ `AutoDataQuality` – An [AutoDataQuality](#aws-glue-api-visual-job-api-AutoDataQuality) object.

  Specifies whether to automatically enable data quality evaluation for the S3 Delta catalog target. When set to `true`, data quality checks are performed automatically during the write operation.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the S3 Delta catalog target.

## S3DeltaDirectTarget structure
<a name="aws-glue-api-visual-job-api-S3DeltaDirectTarget"></a>

Specifies a target that writes to a Delta Lake data source in Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `PartitionKeys` – An array of UTF-8 strings.

  Specifies native partitioning using a sequence of keys.
+ `Path` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The Amazon S3 path of your Delta Lake data source to write to.
+ `Compression` – *Required:* UTF-8 string (valid values: `uncompressed="UNCOMPRESSED"` \$1 `snappy="SNAPPY"`).

  Specifies how the data is compressed. This is generally not necessary if the data has a standard file extension. Possible values are `"gzip"` and `"bzip"`).
+ `NumberTargetPartitions` – UTF-8 string.

  Specifies the number of target partitions for distributing Delta Lake dataset files across Amazon S3.
+ `Format` – *Required:* UTF-8 string (valid values: `json="JSON"` \$1 `csv="CSV"` \$1 `avro="AVRO"` \$1 `orc="ORC"` \$1 `parquet="PARQUET"` \$1 `hudi="HUDI"` \$1 `delta="DELTA"` \$1 `iceberg="ICEBERG"` \$1 `hyper="HYPER"` \$1 `xml="XML"`).

  Specifies the data output format for the target.
+ `AdditionalOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options for the connector.
+ `SchemaChangePolicy` – A [DirectSchemaChangePolicy](#aws-glue-api-visual-job-api-DirectSchemaChangePolicy) object.

  A policy that specifies update behavior for the crawler.
+ `AutoDataQuality` – An [AutoDataQuality](#aws-glue-api-visual-job-api-AutoDataQuality) object.

  Specifies whether to automatically enable data quality evaluation for the S3 Delta direct target. When set to `true`, data quality checks are performed automatically during the write operation.

## S3HyperDirectTarget structure
<a name="aws-glue-api-visual-job-api-S3HyperDirectTarget"></a>

Specifies a HyperDirect data target that writes to Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The unique identifier for the HyperDirect target node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  Specifies the input source for the HyperDirect target.
+ `Format` – UTF-8 string (valid values: `json="JSON"` \$1 `csv="CSV"` \$1 `avro="AVRO"` \$1 `orc="ORC"` \$1 `parquet="PARQUET"` \$1 `hudi="HUDI"` \$1 `delta="DELTA"` \$1 `iceberg="ICEBERG"` \$1 `hyper="HYPER"` \$1 `xml="XML"`).

  Specifies the data output format for the HyperDirect target.
+ `PartitionKeys` – An array of UTF-8 strings.

  Defines the partitioning strategy for the output data.
+ `Path` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The S3 location where the output data will be written.
+ `Compression` – UTF-8 string (valid values: `uncompressed="UNCOMPRESSED"`).

  The compression type to apply to the output data.
+ `SchemaChangePolicy` – A [DirectSchemaChangePolicy](#aws-glue-api-visual-job-api-DirectSchemaChangePolicy) object.

  Defines how schema changes are handled during write operations.
+ `AutoDataQuality` – An [AutoDataQuality](#aws-glue-api-visual-job-api-AutoDataQuality) object.

  Specifies whether to automatically enable data quality evaluation for the S3 Hyper direct target. When set to `true`, data quality checks are performed automatically during the write operation.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the S3 Hyper direct target.

## S3IcebergDirectTarget structure
<a name="aws-glue-api-visual-job-api-S3IcebergDirectTarget"></a>

Specifies a target that writes to an Iceberg data source in Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  Specifies the unique identifier for the Iceberg target node in your data pipeline.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  Defines the single input source that provides data to this Iceberg target.
+ `PartitionKeys` – An array of UTF-8 strings.

  Specifies the columns used to partition the Iceberg table data in S3.
+ `Path` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Defines the S3 location where the Iceberg table data will be stored.
+ `Format` – *Required:* UTF-8 string (valid values: `json="JSON"` \$1 `csv="CSV"` \$1 `avro="AVRO"` \$1 `orc="ORC"` \$1 `parquet="PARQUET"` \$1 `hudi="HUDI"` \$1 `delta="DELTA"` \$1 `iceberg="ICEBERG"` \$1 `hyper="HYPER"` \$1 `xml="XML"`).

  Specifies the file format used for storing Iceberg table data (e.g., Parquet, ORC).
+ `AdditionalOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Provides additional configuration options for customizing the Iceberg table behavior.
+ `SchemaChangePolicy` – A [DirectSchemaChangePolicy](#aws-glue-api-visual-job-api-DirectSchemaChangePolicy) object.

  Defines how schema changes are handled when writing data to the Iceberg table.
+ `Compression` – *Required:* UTF-8 string (valid values: `gzip="GZIP"` \$1 `lzo="LZO"` \$1 `uncompressed="UNCOMPRESSED"` \$1 `snappy="SNAPPY"`).

  Specifies the compression codec used for Iceberg table files in S3.
+ `NumberTargetPartitions` – UTF-8 string.

  Sets the number of target partitions for distributing Iceberg table files across S3.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the S3 Iceberg direct target.

## DirectSchemaChangePolicy structure
<a name="aws-glue-api-visual-job-api-DirectSchemaChangePolicy"></a>

A policy that specifies update behavior for the crawler.

**Fields**
+ `EnableUpdateCatalog` – Boolean.

  Whether to use the specified update behavior when the crawler finds a changed schema.
+ `UpdateBehavior` – UTF-8 string (valid values: `UPDATE_IN_DATABASE` \$1 `LOG`).

  The update behavior when the crawler finds a changed schema.
+ `Table` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the table in the database that the schema change policy applies to.
+ `Database` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the database that the schema change policy applies to.

## ApplyMapping structure
<a name="aws-glue-api-visual-job-api-ApplyMapping"></a>

Specifies a transform that maps data property keys in the data source to data property keys in the data target. You can rename keys, modify the data types for keys, and choose which keys to drop from the dataset.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The data inputs identified by their node names.
+ `Mapping` – *Required:* An array of [Mapping](#aws-glue-api-visual-job-api-Mapping) objects.

  Specifies the mapping of data property keys in the data source to data property keys in the data target.

## Mapping structure
<a name="aws-glue-api-visual-job-api-Mapping"></a>

Specifies the mapping of data property keys.

**Fields**
+ `ToKey` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  After the apply mapping, what the name of the column should be. Can be the same as `FromPath`.
+ `FromPath` – An array of UTF-8 strings.

  The table or column to be modified.
+ `FromType` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The type of the data to be modified.
+ `ToType` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The data type that the data is to be modified to.
+ `Dropped` – Boolean.

  If true, then the column is removed.
+ `Children` – An array of [Mapping](#aws-glue-api-visual-job-api-Mapping) objects.

  Only applicable to nested data structures. If you want to change the parent structure, but also one of its children, you can fill out this data strucutre. It is also `Mapping`, but its `FromPath` will be the parent's `FromPath` plus the `FromPath` from this structure.

  For the children part, suppose you have the structure:

  `{ "FromPath": "OuterStructure", "ToKey": "OuterStructure", "ToType": "Struct", "Dropped": false, "Chidlren": [{ "FromPath": "inner", "ToKey": "inner", "ToType": "Double", "Dropped": false, }] }`

  You can specify a `Mapping` that looks like:

  `{ "FromPath": "OuterStructure", "ToKey": "OuterStructure", "ToType": "Struct", "Dropped": false, "Chidlren": [{ "FromPath": "inner", "ToKey": "inner", "ToType": "Double", "Dropped": false, }] }`

## SelectFields structure
<a name="aws-glue-api-visual-job-api-SelectFields"></a>

Specifies a transform that chooses the data property keys that you want to keep.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The data inputs identified by their node names.
+ `Paths` – *Required:* An array of UTF-8 strings.

  A JSON path to a variable in the data structure.

## DropFields structure
<a name="aws-glue-api-visual-job-api-DropFields"></a>

Specifies a transform that chooses the data property keys that you want to drop.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The data inputs identified by their node names.
+ `Paths` – *Required:* An array of UTF-8 strings.

  A JSON path to a variable in the data structure.

## RenameField structure
<a name="aws-glue-api-visual-job-api-RenameField"></a>

Specifies a transform that renames a single data property key.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The data inputs identified by their node names.
+ `SourcePath` – *Required:* An array of UTF-8 strings.

  A JSON path to a variable in the data structure for the source data.
+ `TargetPath` – *Required:* An array of UTF-8 strings.

  A JSON path to a variable in the data structure for the target data.

## Spigot structure
<a name="aws-glue-api-visual-job-api-Spigot"></a>

Specifies a transform that writes samples of the data to an Amazon S3 bucket.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The data inputs identified by their node names.
+ `Path` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  A path in Amazon S3 where the transform will write a subset of records from the dataset to a JSON file in an Amazon S3 bucket.
+ `Topk` – Number (integer), not more than 100.

  Specifies a number of records to write starting from the beginning of the dataset.
+ `Prob` – Number (double), not more than 1.

  The probability (a decimal value with a maximum value of 1) of picking any given record. A value of 1 indicates that each row read from the dataset should be included in the sample output.

## Join structure
<a name="aws-glue-api-visual-job-api-Join"></a>

Specifies a transform that joins two datasets into one dataset using a comparison phrase on the specified data property keys. You can use inner, outer, left, right, left semi, and left anti joins.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 2 or more than 2 strings.

  The data inputs identified by their node names.
+ `JoinType` – *Required:* UTF-8 string (valid values: `equijoin="EQUIJOIN"` \$1 `left="LEFT"` \$1 `right="RIGHT"` \$1 `outer="OUTER"` \$1 `leftsemi="LEFT_SEMI"` \$1 `leftanti="LEFT_ANTI"`).

  Specifies the type of join to be performed on the datasets.
+ `Columns` – *Required:* An array of [JoinColumn](#aws-glue-api-visual-job-api-JoinColumn) objects, not less than 2 or more than 2 structures.

  A list of the two columns to be joined.

## JoinColumn structure
<a name="aws-glue-api-visual-job-api-JoinColumn"></a>

Specifies a column to be joined.

**Fields**
+ `From` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The column to be joined.
+ `Keys` – *Required:* An array of UTF-8 strings.

  The key of the column to be joined.

## SplitFields structure
<a name="aws-glue-api-visual-job-api-SplitFields"></a>

Specifies a transform that splits data property keys into two `DynamicFrames`. The output is a collection of `DynamicFrames`: one with selected data property keys, and one with the remaining data property keys.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The data inputs identified by their node names.
+ `Paths` – *Required:* An array of UTF-8 strings.

  A JSON path to a variable in the data structure.

## SelectFromCollection structure
<a name="aws-glue-api-visual-job-api-SelectFromCollection"></a>

Specifies a transform that chooses one `DynamicFrame` from a collection of `DynamicFrames`. The output is the selected `DynamicFrame`

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The data inputs identified by their node names.
+ `Index` – *Required:* Number (integer), not more than None.

  The index for the DynamicFrame to be selected.

## FillMissingValues structure
<a name="aws-glue-api-visual-job-api-FillMissingValues"></a>

Specifies a transform that locates records in the dataset that have missing values and adds a new field with a value determined by imputation. The input data set is used to train the machine learning model that determines what the missing value should be.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The data inputs identified by their node names.
+ `ImputedPath` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  A JSON path to a variable in the data structure for the dataset that is imputed.
+ `FilledPath` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  A JSON path to a variable in the data structure for the dataset that is filled.

## Filter structure
<a name="aws-glue-api-visual-job-api-Filter"></a>

Specifies a transform that splits a dataset into two, based on a filter condition.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The data inputs identified by their node names.
+ `LogicalOperator` – *Required:* UTF-8 string (valid values: `AND` \$1 `OR`).

  The operator used to filter rows by comparing the key value to a specified value.
+ `Filters` – *Required:* An array of [FilterExpression](#aws-glue-api-visual-job-api-FilterExpression) objects.

  Specifies a filter expression.

## FilterExpression structure
<a name="aws-glue-api-visual-job-api-FilterExpression"></a>

Specifies a filter expression.

**Fields**
+ `Operation` – *Required:* UTF-8 string (valid values: `EQ` \$1 `LT` \$1 `GT` \$1 `LTE` \$1 `GTE` \$1 `REGEX` \$1 `ISNULL`).

  The type of operation to perform in the expression.
+ `Negated` – Boolean.

  Whether the expression is to be negated.
+ `Values` – *Required:* An array of [FilterValue](#aws-glue-api-visual-job-api-FilterValue) objects.

  A list of filter values.

## FilterValue structure
<a name="aws-glue-api-visual-job-api-FilterValue"></a>

Represents a single entry in the list of values for a `FilterExpression`. 

**Fields**
+ `Type` – *Required:* UTF-8 string (valid values: `COLUMNEXTRACTED` \$1 `CONSTANT`).

  The type of filter value.
+ `Value` – *Required:* An array of UTF-8 strings.

  The value to be associated.

## CustomCode structure
<a name="aws-glue-api-visual-job-api-CustomCode"></a>

Specifies a transform that uses custom code you provide to perform the data transformation. The output is a collection of DynamicFrames.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, at least 1 string.

  The data inputs identified by their node names.
+ `Code` – *Required:* UTF-8 string, matching the [Custom string pattern #54](aws-glue-api-common.md#regex_54).

  The custom code that is used to perform the data transformation.
+ `ClassName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name defined for the custom code node class.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the custom code transform.

## SparkSQL structure
<a name="aws-glue-api-visual-job-api-SparkSQL"></a>

Specifies a transform where you enter a SQL query using Spark SQL syntax to transform the data. The output is a single `DynamicFrame`.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, at least 1 string.

  The data inputs identified by their node names. You can associate a table name with each input node to use in the SQL query. The name you choose must meet the Spark SQL naming restrictions.
+ `SqlQuery` – *Required:* UTF-8 string, matching the [Custom string pattern #62](aws-glue-api-common.md#regex_62).

  A SQL query that must use Spark SQL syntax and return a single data set.
+ `SqlAliases` – *Required:* An array of [SqlAlias](#aws-glue-api-visual-job-api-SqlAlias) objects.

  A list of aliases. An alias allows you to specify what name to use in the SQL for a given input. For example, you have a datasource named "MyDataSource". If you specify `From` as MyDataSource, and `Alias` as SqlName, then in your SQL you can do:

  `select * from SqlName`

  and that gets data from MyDataSource.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the SparkSQL transform.

## SqlAlias structure
<a name="aws-glue-api-visual-job-api-SqlAlias"></a>

Represents a single entry in the list of values for `SqlAliases`. 

**Fields**
+ `From` – *Required:* UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  A table, or a column in a table.
+ `Alias` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  A temporary name given to a table, or a column in a table.

## DropNullFields structure
<a name="aws-glue-api-visual-job-api-DropNullFields"></a>

Specifies a transform that removes columns from the dataset if all values in the column are 'null'. By default, AWS Glue Studio will recognize null objects, but some values such as empty strings, strings that are "null", -1 integers or other placeholders such as zeros, are not automatically recognized as nulls.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The data inputs identified by their node names.
+ `NullCheckBoxList` – A [NullCheckBoxList](#aws-glue-api-visual-job-api-NullCheckBoxList) object.

  A structure that represents whether certain values are recognized as null values for removal.
+ `NullTextList` – An array of [NullValueField](#aws-glue-api-visual-job-api-NullValueField) objects, not more than 50 structures.

  A structure that specifies a list of NullValueField structures that represent a custom null value such as zero or other value being used as a null placeholder unique to the dataset.

  The `DropNullFields` transform removes custom null values only if both the value of the null placeholder and the datatype match the data.

## NullCheckBoxList structure
<a name="aws-glue-api-visual-job-api-NullCheckBoxList"></a>

Represents whether certain values are recognized as null values for removal.

**Fields**
+ `IsEmpty` – Boolean.

  Specifies that an empty string is considered as a null value.
+ `IsNullString` – Boolean.

  Specifies that a value spelling out the word 'null' is considered as a null value.
+ `IsNegOne` – Boolean.

  Specifies that an integer value of -1 is considered as a null value.

## NullValueField structure
<a name="aws-glue-api-visual-job-api-NullValueField"></a>

Represents a custom null value such as a zeros or other value being used as a null placeholder unique to the dataset.

**Fields**
+ `Value` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The value of the null placeholder.
+ `Datatype` – *Required:* A [Datatype](#aws-glue-api-visual-job-api-Datatype) object.

  The datatype of the value.

## Datatype structure
<a name="aws-glue-api-visual-job-api-Datatype"></a>

A structure representing the datatype of the value.

**Fields**
+ `Id` – *Required:* UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  The datatype of the value.
+ `Label` – *Required:* UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  A label assigned to the datatype.

## Merge structure
<a name="aws-glue-api-visual-job-api-Merge"></a>

Specifies a transform that merges a `DynamicFrame` with a staging `DynamicFrame` based on the specified primary keys to identify records. Duplicate records (records with the same primary keys) are not de-duplicated. 

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 2 or more than 2 strings.

  The data inputs identified by their node names.
+ `Source` – *Required:* UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  The source `DynamicFrame` that will be merged with a staging `DynamicFrame`.
+ `PrimaryKeys` – *Required:* An array of UTF-8 strings.

  The list of primary key fields to match records from the source and staging dynamic frames.

## Union structure
<a name="aws-glue-api-visual-job-api-Union"></a>

Specifies a transform that combines the rows from two or more datasets into a single result.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 2 or more than 2 strings.

  The node ID inputs to the transform.
+ `UnionType` – *Required:* UTF-8 string (valid values: `ALL` \$1 `DISTINCT`).

  Indicates the type of Union transform. 

  Specify `ALL` to join all rows from data sources to the resulting DynamicFrame. The resulting union does not remove duplicate rows.

  Specify `DISTINCT` to remove duplicate rows in the resulting DynamicFrame.

## PIIDetection structure
<a name="aws-glue-api-visual-job-api-PIIDetection"></a>

Specifies a transform that identifies, removes or masks PII data.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The node ID inputs to the transform.
+ `PiiType` – *Required:* UTF-8 string (valid values: `RowAudit` \$1 `RowHashing` \$1 `RowMasking` \$1 `RowPartialMasking` \$1 `ColumnAudit` \$1 `ColumnHashing` \$1 `ColumnMasking`).

  Indicates the type of PIIDetection transform. 
+ `EntityTypesToDetect` – *Required:* An array of UTF-8 strings.

  Indicates the types of entities the PIIDetection transform will identify as PII data. 

   PII type entities include: PERSON\$1NAME, DATE, USA\$1SNN, EMAIL, USA\$1ITIN, USA\$1PASSPORT\$1NUMBER, PHONE\$1NUMBER, BANK\$1ACCOUNT, IP\$1ADDRESS, MAC\$1ADDRESS, USA\$1CPT\$1CODE, USA\$1HCPCS\$1CODE, USA\$1NATIONAL\$1DRUG\$1CODE, USA\$1MEDICARE\$1BENEFICIARY\$1IDENTIFIER, USA\$1HEALTH\$1INSURANCE\$1CLAIM\$1NUMBER,CREDIT\$1CARD,USA\$1NATIONAL\$1PROVIDER\$1IDENTIFIER,USA\$1DEA\$1NUMBER,USA\$1DRIVING\$1LICENSE 
+ `OutputColumnName` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Indicates the output column name that will contain any entity type detected in that row. 
+ `SampleFraction` – Number (double), not more than 1.

  Indicates the fraction of the data to sample when scanning for PII entities. 
+ `ThresholdFraction` – Number (double), not more than 1.

  Indicates the fraction of the data that must be met in order for a column to be identified as PII data. 
+ `MaskValue` – UTF-8 string, not more than 256 bytes long, matching the [Custom string pattern #58](aws-glue-api-common.md#regex_58).

  Indicates the value that will replace the detected entity. 
+ `RedactText` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies whether to redact the detected PII text. When set to `true`, PII content is replaced with redaction characters.
+ `RedactChar` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The character used to replace detected PII content when redaction is enabled. The default redaction character is `*`.
+ `MatchPattern` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  A regular expression pattern used to identify additional PII content beyond the standard detection algorithms.
+ `NumLeftCharsToExclude` – Number (integer), not more than None.

  The number of characters to exclude from redaction on the left side of detected PII content. This allows preserving context around the sensitive data.
+ `NumRightCharsToExclude` – Number (integer), not more than None.

  The number of characters to exclude from redaction on the right side of detected PII content. This allows preserving context around the sensitive data.
+ `DetectionParameters` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Additional parameters for configuring PII detection behavior and sensitivity settings.
+ `DetectionSensitivity` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The sensitivity level for PII detection. Higher sensitivity levels detect more potential PII but may result in more false positives.

## Aggregate structure
<a name="aws-glue-api-visual-job-api-Aggregate"></a>

Specifies a transform that groups rows by chosen fields and computes the aggregated value by specified function.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  Specifies the fields and rows to use as inputs for the aggregate transform.
+ `Groups` – *Required:* An array of UTF-8 strings.

  Specifies the fields to group by.
+ `Aggs` – *Required:* An array of [AggregateOperation](#aws-glue-api-visual-job-api-AggregateOperation) objects, not less than 1 or more than 30 structures.

  Specifies the aggregate functions to be performed on specified fields. 

## DropDuplicates structure
<a name="aws-glue-api-visual-job-api-DropDuplicates"></a>

Specifies a transform that removes rows of repeating data from a data set. 

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the transform node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The data inputs identified by their node names.
+ `Columns` – An array of UTF-8 strings.

  The name of the columns to be merged or removed if repeating.

## GovernedCatalogTarget structure
<a name="aws-glue-api-visual-job-api-GovernedCatalogTarget"></a>

Specifies a data target that writes to Amazon S3 using the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.
+ `PartitionKeys` – An array of UTF-8 strings.

  Specifies native partitioning using a sequence of keys.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to write to.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to write to.
+ `SchemaChangePolicy` – A [CatalogSchemaChangePolicy](#aws-glue-api-visual-job-api-CatalogSchemaChangePolicy) object.

  A policy that specifies update behavior for the governed catalog.

## GovernedCatalogSource structure
<a name="aws-glue-api-visual-job-api-GovernedCatalogSource"></a>

Specifies the data store in the governed AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data store.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The database table to read from.
+ `PartitionPredicate` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Partitions satisfying this predicate are deleted. Files within the retention period in these partitions are not deleted. Set to `""` – empty by default.
+ `AdditionalOptions` – A [S3SourceAdditionalOptions](#aws-glue-api-visual-job-api-S3SourceAdditionalOptions) object.

  Specifies additional connection options.

## AggregateOperation structure
<a name="aws-glue-api-visual-job-api-AggregateOperation"></a>

Specifies the set of parameters needed to perform aggregation in the aggregate transform.

**Fields**
+ `Column` – *Required:* An array of UTF-8 strings.

  Specifies the column on the data set on which the aggregation function will be applied.
+ `AggFunc` – *Required:* UTF-8 string (valid values: `avg` \$1 `countDistinct` \$1 `count` \$1 `first` \$1 `last` \$1 `kurtosis` \$1 `max` \$1 `min` \$1 `skewness` \$1 `stddev_samp` \$1 `stddev_pop` \$1 `sum` \$1 `sumDistinct` \$1 `var_samp` \$1 `var_pop`).

  Specifies the aggregation function to apply.

  Possible aggregation functions include: avg countDistinct, count, first, last, kurtosis, max, min, skewness, stddev\$1samp, stddev\$1pop, sum, sumDistinct, var\$1samp, var\$1pop

## GlueSchema structure
<a name="aws-glue-api-visual-job-api-GlueSchema"></a>

Specifies a user-defined schema when a schema cannot be determined by AWS Glue.

**Fields**
+ `Columns` – An array of [GlueStudioSchemaColumn](#aws-glue-api-visual-job-api-GlueStudioSchemaColumn) objects.

  Specifies the column definitions that make up a AWS Glue schema.

## GlueStudioSchemaColumn structure
<a name="aws-glue-api-visual-job-api-GlueStudioSchemaColumn"></a>

Specifies a single column in a AWS Glue schema definition.

**Fields**
+ `Name` – *Required:* UTF-8 string, not more than 1024 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the column in the AWS Glue Studio schema.
+ `Type` – UTF-8 string, not more than 131072 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The hive type for this column in the AWS Glue Studio schema.
+ `GlueStudioType` – UTF-8 string, not more than 131072 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The data type of the column as defined in AWS Glue Studio.

## GlueStudioColumn structure
<a name="aws-glue-api-visual-job-api-GlueStudioColumn"></a>

Specifies a single column in AWS GlueStudio.

**Fields**
+ `Key` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The key of the column in AWS Glue Studio.
+ `FullPath` – *Required:* An array of UTF-8 strings.

  TThe full URL of the column in AWS Glue Studio.
+ `Type` – *Required:* UTF-8 string (valid values: `array="ARRAY"` \$1 `bigint="BIGINT"` \$1 `bigint array="BIGINT_ARRAY"` \$1 `binary="BINARY"` \$1 `binary array="BINARY_ARRAY"` \$1 `boolean="BOOLEAN"` \$1 `boolean array="BOOLEAN_ARRAY"` \$1 `byte="BYTE"` \$1 `byte array="BYTE_ARRAY"` \$1 `char="CHAR"` \$1 `char array="CHAR_ARRAY"` \$1 `choice="CHOICE"` \$1 `choice array="CHOICE_ARRAY"` \$1 `date="DATE"` \$1 `date array="DATE_ARRAY"` \$1 `decimal="DECIMAL"` \$1 `decimal array="DECIMAL_ARRAY"` \$1 `double="DOUBLE"` \$1 `double array="DOUBLE_ARRAY"` \$1 `enum="ENUM"` \$1 `enum array="ENUM_ARRAY"` \$1 `float="FLOAT"` \$1 `float array="FLOAT_ARRAY"` \$1 `int="INT"` \$1 `int array="INT_ARRAY"` \$1 `interval="INTERVAL"` \$1 `interval array="INTERVAL_ARRAY"` \$1 `long="LONG"` \$1 `long array="LONG_ARRAY"` \$1 `object="OBJECT"` \$1 `short="SHORT"` \$1 `short array="SHORT_ARRAY"` \$1 `smallint="SMALLINT"` \$1 `smallint array="SMALLINT_ARRAY"` \$1 `string="STRING"` \$1 `string array="STRING_ARRAY"` \$1 `timestamp="TIMESTAMP"` \$1 `timestamp array="TIMESTAMP_ARRAY"` \$1 `tinyint="TINYINT"` \$1 `tinyint array="TINYINT_ARRAY"` \$1 `varchar="VARCHAR"` \$1 `varchar array="VARCHAR_ARRAY"` \$1 `null="NULL"` \$1 `unknown="UNKNOWN"` \$1 `unknown array="UNKNOWN_ARRAY"`).

  TThe type of the column in AWS Glue Studio.
+ `Children` – An array of a structures.

  TThe children of the parent column in AWS Glue Studio.
+ `GlueStudioType` – UTF-8 string (valid values: `array="ARRAY"` \$1 `bigint="BIGINT"` \$1 `bigint array="BIGINT_ARRAY"` \$1 `binary="BINARY"` \$1 `binary array="BINARY_ARRAY"` \$1 `boolean="BOOLEAN"` \$1 `boolean array="BOOLEAN_ARRAY"` \$1 `byte="BYTE"` \$1 `byte array="BYTE_ARRAY"` \$1 `char="CHAR"` \$1 `char array="CHAR_ARRAY"` \$1 `choice="CHOICE"` \$1 `choice array="CHOICE_ARRAY"` \$1 `date="DATE"` \$1 `date array="DATE_ARRAY"` \$1 `decimal="DECIMAL"` \$1 `decimal array="DECIMAL_ARRAY"` \$1 `double="DOUBLE"` \$1 `double array="DOUBLE_ARRAY"` \$1 `enum="ENUM"` \$1 `enum array="ENUM_ARRAY"` \$1 `float="FLOAT"` \$1 `float array="FLOAT_ARRAY"` \$1 `int="INT"` \$1 `int array="INT_ARRAY"` \$1 `interval="INTERVAL"` \$1 `interval array="INTERVAL_ARRAY"` \$1 `long="LONG"` \$1 `long array="LONG_ARRAY"` \$1 `object="OBJECT"` \$1 `short="SHORT"` \$1 `short array="SHORT_ARRAY"` \$1 `smallint="SMALLINT"` \$1 `smallint array="SMALLINT_ARRAY"` \$1 `string="STRING"` \$1 `string array="STRING_ARRAY"` \$1 `timestamp="TIMESTAMP"` \$1 `timestamp array="TIMESTAMP_ARRAY"` \$1 `tinyint="TINYINT"` \$1 `tinyint array="TINYINT_ARRAY"` \$1 `varchar="VARCHAR"` \$1 `varchar array="VARCHAR_ARRAY"` \$1 `null="NULL"` \$1 `unknown="UNKNOWN"` \$1 `unknown array="UNKNOWN_ARRAY"`).

  The data type of the column as defined in AWS Glue Studio.

## DynamicTransform structure
<a name="aws-glue-api-visual-job-api-DynamicTransform"></a>

Specifies the set of parameters needed to perform the dynamic transform.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the name of the dynamic transform.
+ `TransformName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the name of the dynamic transform as it appears in the AWS Glue Studio visual editor.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  Specifies the inputs for the dynamic transform that are required.
+ `Parameters` – An array of [TransformConfigParameter](#aws-glue-api-visual-job-api-TransformConfigParameter) objects.

  Specifies the parameters of the dynamic transform.
+ `FunctionName` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the name of the function of the dynamic transform.
+ `Path` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the path of the dynamic transform source and config files.
+ `Version` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  This field is not used and will be deprecated in future release.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the dynamic transform.

## TransformConfigParameter structure
<a name="aws-glue-api-visual-job-api-TransformConfigParameter"></a>

Specifies the parameters in the config file of the dynamic transform.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the name of the parameter in the config file of the dynamic transform.
+ `Type` – *Required:* UTF-8 string (valid values: `str="STR"` \$1 `int="INT"` \$1 `float="FLOAT"` \$1 `complex="COMPLEX"` \$1 `bool="BOOL"` \$1 `list="LIST"` \$1 `null="NULL"`).

  Specifies the parameter type in the config file of the dynamic transform.
+ `ValidationRule` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the validation rule in the config file of the dynamic transform.
+ `ValidationMessage` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the validation message in the config file of the dynamic transform.
+ `Value` – An array of UTF-8 strings.

  Specifies the value of the parameter in the config file of the dynamic transform.
+ `ListType` – UTF-8 string (valid values: `str="STR"` \$1 `int="INT"` \$1 `float="FLOAT"` \$1 `complex="COMPLEX"` \$1 `bool="BOOL"` \$1 `list="LIST"` \$1 `null="NULL"`).

  Specifies the list type of the parameter in the config file of the dynamic transform.
+ `IsOptional` – Boolean.

  Specifies whether the parameter is optional or not in the config file of the dynamic transform.

## EvaluateDataQuality structure
<a name="aws-glue-api-visual-job-api-EvaluateDataQuality"></a>

Specifies your data quality evaluation criteria.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data quality evaluation.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The inputs of your data quality evaluation.
+ `Ruleset` – *Required:* UTF-8 string, not less than 1 or more than 65536 bytes long, matching the [Custom string pattern #59](aws-glue-api-common.md#regex_59).

  The ruleset for your data quality evaluation.
+ `Output` – UTF-8 string (valid values: `PrimaryInput` \$1 `EvaluationResults`).

  The output of your data quality evaluation.
+ `PublishingOptions` – A [DQResultsPublishingOptions](#aws-glue-api-visual-job-api-DQResultsPublishingOptions) object.

  Options to configure how your results are published.
+ `StopJobOnFailureOptions` – A [DQStopJobOnFailureOptions](#aws-glue-api-visual-job-api-DQStopJobOnFailureOptions) object.

  Options to configure how your job will stop if your data quality evaluation fails.

## DQResultsPublishingOptions structure
<a name="aws-glue-api-visual-job-api-DQResultsPublishingOptions"></a>

Options to configure how your data quality evaluation results are published.

**Fields**
+ `EvaluationContext` – UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  The context of the evaluation.
+ `ResultsS3Prefix` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The Amazon S3 prefix prepended to the results.
+ `CloudWatchMetricsEnabled` – Boolean.

  Enable metrics for your data quality results.
+ `ResultsPublishingEnabled` – Boolean.

  Enable publishing for your data quality results.

## DQStopJobOnFailureOptions structure
<a name="aws-glue-api-visual-job-api-DQStopJobOnFailureOptions"></a>

Options to configure how your job will stop if your data quality evaluation fails.

**Fields**
+ `StopJobOnFailureTiming` – UTF-8 string (valid values: `Immediate` \$1 `AfterDataLoad`).

  When to stop job if your data quality evaluation fails. Options are Immediate or AfterDataLoad.

## EvaluateDataQualityMultiFrame structure
<a name="aws-glue-api-visual-job-api-EvaluateDataQualityMultiFrame"></a>

Specifies your data quality evaluation criteria.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the data quality evaluation.
+ `Inputs` – *Required:* An array of UTF-8 strings, at least 1 string.

  The inputs of your data quality evaluation. The first input in this list is the primary data source.
+ `AdditionalDataSources` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The aliases of all data sources except primary.
+ `Ruleset` – *Required:* UTF-8 string, not less than 1 or more than 65536 bytes long, matching the [Custom string pattern #59](aws-glue-api-common.md#regex_59).

  The ruleset for your data quality evaluation.
+ `PublishingOptions` – A [DQResultsPublishingOptions](#aws-glue-api-visual-job-api-DQResultsPublishingOptions) object.

  Options to configure how your results are published.
+ `AdditionalOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string (valid values: `performanceTuning.caching="CacheOption"` \$1 `observations.scope="ObservationsOption"` \$1 `compositeRuleEvaluation.method="CompositeOption"`).

  Each value is a UTF-8 string.

  Options to configure runtime behavior of the transform.
+ `StopJobOnFailureOptions` – A [DQStopJobOnFailureOptions](#aws-glue-api-visual-job-api-DQStopJobOnFailureOptions) object.

  Options to configure how your job will stop if your data quality evaluation fails.

## Recipe structure
<a name="aws-glue-api-visual-job-api-Recipe"></a>

A AWS Glue Studio node that uses a AWS Glue DataBrew recipe in AWS Glue jobs.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the AWS Glue Studio node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the recipe node, identified by id.
+ `RecipeReference` – A [RecipeReference](#aws-glue-api-visual-job-api-RecipeReference) object.

  A reference to the DataBrew recipe used by the node.
+ `RecipeSteps` – An array of [RecipeStep](#aws-glue-api-visual-job-api-RecipeStep) objects.

  Transform steps used in the recipe node.

## RecipeReference structure
<a name="aws-glue-api-visual-job-api-RecipeReference"></a>

A reference to a AWS Glue DataBrew recipe.

**Fields**
+ `RecipeArn` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The ARN of the DataBrew recipe.
+ `RecipeVersion` – *Required:* UTF-8 string, not less than 1 or more than 16 bytes long.

  The RecipeVersion of the DataBrew recipe.

## SnowflakeNodeData structure
<a name="aws-glue-api-visual-job-api-SnowflakeNodeData"></a>

Specifies configuration for Snowflake nodes in AWS Glue Studio.

**Fields**
+ `SourceType` – UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  Specifies how retrieved data is specified. Valid values: `"table"`, ` "query"`.
+ `Connection` – An [Option](#aws-glue-api-visual-job-api-Option) object.

  Specifies a AWS Glue Data Catalog Connection to a Snowflake endpoint.
+ `Schema` – UTF-8 string.

  Specifies a Snowflake database schema for your node to use.
+ `Table` – UTF-8 string.

  Specifies a Snowflake table for your node to use.
+ `Database` – UTF-8 string.

  Specifies a Snowflake database for your node to use.
+ `TempDir` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Not currently used.
+ `IamRole` – An [Option](#aws-glue-api-visual-job-api-Option) object.

  Not currently used.
+ `AdditionalOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional options passed to the Snowflake connector. If options are specified elsewhere in this node, this will take precedence.
+ `SampleQuery` – UTF-8 string.

  A SQL string used to retrieve data with the `query` sourcetype.
+ `PreAction` – UTF-8 string.

  A SQL string run before the Snowflake connector performs its standard actions.
+ `PostAction` – UTF-8 string.

  A SQL string run after the Snowflake connector performs its standard actions.
+ `Action` – UTF-8 string.

  Specifies what action to take when writing to a table with preexisting data. Valid values: ` append`, `merge`, `truncate`, `drop`.
+ `Upsert` – Boolean.

  Used when Action is `append`. Specifies the resolution behavior when a row already exists. If true, preexisting rows will be updated. If false, those rows will be inserted.
+ `MergeAction` – UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  Specifies a merge action. Valid values: `simple`, `custom`. If simple, merge behavior is defined by `MergeWhenMatched` and ` MergeWhenNotMatched`. If custom, defined by `MergeClause`.
+ `MergeWhenMatched` – UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  Specifies how to resolve records that match preexisting data when merging. Valid values: ` update`, `delete`.
+ `MergeWhenNotMatched` – UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  Specifies how to process records that do not match preexisting data when merging. Valid values: `insert`, `none`.
+ `MergeClause` – UTF-8 string.

  A SQL statement that specifies a custom merge behavior.
+ `StagingTable` – UTF-8 string.

  The name of a staging table used when performing `merge` or upsert `append` actions. Data is written to this table, then moved to `table` by a generated postaction.
+ `SelectedColumns` – An array of [Option](#aws-glue-api-visual-job-api-Option) objects.

  Specifies the columns combined to identify a record when detecting matches for merges and upserts. A list of structures with `value`, `label` and ` description` keys. Each structure describes a column.
+ `AutoPushdown` – Boolean.

  Specifies whether automatic query pushdown is enabled. If pushdown is enabled, then when a query is run on Spark, if part of the query can be "pushed down" to the Snowflake server, it is pushed down. This improves performance of some queries.
+ `TableSchema` – An array of [Option](#aws-glue-api-visual-job-api-Option) objects.

  Manually defines the target schema for the node. A list of structures with `value` , `label` and `description` keys. Each structure defines a column.

## SnowflakeSource structure
<a name="aws-glue-api-visual-job-api-SnowflakeSource"></a>

Specifies a Snowflake data source.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Snowflake data source.
+ `Data` – *Required:* A [SnowflakeNodeData](#aws-glue-api-visual-job-api-SnowflakeNodeData) object.

  Configuration for the Snowflake data source.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies user-defined schemas for your output data.

## SnowflakeTarget structure
<a name="aws-glue-api-visual-job-api-SnowflakeTarget"></a>

Specifies a Snowflake target.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Snowflake target.
+ `Data` – *Required:* A [SnowflakeNodeData](#aws-glue-api-visual-job-api-SnowflakeNodeData) object.

  Specifies the data of the Snowflake target node.
+ `Inputs` – An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.

## ConnectorDataSource structure
<a name="aws-glue-api-visual-job-api-ConnectorDataSource"></a>

Specifies a source generated with standard connection options.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of this source node.
+ `ConnectionType` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The `connectionType`, as provided to the underlying AWS Glue library. This node type supports the following connection types: 
  + `opensearch`
  + `azuresql`
  + `azurecosmos`
  + `bigquery`
  + `saphana`
  + `teradata`
  + `vertica`
+ `Data` – *Required:* A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  A map specifying connection options for the node. You can find standard connection options for the corresponding connection type in the [ Connection parameters](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html) section of the AWS Glue documentation.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for this source.

## ConnectorDataTarget structure
<a name="aws-glue-api-visual-job-api-ConnectorDataTarget"></a>

Specifies a target generated with standard connection options.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of this target node.
+ `ConnectionType` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The `connectionType`, as provided to the underlying AWS Glue library. This node type supports the following connection types: 
  + `opensearch`
  + `azuresql`
  + `azurecosmos`
  + `bigquery`
  + `saphana`
  + `teradata`
  + `vertica`
+ `Data` – *Required:* A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  A map specifying connection options for the node. You can find standard connection options for the corresponding connection type in the [ Connection parameters](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html) section of the AWS Glue documentation.
+ `Inputs` – An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The nodes that are inputs to the data target.

## RecipeStep structure
<a name="aws-glue-api-visual-job-api-RecipeStep"></a>

A recipe step used in a AWS Glue Studio data preparation recipe node.

**Fields**
+ `Action` – *Required:* A [RecipeAction](#aws-glue-api-visual-job-api-RecipeAction) object.

  The transformation action of the recipe step.
+ `ConditionExpressions` – An array of [ConditionExpression](#aws-glue-api-visual-job-api-ConditionExpression) objects.

  The condition expressions for the recipe step.

## RecipeAction structure
<a name="aws-glue-api-visual-job-api-RecipeAction"></a>

Actions defined in the AWS Glue Studio data preparation recipe node.

**Fields**
+ `Operation` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #56](aws-glue-api-common.md#regex_56).

  The operation of the recipe action.
+ `Parameters` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #57](aws-glue-api-common.md#regex_57).

  Each value is a UTF-8 string, not less than 1 or more than 32768 bytes long.

  The parameters of the recipe action.

## ConditionExpression structure
<a name="aws-glue-api-visual-job-api-ConditionExpression"></a>

Condition expression defined in the AWS Glue Studio data preparation recipe node.

**Fields**
+ `Condition` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #56](aws-glue-api-common.md#regex_56).

  The condition of the condition expression.
+ `Value` – UTF-8 string, not more than 1024 bytes long.

  The value of the condition expression.
+ `TargetColumn` – *Required:* UTF-8 string, not less than 1 or more than 1024 bytes long.

  The target column of the condition expressions.

## S3CatalogIcebergSource structure
<a name="aws-glue-api-visual-job-api-S3CatalogIcebergSource"></a>

Specifies an Apache Iceberg data source that is registered in the AWS Glue Data Catalog. The Iceberg data source must be stored in Amazon S3.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Iceberg data source.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.
+ `AdditionalIcebergOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options for the Iceberg data source.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the Iceberg source.

## CatalogIcebergSource structure
<a name="aws-glue-api-visual-job-api-CatalogIcebergSource"></a>

Specifies an Apache Iceberg data source that is registered in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Iceberg data source.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to read from.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table in the database to read from.
+ `AdditionalIcebergOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options for the Iceberg data source.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the Iceberg source.

## S3IcebergCatalogTarget structure
<a name="aws-glue-api-visual-job-api-S3IcebergCatalogTarget"></a>

Specifies an Apache Iceberg catalog target that writes data to Amazon S3 and registers the table in the AWS Glue Data Catalog.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the Iceberg catalog target.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The input connection for the Iceberg catalog target.
+ `PartitionKeys` – An array of UTF-8 strings.

  A list of partition keys for the Iceberg table.
+ `Table` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the table to write to in the catalog.
+ `Database` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the database to write to.
+ `AdditionalOptions` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Each value is a UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies additional connection options for the Iceberg catalog target.
+ `SchemaChangePolicy` – A [CatalogSchemaChangePolicy](#aws-glue-api-visual-job-api-CatalogSchemaChangePolicy) object.

  The policy for handling schema changes in the catalog target.
+ `AutoDataQuality` – An [AutoDataQuality](#aws-glue-api-visual-job-api-AutoDataQuality) object.

  Specifies whether to automatically enable data quality evaluation for the S3 Iceberg catalog target. When set to `true`, data quality checks are performed automatically during the write operation.

## DynamoDBELTConnectorSource structure
<a name="aws-glue-api-visual-job-api-DynamoDBELTConnectorSource"></a>

Specifies a DynamoDB ELT connector source for extracting data from DynamoDB tables.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the DynamoDB ELT connector source.
+ `ConnectionOptions` – A [DDBELTConnectionOptions](#aws-glue-api-visual-job-api-DDBELTConnectionOptions) object.

  The connection options for the DynamoDB ELT connector source.
+ `OutputSchemas` – An array of [GlueSchema](#aws-glue-api-visual-job-api-GlueSchema) objects.

  Specifies the data schema for the DynamoDB ELT connector source.

## DDBELTConnectionOptions structure
<a name="aws-glue-api-visual-job-api-DDBELTConnectionOptions"></a>

Specifies connection options for DynamoDB ELT (Extract, Load, Transform) operations. This structure contains configuration parameters for connecting to and extracting data from DynamoDB tables using the ELT connector.

**Fields**
+ `DynamodbExport` – UTF-8 string (valid values: `ddb` \$1 `s3`).

  Specifies the export type for DynamoDB data extraction. This parameter determines how data is exported from the DynamoDB table during the ELT process.
+ `DynamodbUnnestDDBJson` – Boolean.

  A boolean value that specifies whether to unnest DynamoDB JSON format during data extraction. When set to `true`, the connector will flatten nested JSON structures from DynamoDB items. When set to `false`, the original DynamoDB JSON structure is preserved.
+ `DynamodbTableArn` – *Required:* UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The Amazon Resource Name (ARN) of the DynamoDB table to extract data from. This parameter specifies the source table for the ELT operation. 
+ `DynamodbS3Bucket` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The name of the Amazon S3 bucket used for intermediate storage during the DynamoDB ELT process. This bucket is used to temporarily store exported DynamoDB data before it is processed by the ELT job.
+ `DynamodbS3Prefix` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The S3 object key prefix for files stored in the intermediate S3 bucket during the DynamoDB ELT process. This prefix helps organize and identify the temporary files created during data extraction.
+ `DynamodbS3BucketOwner` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The AWS account ID of the owner of the S3 bucket specified in `DynamodbS3Bucket`. This parameter is required when the S3 bucket is owned by a different AWS account than the one running the ELT job, enabling cross-account access to the intermediate storage bucket.
+ `DynamodbStsRoleArn` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The Amazon Resource Name (ARN) of the AWS Security Token Service (STS) role to assume for accessing DynamoDB and S3 resources during the ELT operation. This role must have the necessary permissions to read from the DynamoDB table and write to the intermediate S3 bucket. 

## DDBELTCatalogAdditionalOptions structure
<a name="aws-glue-api-visual-job-api-DDBELTCatalogAdditionalOptions"></a>

Specifies additional options for DynamoDB ELT catalog operations.

**Fields**
+ `DynamodbExport` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  Specifies the DynamoDB export configuration for the ELT operation.
+ `DynamodbUnnestDDBJson` – Boolean.

  Specifies whether to unnest DynamoDB JSON format. When set to `true`, nested JSON structures in DynamoDB items are flattened.

## Route structure
<a name="aws-glue-api-visual-job-api-Route"></a>

Specifies a route node that directs data to different output paths based on defined filtering conditions.

**Fields**
+ `Name` – *Required:* UTF-8 string, matching the [Custom string pattern #63](aws-glue-api-common.md#regex_63).

  The name of the route node.
+ `Inputs` – *Required:* An array of UTF-8 strings, not less than 1 or more than 1 strings.

  The input connection for the route node.
+ `GroupFiltersList` – *Required:* An array of [GroupFilters](#aws-glue-api-visual-job-api-GroupFilters) objects.

  A list of group filters that define the routing conditions and criteria for directing data to different output paths.

## GroupFilters structure
<a name="aws-glue-api-visual-job-api-GroupFilters"></a>

Specifies a group of filters with a logical operator that determines how the filters are combined to evaluate routing conditions.

**Fields**
+ `GroupName` – *Required:* UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  The name of the filter group.
+ `Filters` – *Required:* An array of [FilterExpression](#aws-glue-api-visual-job-api-FilterExpression) objects.

  A list of filter expressions that define the conditions for this group.
+ `LogicalOperator` – *Required:* UTF-8 string (valid values: `AND` \$1 `OR`).

  The logical operator used to combine the filters in this group. Determines whether all filters must match (AND) or any filter can match (OR).

## AutoDataQuality structure
<a name="aws-glue-api-visual-job-api-AutoDataQuality"></a>

Specifies configuration options for automatic data quality evaluation in AWS Glue jobs. This structure enables automated data quality checks and monitoring during ETL operations, helping to ensure data integrity and reliability without manual intervention.

**Fields**
+ `IsEnabled` – Boolean.

  Specifies whether automatic data quality evaluation is enabled. When set to `true`, data quality checks are performed automatically.
+ `EvaluationContext` – UTF-8 string, matching the [Custom string pattern #61](aws-glue-api-common.md#regex_61).

  The evaluation context for the automatic data quality checks. This defines the scope and parameters for the data quality evaluation.

# Jobs API
<a name="aws-glue-api-jobs"></a>

The Jobs API describes jobs data types and contains APIs for working with jobs, job runs, and triggers in AWS Glue.

**Topics**
+ [

# Jobs
](aws-glue-api-jobs-job.md)
+ [

# Job runs
](aws-glue-api-jobs-runs.md)
+ [

# Triggers
](aws-glue-api-jobs-trigger.md)

# Jobs
<a name="aws-glue-api-jobs-job"></a>

The Jobs API describes the data types and API related to creating, updating, deleting, or viewing jobs in AWS Glue.

## Data types
<a name="aws-glue-api-jobs-job-objects"></a>
+ [Job structure](#aws-glue-api-jobs-job-Job)
+ [ExecutionProperty structure](#aws-glue-api-jobs-job-ExecutionProperty)
+ [NotificationProperty structure](#aws-glue-api-jobs-job-NotificationProperty)
+ [JobCommand structure](#aws-glue-api-jobs-job-JobCommand)
+ [ConnectionsList structure](#aws-glue-api-jobs-job-ConnectionsList)
+ [JobUpdate structure](#aws-glue-api-jobs-job-JobUpdate)
+ [SourceControlDetails structure](#aws-glue-api-jobs-job-SourceControlDetails)

## Job structure
<a name="aws-glue-api-jobs-job-Job"></a>

Specifies a job definition.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name you assign to this job definition.
+ `JobMode` – UTF-8 string (valid values: `SCRIPT=""` \$1 `VISUAL=""` \$1 `NOTEBOOK=""`).

  A mode that describes how a job was created. Valid values are:
  + `SCRIPT` - The job was created using the AWS Glue Studio script editor.
  + `VISUAL` - The job was created using the AWS Glue Studio visual editor.
  + `NOTEBOOK` - The job was created using an interactive sessions notebook.

  When the `JobMode` field is missing or null, `SCRIPT` is assigned as the default value.
+ `JobRunQueuingEnabled` – Boolean.

  Specifies whether job run queuing is enabled for the job runs for this job.

  A value of true means job run queuing is enabled for the job runs. If false or not populated, the job runs will not be considered for queueing.

  If this field does not match the value set in the job run, then the value from the job run field will be used.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the job.
+ `LogUri` – UTF-8 string.

  This field is reserved for future use.
+ `Role` – UTF-8 string.

  The name or Amazon Resource Name (ARN) of the IAM role associated with this job.
+ `CreatedOn` – Timestamp.

  The time and date that this job definition was created.
+ `LastModifiedOn` – Timestamp.

  The last point in time when this job definition was modified.
+ `ExecutionProperty` – An [ExecutionProperty](#aws-glue-api-jobs-job-ExecutionProperty) object.

  An `ExecutionProperty` specifying the maximum number of concurrent runs allowed for this job.
+ `Command` – A [JobCommand](#aws-glue-api-jobs-job-JobCommand) object.

  The `JobCommand` that runs this job.
+ `DefaultArguments` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  The default arguments for every run of this job, specified as name-value pairs.

  You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes.

  Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a AWS Glue Connection, AWS Secrets Manager or other secret management mechanism if you intend to keep them within the Job. 

  For information about how to specify and consume your own Job arguments, see the [Calling AWS Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide.

  For information about the arguments you can provide to this field when configuring Spark jobs, see the [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) topic in the developer guide.

  For information about the arguments you can provide to this field when configuring Ray jobs, see [Using job parameters in Ray jobs](https://docs.aws.amazon.com/glue/latest/dg/author-job-ray-job-parameters.html) in the developer guide.
+ `NonOverridableArguments` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  Arguments for this job that are not overridden when providing job arguments in a job run, specified as name-value pairs.
+ `Connections` – A [ConnectionsList](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-ConnectionsList) object.

  The connections used for this job.
+ `MaxRetries` – Number (integer).

  The maximum number of times to retry this job after a JobRun fails.
+ `AllocatedCapacity` – Number (integer).

  This field is deprecated. Use `MaxCapacity` instead.

  The number of AWS Glue data processing units (DPUs) allocated to runs of this job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/).

  
+ `Timeout` – Number (integer), at least 1.

  The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters `TIMEOUT` status.

  Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

  When the value is left blank, the timeout is defaulted to 2880 minutes.

  Any existing AWS Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

  For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.
+ `MaxCapacity` – Number (double).

  For Glue version 1.0 or earlier jobs, using the standard worker type, the number of AWS Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/).

  For Glue version 2.0 or later jobs, you cannot specify a `Maximum capacity`. Instead, you should specify a `Worker type` and the `Number of workers`.

  Do not set `MaxCapacity` if using `WorkerType` and `NumberOfWorkers`.

  The value that can be allocated for `MaxCapacity` depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:
  + When you specify a Python shell job (`JobCommand.Name`="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
  + When you specify an Apache Spark ETL job (`JobCommand.Name`="glueetl") or Apache Spark streaming ETL job (`JobCommand.Name`="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.025X=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `G.12X=""` \$1 `G.16X=""` \$1 `R.1X=""` \$1 `R.2X=""` \$1 `R.4X=""` \$1 `R.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated when a job runs.

  AWS Glue provides multiple worker types to accommodate different workload requirements:

  G Worker Types (General-purpose compute workers):
  + G.025X: 0.25 DPU (2 vCPUs, 4 GB memory, 84GB disk)
  + G.1X: 1 DPU (4 vCPUs, 16 GB memory, 94GB disk)
  + G.2X: 2 DPU (8 vCPUs, 32 GB memory, 138GB disk)
  + G.4X: 4 DPU (16 vCPUs, 64 GB memory, 256GB disk)
  + G.8X: 8 DPU (32 vCPUs, 128 GB memory, 512GB disk)
  + G.12X: 12 DPU (48 vCPUs, 192 GB memory, 768GB disk)
  + G.16X: 16 DPU (64 vCPUs, 256 GB memory, 1024GB disk)

  R Worker Types (Memory-optimized workers):
  + R.1X: 1 DPU (4 vCPUs, 32 GB memory, 94GB disk)
  + R.2X: 2 DPU (8 vCPUs, 64 GB memory, 128GB disk)
  + R.4X: 4 DPU (16 vCPUs, 128 GB memory, 256GB disk)
  + R.8X: 8 DPU (32 vCPUs, 256 GB memory, 512GB disk)
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `workerType` that are allocated when a job runs.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the `SecurityConfiguration` structure to be used with this job.
+ `NotificationProperty` – A [NotificationProperty](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-NotificationProperty) object.

  Specifies configuration properties of a job notification.
+ `Running` – Boolean.

  This field is reserved for future use.
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  In Spark jobs, `GlueVersion` determines the versions of Apache Spark and Python that AWS Glue available in a job. The Python version indicates the version supported for jobs of type Spark. 

  Ray jobs should set `GlueVersion` to `4.0` or greater. However, the versions of Ray, Python and additional libraries available in your Ray job are determined by the `Runtime` parameter of the Job command.

  For more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide.

  Jobs that are created without specifying a Glue version default to Glue 5.1.
+ `CodeGenConfigurationNodes` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  Each value is a A [CodeGenConfigurationNode](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CodeGenConfigurationNode) object.

  The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.
+ `ExecutionClass` – UTF-8 string, not more than 16 bytes long (valid values: `FLEX=""` \$1 `STANDARD=""`).

  Indicates whether the job is run with a standard or flexible execution class. The standard execution class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.

  The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary. 

  Only jobs with AWS Glue version 3.0 and above and command type `glueetl` will be allowed to set `ExecutionClass` to `FLEX`. The flexible execution class is available for Spark jobs.
+ `SourceControlDetails` – A [SourceControlDetails](#aws-glue-api-jobs-job-SourceControlDetails) object.

  The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.
+ `MaintenanceWindow` – UTF-8 string, matching the [Custom string pattern #34](aws-glue-api-common.md#regex_34).

  This field specifies a day of the week and hour for a maintenance window for streaming jobs. AWS Glue periodically performs maintenance activities. During these maintenance windows, AWS Glue will need to restart your streaming jobs.

  AWS Glue will restart the job within 3 hours of the specified maintenance window. For instance, if you set up the maintenance window for Monday at 10:00AM GMT, your jobs will be restarted between 10:00AM GMT to 1:00PM GMT.
+ `ProfileName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of an AWS Glue usage profile associated with the job.

## ExecutionProperty structure
<a name="aws-glue-api-jobs-job-ExecutionProperty"></a>

An execution property of a job.

**Fields**
+ `MaxConcurrentRuns` – Number (integer).

  The maximum number of concurrent runs allowed for the job. The default is 1. An error is returned when this threshold is reached. The maximum value you can specify is controlled by a service limit.

## NotificationProperty structure
<a name="aws-glue-api-jobs-job-NotificationProperty"></a>

Specifies configuration properties of a notification.

**Fields**
+ `NotifyDelayAfter` – Number (integer), at least 1.

  After a job run starts, the number of minutes to wait before sending a job run delay notification.

## JobCommand structure
<a name="aws-glue-api-jobs-job-JobCommand"></a>

Specifies code that runs when a job is run.

**Fields**
+ `Name` – UTF-8 string.

  The name of the job command. For an Apache Spark ETL job, this must be `glueetl`. For a Python shell job, it must be `pythonshell`. For an Apache Spark streaming ETL job, this must be `gluestreaming`. For a Ray job, this must be `glueray`.
+ `ScriptLocation` – UTF-8 string, not more than 400000 bytes long.

  Specifies the Amazon Simple Storage Service (Amazon S3) path to a script that runs a job.
+ `PythonVersion` – UTF-8 string, matching the [Custom string pattern #49](aws-glue-api-common.md#regex_49).

  The Python version being used to run a Python shell job. Allowed values are 2 or 3.
+ `Runtime` – UTF-8 string, not more than 64 bytes long, matching the [Custom string pattern #33](aws-glue-api-common.md#regex_33).

  In Ray jobs, Runtime is used to specify the versions of Ray, Python and additional libraries available in your environment. This field is not used in other job types. For supported runtime environment values, see [Supported Ray runtime environments](https://docs.aws.amazon.com/glue/latest/dg/ray-jobs-section.html) in the AWS Glue Developer Guide.

## ConnectionsList structure
<a name="aws-glue-api-jobs-job-ConnectionsList"></a>

Specifies the connections used by a job.

**Fields**
+ `Connections` – An array of UTF-8 strings, not more than 1000 strings.

  A list of connections used by the job.

## JobUpdate structure
<a name="aws-glue-api-jobs-job-JobUpdate"></a>

Specifies information used to update an existing job definition. The previous job definition is completely overwritten by this information.

**Fields**
+ `JobMode` – UTF-8 string (valid values: `SCRIPT=""` \$1 `VISUAL=""` \$1 `NOTEBOOK=""`).

  A mode that describes how a job was created. Valid values are:
  + `SCRIPT` - The job was created using the AWS Glue Studio script editor.
  + `VISUAL` - The job was created using the AWS Glue Studio visual editor.
  + `NOTEBOOK` - The job was created using an interactive sessions notebook.

  When the `JobMode` field is missing or null, `SCRIPT` is assigned as the default value.
+ `JobRunQueuingEnabled` – Boolean.

  Specifies whether job run queuing is enabled for the job runs for this job.

  A value of true means job run queuing is enabled for the job runs. If false or not populated, the job runs will not be considered for queueing.

  If this field does not match the value set in the job run, then the value from the job run field will be used.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  Description of the job being defined.
+ `LogUri` – UTF-8 string.

  This field is reserved for future use.
+ `Role` – UTF-8 string.

  The name or Amazon Resource Name (ARN) of the IAM role associated with this job (required).
+ `ExecutionProperty` – An [ExecutionProperty](#aws-glue-api-jobs-job-ExecutionProperty) object.

  An `ExecutionProperty` specifying the maximum number of concurrent runs allowed for this job.
+ `Command` – A [JobCommand](#aws-glue-api-jobs-job-JobCommand) object.

  The `JobCommand` that runs this job (required).
+ `DefaultArguments` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  The default arguments for every run of this job, specified as name-value pairs.

  You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes.

  Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a AWS Glue Connection, AWS Secrets Manager or other secret management mechanism if you intend to keep them within the Job. 

  For information about how to specify and consume your own Job arguments, see the [Calling AWS Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide.

  For information about the arguments you can provide to this field when configuring Spark jobs, see the [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) topic in the developer guide.

  For information about the arguments you can provide to this field when configuring Ray jobs, see [Using job parameters in Ray jobs](https://docs.aws.amazon.com/glue/latest/dg/author-job-ray-job-parameters.html) in the developer guide.
+ `NonOverridableArguments` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  Arguments for this job that are not overridden when providing job arguments in a job run, specified as name-value pairs.
+ `Connections` – A [ConnectionsList](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-ConnectionsList) object.

  The connections used for this job.
+ `MaxRetries` – Number (integer).

  The maximum number of times to retry this job if it fails.
+ `AllocatedCapacity` – Number (integer).

  This field is deprecated. Use `MaxCapacity` instead.

  The number of AWS Glue data processing units (DPUs) to allocate to this job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/).
+ `Timeout` – Number (integer), at least 1.

  The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters `TIMEOUT` status.

  Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

  When the value is left blank, the timeout is defaulted to 2880 minutes.

  Any existing AWS Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

  For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.
+ `MaxCapacity` – Number (double).

  For Glue version 1.0 or earlier jobs, using the standard worker type, the number of AWS Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/).

  For Glue version 2.0\$1 jobs, you cannot specify a `Maximum capacity`. Instead, you should specify a `Worker type` and the `Number of workers`.

  Do not set `MaxCapacity` if using `WorkerType` and `NumberOfWorkers`.

  The value that can be allocated for `MaxCapacity` depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:
  + When you specify a Python shell job (`JobCommand.Name`="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
  + When you specify an Apache Spark ETL job (`JobCommand.Name`="glueetl") or Apache Spark streaming ETL job (`JobCommand.Name`="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.025X=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `G.12X=""` \$1 `G.16X=""` \$1 `R.1X=""` \$1 `R.2X=""` \$1 `R.4X=""` \$1 `R.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated when a job runs. Accepts a value of G.025X, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X, or R.8X for Spark jobs. Accepts the value Z.2X for Ray jobs. For more information, see [Defining job properties for Spark jobs ](https://docs.aws.amazon.com/glue/latest/dg/add-job.html#create-job)
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `workerType` that are allocated when a job runs.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the `SecurityConfiguration` structure to be used with this job.
+ `NotificationProperty` – A [NotificationProperty](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-NotificationProperty) object.

  Specifies the configuration properties of a job notification.
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  In Spark jobs, `GlueVersion` determines the versions of Apache Spark and Python that AWS Glue available in a job. The Python version indicates the version supported for jobs of type Spark. 

  Ray jobs should set `GlueVersion` to `4.0` or greater. However, the versions of Ray, Python and additional libraries available in your Ray job are determined by the `Runtime` parameter of the Job command.

  For more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide.

  If not provided in the update request, the Glue version retains the value from the existing job definition.
+ `CodeGenConfigurationNodes` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  Each value is a A [CodeGenConfigurationNode](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CodeGenConfigurationNode) object.

  The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.
+ `ExecutionClass` – UTF-8 string, not more than 16 bytes long (valid values: `FLEX=""` \$1 `STANDARD=""`).

  Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.

  The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary. 

  Only jobs with AWS Glue version 3.0 and above and command type `glueetl` will be allowed to set `ExecutionClass` to `FLEX`. The flexible execution class is available for Spark jobs.
+ `SourceControlDetails` – A [SourceControlDetails](#aws-glue-api-jobs-job-SourceControlDetails) object.

  The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.
+ `MaintenanceWindow` – UTF-8 string, matching the [Custom string pattern #34](aws-glue-api-common.md#regex_34).

  This field specifies a day of the week and hour for a maintenance window for streaming jobs. AWS Glue periodically performs maintenance activities. During these maintenance windows, AWS Glue will need to restart your streaming jobs.

  AWS Glue will restart the job within 3 hours of the specified maintenance window. For instance, if you set up the maintenance window for Monday at 10:00AM GMT, your jobs will be restarted between 10:00AM GMT to 1:00PM GMT.
+ `ProfileName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of an AWS Glue usage profile associated with the job.

## SourceControlDetails structure
<a name="aws-glue-api-jobs-job-SourceControlDetails"></a>

The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.

**Fields**
+ `Provider` – UTF-8 string (valid values: `GITHUB` \$1 `AWS_CODE_COMMIT`).

  The provider for the remote repository.
+ `Repository` – UTF-8 string, not less than 1 or more than 512 bytes long.

  The name of the remote repository that contains the job artifacts.
+ `Owner` – UTF-8 string, not less than 1 or more than 512 bytes long.

  The owner of the remote repository that contains the job artifacts.
+ `Branch` – UTF-8 string, not less than 1 or more than 512 bytes long.

  An optional branch in the remote repository.
+ `Folder` – UTF-8 string, not less than 1 or more than 512 bytes long.

  An optional folder in the remote repository.
+ `LastCommitId` – UTF-8 string, not less than 1 or more than 512 bytes long.

  The last commit ID for a commit in the remote repository.
+ `LastSyncTimestamp` – UTF-8 string, not less than 1 or more than 512 bytes long.

  The date and time that the last job synchronization was performed.
+ `AuthStrategy` – UTF-8 string (valid values: `PERSONAL_ACCESS_TOKEN` \$1 `AWS_SECRETS_MANAGER`).

  The type of authentication, which can be an authentication token stored in AWS Secrets Manager, or a personal access token.
+ `AuthToken` – UTF-8 string, not less than 1 or more than 512 bytes long.

  The value of an authorization token.

## Operations
<a name="aws-glue-api-jobs-job-actions"></a>
+ [CreateJob action (Python: create\$1job)](#aws-glue-api-jobs-job-CreateJob)
+ [UpdateJob action (Python: update\$1job)](#aws-glue-api-jobs-job-UpdateJob)
+ [GetJob action (Python: get\$1job)](#aws-glue-api-jobs-job-GetJob)
+ [GetJobs action (Python: get\$1jobs)](#aws-glue-api-jobs-job-GetJobs)
+ [DeleteJob action (Python: delete\$1job)](#aws-glue-api-jobs-job-DeleteJob)
+ [ListJobs action (Python: list\$1jobs)](#aws-glue-api-jobs-job-ListJobs)
+ [BatchGetJobs action (Python: batch\$1get\$1jobs)](#aws-glue-api-jobs-job-BatchGetJobs)

## CreateJob action (Python: create\$1job)
<a name="aws-glue-api-jobs-job-CreateJob"></a>

Creates a new job definition.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name you assign to this job definition. It must be unique in your account.
+ `JobMode` – UTF-8 string (valid values: `SCRIPT=""` \$1 `VISUAL=""` \$1 `NOTEBOOK=""`).

  A mode that describes how a job was created. Valid values are:
  + `SCRIPT` - The job was created using the AWS Glue Studio script editor.
  + `VISUAL` - The job was created using the AWS Glue Studio visual editor.
  + `NOTEBOOK` - The job was created using an interactive sessions notebook.

  When the `JobMode` field is missing or null, `SCRIPT` is assigned as the default value.
+ `JobRunQueuingEnabled` – Boolean.

  Specifies whether job run queuing is enabled for the job runs for this job.

  A value of true means job run queuing is enabled for the job runs. If false or not populated, the job runs will not be considered for queueing.

  If this field does not match the value set in the job run, then the value from the job run field will be used.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  Description of the job being defined.
+ `LogUri` – UTF-8 string.

  This field is reserved for future use.
+ `Role` – *Required:* UTF-8 string.

  The name or Amazon Resource Name (ARN) of the IAM role associated with this job.
+ `ExecutionProperty` – An [ExecutionProperty](#aws-glue-api-jobs-job-ExecutionProperty) object.

  An `ExecutionProperty` specifying the maximum number of concurrent runs allowed for this job.
+ `Command` – *Required:* A [JobCommand](#aws-glue-api-jobs-job-JobCommand) object.

  The `JobCommand` that runs this job.
+ `DefaultArguments` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  The default arguments for every run of this job, specified as name-value pairs.

  You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes.

  Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a AWS Glue Connection, AWS Secrets Manager or other secret management mechanism if you intend to keep them within the Job. 

  For information about how to specify and consume your own Job arguments, see the [Calling AWS Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide.

  For information about the arguments you can provide to this field when configuring Spark jobs, see the [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) topic in the developer guide.

  For information about the arguments you can provide to this field when configuring Ray jobs, see [Using job parameters in Ray jobs](https://docs.aws.amazon.com/glue/latest/dg/author-job-ray-job-parameters.html) in the developer guide.
+ `NonOverridableArguments` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  Arguments for this job that are not overridden when providing job arguments in a job run, specified as name-value pairs.
+ `Connections` – A [ConnectionsList](aws-glue-api-interactive-sessions.md#aws-glue-api-interactive-sessions-ConnectionsList) object.

  The connections used for this job.
+ `MaxRetries` – Number (integer).

  The maximum number of times to retry this job if it fails.
+ `AllocatedCapacity` – Number (integer).

  This parameter is deprecated. Use `MaxCapacity` instead.

  The number of AWS Glue data processing units (DPUs) to allocate to this Job. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/).
+ `Timeout` – Number (integer), at least 1.

  The job timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters `TIMEOUT` status.

  Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

  When the value is left blank, the timeout is defaulted to 2880 minutes.

  Any existing AWS Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

  For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.
+ `MaxCapacity` – Number (double).

  For Glue version 1.0 or earlier jobs, using the standard worker type, the number of AWS Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/).

  For Glue version 2.0\$1 jobs, you cannot specify a `Maximum capacity`. Instead, you should specify a `Worker type` and the `Number of workers`.

  Do not set `MaxCapacity` if using `WorkerType` and `NumberOfWorkers`.

  The value that can be allocated for `MaxCapacity` depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:
  + When you specify a Python shell job (`JobCommand.Name`="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
  + When you specify an Apache Spark ETL job (`JobCommand.Name`="glueetl") or Apache Spark streaming ETL job (`JobCommand.Name`="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the `SecurityConfiguration` structure to be used with this job.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The tags to use with this job. You may use tags to limit access to the job. For more information about tags in AWS Glue, see [AWS Tags in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the developer guide.
+ `NotificationProperty` – A [NotificationProperty](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-NotificationProperty) object.

  Specifies configuration properties of a job notification.
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  In Spark jobs, `GlueVersion` determines the versions of Apache Spark and Python that AWS Glue available in a job. The Python version indicates the version supported for jobs of type Spark. 

  Ray jobs should set `GlueVersion` to `4.0` or greater. However, the versions of Ray, Python and additional libraries available in your Ray job are determined by the `Runtime` parameter of the Job command.

  For more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide.

  Jobs that are created without specifying a Glue version default to Glue 5.1.
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `workerType` that are allocated when a job runs.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.025X=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `G.12X=""` \$1 `G.16X=""` \$1 `R.1X=""` \$1 `R.2X=""` \$1 `R.4X=""` \$1 `R.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated when a job runs. Accepts a value of G.025X, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X, or R.8X for Spark jobs. Accepts the value Z.2X for Ray jobs.
  + For the `G.025X` worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for AWS Glue version 3.0 or later streaming jobs.
  + For the `G.1X` worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.
  + For the `G.2X` worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.
  + For the `G.4X` worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark ETL jobs in the following AWS Regions: US East (Ohio), US East (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific (Mumbai), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), Europe (London), Europe (Spain), Europe (Stockholm), and 
  + For the `G.8X` worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark ETL jobs, in the same AWS Regions as supported for the `G.4X` worker type.
  + For the `G.12X` worker type, each worker maps to 12 DPU (48 vCPUs, 192 GB of memory) with 768GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `G.16X` worker type, each worker maps to 16 DPU (64 vCPUs, 256 GB of memory) with 1024GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `R.1X` worker type, each worker maps to 1 DPU (4 vCPUs, 32 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `R.2X` worker type, each worker maps to 2 DPU (8 vCPUs, 64 GB of memory) with 128GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `R.4X` worker type, each worker maps to 4 DPU (16 vCPUs, 128 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `R.8X` worker type, each worker maps to 8 DPU (32 vCPUs, 256 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `Z.2X` worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.
+ `CodeGenConfigurationNodes` – A map array of key-value pairs.

  Each key is a UTF-8 string, matching the [Custom string pattern #60](aws-glue-api-common.md#regex_60).

  Each value is a A [CodeGenConfigurationNode](aws-glue-api-visual-job-api.md#aws-glue-api-visual-job-api-CodeGenConfigurationNode) object.

  The representation of a directed acyclic graph on which both the Glue Studio visual component and Glue Studio code generation is based.
+ `ExecutionClass` – UTF-8 string, not more than 16 bytes long (valid values: `FLEX=""` \$1 `STANDARD=""`).

  Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.

  The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary. 

  Only jobs with AWS Glue version 3.0 and above and command type `glueetl` will be allowed to set `ExecutionClass` to `FLEX`. The flexible execution class is available for Spark jobs.
+ `SourceControlDetails` – A [SourceControlDetails](#aws-glue-api-jobs-job-SourceControlDetails) object.

  The details for a source control configuration for a job, allowing synchronization of job artifacts to or from a remote repository.
+ `MaintenanceWindow` – UTF-8 string, matching the [Custom string pattern #34](aws-glue-api-common.md#regex_34).

  This field specifies a day of the week and hour for a maintenance window for streaming jobs. AWS Glue periodically performs maintenance activities. During these maintenance windows, AWS Glue will need to restart your streaming jobs.

  AWS Glue will restart the job within 3 hours of the specified maintenance window. For instance, if you set up the maintenance window for Monday at 10:00AM GMT, your jobs will be restarted between 10:00AM GMT to 1:00PM GMT.
+ `ProfileName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of an AWS Glue usage profile associated with the job.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique name that was provided for this job definition.

**Errors**
+ `InvalidInputException`
+ `IdempotentParameterMismatchException`
+ `AlreadyExistsException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `ConcurrentModificationException`

## UpdateJob action (Python: update\$1job)
<a name="aws-glue-api-jobs-job-UpdateJob"></a>

Updates an existing job definition. The previous job definition is completely overwritten by this information.

**Request**
+ `JobName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job definition to update.
+ `JobUpdate` – *Required:* A [JobUpdate](#aws-glue-api-jobs-job-JobUpdate) object.

  Specifies the values with which to update the job definition. Unspecified configuration is removed or reset to default values.
+ `ProfileName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of an AWS Glue usage profile associated with the job.

**Response**
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Returns the name of the updated job definition.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`

## GetJob action (Python: get\$1job)
<a name="aws-glue-api-jobs-job-GetJob"></a>

Retrieves an existing job definition.

**Request**
+ `JobName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job definition to retrieve.

**Response**
+ `Job` – A [Job](#aws-glue-api-jobs-job-Job) object.

  The requested job definition.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetJobs action (Python: get\$1jobs)
<a name="aws-glue-api-jobs-job-GetJobs"></a>

Retrieves all current job definitions.

**Request**
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum size of the response.

**Response**
+ `Jobs` – An array of [Job](#aws-glue-api-jobs-job-Job) objects.

  A list of job definitions.
+ `NextToken` – UTF-8 string.

  A continuation token, if not all job definitions have yet been returned.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## DeleteJob action (Python: delete\$1job)
<a name="aws-glue-api-jobs-job-DeleteJob"></a>

Deletes a specified job definition. If the job definition is not found, no exception is thrown.

**Request**
+ `JobName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job definition to delete.

**Response**
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job definition that was deleted.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## ListJobs action (Python: list\$1jobs)
<a name="aws-glue-api-jobs-job-ListJobs"></a>

Retrieves the names of all job resources in this AWS account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names.

This operation takes the optional `Tags` field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.

**Request**
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation request.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum size of a list to return.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  Specifies to return only these tagged resources.

**Response**
+ `JobNames` – An array of UTF-8 strings.

  The names of all jobs in the account, or the jobs with the specified tags.
+ `NextToken` – UTF-8 string.

  A continuation token, if the returned list does not contain the last metric available.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## BatchGetJobs action (Python: batch\$1get\$1jobs)
<a name="aws-glue-api-jobs-job-BatchGetJobs"></a>

Returns a list of resource metadata for a given list of job names. After calling the `ListJobs` operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags. 

**Request**
+ `JobNames` – *Required:* An array of UTF-8 strings.

  A list of job names, which might be the names returned from the `ListJobs` operation.

**Response**
+ `Jobs` – An array of [Job](#aws-glue-api-jobs-job-Job) objects.

  A list of job definitions.
+ `JobsNotFound` – An array of UTF-8 strings.

  A list of names of jobs not found.

**Errors**
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`

# Job runs
<a name="aws-glue-api-jobs-runs"></a>

 The Jobs Runs API describes the data types and API related to starting, stopping, or viewing job runs, and resetting job bookmarks, in AWS Glue. Job run history is accessible for 90 days for your workflow and job run. 

## Data types
<a name="aws-glue-api-jobs-runs-objects"></a>
+ [JobRun structure](#aws-glue-api-jobs-runs-JobRun)
+ [Predecessor structure](#aws-glue-api-jobs-runs-Predecessor)
+ [JobBookmarkEntry structure](#aws-glue-api-jobs-runs-JobBookmarkEntry)
+ [BatchStopJobRunSuccessfulSubmission structure](#aws-glue-api-jobs-runs-BatchStopJobRunSuccessfulSubmission)
+ [BatchStopJobRunError structure](#aws-glue-api-jobs-runs-BatchStopJobRunError)
+ [NotificationProperty structure](#aws-glue-api-jobs-runs-NotificationProperty)

## JobRun structure
<a name="aws-glue-api-jobs-runs-JobRun"></a>

Contains information about a job run.

**Fields**
+ `Id` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of this job run.
+ `Attempt` – Number (integer).

  The number of the attempt to run this job.
+ `PreviousRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the previous run of this job. For example, the `JobRunId` specified in the `StartJobRun` action.
+ `TriggerName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the trigger that started this job run.
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job definition being used in this run.
+ `JobMode` – UTF-8 string (valid values: `SCRIPT=""` \$1 `VISUAL=""` \$1 `NOTEBOOK=""`).

  A mode that describes how a job was created. Valid values are:
  + `SCRIPT` - The job was created using the AWS Glue Studio script editor.
  + `VISUAL` - The job was created using the AWS Glue Studio visual editor.
  + `NOTEBOOK` - The job was created using an interactive sessions notebook.

  When the `JobMode` field is missing or null, `SCRIPT` is assigned as the default value.
+ `JobRunQueuingEnabled` – Boolean.

  Specifies whether job run queuing is enabled for the job run.

  A value of true means job run queuing is enabled for the job run. If false or not populated, the job run will not be considered for queueing.
+ `StartedOn` – Timestamp.

  The date and time at which this job run was started.
+ `LastModifiedOn` – Timestamp.

  The last time that this job run was modified.
+ `CompletedOn` – Timestamp.

  The date and time that this job run completed.
+ `JobRunState` – UTF-8 string (valid values: `STARTING` \$1 `RUNNING` \$1 `STOPPING` \$1 `STOPPED` \$1 `SUCCEEDED` \$1 `FAILED` \$1 `TIMEOUT` \$1 `ERROR` \$1 `WAITING` \$1 `EXPIRED`).

  The current state of the job run. For more information about the statuses of jobs that have terminated abnormally, see [AWS Glue Job Run Statuses](https://docs.aws.amazon.com/glue/latest/dg/job-run-statuses.html).
+ `Arguments` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  The job arguments associated with this run. For this job run, they replace the default arguments set in the job definition itself.

  You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes.

  Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a AWS Glue Connection, AWS Secrets Manager or other secret management mechanism if you intend to keep them within the Job. 

  For information about how to specify and consume your own Job arguments, see the [Calling AWS Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide.

  For information about the arguments you can provide to this field when configuring Spark jobs, see the [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) topic in the developer guide.

  For information about the arguments you can provide to this field when configuring Ray jobs, see [Using job parameters in Ray jobs](https://docs.aws.amazon.com/glue/latest/dg/author-job-ray-job-parameters.html) in the developer guide.
+ `ErrorMessage` – UTF-8 string.

  An error message associated with this job run.
+ `PredecessorRuns` – An array of [Predecessor](#aws-glue-api-jobs-runs-Predecessor) objects.

  A list of predecessors to this job run.
+ `AllocatedCapacity` – Number (integer).

  This field is deprecated. Use `MaxCapacity` instead.

  The number of AWS Glue data processing units (DPUs) allocated to this JobRun. From 2 to 100 DPUs can be allocated; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/).
+ `ExecutionTime` – Number (integer).

  The amount of time (in seconds) that the job run consumed resources.
+ `Timeout` – Number (integer), at least 1.

  The `JobRun` timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters `TIMEOUT` status. This value overrides the timeout value set in the parent job.

  Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

  When the value is left blank, the timeout is defaulted to 2880 minutes.

  Any existing AWS Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

  For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.
+ `MaxCapacity` – Number (double).

  For Glue version 1.0 or earlier jobs, using the standard worker type, the number of AWS Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/).

  For Glue version 2.0\$1 jobs, you cannot specify a `Maximum capacity`. Instead, you should specify a `Worker type` and the `Number of workers`.

  Do not set `MaxCapacity` if using `WorkerType` and `NumberOfWorkers`.

  The value that can be allocated for `MaxCapacity` depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:
  + When you specify a Python shell job (`JobCommand.Name`="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
  + When you specify an Apache Spark ETL job (`JobCommand.Name`="glueetl") or Apache Spark streaming ETL job (`JobCommand.Name`="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.025X=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `G.12X=""` \$1 `G.16X=""` \$1 `R.1X=""` \$1 `R.2X=""` \$1 `R.4X=""` \$1 `R.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated when a job runs. Accepts a value of G.025X, G.1X, G.2X, G.4X, G.8X, G.12X, G.16X, R.1X, R.2X, R.4X, or R.8X for Spark jobs. Accepts the value Z.2X for Ray jobs.
  + For the `G.1X` worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.
  + For the `G.2X` worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.
  + For the `G.4X` worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark ETL jobs in the following AWS Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).
  + For the `G.8X` worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark ETL jobs, in the same AWS Regions as supported for the `G.4X` worker type.
  + For the `G.12X` worker type, each worker maps to 12 DPU (48 vCPUs, 192 GB of memory) with 768GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `G.16X` worker type, each worker maps to 16 DPU (64 vCPUs, 256 GB of memory) with 1024GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `G.025X` worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for AWS Glue version 3.0 or later streaming jobs.
  + For the `R.1X` worker type, each worker maps to 1 DPU (4 vCPUs, 32 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `R.2X` worker type, each worker maps to 2 DPU (8 vCPUs, 64 GB of memory) with 128GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `R.4X` worker type, each worker maps to 4 DPU (16 vCPUs, 128 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `R.8X` worker type, each worker maps to 8 DPU (32 vCPUs, 256 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `Z.2X` worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `workerType` that are allocated when a job runs.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the `SecurityConfiguration` structure to be used with this job run.
+ `LogGroupName` – UTF-8 string.

  The name of the log group for secure logging that can be server-side encrypted in Amazon CloudWatch using AWS KMS. This name can be `/aws-glue/jobs/`, in which case the default encryption is `NONE`. If you add a role name and `SecurityConfiguration` name (in other words, `/aws-glue/jobs-yourRoleName-yourSecurityConfigurationName/`), then that security configuration is used to encrypt the log group.
+ `NotificationProperty` – A [NotificationProperty](#aws-glue-api-jobs-runs-NotificationProperty) object.

  Specifies configuration properties of a job run notification.
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  In Spark jobs, `GlueVersion` determines the versions of Apache Spark and Python that AWS Glue available in a job. The Python version indicates the version supported for jobs of type Spark. 

  Ray jobs should set `GlueVersion` to `4.0` or greater. However, the versions of Ray, Python and additional libraries available in your Ray job are determined by the `Runtime` parameter of the Job command.

  For more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide.

  Jobs that are created without specifying a Glue version default to Glue 5.1.
+ `DPUSeconds` – Number (double).

  This field can be set for either job runs with execution class `FLEX` or when Auto Scaling is enabled, and represents the total time each executor ran during the lifecycle of a job run in seconds, multiplied by a DPU factor (1 for `G.1X`, 2 for `G.2X`, or 0.25 for `G.025X` workers). This value may be different than the `executionEngineRuntime` \$1 `MaxCapacity` as in the case of Auto Scaling jobs, as the number of executors running at a given time may be less than the `MaxCapacity`. Therefore, it is possible that the value of `DPUSeconds` is less than `executionEngineRuntime` \$1 `MaxCapacity`.
+ `ExecutionClass` – UTF-8 string, not more than 16 bytes long (valid values: `FLEX=""` \$1 `STANDARD=""`).

  Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.

  The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary. 

  Only jobs with AWS Glue version 3.0 and above and command type `glueetl` will be allowed to set `ExecutionClass` to `FLEX`. The flexible execution class is available for Spark jobs.
+ `MaintenanceWindow` – UTF-8 string, matching the [Custom string pattern #34](aws-glue-api-common.md#regex_34).

  This field specifies a day of the week and hour for a maintenance window for streaming jobs. AWS Glue periodically performs maintenance activities. During these maintenance windows, AWS Glue will need to restart your streaming jobs.

  AWS Glue will restart the job within 3 hours of the specified maintenance window. For instance, if you set up the maintenance window for Monday at 10:00AM GMT, your jobs will be restarted between 10:00AM GMT to 1:00PM GMT.
+ `ProfileName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of an AWS Glue usage profile associated with the job run.
+ `StateDetail` – UTF-8 string, not more than 400000 bytes long.

  This field holds details that pertain to the state of a job run. The field is nullable.

  For example, when a job run is in a WAITING state as a result of job run queuing, the field has the reason why the job run is in that state.
+ `ExecutionRoleSessionPolicy` – UTF-8 string, not less than 2 or more than 2048 bytes long.

  This inline session policy to the StartJobRun API allows you to dynamically restrict the permissions of the specified execution role for the scope of the job, without requiring the creation of additional IAM roles.

## Predecessor structure
<a name="aws-glue-api-jobs-runs-Predecessor"></a>

A job run that was used in the predicate of a conditional trigger that triggered this job run.

**Fields**
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job definition used by the predecessor job run.
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The job-run ID of the predecessor job run.

## JobBookmarkEntry structure
<a name="aws-glue-api-jobs-runs-JobBookmarkEntry"></a>

Defines a point that a job can resume processing.

**Fields**
+ `JobName` – UTF-8 string.

  The name of the job in question.
+ `Version` – Number (integer).

  The version of the job.
+ `Run` – Number (integer).

  The run ID number.
+ `Attempt` – Number (integer).

  The attempt ID number.
+ `PreviousRunId` – UTF-8 string.

  The unique run identifier associated with the previous job run.
+ `RunId` – UTF-8 string.

  The run ID number.
+ `JobBookmark` – UTF-8 string.

  The bookmark itself.

## BatchStopJobRunSuccessfulSubmission structure
<a name="aws-glue-api-jobs-runs-BatchStopJobRunSuccessfulSubmission"></a>

Records a successful request to stop a specified `JobRun`.

**Fields**
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job definition used in the job run that was stopped.
+ `JobRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The `JobRunId` of the job run that was stopped.

## BatchStopJobRunError structure
<a name="aws-glue-api-jobs-runs-BatchStopJobRunError"></a>

Records an error that occurred when attempting to stop a specified job run.

**Fields**
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job definition that is used in the job run in question.
+ `JobRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The `JobRunId` of the job run in question.
+ `ErrorDetail` – An [ErrorDetail](aws-glue-api-common.md#aws-glue-api-common-ErrorDetail) object.

  Specifies details about the error that was encountered.

## NotificationProperty structure
<a name="aws-glue-api-jobs-runs-NotificationProperty"></a>

Specifies configuration properties of a notification.

**Fields**
+ `NotifyDelayAfter` – Number (integer), at least 1.

  After a job run starts, the number of minutes to wait before sending a job run delay notification.

## Operations
<a name="aws-glue-api-jobs-runs-actions"></a>
+ [StartJobRun action (Python: start\$1job\$1run)](#aws-glue-api-jobs-runs-StartJobRun)
+ [BatchStopJobRun action (Python: batch\$1stop\$1job\$1run)](#aws-glue-api-jobs-runs-BatchStopJobRun)
+ [GetJobRun action (Python: get\$1job\$1run)](#aws-glue-api-jobs-runs-GetJobRun)
+ [GetJobRuns action (Python: get\$1job\$1runs)](#aws-glue-api-jobs-runs-GetJobRuns)
+ [GetJobBookmark action (Python: get\$1job\$1bookmark)](#aws-glue-api-jobs-runs-GetJobBookmark)
+ [GetJobBookmarks action (Python: get\$1job\$1bookmarks)](#aws-glue-api-jobs-runs-GetJobBookmarks)
+ [ResetJobBookmark action (Python: reset\$1job\$1bookmark)](#aws-glue-api-jobs-runs-ResetJobBookmark)

## StartJobRun action (Python: start\$1job\$1run)
<a name="aws-glue-api-jobs-runs-StartJobRun"></a>

Starts a job run using a job definition.

**Request**
+ `JobName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job definition to use.
+ `JobRunQueuingEnabled` – Boolean.

  Specifies whether job run queuing is enabled for the job run.

  A value of true means job run queuing is enabled for the job run. If false or not populated, the job run will not be considered for queueing.
+ `JobRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of a previous `JobRun` to retry.
+ `Arguments` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  The job arguments associated with this run. For this job run, they replace the default arguments set in the job definition itself.

  You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes.

  Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a AWS Glue Connection, AWS Secrets Manager or other secret management mechanism if you intend to keep them within the Job. 

  For information about how to specify and consume your own Job arguments, see the [Calling AWS Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide.

  For information about the arguments you can provide to this field when configuring Spark jobs, see the [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) topic in the developer guide.

  For information about the arguments you can provide to this field when configuring Ray jobs, see [Using job parameters in Ray jobs](https://docs.aws.amazon.com/glue/latest/dg/author-job-ray-job-parameters.html) in the developer guide.
+ `AllocatedCapacity` – Number (integer).

  This field is deprecated. Use `MaxCapacity` instead.

  The number of AWS Glue data processing units (DPUs) to allocate to this JobRun. You can allocate a minimum of 2 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/).
+ `Timeout` – Number (integer), at least 1.

  The `JobRun` timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters `TIMEOUT` status. This value overrides the timeout value set in the parent job. 

  Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

  When the value is left blank, the timeout is defaulted to 2880 minutes.

  Any existing AWS Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

  For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.
+ `MaxCapacity` – Number (double).

  For Glue version 1.0 or earlier jobs, using the standard worker type, the number of AWS Glue data processing units (DPUs) that can be allocated when this job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/).

  For Glue version 2.0\$1 jobs, you cannot specify a `Maximum capacity`. Instead, you should specify a `Worker type` and the `Number of workers`.

  Do not set `MaxCapacity` if using `WorkerType` and `NumberOfWorkers`.

  The value that can be allocated for `MaxCapacity` depends on whether you are running a Python shell job, an Apache Spark ETL job, or an Apache Spark streaming ETL job:
  + When you specify a Python shell job (`JobCommand.Name`="pythonshell"), you can allocate either 0.0625 or 1 DPU. The default is 0.0625 DPU.
  + When you specify an Apache Spark ETL job (`JobCommand.Name`="glueetl") or Apache Spark streaming ETL job (`JobCommand.Name`="gluestreaming"), you can allocate from 2 to 100 DPUs. The default is 10 DPUs. This job type cannot have a fractional DPU allocation.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the `SecurityConfiguration` structure to be used with this job run.
+ `NotificationProperty` – A [NotificationProperty](#aws-glue-api-jobs-runs-NotificationProperty) object.

  Specifies configuration properties of a job run notification.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.025X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated when a job runs. Accepts a value of G.1X, G.2X, G.4X, G.8X or G.025X for Spark jobs. Accepts the value Z.2X for Ray jobs.
  + For the `G.1X` worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.
  + For the `G.2X` worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.
  + For the `G.4X` worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark ETL jobs in the following AWS Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).
  + For the `G.8X` worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark ETL jobs, in the same AWS Regions as supported for the `G.4X` worker type.
  + For the `G.12X` worker type, each worker maps to 12 DPU (48 vCPUs, 192 GB of memory) with 768GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `G.16X` worker type, each worker maps to 16 DPU (64 vCPUs, 256 GB of memory) with 1024GB disk, and provides 1 executor per worker. We recommend this worker type for jobs with very large workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `G.025X` worker type, each worker maps to 0.25 DPU (2 vCPUs, 4 GB of memory) with 84GB disk, and provides 1 executor per worker. We recommend this worker type for low volume streaming jobs. This worker type is only available for AWS Glue version 3.0 or later streaming jobs.
  + For the `R.1X` worker type, each worker maps to 1 DPU (4 vCPUs, 32 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `R.2X` worker type, each worker maps to 2 DPU (8 vCPUs, 64 GB of memory) with 128GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `R.4X` worker type, each worker maps to 4 DPU (16 vCPUs, 128 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `R.8X` worker type, each worker maps to 8 DPU (32 vCPUs, 256 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for memory-intensive workloads. This worker type is available only for AWS Glue version 4.0 or later Spark ETL jobs.
  + For the `Z.2X` worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `workerType` that are allocated when a job runs.
+ `ExecutionClass` – UTF-8 string, not more than 16 bytes long (valid values: `FLEX=""` \$1 `STANDARD=""`).

  Indicates whether the job is run with a standard or flexible execution class. The standard execution-class is ideal for time-sensitive workloads that require fast job startup and dedicated resources.

  The flexible execution class is appropriate for time-insensitive jobs whose start and completion times may vary. 

  Only jobs with AWS Glue version 3.0 and above and command type `glueetl` will be allowed to set `ExecutionClass` to `FLEX`. The flexible execution class is available for Spark jobs.
+ `ProfileName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of an AWS Glue usage profile associated with the job run.
+ `ExecutionRoleSessionPolicy` – UTF-8 string, not less than 2 or more than 2048 bytes long.

  This inline session policy to the StartJobRun API allows you to dynamically restrict the permissions of the specified execution role for the scope of the job, without requiring the creation of additional IAM roles.

**Response**
+ `JobRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID assigned to this job run.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `ConcurrentRunsExceededException`

## BatchStopJobRun action (Python: batch\$1stop\$1job\$1run)
<a name="aws-glue-api-jobs-runs-BatchStopJobRun"></a>

Stops one or more job runs for a specified job definition.

**Request**
+ `JobName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job definition for which to stop job runs.
+ `JobRunIds` – *Required:* An array of UTF-8 strings, not less than 1 or more than 25 strings.

  A list of the `JobRunIds` that should be stopped for that job definition.

**Response**
+ `SuccessfulSubmissions` – An array of [BatchStopJobRunSuccessfulSubmission](#aws-glue-api-jobs-runs-BatchStopJobRunSuccessfulSubmission) objects.

  A list of the JobRuns that were successfully submitted for stopping.
+ `Errors` – An array of [BatchStopJobRunError](#aws-glue-api-jobs-runs-BatchStopJobRunError) objects.

  A list of the errors that were encountered in trying to stop `JobRuns`, including the `JobRunId` for which each error was encountered and details about the error.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetJobRun action (Python: get\$1job\$1run)
<a name="aws-glue-api-jobs-runs-GetJobRun"></a>

Retrieves the metadata for a given job run. Job run history is accessible for 365 days for your workflow and job run.

**Request**
+ `JobName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the job definition being run.
+ `RunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the job run.
+ `PredecessorsIncluded` – Boolean.

  True if a list of predecessor runs should be returned.

**Response**
+ `JobRun` – A [JobRun](#aws-glue-api-jobs-runs-JobRun) object.

  The requested job-run metadata.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetJobRuns action (Python: get\$1job\$1runs)
<a name="aws-glue-api-jobs-runs-GetJobRuns"></a>

Retrieves metadata for all runs of a given job definition.

`GetJobRuns` returns the job runs in chronological order, with the newest jobs returned first.

**Request**
+ `JobName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job definition for which to retrieve all job runs.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.
+ `MaxResults` – Number (integer), not less than 1 or more than 200.

  The maximum size of the response.

**Response**
+ `JobRuns` – An array of [JobRun](#aws-glue-api-jobs-runs-JobRun) objects.

  A list of job-run metadata objects.
+ `NextToken` – UTF-8 string.

  A continuation token, if not all requested job runs have been returned.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetJobBookmark action (Python: get\$1job\$1bookmark)
<a name="aws-glue-api-jobs-runs-GetJobBookmark"></a>

Returns information on a job bookmark entry.

For more information about enabling and using job bookmarks, see:
+ [Tracking processed data using job bookmarks](https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html)
+ [Job parameters used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html)
+ [Job structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-Job)

**Request**
+ `JobName` – *Required:* UTF-8 string.

  The name of the job in question.
+ `Version` – Number (integer).

  The version of the job.
+ `RunId` – UTF-8 string.

  The unique run identifier associated with this job run.

**Response**
+ `JobBookmarkEntry` – A [JobBookmarkEntry](#aws-glue-api-jobs-runs-JobBookmarkEntry) object.

  A structure that defines a point that a job can resume processing.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ValidationException`

## GetJobBookmarks action (Python: get\$1job\$1bookmarks)
<a name="aws-glue-api-jobs-runs-GetJobBookmarks"></a>

Returns information on the job bookmark entries. The list is ordered on decreasing version numbers.

For more information about enabling and using job bookmarks, see:
+ [Tracking processed data using job bookmarks](https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html)
+ [Job parameters used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html)
+ [Job structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-Job)

**Request**
+ `JobName` – *Required:* UTF-8 string.

  The name of the job in question.
+ `MaxResults` – Number (integer).

  The maximum size of the response.
+ `NextToken` – Number (integer).

  A continuation token, if this is a continuation call.

**Response**
+ `JobBookmarkEntries` – An array of [JobBookmarkEntry](#aws-glue-api-jobs-runs-JobBookmarkEntry) objects.

  A list of job bookmark entries that defines a point that a job can resume processing.
+ `NextToken` – Number (integer).

  A continuation token, which has a value of 1 if all the entries are returned, or > 1 if not all requested job runs have been returned.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## ResetJobBookmark action (Python: reset\$1job\$1bookmark)
<a name="aws-glue-api-jobs-runs-ResetJobBookmark"></a>

Resets a bookmark entry.

For more information about enabling and using job bookmarks, see:
+ [Tracking processed data using job bookmarks](https://docs.aws.amazon.com/glue/latest/dg/monitor-continuations.html)
+ [Job parameters used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html)
+ [Job structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html#aws-glue-api-jobs-job-Job)

**Request**
+ `JobName` – *Required:* UTF-8 string.

  The name of the job in question.
+ `RunId` – UTF-8 string.

  The unique run identifier associated with this job run.

**Response**
+ `JobBookmarkEntry` – A [JobBookmarkEntry](#aws-glue-api-jobs-runs-JobBookmarkEntry) object.

  The reset bookmark entry.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

# Triggers
<a name="aws-glue-api-jobs-trigger"></a>

The Triggers API describes the data types and API related to creating, updating, or deleting, and starting and stopping job triggers in AWS Glue.

## Data types
<a name="aws-glue-api-jobs-trigger-objects"></a>
+ [Trigger structure](#aws-glue-api-jobs-trigger-Trigger)
+ [TriggerUpdate structure](#aws-glue-api-jobs-trigger-TriggerUpdate)
+ [Predicate structure](#aws-glue-api-jobs-trigger-Predicate)
+ [Condition structure](#aws-glue-api-jobs-trigger-Condition)
+ [Action structure](#aws-glue-api-jobs-trigger-Action)
+ [EventBatchingCondition structure](#aws-glue-api-jobs-trigger-EventBatchingCondition)

## Trigger structure
<a name="aws-glue-api-jobs-trigger-Trigger"></a>

Information about a specific trigger.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the trigger.
+ `WorkflowName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the workflow associated with the trigger.
+ `Id` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Reserved for future use.
+ `Type` – UTF-8 string (valid values: `SCHEDULED` \$1 `CONDITIONAL` \$1 `ON_DEMAND` \$1 `EVENT`).

  The type of trigger that this is.
+ `State` – UTF-8 string (valid values: `CREATING` \$1 `CREATED` \$1 `ACTIVATING` \$1 `ACTIVATED` \$1 `DEACTIVATING` \$1 `DEACTIVATED` \$1 `DELETING` \$1 `UPDATING`).

  The current state of the trigger.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of this trigger.
+ `Schedule` – UTF-8 string.

  A `cron` expression used to specify the schedule (see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`.
+ `Actions` – An array of [Action](#aws-glue-api-jobs-trigger-Action) objects.

  The actions initiated by this trigger.
+ `Predicate` – A [Predicate](#aws-glue-api-jobs-trigger-Predicate) object.

  The predicate of this trigger, which defines when it will fire.
+ `EventBatchingCondition` – An [EventBatchingCondition](#aws-glue-api-jobs-trigger-EventBatchingCondition) object.

  Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.

## TriggerUpdate structure
<a name="aws-glue-api-jobs-trigger-TriggerUpdate"></a>

A structure used to provide information used to update a trigger. This object updates the previous trigger definition by overwriting it completely.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Reserved for future use.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of this trigger.
+ `Schedule` – UTF-8 string.

  A `cron` expression used to specify the schedule (see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`.
+ `Actions` – An array of [Action](#aws-glue-api-jobs-trigger-Action) objects.

  The actions initiated by this trigger.
+ `Predicate` – A [Predicate](#aws-glue-api-jobs-trigger-Predicate) object.

  The predicate of this trigger, which defines when it will fire.
+ `EventBatchingCondition` – An [EventBatchingCondition](#aws-glue-api-jobs-trigger-EventBatchingCondition) object.

  Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.

## Predicate structure
<a name="aws-glue-api-jobs-trigger-Predicate"></a>

Defines the predicate of the trigger, which determines when it fires.

**Fields**
+ `Logical` – UTF-8 string (valid values: `AND` \$1 `ANY`).

  An optional field if only one condition is listed. If multiple conditions are listed, then this field is required.
+ `Conditions` – An array of [Condition](#aws-glue-api-jobs-trigger-Condition) objects, not more than 500 structures.

  A list of the conditions that determine when the trigger will fire.

## Condition structure
<a name="aws-glue-api-jobs-trigger-Condition"></a>

Defines a condition under which a trigger fires.

**Fields**
+ `LogicalOperator` – UTF-8 string (valid values: `EQUALS`).

  A logical operator.
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job whose `JobRuns` this condition applies to, and on which this trigger waits.
+ `State` – UTF-8 string (valid values: `STARTING` \$1 `RUNNING` \$1 `STOPPING` \$1 `STOPPED` \$1 `SUCCEEDED` \$1 `FAILED` \$1 `TIMEOUT` \$1 `ERROR` \$1 `WAITING` \$1 `EXPIRED`).

  The condition state. Currently, the only job states that a trigger can listen for are `SUCCEEDED`, `STOPPED`, `FAILED`, and `TIMEOUT`. The only crawler states that a trigger can listen for are `SUCCEEDED`, `FAILED`, and `CANCELLED`.
+ `CrawlerName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the crawler to which this condition applies.
+ `CrawlState` – UTF-8 string (valid values: `RUNNING` \$1 `CANCELLING` \$1 `CANCELLED` \$1 `SUCCEEDED` \$1 `FAILED` \$1 `ERROR`).

  The state of the crawler to which this condition applies.

## Action structure
<a name="aws-glue-api-jobs-trigger-Action"></a>

Defines an action to be initiated by a trigger.

**Fields**
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of a job to be run.
+ `Arguments` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself.

  You can specify arguments here that your own job-execution script consumes, as well as arguments that AWS Glue itself consumes.

  For information about how to specify and consume your own Job arguments, see the [Calling AWS Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide.

  For information about the key-value pairs that AWS Glue consumes to set up your job, see the [Special Parameters Used by AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) topic in the developer guide.
+ `Timeout` – Number (integer), at least 1.

  The `JobRun` timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters `TIMEOUT` status. This overrides the timeout value set in the parent job.

  Jobs must have timeout values less than 7 days or 10080 minutes. Otherwise, the jobs will throw an exception.

  When the value is left blank, the timeout is defaulted to 2880 minutes.

  Any existing AWS Glue jobs that had a timeout value greater than 7 days will be defaulted to 7 days. For instance if you have specified a timeout of 20 days for a batch job, it will be stopped on the 7th day.

  For streaming jobs, if you have set up a maintenance window, it will be restarted during the maintenance window after 7 days.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the `SecurityConfiguration` structure to be used with this action.
+ `NotificationProperty` – A [NotificationProperty](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-NotificationProperty) object.

  Specifies configuration properties of a job run notification.
+ `CrawlerName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the crawler to be used with this action.

## EventBatchingCondition structure
<a name="aws-glue-api-jobs-trigger-EventBatchingCondition"></a>

Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.

**Fields**
+ `BatchSize` – *Required:* Number (integer), not less than 1 or more than 100.

  Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires.
+ `BatchWindow` – Number (integer), not less than 1 or more than 900.

  Window of time in seconds after which EventBridge event trigger fires. Window starts when first event is received.

## Operations
<a name="aws-glue-api-jobs-trigger-actions"></a>
+ [CreateTrigger action (Python: create\$1trigger)](#aws-glue-api-jobs-trigger-CreateTrigger)
+ [StartTrigger action (Python: start\$1trigger)](#aws-glue-api-jobs-trigger-StartTrigger)
+ [GetTrigger action (Python: get\$1trigger)](#aws-glue-api-jobs-trigger-GetTrigger)
+ [GetTriggers action (Python: get\$1triggers)](#aws-glue-api-jobs-trigger-GetTriggers)
+ [UpdateTrigger action (Python: update\$1trigger)](#aws-glue-api-jobs-trigger-UpdateTrigger)
+ [StopTrigger action (Python: stop\$1trigger)](#aws-glue-api-jobs-trigger-StopTrigger)
+ [DeleteTrigger action (Python: delete\$1trigger)](#aws-glue-api-jobs-trigger-DeleteTrigger)
+ [ListTriggers action (Python: list\$1triggers)](#aws-glue-api-jobs-trigger-ListTriggers)
+ [BatchGetTriggers action (Python: batch\$1get\$1triggers)](#aws-glue-api-jobs-trigger-BatchGetTriggers)

## CreateTrigger action (Python: create\$1trigger)
<a name="aws-glue-api-jobs-trigger-CreateTrigger"></a>

Creates a new trigger.

Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a AWS Glue Connection, AWS Secrets Manager or other secret management mechanism if you intend to keep them within the Job.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the trigger.
+ `WorkflowName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the workflow associated with the trigger.
+ `Type` – *Required:* UTF-8 string (valid values: `SCHEDULED` \$1 `CONDITIONAL` \$1 `ON_DEMAND` \$1 `EVENT`).

  The type of the new trigger.
+ `Schedule` – UTF-8 string.

  A `cron` expression used to specify the schedule (see [Time-Based Schedules for Jobs and Crawlers](https://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). For example, to run something every day at 12:15 UTC, you would specify: `cron(15 12 * * ? *)`.

  This field is required when the trigger type is SCHEDULED.
+ `Predicate` – A [Predicate](#aws-glue-api-jobs-trigger-Predicate) object.

  A predicate to specify when the new trigger should fire.

  This field is required when the trigger type is `CONDITIONAL`.
+ `Actions` – *Required:* An array of [Action](#aws-glue-api-jobs-trigger-Action) objects.

  The actions initiated by this trigger when it fires.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the new trigger.
+ `StartOnCreation` – Boolean.

  Set to `true` to start `SCHEDULED` and `CONDITIONAL` triggers when created. True is not supported for `ON_DEMAND` triggers.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The tags to use with this trigger. You may use tags to limit access to the trigger. For more information about tags in AWS Glue, see [AWS Tags in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the developer guide. 
+ `EventBatchingCondition` – An [EventBatchingCondition](#aws-glue-api-jobs-trigger-EventBatchingCondition) object.

  Batch condition that must be met (specified number of events received or batch time window expired) before EventBridge event trigger fires.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the trigger.

**Errors**
+ `AlreadyExistsException`
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `IdempotentParameterMismatchException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `ConcurrentModificationException`

## StartTrigger action (Python: start\$1trigger)
<a name="aws-glue-api-jobs-trigger-StartTrigger"></a>

Starts an existing trigger. See [Triggering Jobs](https://docs.aws.amazon.com/glue/latest/dg/trigger-job.html) for information about how different types of trigger are started.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the trigger to start.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the trigger that was started.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `ConcurrentRunsExceededException`

## GetTrigger action (Python: get\$1trigger)
<a name="aws-glue-api-jobs-trigger-GetTrigger"></a>

Retrieves the definition of a trigger.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the trigger to retrieve.

**Response**
+ `Trigger` – A [Trigger](#aws-glue-api-jobs-trigger-Trigger) object.

  The requested trigger definition.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetTriggers action (Python: get\$1triggers)
<a name="aws-glue-api-jobs-trigger-GetTriggers"></a>

Gets all the triggers associated with a job.

**Request**
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.
+ `DependentJobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the job to retrieve triggers for. The trigger that can start this job is returned, and if there is no such trigger, all triggers are returned.
+ `MaxResults` – Number (integer), not less than 1 or more than 200.

  The maximum size of the response.

**Response**
+ `Triggers` – An array of [Trigger](#aws-glue-api-jobs-trigger-Trigger) objects.

  A list of triggers for the specified job.
+ `NextToken` – UTF-8 string.

  A continuation token, if not all the requested triggers have yet been returned.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## UpdateTrigger action (Python: update\$1trigger)
<a name="aws-glue-api-jobs-trigger-UpdateTrigger"></a>

Updates a trigger definition.

Job arguments may be logged. Do not pass plaintext secrets as arguments. Retrieve secrets from a AWS Glue Connection, AWS Secrets Manager or other secret management mechanism if you intend to keep them within the Job.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the trigger to update.
+ `TriggerUpdate` – *Required:* A [TriggerUpdate](#aws-glue-api-jobs-trigger-TriggerUpdate) object.

  The new values with which to update the trigger.

**Response**
+ `Trigger` – A [Trigger](#aws-glue-api-jobs-trigger-Trigger) object.

  The resulting trigger definition.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`

## StopTrigger action (Python: stop\$1trigger)
<a name="aws-glue-api-jobs-trigger-StopTrigger"></a>

Stops a specified trigger.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the trigger to stop.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the trigger that was stopped.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`

## DeleteTrigger action (Python: delete\$1trigger)
<a name="aws-glue-api-jobs-trigger-DeleteTrigger"></a>

Deletes a specified trigger. If the trigger is not found, no exception is thrown.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the trigger to delete.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the trigger that was deleted.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`

## ListTriggers action (Python: list\$1triggers)
<a name="aws-glue-api-jobs-trigger-ListTriggers"></a>

Retrieves the names of all trigger resources in this AWS account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names.

This operation takes the optional `Tags` field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.

**Request**
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation request.
+ `DependentJobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

   The name of the job for which to retrieve triggers. The trigger that can start this job is returned. If there is no such trigger, all triggers are returned.
+ `MaxResults` – Number (integer), not less than 1 or more than 200.

  The maximum size of a list to return.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  Specifies to return only these tagged resources.

**Response**
+ `TriggerNames` – An array of UTF-8 strings.

  The names of all triggers in the account, or the triggers with the specified tags.
+ `NextToken` – UTF-8 string.

  A continuation token, if the returned list does not contain the last metric available.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## BatchGetTriggers action (Python: batch\$1get\$1triggers)
<a name="aws-glue-api-jobs-trigger-BatchGetTriggers"></a>

Returns a list of resource metadata for a given list of trigger names. After calling the `ListTriggers` operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags.

**Request**
+ `TriggerNames` – *Required:* An array of UTF-8 strings.

  A list of trigger names, which may be the names returned from the `ListTriggers` operation.

**Response**
+ `Triggers` – An array of [Trigger](#aws-glue-api-jobs-trigger-Trigger) objects.

  A list of trigger definitions.
+ `TriggersNotFound` – An array of UTF-8 strings.

  A list of names of triggers not found.

**Errors**
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`

# Integration APIs in AWS Glue
<a name="aws-glue-api-integrations"></a>

## Data types
<a name="aws-glue-api-integrations-objects"></a>
+ [Integration structure](#aws-glue-api-integrations-Integration)
+ [IntegrationConfig structure](#aws-glue-api-integrations-IntegrationConfig)
+ [IntegrationPartition structure](#aws-glue-api-integrations-IntegrationPartition)
+ [IntegrationError structure](#aws-glue-api-integrations-IntegrationError)
+ [IntegrationFilter structure](#aws-glue-api-integrations-IntegrationFilter)
+ [InboundIntegration structure](#aws-glue-api-integrations-InboundIntegration)
+ [SourceProcessingProperties structure](#aws-glue-api-integrations-SourceProcessingProperties)
+ [TargetProcessingProperties structure](#aws-glue-api-integrations-TargetProcessingProperties)
+ [SourceTableConfig structure](#aws-glue-api-integrations-SourceTableConfig)
+ [TargetTableConfig structure](#aws-glue-api-integrations-TargetTableConfig)

## Integration structure
<a name="aws-glue-api-integrations-Integration"></a>

Describes a zero-ETL integration.

**Fields**
+ `SourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN for the source of the integration.
+ `TargetArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN for the target of the integration.
+ `Description` – UTF-8 string, not more than 1000 bytes long, matching the [Custom string pattern #12](aws-glue-api-common.md#regex_12).

  A description for the integration.
+ `IntegrationName` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  A unique name for the integration.
+ `IntegrationArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The Amazon Resource Name (ARN) for the integration.
+ `KmsKeyId` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The ARN of a KMS key used for encrypting the channel.
+ `AdditionalEncryptionContext` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  An optional set of non-secret key–value pairs that contains additional contextual information for encryption. This can only be provided if `KMSKeyId` is provided.
+ `Tags` – An array of [Tag](aws-glue-api-common.md#aws-glue-api-common-Tag) objects.

  Metadata assigned to the resource consisting of a list of key-value pairs.
+ `Status` – *Required:* UTF-8 string (valid values: `CREATING` \$1 `ACTIVE` \$1 `MODIFYING` \$1 `FAILED` \$1 `DELETING` \$1 `SYNCING` \$1 `NEEDS_ATTENTION`).

  The possible statuses are:
  + CREATING: The integration is being created.
  + ACTIVE: The integration creation succeeds.
  + MODIFYING: The integration is being modified.
  + FAILED: The integration creation fails. 
  + DELETING: The integration is deleted.
  + SYNCING: The integration is synchronizing.
  + NEEDS\$1ATTENTION: The integration needs attention, such as synchronization.
+ `CreateTime` – *Required:* Timestamp.

  The time that the integration was created, in UTC.
+ `IntegrationConfig` – An [IntegrationConfig](#aws-glue-api-integrations-IntegrationConfig) object.

  Properties associated with the integration.
+ `Errors` – An array of [IntegrationError](#aws-glue-api-integrations-IntegrationError) objects.

  A list of errors associated with the integration.
+ `DataFilter` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  Selects source tables for the integration using Maxwell filter syntax.

## IntegrationConfig structure
<a name="aws-glue-api-integrations-IntegrationConfig"></a>

Properties associated with the integration.

**Fields**
+ `RefreshInterval` – UTF-8 string, not less than 1 or more than 128 bytes long.

  Specifies the frequency at which CDC (Change Data Capture) pulls or incremental loads should occur. This parameter provides flexibility to align the refresh rate with your specific data update patterns, system load considerations, and performance optimization goals. Time increment can be set from 15 minutes to 8640 minutes (six days).
+ `SourceProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

   A collection of key-value pairs that specify additional properties for the integration source. These properties provide configuration options that can be used to customize the behavior of the ODB source during data integration operations. 
+ `ContinuousSync` – Boolean.

  Enables continuous synchronization for on-demand data extractions from: 1) SaaS applications to AWS data services like Amazon Redshift and Amazon S3, and 2) DynamoDB to Amazon S3.

## IntegrationPartition structure
<a name="aws-glue-api-integrations-IntegrationPartition"></a>

A structure that describes how data is partitioned on the target.

**Fields**
+ `FieldName` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The field name used to partition data on the target. Avoid using columns that have unique values for each row (for example, 'LastModifiedTimestamp', 'SystemModTimeStamp') as the partition column. These columns are not suitable for partitioning because they create a large number of small partitions, which can lead to performance issues.
+ `FunctionSpec` – UTF-8 string, not less than 1 or more than 128 bytes long.

  Specifies the function used to partition data on the target. The accepted values for this parameter are:
  + `identity` - Uses source values directly without transformation
  + `year` - Extracts the year from timestamp values (e.g., 2023)
  + `month` - Extracts the month from timestamp values (e.g., 2023-01)
  + `day` - Extracts the day from timestamp values (e.g., 2023-01-15)
  + `hour` - Extracts the hour from timestamp values (e.g., 2023-01-15-14)
+ `ConversionSpec` – UTF-8 string, not less than 1 or more than 128 bytes long.

  Specifies the timestamp format of the source data. Valid values are:
  + `epoch_sec` - Unix epoch timestamp in seconds
  + `epoch_milli` - Unix epoch timestamp in milliseconds
  + `iso` - ISO 8601 formatted timestamp
**Note**  
 Only specify `ConversionSpec` when using timestamp-based partition functions (year, month, day, or hour). AWS Glue Zero-ETL uses this parameter to correctly transform source data into timestamp format before partitioning.   
 Do not use high-cardinality columns with the `identity` partition function. High-cardinality columns include:   
Primary keys
Timestamp fields (such as `LastModifiedTimestamp`, `CreatedDate`)
System-generated timestamps
 Using high-cardinality columns with identity partitioning creates many small partitions, which can significantly degrade ingestion performance. 

## IntegrationError structure
<a name="aws-glue-api-integrations-IntegrationError"></a>

An error associated with a zero-ETL integration.

**Fields**
+ `ErrorCode` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The code associated with this error.
+ `ErrorMessage` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  A message describing the error.

## IntegrationFilter structure
<a name="aws-glue-api-integrations-IntegrationFilter"></a>

A filter that can be used when invoking a `DescribeIntegrations` request.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The name of the filter.
+ `Values` – An array of UTF-8 strings.

  A list of filter values.

## InboundIntegration structure
<a name="aws-glue-api-integrations-InboundIntegration"></a>

A structure for an integration that writes data into a resource.

**Fields**
+ `SourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN of the source resource for the integration.
+ `TargetArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN of the target resource for the integration.
+ `IntegrationArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN of the zero-ETL integration.
+ `Status` – *Required:* UTF-8 string (valid values: `CREATING` \$1 `ACTIVE` \$1 `MODIFYING` \$1 `FAILED` \$1 `DELETING` \$1 `SYNCING` \$1 `NEEDS_ATTENTION`).

  The possible statuses are:
  + CREATING: The integration is being created.
  + ACTIVE: The integration creation succeeds.
  + MODIFYING: The integration is being modified.
  + FAILED: The integration creation fails. 
  + DELETING: The integration is deleted.
  + SYNCING: The integration is synchronizing.
  + NEEDS\$1ATTENTION: The integration needs attention, such as synchronization.
+ `CreateTime` – *Required:* Timestamp.

  The time that the integration was created, in UTC.
+ `IntegrationConfig` – An [IntegrationConfig](#aws-glue-api-integrations-IntegrationConfig) object.

  Properties associated with the integration.
+ `Errors` – An array of [IntegrationError](#aws-glue-api-integrations-IntegrationError) objects.

  A list of errors associated with the integration.

## SourceProcessingProperties structure
<a name="aws-glue-api-integrations-SourceProcessingProperties"></a>

The resource properties associated with the integration source.

**Fields**
+ `RoleArn` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The IAM role to access the AWS Glue connection.

## TargetProcessingProperties structure
<a name="aws-glue-api-integrations-TargetProcessingProperties"></a>

The resource properties associated with the integration target.

**Fields**
+ `RoleArn` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The IAM role to access the AWS Glue database.
+ `KmsArn` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The ARN of the KMS key used for encryption.
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The AWS Glue network connection to configure the AWS Glue job running in the customer VPC.
+ `EventBusArn` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The ARN of an Eventbridge event bus to receive the integration status notification.

## SourceTableConfig structure
<a name="aws-glue-api-integrations-SourceTableConfig"></a>

Properties used by the source leg to process data from the source.

**Fields**
+ `Fields` – An array of UTF-8 strings.

  A list of fields used for column-level filtering. Currently unsupported.
+ `FilterPredicate` – UTF-8 string, not less than 1 or more than 128 bytes long.

  A condition clause used for row-level filtering. Currently unsupported.
+ `PrimaryKey` – An array of UTF-8 strings.

  Provide the primary key set for this table. Currently supported specifically for SAP `EntityOf` entities upon request. Contact AWS Support to make this feature available.
+ `RecordUpdateField` – UTF-8 string, not less than 1 or more than 128 bytes long.

  Incremental pull timestamp-based field. Currently unsupported.

## TargetTableConfig structure
<a name="aws-glue-api-integrations-TargetTableConfig"></a>

Properties used by the target leg to partition the data on the target.

**Fields**
+ `UnnestSpec` – UTF-8 string (valid values: `TOPLEVEL` \$1 `FULL` \$1 `NOUNNEST`).

  Specifies how nested objects are flattened to top-level elements. Valid values are: "TOPLEVEL", "FULL", or "NOUNNEST".
+ `PartitionSpec` – An array of [IntegrationPartition](#aws-glue-api-integrations-IntegrationPartition) objects.

  Determines the file layout on the target.
+ `TargetTableName` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The optional name of a target table.

## Operations
<a name="aws-glue-api-integrations-actions"></a>
+ [CreateIntegration action (Python: create\$1integration)](#aws-glue-api-integrations-CreateIntegration)
+ [ModifyIntegration action (Python: modify\$1integration)](#aws-glue-api-integrations-ModifyIntegration)
+ [DescribeIntegrations action (Python: describe\$1integrations)](#aws-glue-api-integrations-DescribeIntegrations)
+ [DeleteIntegration action (Python: delete\$1integration)](#aws-glue-api-integrations-DeleteIntegration)
+ [DescribeInboundIntegrations action (Python: describe\$1inbound\$1integrations)](#aws-glue-api-integrations-DescribeInboundIntegrations)
+ [CreateIntegrationTableProperties action (Python: create\$1integration\$1table\$1properties)](#aws-glue-api-integrations-CreateIntegrationTableProperties)
+ [UpdateIntegrationTableProperties action (Python: update\$1integration\$1table\$1properties)](#aws-glue-api-integrations-UpdateIntegrationTableProperties)
+ [GetIntegrationTableProperties action (Python: get\$1integration\$1table\$1properties)](#aws-glue-api-integrations-GetIntegrationTableProperties)
+ [DeleteIntegrationTableProperties action (Python: delete\$1integration\$1table\$1properties)](#aws-glue-api-integrations-DeleteIntegrationTableProperties)
+ [CreateIntegrationResourceProperty action (Python: create\$1integration\$1resource\$1property)](#aws-glue-api-integrations-CreateIntegrationResourceProperty)
+ [UpdateIntegrationResourceProperty action (Python: update\$1integration\$1resource\$1property)](#aws-glue-api-integrations-UpdateIntegrationResourceProperty)
+ [GetIntegrationResourceProperty action (Python: get\$1integration\$1resource\$1property)](#aws-glue-api-integrations-GetIntegrationResourceProperty)
+ [UntagResource action (Python: untag\$1resource)](#aws-glue-api-integrations-UntagResource)
+ [ListTagsForResource action (Python: list\$1tags\$1for\$1resource)](#aws-glue-api-integrations-ListTagsForResource)

## CreateIntegration action (Python: create\$1integration)
<a name="aws-glue-api-integrations-CreateIntegration"></a>

Creates a Zero-ETL integration in the caller's account between two resources with Amazon Resource Names (ARNs): the `SourceArn` and `TargetArn`.

**Request**
+ `IntegrationName` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  A unique name for an integration in AWS Glue.
+ `SourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN of the source resource for the integration.
+ `TargetArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN of the target resource for the integration.
+ `Description` – UTF-8 string, not more than 1000 bytes long, matching the [Custom string pattern #12](aws-glue-api-common.md#regex_12).

  A description of the integration.
+ `DataFilter` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  Selects source tables for the integration using Maxwell filter syntax.
+ `KmsKeyId` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The ARN of a KMS key used for encrypting the channel.
+ `AdditionalEncryptionContext` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  An optional set of non-secret key–value pairs that contains additional contextual information for encryption. This can only be provided if `KMSKeyId` is provided.
+ `Tags` – An array of [Tag](aws-glue-api-common.md#aws-glue-api-common-Tag) objects.

  Metadata assigned to the resource consisting of a list of key-value pairs.
+ `IntegrationConfig` – An [IntegrationConfig](#aws-glue-api-integrations-IntegrationConfig) object.

  The configuration settings.

**Response**
+ `SourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN of the source resource for the integration.
+ `TargetArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN of the target resource for the integration.
+ `IntegrationName` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  A unique name for an integration in AWS Glue.
+ `Description` – UTF-8 string, not more than 1000 bytes long, matching the [Custom string pattern #12](aws-glue-api-common.md#regex_12).

  A description of the integration.
+ `IntegrationArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The Amazon Resource Name (ARN) for the created integration.
+ `KmsKeyId` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The ARN of a KMS key used for encrypting the channel.
+ `AdditionalEncryptionContext` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  An optional set of non-secret key–value pairs that contains additional contextual information for encryption.
+ `Tags` – An array of [Tag](aws-glue-api-common.md#aws-glue-api-common-Tag) objects.

  Metadata assigned to the resource consisting of a list of key-value pairs.
+ `Status` – *Required:* UTF-8 string (valid values: `CREATING` \$1 `ACTIVE` \$1 `MODIFYING` \$1 `FAILED` \$1 `DELETING` \$1 `SYNCING` \$1 `NEEDS_ATTENTION`).

  The status of the integration being created.

  The possible statuses are:
  + CREATING: The integration is being created.
  + ACTIVE: The integration creation succeeds.
  + MODIFYING: The integration is being modified.
  + FAILED: The integration creation fails. 
  + DELETING: The integration is deleted.
  + SYNCING: The integration is synchronizing.
  + NEEDS\$1ATTENTION: The integration needs attention, such as synchronization.
+ `CreateTime` – *Required:* Timestamp.

  The time when the integration was created, in UTC.
+ `Errors` – An array of [IntegrationError](#aws-glue-api-integrations-IntegrationError) objects.

  A list of errors associated with the integration creation.
+ `DataFilter` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  Selects source tables for the integration using Maxwell filter syntax.
+ `IntegrationConfig` – An [IntegrationConfig](#aws-glue-api-integrations-IntegrationConfig) object.

  The configuration settings.

**Errors**
+ `ValidationException`
+ `AccessDeniedException`
+ `ResourceNotFoundException`
+ `InternalServerException`
+ `IntegrationConflictOperationFault`
+ `IntegrationQuotaExceededFault`
+ `KMSKeyNotAccessibleFault`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `ConflictException`
+ `ResourceNumberLimitExceededException`
+ `InvalidInputException`

## ModifyIntegration action (Python: modify\$1integration)
<a name="aws-glue-api-integrations-ModifyIntegration"></a>

Modifies a Zero-ETL integration in the caller's account.

**Request**
+ `IntegrationIdentifier` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The Amazon Resource Name (ARN) for the integration.
+ `Description` – UTF-8 string, not more than 1000 bytes long, matching the [Custom string pattern #12](aws-glue-api-common.md#regex_12).

  A description of the integration.
+ `DataFilter` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  Selects source tables for the integration using Maxwell filter syntax.
+ `IntegrationConfig` – An [IntegrationConfig](#aws-glue-api-integrations-IntegrationConfig) object.

  The configuration settings for the integration. Currently, only the RefreshInterval can be modified. 
+ `IntegrationName` – UTF-8 string, not less than 1 or more than 128 bytes long.

  A unique name for an integration in AWS Glue.

**Response**
+ `SourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN of the source for the integration.
+ `TargetArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN of the target for the integration.
+ `IntegrationName` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  A unique name for an integration in AWS Glue.
+ `Description` – UTF-8 string, not more than 1000 bytes long, matching the [Custom string pattern #12](aws-glue-api-common.md#regex_12).

  A description of the integration.
+ `IntegrationArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The Amazon Resource Name (ARN) for the integration.
+ `KmsKeyId` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The ARN of a KMS key used for encrypting the channel.
+ `AdditionalEncryptionContext` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  An optional set of non-secret key–value pairs that contains additional contextual information for encryption.
+ `Tags` – An array of [Tag](aws-glue-api-common.md#aws-glue-api-common-Tag) objects.

  Metadata assigned to the resource consisting of a list of key-value pairs.
+ `Status` – *Required:* UTF-8 string (valid values: `CREATING` \$1 `ACTIVE` \$1 `MODIFYING` \$1 `FAILED` \$1 `DELETING` \$1 `SYNCING` \$1 `NEEDS_ATTENTION`).

  The status of the integration being modified.

  The possible statuses are:
  + CREATING: The integration is being created.
  + ACTIVE: The integration creation succeeds.
  + MODIFYING: The integration is being modified.
  + FAILED: The integration creation fails. 
  + DELETING: The integration is deleted.
  + SYNCING: The integration is synchronizing.
  + NEEDS\$1ATTENTION: The integration needs attention, such as synchronization.
+ `CreateTime` – *Required:* Timestamp.

  The time when the integration was created, in UTC.
+ `Errors` – An array of [IntegrationError](#aws-glue-api-integrations-IntegrationError) objects.

  A list of errors associated with the integration modification.
+ `DataFilter` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  Selects source tables for the integration using Maxwell filter syntax.
+ `IntegrationConfig` – An [IntegrationConfig](#aws-glue-api-integrations-IntegrationConfig) object.

  The updated configuration settings for the integration.

**Errors**
+ `ValidationException`
+ `AccessDeniedException`
+ `InternalServerException`
+ `IntegrationNotFoundFault`
+ `IntegrationConflictOperationFault`
+ `InvalidIntegrationStateFault`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `ConflictException`
+ `InvalidStateException`
+ `InvalidInputException`

## DescribeIntegrations action (Python: describe\$1integrations)
<a name="aws-glue-api-integrations-DescribeIntegrations"></a>

The API is used to retrieve a list of integrations.

**Request**
+ `IntegrationIdentifier` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The Amazon Resource Name (ARN) for the integration.
+ `Marker` – UTF-8 string, not less than 1 or more than 128 bytes long.

  A value that indicates the starting point for the next set of response records in a subsequent request.
+ `MaxRecords` – Number (integer).

  The total number of items to return in the output.
+ `Filters` – An array of [IntegrationFilter](#aws-glue-api-integrations-IntegrationFilter) objects.

  A list of key and values, to filter down the results. Supported keys are "Status", "IntegrationName", and "SourceArn". IntegrationName is limited to only one value.

**Response**
+ `Integrations` – An array of [Integration](#aws-glue-api-integrations-Integration) objects.

  A list of zero-ETL integrations.
+ `Marker` – UTF-8 string, not less than 1 or more than 128 bytes long.

  A value that indicates the starting point for the next set of response records in a subsequent request.

**Errors**
+ `ValidationException`
+ `AccessDeniedException`
+ `InternalServerException`
+ `IntegrationNotFoundFault`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `InvalidInputException`

## DeleteIntegration action (Python: delete\$1integration)
<a name="aws-glue-api-integrations-DeleteIntegration"></a>

Deletes the specified Zero-ETL integration.

**Request**
+ `IntegrationIdentifier` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The Amazon Resource Name (ARN) for the integration.

**Response**
+ `SourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN of the source for the integration.
+ `TargetArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The ARN of the target for the integration.
+ `IntegrationName` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  A unique name for an integration in AWS Glue.
+ `Description` – UTF-8 string, not more than 1000 bytes long, matching the [Custom string pattern #12](aws-glue-api-common.md#regex_12).

  A description of the integration.
+ `IntegrationArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The Amazon Resource Name (ARN) for the integration.
+ `KmsKeyId` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  The ARN of a KMS key used for encrypting the channel.
+ `AdditionalEncryptionContext` – A map array of key-value pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  An optional set of non-secret key–value pairs that contains additional contextual information for encryption.
+ `Tags` – An array of [Tag](aws-glue-api-common.md#aws-glue-api-common-Tag) objects.

  Metadata assigned to the resource consisting of a list of key-value pairs.
+ `Status` – *Required:* UTF-8 string (valid values: `CREATING` \$1 `ACTIVE` \$1 `MODIFYING` \$1 `FAILED` \$1 `DELETING` \$1 `SYNCING` \$1 `NEEDS_ATTENTION`).

  The status of the integration being deleted.

  The possible statuses are:
  + CREATING: The integration is being created.
  + ACTIVE: The integration creation succeeds.
  + MODIFYING: The integration is being modified.
  + FAILED: The integration creation fails. 
  + DELETING: The integration is deleted.
  + SYNCING: The integration is synchronizing.
  + NEEDS\$1ATTENTION: The integration needs attention, such as synchronization.
+ `CreateTime` – *Required:* Timestamp.

  The time when the integration was created, in UTC.
+ `Errors` – An array of [IntegrationError](#aws-glue-api-integrations-IntegrationError) objects.

  A list of errors associated with the integration.
+ `DataFilter` – UTF-8 string, not less than 1 or more than 2048 bytes long.

  Selects source tables for the integration using Maxwell filter syntax.

**Errors**
+ `ValidationException`
+ `AccessDeniedException`
+ `InternalServerException`
+ `IntegrationNotFoundFault`
+ `IntegrationConflictOperationFault`
+ `InvalidIntegrationStateFault`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `ConflictException`
+ `InvalidStateException`
+ `InvalidInputException`

## DescribeInboundIntegrations action (Python: describe\$1inbound\$1integrations)
<a name="aws-glue-api-integrations-DescribeInboundIntegrations"></a>

Returns a list of inbound integrations for the specified integration.

**Request**
+ `IntegrationArn` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The Amazon Resource Name (ARN) of the integration.
+ `Marker` – UTF-8 string, not less than 1 or more than 128 bytes long.

  A token to specify where to start paginating. This is the marker from a previously truncated response.
+ `MaxRecords` – Number (integer).

  The total number of items to return in the output.
+ `TargetArn` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The Amazon Resource Name (ARN) of the target resource in the integration.

**Response**
+ `InboundIntegrations` – An array of [InboundIntegration](#aws-glue-api-integrations-InboundIntegration) objects.

  A list of inbound integrations.
+ `Marker` – UTF-8 string, not less than 1 or more than 128 bytes long.

  A value that indicates the starting point for the next set of response records in a subsequent request.

**Errors**
+ `ValidationException`
+ `AccessDeniedException`
+ `InternalServerException`
+ `IntegrationNotFoundFault`
+ `TargetResourceNotFound`
+ `OperationNotSupportedException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `InvalidInputException`

## CreateIntegrationTableProperties action (Python: create\$1integration\$1table\$1properties)
<a name="aws-glue-api-integrations-CreateIntegrationTableProperties"></a>

This API is used to provide optional override properties for the the tables that need to be replicated. These properties can include properties for filtering and partitioning for the source and target tables. To set both source and target properties the same API need to be invoked with the AWS Glue connection ARN as `ResourceArn` with `SourceTableConfig`, and the AWS Glue database ARN as `ResourceArn` with `TargetTableConfig` respectively.

**Request**
+ `ResourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The Amazon Resource Name (ARN) of the target table for which to create integration table properties. Currently, this API only supports creating integration table properties for target tables, and the provided ARN should be the ARN of the target table in the AWS Glue Data Catalog. Support for creating integration table properties for source connections (using the connection ARN) is not yet implemented and will be added in a future release. 
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The name of the table to be replicated.
+ `SourceTableConfig` – A [SourceTableConfig](#aws-glue-api-integrations-SourceTableConfig) object.

  A structure for the source table configuration. See the `SourceTableConfig` structure to see list of supported source properties.
+ `TargetTableConfig` – A [TargetTableConfig](#aws-glue-api-integrations-TargetTableConfig) object.

  A structure for the target table configuration.

**Response**
+ *No Response parameters.*

**Errors**
+ `ValidationException`
+ `AccessDeniedException`
+ `ResourceNotFoundException`
+ `InternalServerException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `InvalidInputException`

## UpdateIntegrationTableProperties action (Python: update\$1integration\$1table\$1properties)
<a name="aws-glue-api-integrations-UpdateIntegrationTableProperties"></a>

This API is used to provide optional override properties for the tables that need to be replicated. These properties can include properties for filtering and partitioning for the source and target tables. To set both source and target properties the same API need to be invoked with the AWS Glue connection ARN as `ResourceArn` with `SourceTableConfig`, and the AWS Glue database ARN as `ResourceArn` with `TargetTableConfig` respectively.

The override will be reflected across all the integrations using same `ResourceArn` and source table.

**Request**
+ `ResourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The connection ARN of the source, or the database ARN of the target.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The name of the table to be replicated.
+ `SourceTableConfig` – A [SourceTableConfig](#aws-glue-api-integrations-SourceTableConfig) object.

  A structure for the source table configuration.
+ `TargetTableConfig` – A [TargetTableConfig](#aws-glue-api-integrations-TargetTableConfig) object.

  A structure for the target table configuration.

**Response**
+ *No Response parameters.*

**Errors**
+ `ValidationException`
+ `AccessDeniedException`
+ `ResourceNotFoundException`
+ `InternalServerException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `InvalidInputException`

## GetIntegrationTableProperties action (Python: get\$1integration\$1table\$1properties)
<a name="aws-glue-api-integrations-GetIntegrationTableProperties"></a>

This API is used to retrieve optional override properties for the tables that need to be replicated. These properties can include properties for filtering and partition for source and target tables.

**Request**
+ `ResourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The Amazon Resource Name (ARN) of the target table for which to retrieve integration table properties. Currently, this API only supports retrieving properties for target tables, and the provided ARN should be the ARN of the target table in the AWS Glue Data Catalog. Support for retrieving integration table properties for source connections (using the connection ARN) is not yet implemented and will be added in a future release. 
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The name of the table to be replicated.

**Response**
+ `ResourceArn` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The Amazon Resource Name (ARN) of the target table for which to retrieve integration table properties. Currently, this API only supports retrieving properties for target tables, and the provided ARN should be the ARN of the target table in the AWS Glue Data Catalog. Support for retrieving integration table properties for source connections (using the connection ARN) is not yet implemented and will be added in a future release. 
+ `TableName` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The name of the table to be replicated.
+ `SourceTableConfig` – A [SourceTableConfig](#aws-glue-api-integrations-SourceTableConfig) object.

  A structure for the source table configuration.
+ `TargetTableConfig` – A [TargetTableConfig](#aws-glue-api-integrations-TargetTableConfig) object.

  A structure for the target table configuration.

**Errors**
+ `ValidationException`
+ `AccessDeniedException`
+ `ResourceNotFoundException`
+ `InternalServerException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `InvalidInputException`

## DeleteIntegrationTableProperties action (Python: delete\$1integration\$1table\$1properties)
<a name="aws-glue-api-integrations-DeleteIntegrationTableProperties"></a>

Deletes the table properties that have been created for the tables that need to be replicated.

**Request**
+ `ResourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The connection ARN of the source, or the database ARN of the target.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The name of the table to be replicated.

**Response**
+ *No Response parameters.*

**Errors**
+ `ValidationException`
+ `AccessDeniedException`
+ `ResourceNotFoundException`
+ `InternalServerException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `InvalidInputException`

## CreateIntegrationResourceProperty action (Python: create\$1integration\$1resource\$1property)
<a name="aws-glue-api-integrations-CreateIntegrationResourceProperty"></a>

This API can be used for setting up the `ResourceProperty` of the AWS Glue connection (for the source) or AWS Glue database ARN (for the target). These properties can include the role to access the connection or database. To set both source and target properties the same API needs to be invoked with the AWS Glue connection ARN as `ResourceArn` with `SourceProcessingProperties` and the AWS Glue database ARN as `ResourceArn` with `TargetProcessingProperties` respectively.

**Request**
+ `ResourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The connection ARN of the source, or the database ARN of the target.
+ `SourceProcessingProperties` – A [SourceProcessingProperties](#aws-glue-api-integrations-SourceProcessingProperties) object.

  The resource properties associated with the integration source.
+ `TargetProcessingProperties` – A [TargetProcessingProperties](#aws-glue-api-integrations-TargetProcessingProperties) object.

  The resource properties associated with the integration target.

**Response**
+ `ResourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The connection ARN of the source, or the database ARN of the target.
+ `SourceProcessingProperties` – A [SourceProcessingProperties](#aws-glue-api-integrations-SourceProcessingProperties) object.

  The resource properties associated with the integration source.
+ `TargetProcessingProperties` – A [TargetProcessingProperties](#aws-glue-api-integrations-TargetProcessingProperties) object.

  The resource properties associated with the integration target.

**Errors**
+ `ValidationException`
+ `AccessDeniedException`
+ `ConflictException`
+ `InternalServerException`
+ `ResourceNotFoundException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `InvalidInputException`

## UpdateIntegrationResourceProperty action (Python: update\$1integration\$1resource\$1property)
<a name="aws-glue-api-integrations-UpdateIntegrationResourceProperty"></a>

This API can be used for updating the `ResourceProperty` of the AWS Glue connection (for the source) or AWS Glue database ARN (for the target). These properties can include the role to access the connection or database. Since the same resource can be used across multiple integrations, updating resource properties will impact all the integrations using it.

**Request**
+ `ResourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The connection ARN of the source, or the database ARN of the target.
+ `SourceProcessingProperties` – A [SourceProcessingProperties](#aws-glue-api-integrations-SourceProcessingProperties) object.

  The resource properties associated with the integration source.
+ `TargetProcessingProperties` – A [TargetProcessingProperties](#aws-glue-api-integrations-TargetProcessingProperties) object.

  The resource properties associated with the integration target.

**Response**
+ `ResourceArn` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The connection ARN of the source, or the database ARN of the target.
+ `SourceProcessingProperties` – A [SourceProcessingProperties](#aws-glue-api-integrations-SourceProcessingProperties) object.

  The resource properties associated with the integration source.
+ `TargetProcessingProperties` – A [TargetProcessingProperties](#aws-glue-api-integrations-TargetProcessingProperties) object.

  The resource properties associated with the integration target.

**Errors**
+ `ValidationException`
+ `AccessDeniedException`
+ `InternalServerException`
+ `ResourceNotFoundException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `InvalidInputException`

## GetIntegrationResourceProperty action (Python: get\$1integration\$1resource\$1property)
<a name="aws-glue-api-integrations-GetIntegrationResourceProperty"></a>

This API is used for fetching the `ResourceProperty` of the AWS Glue connection (for the source) or AWS Glue database ARN (for the target)

**Request**
+ `ResourceArn` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long.

  The connection ARN of the source, or the database ARN of the target.

**Response**
+ `ResourceArn` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The connection ARN of the source, or the database ARN of the target.
+ `SourceProcessingProperties` – A [SourceProcessingProperties](#aws-glue-api-integrations-SourceProcessingProperties) object.

  The resource properties associated with the integration source.
+ `TargetProcessingProperties` – A [TargetProcessingProperties](#aws-glue-api-integrations-TargetProcessingProperties) object.

  The resource properties associated with the integration target.

**Errors**
+ `ValidationException`
+ `AccessDeniedException`
+ `InternalServerException`
+ `ResourceNotFoundException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `InvalidInputException`

## UntagResource action (Python: untag\$1resource)
<a name="aws-glue-api-integrations-UntagResource"></a>

Removes the specified tags from an integration resource.

**Request**
+ `ResourceArn` – *Required:* UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) for the integration resource.
+ `TagsToRemove` – *Required:* An array of UTF-8 strings, not more than 50 strings.

  A list of metadata tags to be removed from the resource.

**Response**
+ *No Response parameters.*

**Errors**
+ `ResourceNotFoundException`

## ListTagsForResource action (Python: list\$1tags\$1for\$1resource)
<a name="aws-glue-api-integrations-ListTagsForResource"></a>

Lists the metadata tags assigned to the specified resource.

**Request**
+ `ResourceARN` – *Required:* UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The resource ARN for the resource.

**Response**
+ `Tags` – An array of [Tag](aws-glue-api-common.md#aws-glue-api-common-Tag) objects, not more than 10 structures.

  A list of tags.

**Errors**
+ `ResourceNotFoundException`

## Exceptions
<a name="aws-glue-api-integrations-exceptions"></a>
+ [ResourceNotFoundException structure](#aws-glue-api-integrations-ResourceNotFoundException)
+ [InternalServerException structure](#aws-glue-api-integrations-InternalServerException)
+ [IntegrationAlreadyExistsFault structure](#aws-glue-api-integrations-IntegrationAlreadyExistsFault)
+ [IntegrationConflictOperationFault structure](#aws-glue-api-integrations-IntegrationConflictOperationFault)
+ [IntegrationQuotaExceededFault structure](#aws-glue-api-integrations-IntegrationQuotaExceededFault)
+ [KMSKeyNotAccessibleFault structure](#aws-glue-api-integrations-KMSKeyNotAccessibleFault)
+ [IntegrationNotFoundFault structure](#aws-glue-api-integrations-IntegrationNotFoundFault)
+ [TargetResourceNotFound structure](#aws-glue-api-integrations-TargetResourceNotFound)
+ [InvalidIntegrationStateFault structure](#aws-glue-api-integrations-InvalidIntegrationStateFault)

## ResourceNotFoundException structure
<a name="aws-glue-api-integrations-ResourceNotFoundException"></a>

The resource could not be found.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## InternalServerException structure
<a name="aws-glue-api-integrations-InternalServerException"></a>

An internal server error occurred.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## IntegrationAlreadyExistsFault structure
<a name="aws-glue-api-integrations-IntegrationAlreadyExistsFault"></a>

The specified integration already exists.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## IntegrationConflictOperationFault structure
<a name="aws-glue-api-integrations-IntegrationConflictOperationFault"></a>

The requested operation conflicts with another operation.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## IntegrationQuotaExceededFault structure
<a name="aws-glue-api-integrations-IntegrationQuotaExceededFault"></a>

The data processed through your integration exceeded your quota.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## KMSKeyNotAccessibleFault structure
<a name="aws-glue-api-integrations-KMSKeyNotAccessibleFault"></a>

The KMS key specified is not accessible.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## IntegrationNotFoundFault structure
<a name="aws-glue-api-integrations-IntegrationNotFoundFault"></a>

The specified integration could not be found.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## TargetResourceNotFound structure
<a name="aws-glue-api-integrations-TargetResourceNotFound"></a>

The target resource could not be found.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## InvalidIntegrationStateFault structure
<a name="aws-glue-api-integrations-InvalidIntegrationStateFault"></a>

The integration is in an invalid state.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

# Interactive sessions API
<a name="aws-glue-api-interactive-sessions"></a>

The interactive sessions API describes the AWS Glue API related to using AWS Glue interactive sessions to build and test extract, transform, and load (ETL) scripts for data integration.

## Data types
<a name="aws-glue-api-interactive-sessions-objects"></a>
+ [Session structure](#aws-glue-api-interactive-sessions-Session)
+ [SessionCommand structure](#aws-glue-api-interactive-sessions-SessionCommand)
+ [Statement structure](#aws-glue-api-interactive-sessions-Statement)
+ [StatementOutput structure](#aws-glue-api-interactive-sessions-StatementOutput)
+ [StatementOutputData structure](#aws-glue-api-interactive-sessions-StatementOutputData)
+ [ConnectionsList structure](#aws-glue-api-interactive-sessions-ConnectionsList)

## Session structure
<a name="aws-glue-api-interactive-sessions-Session"></a>

The period in which a remote Spark runtime environment is running.

**Fields**
+ `Id` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the session.
+ `CreatedOn` – Timestamp.

  The time and date when the session was created.
+ `Status` – UTF-8 string (valid values: `PROVISIONING` \$1 `READY` \$1 `FAILED` \$1 `TIMEOUT` \$1 `STOPPING` \$1 `STOPPED`).

  The session status. 
+ `ErrorMessage` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The error message displayed during the session.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The description of the session.
+ `Role` – UTF-8 string, not less than 20 or more than 2048 bytes long, matching the [Custom string pattern #30](aws-glue-api-common.md#regex_30).

  The name or Amazon Resource Name (ARN) of the IAM role associated with the Session.
+ `Command` – A [SessionCommand](#aws-glue-api-interactive-sessions-SessionCommand) object.

  The command object.See SessionCommand.
+ `DefaultArguments` – A map array of key-value pairs, not more than 75 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  Each value is a UTF-8 string, not more than 4096 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A map array of key-value pairs. Max is 75 pairs. 
+ `Connections` – A [ConnectionsList](#aws-glue-api-interactive-sessions-ConnectionsList) object.

  The number of connections used for the session.
+ `Progress` – Number (double).

  The code execution progress of the session.
+ `MaxCapacity` – Number (double).

  The number of AWS Glue data processing units (DPUs) that can be allocated when the job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB memory. 
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the SecurityConfiguration structure to be used with the session.
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  The AWS Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The GlueVersion must be greater than 2.0.
+ `DataAccessId` – UTF-8 string, not less than 1 or more than 36 bytes long.

  The data access ID of the session.
+ `PartitionId` – UTF-8 string, not less than 1 or more than 36 bytes long.

  The partition ID of the sesion.
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `WorkerType` to use for the session.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.025X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated when a session runs. Accepts a value of `G.1X`, `G.2X`, `G.4X`, or `G.8X` for Spark sessions. Accepts the value `Z.2X` for Ray sessions.
+ `CompletedOn` – Timestamp.

  The date and time that this session is completed.
+ `ExecutionTime` – Number (double).

  The total time the session ran for.
+ `DPUSeconds` – Number (double).

  The DPUs consumed by the session (formula: ExecutionTime \$1 MaxCapacity).
+ `IdleTimeout` – Number (integer).

  The number of minutes when idle before the session times out.
+ `ProfileName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of an AWS Glue usage profile associated with the session.

## SessionCommand structure
<a name="aws-glue-api-interactive-sessions-SessionCommand"></a>

The `SessionCommand` that runs the job.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Specifies the name of the SessionCommand. Can be 'glueetl' or 'gluestreaming'.
+ `PythonVersion` – UTF-8 string, matching the [Custom string pattern #49](aws-glue-api-common.md#regex_49).

  Specifies the Python version. The Python version indicates the version supported for jobs of type Spark.

## Statement structure
<a name="aws-glue-api-interactive-sessions-Statement"></a>

The statement or request for a particular action to occur in a session.

**Fields**
+ `Id` – Number (integer).

  The ID of the statement.
+ `Code` – UTF-8 string.

  The execution code of the statement.
+ `State` – UTF-8 string (valid values: `WAITING` \$1 `RUNNING` \$1 `AVAILABLE` \$1 `CANCELLING` \$1 `CANCELLED` \$1 `ERROR`).

  The state while request is actioned.
+ `Output` – A [StatementOutput](#aws-glue-api-interactive-sessions-StatementOutput) object.

  The output in JSON.
+ `Progress` – Number (double).

  The code execution progress.
+ `StartedOn` – Number (long).

  The unix time and date that the job definition was started.
+ `CompletedOn` – Number (long).

  The unix time and date that the job definition was completed.

## StatementOutput structure
<a name="aws-glue-api-interactive-sessions-StatementOutput"></a>

The code execution output in JSON format.

**Fields**
+ `Data` – A [StatementOutputData](#aws-glue-api-interactive-sessions-StatementOutputData) object.

  The code execution output.
+ `ExecutionCount` – Number (integer).

  The execution count of the output.
+ `Status` – UTF-8 string (valid values: `WAITING` \$1 `RUNNING` \$1 `AVAILABLE` \$1 `CANCELLING` \$1 `CANCELLED` \$1 `ERROR`).

  The status of the code execution output.
+ `ErrorName` – UTF-8 string.

  The name of the error in the output.
+ `ErrorValue` – UTF-8 string.

  The error value of the output.
+ `Traceback` – An array of UTF-8 strings.

  The traceback of the output.

## StatementOutputData structure
<a name="aws-glue-api-interactive-sessions-StatementOutputData"></a>

The code execution output in JSON format.

**Fields**
+ `TextPlain` – UTF-8 string.

  The code execution output in text format.

## ConnectionsList structure
<a name="aws-glue-api-interactive-sessions-ConnectionsList"></a>

Specifies the connections used by a job.

**Fields**
+ `Connections` – An array of UTF-8 strings, not more than 1000 strings.

  A list of connections used by the job.

## Operations
<a name="aws-glue-api-interactive-sessions-actions"></a>
+ [CreateSession action (Python: create\$1session)](#aws-glue-api-interactive-sessions-CreateSession)
+ [StopSession action (Python: stop\$1session)](#aws-glue-api-interactive-sessions-StopSession)
+ [DeleteSession action (Python: delete\$1session)](#aws-glue-api-interactive-sessions-DeleteSession)
+ [GetSession action (Python: get\$1session)](#aws-glue-api-interactive-sessions-GetSession)
+ [ListSessions action (Python: list\$1sessions)](#aws-glue-api-interactive-sessions-ListSessions)
+ [RunStatement action (Python: run\$1statement)](#aws-glue-api-interactive-sessions-RunStatement)
+ [CancelStatement action (Python: cancel\$1statement)](#aws-glue-api-interactive-sessions-CancelStatement)
+ [GetStatement action (Python: get\$1statement)](#aws-glue-api-interactive-sessions-GetStatement)
+ [ListStatements action (Python: list\$1statements)](#aws-glue-api-interactive-sessions-ListStatements)
+ [GetGlueIdentityCenterConfiguration action (Python: get\$1glue\$1identity\$1center\$1configuration)](#aws-glue-api-interactive-sessions-GetGlueIdentityCenterConfiguration)
+ [UpdateGlueIdentityCenterConfiguration action (Python: update\$1glue\$1identity\$1center\$1configuration)](#aws-glue-api-interactive-sessions-UpdateGlueIdentityCenterConfiguration)
+ [CreateGlueIdentityCenterConfiguration action (Python: create\$1glue\$1identity\$1center\$1configuration)](#aws-glue-api-interactive-sessions-CreateGlueIdentityCenterConfiguration)
+ [DeleteGlueIdentityCenterConfiguration action (Python: delete\$1glue\$1identity\$1center\$1configuration)](#aws-glue-api-interactive-sessions-DeleteGlueIdentityCenterConfiguration)

## CreateSession action (Python: create\$1session)
<a name="aws-glue-api-interactive-sessions-CreateSession"></a>

Creates a new session.

**Request**

Request to create a new session.
+ `Id` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the session request. 
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The description of the session. 
+ `Role` – *Required:* UTF-8 string, not less than 20 or more than 2048 bytes long, matching the [Custom string pattern #30](aws-glue-api-common.md#regex_30).

  The IAM Role ARN 
+ `Command` – *Required:* A [SessionCommand](#aws-glue-api-interactive-sessions-SessionCommand) object.

  The `SessionCommand` that runs the job. 
+ `Timeout` – Number (integer), at least 1.

   The number of minutes before session times out. Default for Spark ETL jobs is 48 hours (2880 minutes). Consult the documentation for other job types. 
+ `IdleTimeout` – Number (integer), at least 1.

   The number of minutes when idle before session times out. Default for Spark ETL jobs is value of Timeout. Consult the documentation for other job types. 
+ `DefaultArguments` – A map array of key-value pairs, not more than 75 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  Each value is a UTF-8 string, not more than 4096 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A map array of key-value pairs. Max is 75 pairs. 
+ `Connections` – A [ConnectionsList](#aws-glue-api-interactive-sessions-ConnectionsList) object.

  The number of connections to use for the session. 
+ `MaxCapacity` – Number (double).

  The number of AWS Glue data processing units (DPUs) that can be allocated when the job runs. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB memory. 
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `WorkerType` to use for the session. 
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.025X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated when a job runs. Accepts a value of G.1X, G.2X, G.4X, or G.8X for Spark jobs. Accepts the value Z.2X for Ray notebooks.
  + For the `G.1X` worker type, each worker maps to 1 DPU (4 vCPUs, 16 GB of memory) with 94GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.
  + For the `G.2X` worker type, each worker maps to 2 DPU (8 vCPUs, 32 GB of memory) with 138GB disk, and provides 1 executor per worker. We recommend this worker type for workloads such as data transforms, joins, and queries, to offers a scalable and cost effective way to run most jobs.
  + For the `G.4X` worker type, each worker maps to 4 DPU (16 vCPUs, 64 GB of memory) with 256GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark ETL jobs in the following AWS Regions: US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Canada (Central), Europe (Frankfurt), Europe (Ireland), and Europe (Stockholm).
  + For the `G.8X` worker type, each worker maps to 8 DPU (32 vCPUs, 128 GB of memory) with 512GB disk, and provides 1 executor per worker. We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for AWS Glue version 3.0 or later Spark ETL jobs, in the same AWS Regions as supported for the `G.4X` worker type.
  + For the `Z.2X` worker type, each worker maps to 2 M-DPU (8vCPUs, 64 GB of memory) with 128 GB disk, and provides up to 8 Ray workers based on the autoscaler.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the SecurityConfiguration structure to be used with the session 
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  The AWS Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The GlueVersion must be greater than 2.0. 
+ `DataAccessId` – UTF-8 string, not less than 1 or more than 36 bytes long.

  The data access ID of the session. 
+ `PartitionId` – UTF-8 string, not less than 1 or more than 36 bytes long.

  The partition ID of the session. 
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The map of key value pairs (tags) belonging to the session.
+ `RequestOrigin` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The origin of the request. 
+ `ProfileName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of an AWS Glue usage profile associated with the session.

**Response**
+ `Session` – A [Session](#aws-glue-api-interactive-sessions-Session) object.

  Returns the session object in the response.

**Errors**
+ `AccessDeniedException`
+ `IdempotentParameterMismatchException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `ValidationException`
+ `AlreadyExistsException`
+ `ResourceNumberLimitExceededException`

## StopSession action (Python: stop\$1session)
<a name="aws-glue-api-interactive-sessions-StopSession"></a>

Stops the session.

**Request**
+ `Id` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the session to be stopped.
+ `RequestOrigin` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The origin of the request.

**Response**
+ `Id` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Returns the Id of the stopped session.

**Errors**
+ `AccessDeniedException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `IllegalSessionStateException`
+ `ConcurrentModificationException`

## DeleteSession action (Python: delete\$1session)
<a name="aws-glue-api-interactive-sessions-DeleteSession"></a>

Deletes the session.

**Request**
+ `Id` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the session to be deleted.
+ `RequestOrigin` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The name of the origin of the delete session request.

**Response**
+ `Id` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Returns the ID of the deleted session.

**Errors**
+ `AccessDeniedException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `IllegalSessionStateException`
+ `ConcurrentModificationException`

## GetSession action (Python: get\$1session)
<a name="aws-glue-api-interactive-sessions-GetSession"></a>

Retrieves the session.

**Request**
+ `Id` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the session. 
+ `RequestOrigin` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The origin of the request. 

**Response**
+ `Session` – A [Session](#aws-glue-api-interactive-sessions-Session) object.

  The session object is returned in the response.

**Errors**
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`

## ListSessions action (Python: list\$1sessions)
<a name="aws-glue-api-interactive-sessions-ListSessions"></a>

Retrieve a list of sessions.

**Request**
+ `NextToken` – UTF-8 string, not more than 400000 bytes long.

  The token for the next set of results, or null if there are no more result. 
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results. 
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  Tags belonging to the session. 
+ `RequestOrigin` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The origin of the request. 

**Response**
+ `Ids` – An array of UTF-8 strings.

  Returns the ID of the session. 
+ `Sessions` – An array of [Session](#aws-glue-api-interactive-sessions-Session) objects.

  Returns the session object. 
+ `NextToken` – UTF-8 string, not more than 400000 bytes long.

  The token for the next set of results, or null if there are no more result. 

**Errors**
+ `AccessDeniedException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## RunStatement action (Python: run\$1statement)
<a name="aws-glue-api-interactive-sessions-RunStatement"></a>

Executes the statement.

**Request**
+ `SessionId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Session Id of the statement to be run.
+ `Code` – *Required:* UTF-8 string, not more than 68000 bytes long.

  The statement code to be run.
+ `RequestOrigin` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The origin of the request.

**Response**
+ `Id` – Number (integer).

  Returns the Id of the statement that was run.

**Errors**
+ `EntityNotFoundException`
+ `AccessDeniedException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `ValidationException`
+ `ResourceNumberLimitExceededException`
+ `IllegalSessionStateException`

## CancelStatement action (Python: cancel\$1statement)
<a name="aws-glue-api-interactive-sessions-CancelStatement"></a>

Cancels the statement.

**Request**
+ `SessionId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Session ID of the statement to be cancelled.
+ `Id` – *Required:* Number (integer).

  The ID of the statement to be cancelled.
+ `RequestOrigin` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The origin of the request to cancel the statement.

**Response**
+ *No Response parameters.*

**Errors**
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `IllegalSessionStateException`

## GetStatement action (Python: get\$1statement)
<a name="aws-glue-api-interactive-sessions-GetStatement"></a>

Retrieves the statement.

**Request**
+ `SessionId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Session ID of the statement.
+ `Id` – *Required:* Number (integer).

  The Id of the statement.
+ `RequestOrigin` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The origin of the request.

**Response**
+ `Statement` – A [Statement](#aws-glue-api-interactive-sessions-Statement) object.

  Returns the statement.

**Errors**
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `IllegalSessionStateException`

## ListStatements action (Python: list\$1statements)
<a name="aws-glue-api-interactive-sessions-ListStatements"></a>

Lists statements for the session.

**Request**
+ `SessionId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Session ID of the statements.
+ `RequestOrigin` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The origin of the request to list statements.
+ `NextToken` – UTF-8 string, not more than 400000 bytes long.

  A continuation token, if this is a continuation call.

**Response**
+ `Statements` – An array of [Statement](#aws-glue-api-interactive-sessions-Statement) objects.

  Returns the list of statements.
+ `NextToken` – UTF-8 string, not more than 400000 bytes long.

  A continuation token, if not all statements have yet been returned.

**Errors**
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `IllegalSessionStateException`

## GetGlueIdentityCenterConfiguration action (Python: get\$1glue\$1identity\$1center\$1configuration)
<a name="aws-glue-api-interactive-sessions-GetGlueIdentityCenterConfiguration"></a>

Retrieves the current AWS Glue Identity Center configuration details, including the associated Identity Center instance and application information.

**Request**
+ *No Request parameters.*

**Response**

Response containing the AWS Glue Identity Center configuration details.
+ `ApplicationArn` – UTF-8 string, not less than 10 or more than 1224 bytes long.

  The Amazon Resource Name (ARN) of the Identity Center application associated with the AWS Glue configuration.
+ `InstanceArn` – UTF-8 string, not less than 10 or more than 1224 bytes long.

  The Amazon Resource Name (ARN) of the Identity Center instance associated with the AWS Glue configuration.
+ `Scopes` – An array of UTF-8 strings.

  A list of Identity Center scopes that define the permissions and access levels for the AWS Glue configuration.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `AccessDeniedException`
+ `ConcurrentModificationException`

## UpdateGlueIdentityCenterConfiguration action (Python: update\$1glue\$1identity\$1center\$1configuration)
<a name="aws-glue-api-interactive-sessions-UpdateGlueIdentityCenterConfiguration"></a>

Updates the existing AWS Glue Identity Center configuration, allowing modification of scopes and permissions for the integration.

**Request**

Request to update an existing AWS Glue Identity Center configuration.
+ `Scopes` – An array of UTF-8 strings, not less than 1 or more than 50 strings.

  A list of Identity Center scopes that define the updated permissions and access levels for the AWS Glue configuration.

**Response**
+ *No Response parameters.*

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `AccessDeniedException`
+ `ConcurrentModificationException`

## CreateGlueIdentityCenterConfiguration action (Python: create\$1glue\$1identity\$1center\$1configuration)
<a name="aws-glue-api-interactive-sessions-CreateGlueIdentityCenterConfiguration"></a>

Creates a new AWS Glue Identity Center configuration to enable integration between AWS Glue and AWS IAM Identity Center for authentication and authorization.

**Request**

Request to create a new AWS Glue Identity Center configuration.
+ `InstanceArn` – *Required:* UTF-8 string, not less than 10 or more than 1224 bytes long.

  The Amazon Resource Name (ARN) of the Identity Center instance to be associated with the AWS Glue configuration.
+ `Scopes` – An array of UTF-8 strings, not less than 1 or more than 50 strings.

  A list of Identity Center scopes that define the permissions and access levels for the AWS Glue configuration.

**Response**

Response from creating a new AWS Glue Identity Center configuration.
+ `ApplicationArn` – UTF-8 string, not less than 10 or more than 1224 bytes long.

  The Amazon Resource Name (ARN) of the Identity Center application that was created for the AWS Glue configuration.

**Errors**
+ `InvalidInputException`
+ `AlreadyExistsException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `AccessDeniedException`
+ `ConcurrentModificationException`

## DeleteGlueIdentityCenterConfiguration action (Python: delete\$1glue\$1identity\$1center\$1configuration)
<a name="aws-glue-api-interactive-sessions-DeleteGlueIdentityCenterConfiguration"></a>

Deletes the existing AWS Glue Identity Center configuration, removing the integration between AWS Glue and AWS IAM Identity Center.

**Request**
+ *No Request parameters.*

**Response**
+ *No Response parameters.*

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `AccessDeniedException`
+ `ConcurrentModificationException`

# Development endpoints API
<a name="aws-glue-api-dev-endpoint"></a>

The Development endpoints API describes the AWS Glue API related to testing using a custom DevEndpoint.

## Data types
<a name="aws-glue-api-dev-endpoint-objects"></a>
+ [DevEndpoint structure](#aws-glue-api-dev-endpoint-DevEndpoint)
+ [DevEndpointCustomLibraries structure](#aws-glue-api-dev-endpoint-DevEndpointCustomLibraries)

## DevEndpoint structure
<a name="aws-glue-api-dev-endpoint-DevEndpoint"></a>

A development endpoint where a developer can remotely debug extract, transform, and load (ETL) scripts.

**Fields**
+ `EndpointName` – UTF-8 string.

  The name of the `DevEndpoint`.
+ `RoleArn` – UTF-8 string, matching the [AWS IAM ARN string pattern](aws-glue-api-common.md#aws-glue-api-regex-aws-iam-arn-id).

  The Amazon Resource Name (ARN) of the IAM role used in this `DevEndpoint`.
+ `SecurityGroupIds` – An array of UTF-8 strings.

  A list of security group identifiers used in this `DevEndpoint`.
+ `SubnetId` – UTF-8 string.

  The subnet ID for this `DevEndpoint`.
+ `YarnEndpointAddress` – UTF-8 string.

  The YARN endpoint address used by this `DevEndpoint`.
+ `PrivateAddress` – UTF-8 string.

  A private IP address to access the `DevEndpoint` within a VPC if the `DevEndpoint` is created within one. The `PrivateAddress` field is present only when you create the `DevEndpoint` within your VPC.
+ `ZeppelinRemoteSparkInterpreterPort` – Number (integer).

  The Apache Zeppelin port for the remote Apache Spark interpreter.
+ `PublicAddress` – UTF-8 string.

  The public IP address used by this `DevEndpoint`. The `PublicAddress` field is present only when you create a non-virtual private cloud (VPC) `DevEndpoint`.
+ `Status` – UTF-8 string.

  The current status of this `DevEndpoint`.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.025X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated to the development endpoint. Accepts a value of Standard, G.1X, or G.2X.
  + For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
  + For the `G.1X` worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.
  + For the `G.2X` worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  Known issue: when a development endpoint is created with the `G.2X` `WorkerType` configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk. 
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints. 

  For more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide.

  Development endpoints that are created without specifying a Glue version default to Glue 0.9.

  You can specify a version of Python support for development endpoints by using the `Arguments` parameter in the `CreateDevEndpoint` or `UpdateDevEndpoint` APIs. If no arguments are provided, the version defaults to Python 2.
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `workerType` that are allocated to the development endpoint.

  The maximum number of workers you can define are 299 for `G.1X`, and 149 for `G.2X`. 
+ `NumberOfNodes` – Number (integer).

  The number of AWS Glue Data Processing Units (DPUs) allocated to this `DevEndpoint`.
+ `AvailabilityZone` – UTF-8 string.

  The AWS Availability Zone where this `DevEndpoint` is located.
+ `VpcId` – UTF-8 string.

  The ID of the virtual private cloud (VPC) used by this `DevEndpoint`.
+ `ExtraPythonLibsS3Path` – UTF-8 string.

  The paths to one or more Python libraries in an Amazon S3 bucket that should be loaded in your `DevEndpoint`. Multiple values must be complete paths separated by a comma.
**Note**  
You can only use pure Python libraries with a `DevEndpoint`. Libraries that rely on C extensions, such as the [pandas](http://pandas.pydata.org/) Python data analysis library, are not currently supported.
+ `ExtraJarsS3Path` – UTF-8 string.

  The path to one or more Java `.jar` files in an S3 bucket that should be loaded in your `DevEndpoint`.
**Note**  
You can only use pure Java/Scala libraries with a `DevEndpoint`.
+ `FailureReason` – UTF-8 string.

  The reason for a current failure in this `DevEndpoint`.
+ `LastUpdateStatus` – UTF-8 string.

  The status of the last update.
+ `CreatedTimestamp` – Timestamp.

  The point in time at which this DevEndpoint was created.
+ `LastModifiedTimestamp` – Timestamp.

  The point in time at which this `DevEndpoint` was last modified.
+ `PublicKey` – UTF-8 string.

  The public key to be used by this `DevEndpoint` for authentication. This attribute is provided for backward compatibility because the recommended attribute to use is public keys.
+ `PublicKeys` – An array of UTF-8 strings, not more than 5 strings.

  A list of public keys to be used by the `DevEndpoints` for authentication. Using this attribute is preferred over a single public key because the public keys allow you to have a different private key per client.
**Note**  
If you previously created an endpoint with a public key, you must remove that key to be able to set a list of public keys. Call the `UpdateDevEndpoint` API operation with the public key content in the `deletePublicKeys` attribute, and the list of new keys in the `addPublicKeys` attribute.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the `SecurityConfiguration` structure to be used with this `DevEndpoint`.
+ `Arguments` – A map array of key-value pairs, not more than 100 pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  A map of arguments used to configure the `DevEndpoint`.

  Valid arguments are:
  + `"--enable-glue-datacatalog": ""`

  You can specify a version of Python support for development endpoints by using the `Arguments` parameter in the `CreateDevEndpoint` or `UpdateDevEndpoint` APIs. If no arguments are provided, the version defaults to Python 2.

## DevEndpointCustomLibraries structure
<a name="aws-glue-api-dev-endpoint-DevEndpointCustomLibraries"></a>

Custom libraries to be loaded into a development endpoint.

**Fields**
+ `ExtraPythonLibsS3Path` – UTF-8 string.

  The paths to one or more Python libraries in an Amazon Simple Storage Service (Amazon S3) bucket that should be loaded in your `DevEndpoint`. Multiple values must be complete paths separated by a comma.
**Note**  
You can only use pure Python libraries with a `DevEndpoint`. Libraries that rely on C extensions, such as the [pandas](http://pandas.pydata.org/) Python data analysis library, are not currently supported.
+ `ExtraJarsS3Path` – UTF-8 string.

  The path to one or more Java `.jar` files in an S3 bucket that should be loaded in your `DevEndpoint`.
**Note**  
You can only use pure Java/Scala libraries with a `DevEndpoint`.

## Operations
<a name="aws-glue-api-dev-endpoint-actions"></a>
+ [CreateDevEndpoint action (Python: create\$1dev\$1endpoint)](#aws-glue-api-dev-endpoint-CreateDevEndpoint)
+ [UpdateDevEndpoint action (Python: update\$1dev\$1endpoint)](#aws-glue-api-dev-endpoint-UpdateDevEndpoint)
+ [DeleteDevEndpoint action (Python: delete\$1dev\$1endpoint)](#aws-glue-api-dev-endpoint-DeleteDevEndpoint)
+ [GetDevEndpoint action (Python: get\$1dev\$1endpoint)](#aws-glue-api-dev-endpoint-GetDevEndpoint)
+ [GetDevEndpoints action (Python: get\$1dev\$1endpoints)](#aws-glue-api-dev-endpoint-GetDevEndpoints)
+ [BatchGetDevEndpoints action (Python: batch\$1get\$1dev\$1endpoints)](#aws-glue-api-dev-endpoint-BatchGetDevEndpoints)
+ [ListDevEndpoints action (Python: list\$1dev\$1endpoints)](#aws-glue-api-dev-endpoint-ListDevEndpoints)

## CreateDevEndpoint action (Python: create\$1dev\$1endpoint)
<a name="aws-glue-api-dev-endpoint-CreateDevEndpoint"></a>

Creates a new development endpoint.

**Request**
+ `EndpointName` – *Required:* UTF-8 string.

  The name to be assigned to the new `DevEndpoint`.
+ `RoleArn` – *Required:* UTF-8 string, matching the [AWS IAM ARN string pattern](aws-glue-api-common.md#aws-glue-api-regex-aws-iam-arn-id).

  The IAM role for the `DevEndpoint`.
+ `SecurityGroupIds` – An array of UTF-8 strings.

  Security group IDs for the security groups to be used by the new `DevEndpoint`.
+ `SubnetId` – UTF-8 string.

  The subnet ID for the new `DevEndpoint` to use.
+ `PublicKey` – UTF-8 string.

  The public key to be used by this `DevEndpoint` for authentication. This attribute is provided for backward compatibility because the recommended attribute to use is public keys.
+ `PublicKeys` – An array of UTF-8 strings, not more than 5 strings.

  A list of public keys to be used by the development endpoints for authentication. The use of this attribute is preferred over a single public key because the public keys allow you to have a different private key per client.
**Note**  
If you previously created an endpoint with a public key, you must remove that key to be able to set a list of public keys. Call the `UpdateDevEndpoint` API with the public key content in the `deletePublicKeys` attribute, and the list of new keys in the `addPublicKeys` attribute.
+ `NumberOfNodes` – Number (integer).

  The number of AWS Glue Data Processing Units (DPUs) to allocate to this `DevEndpoint`.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.025X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated to the development endpoint. Accepts a value of Standard, G.1X, or G.2X.
  + For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
  + For the `G.1X` worker type, each worker maps to 1 DPU (4 vCPU, 16 GB of memory, 64 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.
  + For the `G.2X` worker type, each worker maps to 2 DPU (8 vCPU, 32 GB of memory, 128 GB disk), and provides 1 executor per worker. We recommend this worker type for memory-intensive jobs.

  Known issue: when a development endpoint is created with the `G.2X` `WorkerType` configuration, the Spark drivers for the development endpoint will run on 4 vCPU, 16 GB of memory, and a 64 GB disk. 
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints. 

  For more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide.

  Development endpoints that are created without specifying a Glue version default to Glue 0.9.

  You can specify a version of Python support for development endpoints by using the `Arguments` parameter in the `CreateDevEndpoint` or `UpdateDevEndpoint` APIs. If no arguments are provided, the version defaults to Python 2.
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `workerType` that are allocated to the development endpoint.

  The maximum number of workers you can define are 299 for `G.1X`, and 149 for `G.2X`. 
+ `ExtraPythonLibsS3Path` – UTF-8 string.

  The paths to one or more Python libraries in an Amazon S3 bucket that should be loaded in your `DevEndpoint`. Multiple values must be complete paths separated by a comma.
**Note**  
You can only use pure Python libraries with a `DevEndpoint`. Libraries that rely on C extensions, such as the [pandas](http://pandas.pydata.org/) Python data analysis library, are not yet supported.
+ `ExtraJarsS3Path` – UTF-8 string.

  The path to one or more Java `.jar` files in an S3 bucket that should be loaded in your `DevEndpoint`.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the `SecurityConfiguration` structure to be used with this `DevEndpoint`.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The tags to use with this DevEndpoint. You may use tags to limit access to the DevEndpoint. For more information about tags in AWS Glue, see [AWS Tags in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the developer guide.
+ `Arguments` – A map array of key-value pairs, not more than 100 pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  A map of arguments used to configure the `DevEndpoint`.

**Response**
+ `EndpointName` – UTF-8 string.

  The name assigned to the new `DevEndpoint`.
+ `Status` – UTF-8 string.

  The current status of the new `DevEndpoint`.
+ `SecurityGroupIds` – An array of UTF-8 strings.

  The security groups assigned to the new `DevEndpoint`.
+ `SubnetId` – UTF-8 string.

  The subnet ID assigned to the new `DevEndpoint`.
+ `RoleArn` – UTF-8 string, matching the [AWS IAM ARN string pattern](aws-glue-api-common.md#aws-glue-api-regex-aws-iam-arn-id).

  The Amazon Resource Name (ARN) of the role assigned to the new `DevEndpoint`.
+ `YarnEndpointAddress` – UTF-8 string.

  The address of the YARN endpoint used by this `DevEndpoint`.
+ `ZeppelinRemoteSparkInterpreterPort` – Number (integer).

  The Apache Zeppelin port for the remote Apache Spark interpreter.
+ `NumberOfNodes` – Number (integer).

  The number of AWS Glue Data Processing Units (DPUs) allocated to this DevEndpoint.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.025X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated to the development endpoint. May be a value of Standard, G.1X, or G.2X.
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  Glue version determines the versions of Apache Spark and Python that AWS Glue supports. The Python version indicates the version supported for running your ETL scripts on development endpoints. 

  For more information about the available AWS Glue versions and corresponding Spark and Python versions, see [Glue version](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) in the developer guide.
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `workerType` that are allocated to the development endpoint.
+ `AvailabilityZone` – UTF-8 string.

  The AWS Availability Zone where this `DevEndpoint` is located.
+ `VpcId` – UTF-8 string.

  The ID of the virtual private cloud (VPC) used by this `DevEndpoint`.
+ `ExtraPythonLibsS3Path` – UTF-8 string.

  The paths to one or more Python libraries in an S3 bucket that will be loaded in your `DevEndpoint`.
+ `ExtraJarsS3Path` – UTF-8 string.

  Path to one or more Java `.jar` files in an S3 bucket that will be loaded in your `DevEndpoint`.
+ `FailureReason` – UTF-8 string.

  The reason for a current failure in this `DevEndpoint`.
+ `SecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the `SecurityConfiguration` structure being used with this `DevEndpoint`.
+ `CreatedTimestamp` – Timestamp.

  The point in time at which this `DevEndpoint` was created.
+ `Arguments` – A map array of key-value pairs, not more than 100 pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  The map of arguments used to configure this `DevEndpoint`.

  Valid arguments are:
  + `"--enable-glue-datacatalog": ""`

  You can specify a version of Python support for development endpoints by using the `Arguments` parameter in the `CreateDevEndpoint` or `UpdateDevEndpoint` APIs. If no arguments are provided, the version defaults to Python 2.

**Errors**
+ `AccessDeniedException`
+ `AlreadyExistsException`
+ `IdempotentParameterMismatchException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `ValidationException`
+ `ResourceNumberLimitExceededException`

## UpdateDevEndpoint action (Python: update\$1dev\$1endpoint)
<a name="aws-glue-api-dev-endpoint-UpdateDevEndpoint"></a>

Updates a specified development endpoint.

**Request**
+ `EndpointName` – *Required:* UTF-8 string.

  The name of the `DevEndpoint` to be updated.
+ `PublicKey` – UTF-8 string.

  The public key for the `DevEndpoint` to use.
+ `AddPublicKeys` – An array of UTF-8 strings, not more than 5 strings.

  The list of public keys for the `DevEndpoint` to use.
+ `DeletePublicKeys` – An array of UTF-8 strings, not more than 5 strings.

  The list of public keys to be deleted from the `DevEndpoint`.
+ `CustomLibraries` – A [DevEndpointCustomLibraries](#aws-glue-api-dev-endpoint-DevEndpointCustomLibraries) object.

  Custom Python or Java libraries to be loaded in the `DevEndpoint`.
+ `UpdateEtlLibraries` – Boolean.

  `True` if the list of custom libraries to be loaded in the development endpoint needs to be updated, or `False` if otherwise.
+ `DeleteArguments` – An array of UTF-8 strings.

  The list of argument keys to be deleted from the map of arguments used to configure the `DevEndpoint`.
+ `AddArguments` – A map array of key-value pairs, not more than 100 pairs.

  Each key is a UTF-8 string.

  Each value is a UTF-8 string.

  The map of arguments to add the map of arguments used to configure the `DevEndpoint`.

  Valid arguments are:
  + `"--enable-glue-datacatalog": ""`

  You can specify a version of Python support for development endpoints by using the `Arguments` parameter in the `CreateDevEndpoint` or `UpdateDevEndpoint` APIs. If no arguments are provided, the version defaults to Python 2.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `ValidationException`

## DeleteDevEndpoint action (Python: delete\$1dev\$1endpoint)
<a name="aws-glue-api-dev-endpoint-DeleteDevEndpoint"></a>

Deletes a specified development endpoint.

**Request**
+ `EndpointName` – *Required:* UTF-8 string.

  The name of the `DevEndpoint`.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`

## GetDevEndpoint action (Python: get\$1dev\$1endpoint)
<a name="aws-glue-api-dev-endpoint-GetDevEndpoint"></a>

Retrieves information about a specified development endpoint.

**Note**  
When you create a development endpoint in a virtual private cloud (VPC), AWS Glue returns only a private IP address, and the public IP address field is not populated. When you create a non-VPC development endpoint, AWS Glue returns only a public IP address.

**Request**
+ `EndpointName` – *Required:* UTF-8 string.

  Name of the `DevEndpoint` to retrieve information for.

**Response**
+ `DevEndpoint` – A [DevEndpoint](#aws-glue-api-dev-endpoint-DevEndpoint) object.

  A `DevEndpoint` definition.

**Errors**
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`

## GetDevEndpoints action (Python: get\$1dev\$1endpoints)
<a name="aws-glue-api-dev-endpoint-GetDevEndpoints"></a>

Retrieves all the development endpoints in this AWS account.

**Note**  
When you create a development endpoint in a virtual private cloud (VPC), AWS Glue returns only a private IP address and the public IP address field is not populated. When you create a non-VPC development endpoint, AWS Glue returns only a public IP address.

**Request**
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum size of information to return.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.

**Response**
+ `DevEndpoints` – An array of [DevEndpoint](#aws-glue-api-dev-endpoint-DevEndpoint) objects.

  A list of `DevEndpoint` definitions.
+ `NextToken` – UTF-8 string.

  A continuation token, if not all `DevEndpoint` definitions have yet been returned.

**Errors**
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`

## BatchGetDevEndpoints action (Python: batch\$1get\$1dev\$1endpoints)
<a name="aws-glue-api-dev-endpoint-BatchGetDevEndpoints"></a>

Returns a list of resource metadata for a given list of development endpoint names. After calling the `ListDevEndpoints` operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags.

**Request**
+ `customerAccountId` – UTF-8 string.

  The AWS account ID.
+ `DevEndpointNames` – *Required:* An array of UTF-8 strings, not less than 1 or more than 25 strings.

  The list of `DevEndpoint` names, which might be the names returned from the `ListDevEndpoint` operation.

**Response**
+ `DevEndpoints` – An array of [DevEndpoint](#aws-glue-api-dev-endpoint-DevEndpoint) objects.

  A list of `DevEndpoint` definitions.
+ `DevEndpointsNotFound` – An array of UTF-8 strings, not less than 1 or more than 25 strings.

  A list of `DevEndpoints` not found.

**Errors**
+ `AccessDeniedException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`

## ListDevEndpoints action (Python: list\$1dev\$1endpoints)
<a name="aws-glue-api-dev-endpoint-ListDevEndpoints"></a>

Retrieves the names of all `DevEndpoint` resources in this AWS account, or the resources with the specified tag. This operation allows you to see which resources are available in your account, and their names.

This operation takes the optional `Tags` field, which you can use as a filter on the response so that tagged resources can be retrieved as a group. If you choose to use tags filtering, only resources with the tag are retrieved.

**Request**
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation request.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum size of a list to return.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  Specifies to return only these tagged resources.

**Response**
+ `DevEndpointNames` – An array of UTF-8 strings.

  The names of all the `DevEndpoint`s in the account, or the `DevEndpoint`s with the specified tags.
+ `NextToken` – UTF-8 string.

  A continuation token, if the returned list does not contain the last metric available.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

# Schema registry
<a name="aws-glue-api-schema-registry-api"></a>

The Schema registry API describes the data types and API related to working with schemas in AWS Glue.

## Data types
<a name="aws-glue-api-schema-registry-api-objects"></a>
+ [RegistryId structure](#aws-glue-api-schema-registry-api-RegistryId)
+ [RegistryListItem structure](#aws-glue-api-schema-registry-api-RegistryListItem)
+ [MetadataInfo structure](#aws-glue-api-schema-registry-api-MetadataInfo)
+ [OtherMetadataValueListItem structure](#aws-glue-api-schema-registry-api-OtherMetadataValueListItem)
+ [SchemaListItem structure](#aws-glue-api-schema-registry-api-SchemaListItem)
+ [SchemaVersionListItem structure](#aws-glue-api-schema-registry-api-SchemaVersionListItem)
+ [MetadataKeyValuePair structure](#aws-glue-api-schema-registry-api-MetadataKeyValuePair)
+ [SchemaVersionErrorItem structure](#aws-glue-api-schema-registry-api-SchemaVersionErrorItem)
+ [ErrorDetails structure](#aws-glue-api-schema-registry-api-ErrorDetails)
+ [SchemaVersionNumber structure](#aws-glue-api-schema-registry-api-SchemaVersionNumber)
+ [SchemaId structure](#aws-glue-api-schema-registry-api-SchemaId)

## RegistryId structure
<a name="aws-glue-api-schema-registry-api-RegistryId"></a>

A wrapper structure that may contain the registry name and Amazon Resource Name (ARN).

**Fields**
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  Name of the registry. Used only for lookup. One of `RegistryArn` or `RegistryName` has to be provided. 
+ `RegistryArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  Arn of the registry to be updated. One of `RegistryArn` or `RegistryName` has to be provided.

## RegistryListItem structure
<a name="aws-glue-api-schema-registry-api-RegistryListItem"></a>

A structure containing the details for a registry.

**Fields**
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the registry.
+ `RegistryArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the registry.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the registry.
+ `Status` – UTF-8 string (valid values: `AVAILABLE` \$1 `DELETING`).

  The status of the registry.
+ `CreatedTime` – UTF-8 string.

  The data the registry was created.
+ `UpdatedTime` – UTF-8 string.

  The date the registry was updated.

## MetadataInfo structure
<a name="aws-glue-api-schema-registry-api-MetadataInfo"></a>

A structure containing metadata information for a schema version.

**Fields**
+ `MetadataValue` – UTF-8 string, not less than 1 or more than 256 bytes long, matching the [Custom string pattern #14](aws-glue-api-common.md#regex_14).

  The metadata key's corresponding value.
+ `CreatedTime` – UTF-8 string.

  The time at which the entry was created.
+ `OtherMetadataValueList` – An array of [OtherMetadataValueListItem](#aws-glue-api-schema-registry-api-OtherMetadataValueListItem) objects.

  Other metadata belonging to the same metadata key.

## OtherMetadataValueListItem structure
<a name="aws-glue-api-schema-registry-api-OtherMetadataValueListItem"></a>

A structure containing other metadata for a schema version belonging to the same metadata key.

**Fields**
+ `MetadataValue` – UTF-8 string, not less than 1 or more than 256 bytes long, matching the [Custom string pattern #14](aws-glue-api-common.md#regex_14).

  The metadata key's corresponding value for the other metadata belonging to the same metadata key.
+ `CreatedTime` – UTF-8 string.

  The time at which the entry was created.

## SchemaListItem structure
<a name="aws-glue-api-schema-registry-api-SchemaListItem"></a>

An object that contains minimal details for a schema.

**Fields**
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  the name of the registry where the schema resides.
+ `SchemaName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the schema.
+ `SchemaArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) for the schema.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description for the schema.
+ `SchemaStatus` – UTF-8 string (valid values: `AVAILABLE` \$1 `PENDING` \$1 `DELETING`).

  The status of the schema.
+ `CreatedTime` – UTF-8 string.

  The date and time that a schema was created.
+ `UpdatedTime` – UTF-8 string.

  The date and time that a schema was updated.

## SchemaVersionListItem structure
<a name="aws-glue-api-schema-registry-api-SchemaVersionListItem"></a>

An object containing the details about a schema version.

**Fields**
+ `SchemaArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the schema.
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The unique identifier of the schema version.
+ `VersionNumber` – Number (long), not less than 1 or more than 100000.

  The version number of the schema.
+ `Status` – UTF-8 string (valid values: `AVAILABLE` \$1 `PENDING` \$1 `FAILURE` \$1 `DELETING`).

  The status of the schema version.
+ `CreatedTime` – UTF-8 string.

  The date and time the schema version was created.

## MetadataKeyValuePair structure
<a name="aws-glue-api-schema-registry-api-MetadataKeyValuePair"></a>

A structure containing a key value pair for metadata.

**Fields**
+ `MetadataKey` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #14](aws-glue-api-common.md#regex_14).

  A metadata key.
+ `MetadataValue` – UTF-8 string, not less than 1 or more than 256 bytes long, matching the [Custom string pattern #14](aws-glue-api-common.md#regex_14).

  A metadata key's corresponding value.

## SchemaVersionErrorItem structure
<a name="aws-glue-api-schema-registry-api-SchemaVersionErrorItem"></a>

An object that contains the error details for an operation on a schema version.

**Fields**
+ `VersionNumber` – Number (long), not less than 1 or more than 100000.

  The version number of the schema.
+ `ErrorDetails` – An [ErrorDetails](#aws-glue-api-schema-registry-api-ErrorDetails) object.

  The details of the error for the schema version.

## ErrorDetails structure
<a name="aws-glue-api-schema-registry-api-ErrorDetails"></a>

An object containing error details.

**Fields**
+ `ErrorCode` – UTF-8 string.

  The error code for an error.
+ `ErrorMessage` – UTF-8 string.

  The error message for an error.

## SchemaVersionNumber structure
<a name="aws-glue-api-schema-registry-api-SchemaVersionNumber"></a>

A structure containing the schema version information.

**Fields**
+ `LatestVersion` – Boolean.

  The latest version available for the schema.
+ `VersionNumber` – Number (long), not less than 1 or more than 100000.

  The version number of the schema.

## SchemaId structure
<a name="aws-glue-api-schema-registry-api-SchemaId"></a>

The unique ID of the schema in the AWS Glue schema registry.

**Fields**
+ `SchemaArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the schema. One of `SchemaArn` or `SchemaName` has to be provided.
+ `SchemaName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the schema. One of `SchemaArn` or `SchemaName` has to be provided.
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the schema registry that contains the schema.

## Operations
<a name="aws-glue-api-schema-registry-api-actions"></a>
+ [CreateRegistry action (Python: create\$1registry)](#aws-glue-api-schema-registry-api-CreateRegistry)
+ [CreateSchema action (Python: create\$1schema)](#aws-glue-api-schema-registry-api-CreateSchema)
+ [GetSchema action (Python: get\$1schema)](#aws-glue-api-schema-registry-api-GetSchema)
+ [ListSchemaVersions action (Python: list\$1schema\$1versions)](#aws-glue-api-schema-registry-api-ListSchemaVersions)
+ [GetSchemaVersion action (Python: get\$1schema\$1version)](#aws-glue-api-schema-registry-api-GetSchemaVersion)
+ [GetSchemaVersionsDiff action (Python: get\$1schema\$1versions\$1diff)](#aws-glue-api-schema-registry-api-GetSchemaVersionsDiff)
+ [ListRegistries action (Python: list\$1registries)](#aws-glue-api-schema-registry-api-ListRegistries)
+ [ListSchemas action (Python: list\$1schemas)](#aws-glue-api-schema-registry-api-ListSchemas)
+ [RegisterSchemaVersion action (Python: register\$1schema\$1version)](#aws-glue-api-schema-registry-api-RegisterSchemaVersion)
+ [UpdateSchema action (Python: update\$1schema)](#aws-glue-api-schema-registry-api-UpdateSchema)
+ [CheckSchemaVersionValidity action (Python: check\$1schema\$1version\$1validity)](#aws-glue-api-schema-registry-api-CheckSchemaVersionValidity)
+ [UpdateRegistry action (Python: update\$1registry)](#aws-glue-api-schema-registry-api-UpdateRegistry)
+ [GetSchemaByDefinition action (Python: get\$1schema\$1by\$1definition)](#aws-glue-api-schema-registry-api-GetSchemaByDefinition)
+ [GetRegistry action (Python: get\$1registry)](#aws-glue-api-schema-registry-api-GetRegistry)
+ [PutSchemaVersionMetadata action (Python: put\$1schema\$1version\$1metadata)](#aws-glue-api-schema-registry-api-PutSchemaVersionMetadata)
+ [QuerySchemaVersionMetadata action (Python: query\$1schema\$1version\$1metadata)](#aws-glue-api-schema-registry-api-QuerySchemaVersionMetadata)
+ [RemoveSchemaVersionMetadata action (Python: remove\$1schema\$1version\$1metadata)](#aws-glue-api-schema-registry-api-RemoveSchemaVersionMetadata)
+ [DeleteRegistry action (Python: delete\$1registry)](#aws-glue-api-schema-registry-api-DeleteRegistry)
+ [DeleteSchema action (Python: delete\$1schema)](#aws-glue-api-schema-registry-api-DeleteSchema)
+ [DeleteSchemaVersions action (Python: delete\$1schema\$1versions)](#aws-glue-api-schema-registry-api-DeleteSchemaVersions)

## CreateRegistry action (Python: create\$1registry)
<a name="aws-glue-api-schema-registry-api-CreateRegistry"></a>

Creates a new registry which may be used to hold a collection of schemas.

**Request**
+ `RegistryName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  Name of the registry to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark. No whitespace.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the registry. If description is not provided, there will not be any default value for this.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  AWS tags that contain a key value pair and may be searched by console, command line, or API.

**Response**
+ `RegistryArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the newly created registry.
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the registry.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the registry.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The tags for the registry.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `AlreadyExistsException`
+ `ResourceNumberLimitExceededException`
+ `ConcurrentModificationException`
+ `ThrottlingException`
+ `InternalServiceException`

## CreateSchema action (Python: create\$1schema)
<a name="aws-glue-api-schema-registry-api-CreateSchema"></a>

Creates a new schema set and registers the schema definition. Returns an error if the schema set already exists without actually registering the version.

When the schema set is created, a version checkpoint will be set to the first version. Compatibility mode "DISABLED" restricts any additional schema versions from being added after the first schema version. For all other compatibility modes, validation of compatibility settings will be applied only from the second version onwards when the `RegisterSchemaVersion` API is used.

When this API is called without a `RegistryId`, this will create an entry for a "default-registry" in the registry database tables, if it is not already present.

**Request**
+ `RegistryId` – A [RegistryId](#aws-glue-api-schema-registry-api-RegistryId) object.

   This is a wrapper shape to contain the registry identity fields. If this is not provided, the default registry will be used. The ARN format for the same will be: `arn:aws:glue:us-east-2:<customer id>:registry/default-registry:random-5-letter-id`.
+ `SchemaName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  Name of the schema to be created of max length of 255, and may only contain letters, numbers, hyphen, underscore, dollar sign, or hash mark. No whitespace.
+ `DataFormat` – *Required:* UTF-8 string (valid values: `AVRO` \$1 `JSON` \$1 `PROTOBUF`).

  The data format of the schema definition. Currently `AVRO`, `JSON` and `PROTOBUF` are supported.
+ `Compatibility` – UTF-8 string (valid values: `NONE` \$1 `DISABLED` \$1 `BACKWARD` \$1 `BACKWARD_ALL` \$1 `FORWARD` \$1 `FORWARD_ALL` \$1 `FULL` \$1 `FULL_ALL`).

  The compatibility mode of the schema. The possible values are:
  +  *NONE*: No compatibility mode applies. You can use this choice in development scenarios or if you do not know the compatibility mode that you want to apply to schemas. Any new version added will be accepted without undergoing a compatibility check.
  +  *DISABLED*: This compatibility choice prevents versioning for a particular schema. You can use this choice to prevent future versioning of a schema.
  +  *BACKWARD*: This compatibility choice is recommended as it allows data receivers to read both the current and one previous schema version. This means that for instance, a new schema version cannot drop data fields or change the type of these fields, so they can't be read by readers using the previous version.
  +  *BACKWARD\$1ALL*: This compatibility choice allows data receivers to read both the current and all previous schema versions. You can use this choice when you need to delete fields or add optional fields, and check compatibility against all previous schema versions. 
  +  *FORWARD*: This compatibility choice allows data receivers to read both the current and one next schema version, but not necessarily later versions. You can use this choice when you need to add fields or delete optional fields, but only check compatibility against the last schema version.
  +  *FORWARD\$1ALL*: This compatibility choice allows data receivers to read written by producers of any new registered schema. You can use this choice when you need to add fields or delete optional fields, and check compatibility against all previous schema versions.
  +  *FULL*: This compatibility choice allows data receivers to read data written by producers using the previous or next version of the schema, but not necessarily earlier or later versions. You can use this choice when you need to add or remove optional fields, but only check compatibility against the last schema version.
  +  *FULL\$1ALL*: This compatibility choice allows data receivers to read data written by producers using all previous schema versions. You can use this choice when you need to add or remove optional fields, and check compatibility against all previous schema versions.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  An optional description of the schema. If description is not provided, there will not be any automatic default value for this.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  AWS tags that contain a key value pair and may be searched by console, command line, or API. If specified, follows the AWS tags-on-create pattern.
+ `SchemaDefinition` – UTF-8 string, not less than 1 or more than 170000 bytes long, matching the [Custom string pattern #13](aws-glue-api-common.md#regex_13).

  The schema definition using the `DataFormat` setting for `SchemaName`.

**Response**
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the registry.
+ `RegistryArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the registry.
+ `SchemaName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the schema.
+ `SchemaArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the schema.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the schema if specified when created.
+ `DataFormat` – UTF-8 string (valid values: `AVRO` \$1 `JSON` \$1 `PROTOBUF`).

  The data format of the schema definition. Currently `AVRO`, `JSON` and `PROTOBUF` are supported.
+ `Compatibility` – UTF-8 string (valid values: `NONE` \$1 `DISABLED` \$1 `BACKWARD` \$1 `BACKWARD_ALL` \$1 `FORWARD` \$1 `FORWARD_ALL` \$1 `FULL` \$1 `FULL_ALL`).

  The schema compatibility mode.
+ `SchemaCheckpoint` – Number (long), not less than 1 or more than 100000.

  The version number of the checkpoint (the last time the compatibility mode was changed).
+ `LatestSchemaVersion` – Number (long), not less than 1 or more than 100000.

  The latest version of the schema associated with the returned schema definition.
+ `NextSchemaVersion` – Number (long), not less than 1 or more than 100000.

  The next version of the schema associated with the returned schema definition.
+ `SchemaStatus` – UTF-8 string (valid values: `AVAILABLE` \$1 `PENDING` \$1 `DELETING`).

  The status of the schema. 
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The tags for the schema.
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The unique identifier of the first schema version.
+ `SchemaVersionStatus` – UTF-8 string (valid values: `AVAILABLE` \$1 `PENDING` \$1 `FAILURE` \$1 `DELETING`).

  The status of the first schema version created.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `AlreadyExistsException`
+ `ResourceNumberLimitExceededException`
+ `ConcurrentModificationException`
+ `ThrottlingException`
+ `InternalServiceException`

## GetSchema action (Python: get\$1schema)
<a name="aws-glue-api-schema-registry-api-GetSchema"></a>

Describes the specified schema in detail.

**Request**
+ `SchemaId` – *Required:* A [SchemaId](#aws-glue-api-schema-registry-api-SchemaId) object.

  This is a wrapper structure to contain schema identity fields. The structure contains:
  + SchemaId\$1SchemaArn: The Amazon Resource Name (ARN) of the schema. Either `SchemaArn` or `SchemaName` and `RegistryName` has to be provided.
  + SchemaId\$1SchemaName: The name of the schema. Either `SchemaArn` or `SchemaName` and `RegistryName` has to be provided.

**Response**
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the registry.
+ `RegistryArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the registry.
+ `SchemaName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the schema.
+ `SchemaArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the schema.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of schema if specified when created
+ `DataFormat` – UTF-8 string (valid values: `AVRO` \$1 `JSON` \$1 `PROTOBUF`).

  The data format of the schema definition. Currently `AVRO`, `JSON` and `PROTOBUF` are supported.
+ `Compatibility` – UTF-8 string (valid values: `NONE` \$1 `DISABLED` \$1 `BACKWARD` \$1 `BACKWARD_ALL` \$1 `FORWARD` \$1 `FORWARD_ALL` \$1 `FULL` \$1 `FULL_ALL`).

  The compatibility mode of the schema.
+ `SchemaCheckpoint` – Number (long), not less than 1 or more than 100000.

  The version number of the checkpoint (the last time the compatibility mode was changed).
+ `LatestSchemaVersion` – Number (long), not less than 1 or more than 100000.

  The latest version of the schema associated with the returned schema definition.
+ `NextSchemaVersion` – Number (long), not less than 1 or more than 100000.

  The next version of the schema associated with the returned schema definition.
+ `SchemaStatus` – UTF-8 string (valid values: `AVAILABLE` \$1 `PENDING` \$1 `DELETING`).

  The status of the schema.
+ `CreatedTime` – UTF-8 string.

  The date and time the schema was created.
+ `UpdatedTime` – UTF-8 string.

  The date and time the schema was updated.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `ThrottlingException`
+ `InternalServiceException`

## ListSchemaVersions action (Python: list\$1schema\$1versions)
<a name="aws-glue-api-schema-registry-api-ListSchemaVersions"></a>

Returns a list of schema versions that you have created, with minimal information. Schema versions in Deleted status will not be included in the results. Empty results will be returned if there are no schema versions available.

**Request**
+ `SchemaId` – *Required:* A [SchemaId](#aws-glue-api-schema-registry-api-SchemaId) object.

  This is a wrapper structure to contain schema identity fields. The structure contains:
  + SchemaId\$1SchemaArn: The Amazon Resource Name (ARN) of the schema. Either `SchemaArn` or `SchemaName` and `RegistryName` has to be provided.
  + SchemaId\$1SchemaName: The name of the schema. Either `SchemaArn` or `SchemaName` and `RegistryName` has to be provided.
+ `MaxResults` – Number (integer), not less than 1 or more than 100.

  Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.

**Response**
+ `Schemas` – An array of [SchemaVersionListItem](#aws-glue-api-schema-registry-api-SchemaVersionListItem) objects.

  An array of `SchemaVersionList` objects containing details of each schema version.
+ `NextToken` – UTF-8 string.

  A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `ThrottlingException`
+ `InternalServiceException`

## GetSchemaVersion action (Python: get\$1schema\$1version)
<a name="aws-glue-api-schema-registry-api-GetSchemaVersion"></a>

Get the specified schema by its unique ID assigned when a version of the schema is created or registered. Schema versions in Deleted status will not be included in the results.

**Request**
+ `SchemaId` – A [SchemaId](#aws-glue-api-schema-registry-api-SchemaId) object.

  This is a wrapper structure to contain schema identity fields. The structure contains:
  + SchemaId\$1SchemaArn: The Amazon Resource Name (ARN) of the schema. Either `SchemaArn` or `SchemaName` and `RegistryName` has to be provided.
  + SchemaId\$1SchemaName: The name of the schema. Either `SchemaArn` or `SchemaName` and `RegistryName` has to be provided.
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The `SchemaVersionId` of the schema version. This field is required for fetching by schema ID. Either this or the `SchemaId` wrapper has to be provided.
+ `SchemaVersionNumber` – A [SchemaVersionNumber](#aws-glue-api-schema-registry-api-SchemaVersionNumber) object.

  The version number of the schema.

**Response**
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The `SchemaVersionId` of the schema version.
+ `SchemaDefinition` – UTF-8 string, not less than 1 or more than 170000 bytes long, matching the [Custom string pattern #13](aws-glue-api-common.md#regex_13).

  The schema definition for the schema ID.
+ `DataFormat` – UTF-8 string (valid values: `AVRO` \$1 `JSON` \$1 `PROTOBUF`).

  The data format of the schema definition. Currently `AVRO`, `JSON` and `PROTOBUF` are supported.
+ `SchemaArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the schema.
+ `VersionNumber` – Number (long), not less than 1 or more than 100000.

  The version number of the schema.
+ `Status` – UTF-8 string (valid values: `AVAILABLE` \$1 `PENDING` \$1 `FAILURE` \$1 `DELETING`).

  The status of the schema version. 
+ `CreatedTime` – UTF-8 string.

  The date and time the schema version was created.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `ThrottlingException`
+ `InternalServiceException`

## GetSchemaVersionsDiff action (Python: get\$1schema\$1versions\$1diff)
<a name="aws-glue-api-schema-registry-api-GetSchemaVersionsDiff"></a>

Fetches the schema version difference in the specified difference type between two stored schema versions in the Schema Registry.

This API allows you to compare two schema versions between two schema definitions under the same schema.

**Request**
+ `SchemaId` – *Required:* A [SchemaId](#aws-glue-api-schema-registry-api-SchemaId) object.

  This is a wrapper structure to contain schema identity fields. The structure contains:
  + SchemaId\$1SchemaArn: The Amazon Resource Name (ARN) of the schema. One of `SchemaArn` or `SchemaName` has to be provided.
  + SchemaId\$1SchemaName: The name of the schema. One of `SchemaArn` or `SchemaName` has to be provided.
+ `FirstSchemaVersionNumber` – *Required:* A [SchemaVersionNumber](#aws-glue-api-schema-registry-api-SchemaVersionNumber) object.

  The first of the two schema versions to be compared.
+ `SecondSchemaVersionNumber` – *Required:* A [SchemaVersionNumber](#aws-glue-api-schema-registry-api-SchemaVersionNumber) object.

  The second of the two schema versions to be compared.
+ `SchemaDiffType` – *Required:* UTF-8 string (valid values: `SYNTAX_DIFF`).

  Refers to `SYNTAX_DIFF`, which is the currently supported diff type.

**Response**
+ `Diff` – UTF-8 string, not less than 1 or more than 340000 bytes long, matching the [Custom string pattern #13](aws-glue-api-common.md#regex_13).

  The difference between schemas as a string in JsonPatch format.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `AccessDeniedException`
+ `ThrottlingException`
+ `InternalServiceException`

## ListRegistries action (Python: list\$1registries)
<a name="aws-glue-api-schema-registry-api-ListRegistries"></a>

Returns a list of registries that you have created, with minimal registry information. Registries in the `Deleting` status will not be included in the results. Empty results will be returned if there are no registries available.

**Request**
+ `MaxResults` – Number (integer), not less than 1 or more than 100.

  Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.

**Response**
+ `Registries` – An array of [RegistryListItem](#aws-glue-api-schema-registry-api-RegistryListItem) objects.

  An array of `RegistryDetailedListItem` objects containing minimal details of each registry.
+ `NextToken` – UTF-8 string.

  A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `ThrottlingException`
+ `InternalServiceException`

## ListSchemas action (Python: list\$1schemas)
<a name="aws-glue-api-schema-registry-api-ListSchemas"></a>

Returns a list of schemas with minimal details. Schemas in Deleting status will not be included in the results. Empty results will be returned if there are no schemas available.

When the `RegistryId` is not provided, all the schemas across registries will be part of the API response.

**Request**
+ `RegistryId` – A [RegistryId](#aws-glue-api-schema-registry-api-RegistryId) object.

  A wrapper structure that may contain the registry name and Amazon Resource Name (ARN).
+ `MaxResults` – Number (integer), not less than 1 or more than 100.

  Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.

**Response**
+ `Schemas` – An array of [SchemaListItem](#aws-glue-api-schema-registry-api-SchemaListItem) objects.

  An array of `SchemaListItem` objects containing details of each schema.
+ `NextToken` – UTF-8 string.

  A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `ThrottlingException`
+ `InternalServiceException`

## RegisterSchemaVersion action (Python: register\$1schema\$1version)
<a name="aws-glue-api-schema-registry-api-RegisterSchemaVersion"></a>

Adds a new version to the existing schema. Returns an error if new version of schema does not meet the compatibility requirements of the schema set. This API will not create a new schema set and will return a 404 error if the schema set is not already present in the Schema Registry.

If this is the first schema definition to be registered in the Schema Registry, this API will store the schema version and return immediately. Otherwise, this call has the potential to run longer than other operations due to compatibility modes. You can call the `GetSchemaVersion` API with the `SchemaVersionId` to check compatibility modes.

If the same schema definition is already stored in Schema Registry as a version, the schema ID of the existing schema is returned to the caller.

**Request**
+ `SchemaId` – *Required:* A [SchemaId](#aws-glue-api-schema-registry-api-SchemaId) object.

  This is a wrapper structure to contain schema identity fields. The structure contains:
  + SchemaId\$1SchemaArn: The Amazon Resource Name (ARN) of the schema. Either `SchemaArn` or `SchemaName` and `RegistryName` has to be provided.
  + SchemaId\$1SchemaName: The name of the schema. Either `SchemaArn` or `SchemaName` and `RegistryName` has to be provided.
+ `SchemaDefinition` – *Required:* UTF-8 string, not less than 1 or more than 170000 bytes long, matching the [Custom string pattern #13](aws-glue-api-common.md#regex_13).

  The schema definition using the `DataFormat` setting for the `SchemaName`.

**Response**
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The unique ID that represents the version of this schema.
+ `VersionNumber` – Number (long), not less than 1 or more than 100000.

  The version of this schema (for sync flow only, in case this is the first version).
+ `Status` – UTF-8 string (valid values: `AVAILABLE` \$1 `PENDING` \$1 `FAILURE` \$1 `DELETING`).

  The status of the schema version.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `ResourceNumberLimitExceededException`
+ `ThrottlingException`
+ `ConcurrentModificationException`
+ `InternalServiceException`

## UpdateSchema action (Python: update\$1schema)
<a name="aws-glue-api-schema-registry-api-UpdateSchema"></a>

Updates the description, compatibility setting, or version checkpoint for a schema set.

For updating the compatibility setting, the call will not validate compatibility for the entire set of schema versions with the new compatibility setting. If the value for `Compatibility` is provided, the `VersionNumber` (a checkpoint) is also required. The API will validate the checkpoint version number for consistency.

If the value for the `VersionNumber` (checkpoint) is provided, `Compatibility` is optional and this can be used to set/reset a checkpoint for the schema.

This update will happen only if the schema is in the AVAILABLE state.

**Request**
+ `SchemaId` – *Required:* A [SchemaId](#aws-glue-api-schema-registry-api-SchemaId) object.

  This is a wrapper structure to contain schema identity fields. The structure contains:
  + SchemaId\$1SchemaArn: The Amazon Resource Name (ARN) of the schema. One of `SchemaArn` or `SchemaName` has to be provided.
  + SchemaId\$1SchemaName: The name of the schema. One of `SchemaArn` or `SchemaName` has to be provided.
+ `SchemaVersionNumber` – A [SchemaVersionNumber](#aws-glue-api-schema-registry-api-SchemaVersionNumber) object.

  Version number required for check pointing. One of `VersionNumber` or `Compatibility` has to be provided.
+ `Compatibility` – UTF-8 string (valid values: `NONE` \$1 `DISABLED` \$1 `BACKWARD` \$1 `BACKWARD_ALL` \$1 `FORWARD` \$1 `FORWARD_ALL` \$1 `FULL` \$1 `FULL_ALL`).

  The new compatibility setting for the schema.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The new description for the schema.

**Response**
+ `SchemaArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the schema.
+ `SchemaName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the schema.
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the registry that contains the schema.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `ConcurrentModificationException`
+ `ThrottlingException`
+ `InternalServiceException`

## CheckSchemaVersionValidity action (Python: check\$1schema\$1version\$1validity)
<a name="aws-glue-api-schema-registry-api-CheckSchemaVersionValidity"></a>

Validates the supplied schema. This call has no side effects, it simply validates using the supplied schema using `DataFormat` as the format. Since it does not take a schema set name, no compatibility checks are performed.

**Request**
+ `DataFormat` – *Required:* UTF-8 string (valid values: `AVRO` \$1 `JSON` \$1 `PROTOBUF`).

  The data format of the schema definition. Currently `AVRO`, `JSON` and `PROTOBUF` are supported.
+ `SchemaDefinition` – *Required:* UTF-8 string, not less than 1 or more than 170000 bytes long, matching the [Custom string pattern #13](aws-glue-api-common.md#regex_13).

  The definition of the schema that has to be validated.

**Response**
+ `Valid` – Boolean.

  Return true, if the schema is valid and false otherwise.
+ `Error` – UTF-8 string, not less than 1 or more than 5000 bytes long.

  A validation failure error message.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `ThrottlingException`
+ `InternalServiceException`

## UpdateRegistry action (Python: update\$1registry)
<a name="aws-glue-api-schema-registry-api-UpdateRegistry"></a>

Updates an existing registry which is used to hold a collection of schemas. The updated properties relate to the registry, and do not modify any of the schemas within the registry. 

**Request**
+ `RegistryId` – *Required:* A [RegistryId](#aws-glue-api-schema-registry-api-RegistryId) object.

  This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).
+ `Description` – *Required:* Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the registry. If description is not provided, this field will not be updated.

**Response**
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the updated registry.
+ `RegistryArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource name (ARN) of the updated registry.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `ConcurrentModificationException`
+ `ThrottlingException`
+ `InternalServiceException`

## GetSchemaByDefinition action (Python: get\$1schema\$1by\$1definition)
<a name="aws-glue-api-schema-registry-api-GetSchemaByDefinition"></a>

Retrieves a schema by the `SchemaDefinition`. The schema definition is sent to the Schema Registry, canonicalized, and hashed. If the hash is matched within the scope of the `SchemaName` or ARN (or the default registry, if none is supplied), that schema's metadata is returned. Otherwise, a 404 or NotFound error is returned. Schema versions in `Deleted` statuses will not be included in the results.

**Request**
+ `SchemaId` – *Required:* A [SchemaId](#aws-glue-api-schema-registry-api-SchemaId) object.

  This is a wrapper structure to contain schema identity fields. The structure contains:
  + SchemaId\$1SchemaArn: The Amazon Resource Name (ARN) of the schema. One of `SchemaArn` or `SchemaName` has to be provided.
  + SchemaId\$1SchemaName: The name of the schema. One of `SchemaArn` or `SchemaName` has to be provided.
+ `SchemaDefinition` – *Required:* UTF-8 string, not less than 1 or more than 170000 bytes long, matching the [Custom string pattern #13](aws-glue-api-common.md#regex_13).

  The definition of the schema for which schema details are required.

**Response**
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The schema ID of the schema version.
+ `SchemaArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the schema.
+ `DataFormat` – UTF-8 string (valid values: `AVRO` \$1 `JSON` \$1 `PROTOBUF`).

  The data format of the schema definition. Currently `AVRO`, `JSON` and `PROTOBUF` are supported.
+ `Status` – UTF-8 string (valid values: `AVAILABLE` \$1 `PENDING` \$1 `FAILURE` \$1 `DELETING`).

  The status of the schema version.
+ `CreatedTime` – UTF-8 string.

  The date and time the schema was created.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `ThrottlingException`
+ `InternalServiceException`

## GetRegistry action (Python: get\$1registry)
<a name="aws-glue-api-schema-registry-api-GetRegistry"></a>

Describes the specified registry in detail.

**Request**
+ `RegistryId` – *Required:* A [RegistryId](#aws-glue-api-schema-registry-api-RegistryId) object.

  This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).

**Response**
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the registry.
+ `RegistryArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the registry.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the registry.
+ `Status` – UTF-8 string (valid values: `AVAILABLE` \$1 `DELETING`).

  The status of the registry.
+ `CreatedTime` – UTF-8 string.

  The date and time the registry was created.
+ `UpdatedTime` – UTF-8 string.

  The date and time the registry was updated.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `EntityNotFoundException`
+ `ThrottlingException`
+ `InternalServiceException`

## PutSchemaVersionMetadata action (Python: put\$1schema\$1version\$1metadata)
<a name="aws-glue-api-schema-registry-api-PutSchemaVersionMetadata"></a>

Puts the metadata key value pair for a specified schema version ID. A maximum of 10 key value pairs will be allowed per schema version. They can be added over one or more calls.

**Request**
+ `SchemaId` – A [SchemaId](#aws-glue-api-schema-registry-api-SchemaId) object.

  The unique ID for the schema.
+ `SchemaVersionNumber` – A [SchemaVersionNumber](#aws-glue-api-schema-registry-api-SchemaVersionNumber) object.

  The version number of the schema.
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The unique version ID of the schema version.
+ `MetadataKeyValue` – *Required:* A [MetadataKeyValuePair](#aws-glue-api-schema-registry-api-MetadataKeyValuePair) object.

  The metadata key's corresponding value.

**Response**
+ `SchemaArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) for the schema.
+ `SchemaName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name for the schema.
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name for the registry.
+ `LatestVersion` – Boolean.

  The latest version of the schema.
+ `VersionNumber` – Number (long), not less than 1 or more than 100000.

  The version number of the schema.
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The unique version ID of the schema version.
+ `MetadataKey` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #14](aws-glue-api-common.md#regex_14).

  The metadata key.
+ `MetadataValue` – UTF-8 string, not less than 1 or more than 256 bytes long, matching the [Custom string pattern #14](aws-glue-api-common.md#regex_14).

  The value of the metadata key.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `AlreadyExistsException`
+ `EntityNotFoundException`
+ `ThrottlingException`
+ `ResourceNumberLimitExceededException`

## QuerySchemaVersionMetadata action (Python: query\$1schema\$1version\$1metadata)
<a name="aws-glue-api-schema-registry-api-QuerySchemaVersionMetadata"></a>

Queries for the schema version metadata information. 

**Request**
+ `SchemaId` – A [SchemaId](#aws-glue-api-schema-registry-api-SchemaId) object.

  A wrapper structure that may contain the schema name and Amazon Resource Name (ARN).
+ `SchemaVersionNumber` – A [SchemaVersionNumber](#aws-glue-api-schema-registry-api-SchemaVersionNumber) object.

  The version number of the schema.
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The unique version ID of the schema version.
+ `MetadataList` – An array of [MetadataKeyValuePair](#aws-glue-api-schema-registry-api-MetadataKeyValuePair) objects.

  Search key-value pairs for metadata, if they are not provided all the metadata information will be fetched.
+ `MaxResults` – Number (integer), not less than 1 or more than 50.

  Maximum number of results required per page. If the value is not supplied, this will be defaulted to 25 per page.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation call.

**Response**
+ `MetadataInfoMap` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #14](aws-glue-api-common.md#regex_14).

  Each value is a A [MetadataInfo](#aws-glue-api-schema-registry-api-MetadataInfo) object.

  A map of a metadata key and associated values.
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The unique version ID of the schema version.
+ `NextToken` – UTF-8 string.

  A continuation token for paginating the returned list of tokens, returned if the current segment of the list is not the last.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `ThrottlingException`
+ `EntityNotFoundException`

## RemoveSchemaVersionMetadata action (Python: remove\$1schema\$1version\$1metadata)
<a name="aws-glue-api-schema-registry-api-RemoveSchemaVersionMetadata"></a>

Removes a key value pair from the schema version metadata for the specified schema version ID.

**Request**
+ `SchemaId` – A [SchemaId](#aws-glue-api-schema-registry-api-SchemaId) object.

  A wrapper structure that may contain the schema name and Amazon Resource Name (ARN).
+ `SchemaVersionNumber` – A [SchemaVersionNumber](#aws-glue-api-schema-registry-api-SchemaVersionNumber) object.

  The version number of the schema.
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The unique version ID of the schema version.
+ `MetadataKeyValue` – *Required:* A [MetadataKeyValuePair](#aws-glue-api-schema-registry-api-MetadataKeyValuePair) object.

  The value of the metadata key.

**Response**
+ `SchemaArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the schema.
+ `SchemaName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the schema.
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the registry.
+ `LatestVersion` – Boolean.

  The latest version of the schema.
+ `VersionNumber` – Number (long), not less than 1 or more than 100000.

  The version number of the schema.
+ `SchemaVersionId` – UTF-8 string, not less than 36 or more than 36 bytes long, matching the [Custom string pattern #45](aws-glue-api-common.md#regex_45).

  The version ID for the schema version.
+ `MetadataKey` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #14](aws-glue-api-common.md#regex_14).

  The metadata key.
+ `MetadataValue` – UTF-8 string, not less than 1 or more than 256 bytes long, matching the [Custom string pattern #14](aws-glue-api-common.md#regex_14).

  The value of the metadata key.

**Errors**
+ `InvalidInputException`
+ `AccessDeniedException`
+ `ThrottlingException`
+ `EntityNotFoundException`

## DeleteRegistry action (Python: delete\$1registry)
<a name="aws-glue-api-schema-registry-api-DeleteRegistry"></a>

Delete the entire registry including schema and all of its versions. To get the status of the delete operation, you can call the `GetRegistry` API after the asynchronous call. Deleting a registry will deactivate all online operations for the registry such as the `UpdateRegistry`, `CreateSchema`, `UpdateSchema`, and `RegisterSchemaVersion` APIs. 

**Request**
+ `RegistryId` – *Required:* A [RegistryId](#aws-glue-api-schema-registry-api-RegistryId) object.

  This is a wrapper structure that may contain the registry name and Amazon Resource Name (ARN).

**Response**
+ `RegistryName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the registry being deleted.
+ `RegistryArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the registry being deleted.
+ `Status` – UTF-8 string (valid values: `AVAILABLE` \$1 `DELETING`).

  The status of the registry. A successful operation will return the `Deleting` status.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `AccessDeniedException`
+ `ThrottlingException`
+ `ConcurrentModificationException`

## DeleteSchema action (Python: delete\$1schema)
<a name="aws-glue-api-schema-registry-api-DeleteSchema"></a>

Deletes the entire schema set, including the schema set and all of its versions. To get the status of the delete operation, you can call `GetSchema` API after the asynchronous call. Deleting a registry will deactivate all online operations for the schema, such as the `GetSchemaByDefinition`, and `RegisterSchemaVersion` APIs.

**Request**
+ `SchemaId` – *Required:* A [SchemaId](#aws-glue-api-schema-registry-api-SchemaId) object.

  This is a wrapper structure that may contain the schema name and Amazon Resource Name (ARN).

**Response**
+ `SchemaArn` – UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the schema being deleted.
+ `SchemaName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #46](aws-glue-api-common.md#regex_46).

  The name of the schema being deleted.
+ `Status` – UTF-8 string (valid values: `AVAILABLE` \$1 `PENDING` \$1 `DELETING`).

  The status of the schema.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `AccessDeniedException`
+ `ThrottlingException`
+ `ConcurrentModificationException`

## DeleteSchemaVersions action (Python: delete\$1schema\$1versions)
<a name="aws-glue-api-schema-registry-api-DeleteSchemaVersions"></a>

Remove versions from the specified schema. A version number or range may be supplied. If the compatibility mode forbids deleting of a version that is necessary, such as BACKWARDS\$1FULL, an error is returned. Calling the `GetSchemaVersions` API after this call will list the status of the deleted versions.

When the range of version numbers contain check pointed version, the API will return a 409 conflict and will not proceed with the deletion. You have to remove the checkpoint first using the `DeleteSchemaCheckpoint` API before using this API.

You cannot use the `DeleteSchemaVersions` API to delete the first schema version in the schema set. The first schema version can only be deleted by the `DeleteSchema` API. This operation will also delete the attached `SchemaVersionMetadata` under the schema versions. Hard deletes will be enforced on the database.

If the compatibility mode forbids deleting of a version that is necessary, such as BACKWARDS\$1FULL, an error is returned.

**Request**
+ `SchemaId` – *Required:* A [SchemaId](#aws-glue-api-schema-registry-api-SchemaId) object.

  This is a wrapper structure that may contain the schema name and Amazon Resource Name (ARN).
+ `Versions` – *Required:* UTF-8 string, not less than 1 or more than 100000 bytes long, matching the [Custom string pattern #15](aws-glue-api-common.md#regex_15).

  A version range may be supplied which may be of the format:
  + a single version number, 5
  + a range, 5-8 : deletes versions 5, 6, 7, 8

**Response**
+ `SchemaVersionErrors` – An array of [SchemaVersionErrorItem](#aws-glue-api-schema-registry-api-SchemaVersionErrorItem) objects.

  A list of `SchemaVersionErrorItem` objects, each containing an error and schema version.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `AccessDeniedException`
+ `ThrottlingException`
+ `ConcurrentModificationException`

# Workflows
<a name="aws-glue-api-workflow"></a>

 The Workflows API describes the data types and API related to creating, updating, or viewing workflows in AWS Glue. Job run history is accessible for 90 days for your workflow and job run. 

## Data types
<a name="aws-glue-api-workflow-objects"></a>
+ [JobNodeDetails structure](#aws-glue-api-workflow-JobNodeDetails)
+ [CrawlerNodeDetails structure](#aws-glue-api-workflow-CrawlerNodeDetails)
+ [TriggerNodeDetails structure](#aws-glue-api-workflow-TriggerNodeDetails)
+ [Crawl structure](#aws-glue-api-workflow-Crawl)
+ [Node structure](#aws-glue-api-workflow-Node)
+ [Edge structure](#aws-glue-api-workflow-Edge)
+ [Workflow structure](#aws-glue-api-workflow-Workflow)
+ [WorkflowGraph structure](#aws-glue-api-workflow-WorkflowGraph)
+ [WorkflowRun structure](#aws-glue-api-workflow-WorkflowRun)
+ [WorkflowRunStatistics structure](#aws-glue-api-workflow-WorkflowRunStatistics)
+ [StartingEventBatchCondition structure](#aws-glue-api-workflow-StartingEventBatchCondition)
+ [Blueprint structure](#aws-glue-api-workflow-Blueprint)
+ [BlueprintDetails structure](#aws-glue-api-workflow-BlueprintDetails)
+ [LastActiveDefinition structure](#aws-glue-api-workflow-LastActiveDefinition)
+ [BlueprintRun structure](#aws-glue-api-workflow-BlueprintRun)

## JobNodeDetails structure
<a name="aws-glue-api-workflow-JobNodeDetails"></a>

The details of a Job node present in the workflow.

**Fields**
+ `JobRuns` – An array of [JobRun](aws-glue-api-jobs-runs.md#aws-glue-api-jobs-runs-JobRun) objects.

  The information for the job runs represented by the job node.

## CrawlerNodeDetails structure
<a name="aws-glue-api-workflow-CrawlerNodeDetails"></a>

The details of a Crawler node present in the workflow.

**Fields**
+ `Crawls` – An array of [Crawl](#aws-glue-api-workflow-Crawl) objects.

  A list of crawls represented by the crawl node.

## TriggerNodeDetails structure
<a name="aws-glue-api-workflow-TriggerNodeDetails"></a>

The details of a Trigger node present in the workflow.

**Fields**
+ `Trigger` – A [Trigger](aws-glue-api-jobs-trigger.md#aws-glue-api-jobs-trigger-Trigger) object.

  The information of the trigger represented by the trigger node.

## Crawl structure
<a name="aws-glue-api-workflow-Crawl"></a>

The details of a crawl in the workflow.

**Fields**
+ `State` – UTF-8 string (valid values: `RUNNING` \$1 `CANCELLING` \$1 `CANCELLED` \$1 `SUCCEEDED` \$1 `FAILED` \$1 `ERROR`).

  The state of the crawler.
+ `StartedOn` – Timestamp.

  The date and time on which the crawl started.
+ `CompletedOn` – Timestamp.

  The date and time on which the crawl completed.
+ `ErrorMessage` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The error message associated with the crawl.
+ `LogGroup` – UTF-8 string, not less than 1 or more than 512 bytes long, matching the [Log group string pattern](aws-glue-api-common.md#aws-glue-api-regex-logGroup-id).

  The log group associated with the crawl.
+ `LogStream` – UTF-8 string, not less than 1 or more than 512 bytes long, matching the [Log-stream string pattern](aws-glue-api-common.md#aws-glue-api-regex-logStream-id).

  The log stream associated with the crawl.

## Node structure
<a name="aws-glue-api-workflow-Node"></a>

A node represents an AWS Glue component (trigger, crawler, or job) on a workflow graph.

**Fields**
+ `Type` – UTF-8 string (valid values: `CRAWLER` \$1 `JOB` \$1 `TRIGGER`).

  The type of AWS Glue component represented by the node.
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the AWS Glue component represented by the node.
+ `UniqueId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique Id assigned to the node within the workflow.
+ `TriggerDetails` – A [TriggerNodeDetails](#aws-glue-api-workflow-TriggerNodeDetails) object.

  Details of the Trigger when the node represents a Trigger.
+ `JobDetails` – A [JobNodeDetails](#aws-glue-api-workflow-JobNodeDetails) object.

  Details of the Job when the node represents a Job.
+ `CrawlerDetails` – A [CrawlerNodeDetails](#aws-glue-api-workflow-CrawlerNodeDetails) object.

  Details of the crawler when the node represents a crawler.

## Edge structure
<a name="aws-glue-api-workflow-Edge"></a>

An edge represents a directed connection between two AWS Glue components that are part of the workflow the edge belongs to.

**Fields**
+ `SourceId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique of the node within the workflow where the edge starts.
+ `DestinationId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique of the node within the workflow where the edge ends.

## Workflow structure
<a name="aws-glue-api-workflow-Workflow"></a>

A workflow is a collection of multiple dependent AWS Glue jobs and crawlers that are run to complete a complex ETL task. A workflow manages the execution and monitoring of all its jobs and crawlers.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the workflow.
+ `Description` – UTF-8 string.

  A description of the workflow.
+ `DefaultRunProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string.

  A collection of properties to be used as part of each execution of the workflow. The run properties are made available to each job in the workflow. A job can modify the properties for the next jobs in the flow.
+ `CreatedOn` – Timestamp.

  The date and time when the workflow was created.
+ `LastModifiedOn` – Timestamp.

  The date and time when the workflow was last modified.
+ `LastRun` – A [WorkflowRun](#aws-glue-api-workflow-WorkflowRun) object.

  The information about the last execution of the workflow.
+ `Graph` – A [WorkflowGraph](#aws-glue-api-workflow-WorkflowGraph) object.

  The graph representing all the AWS Glue components that belong to the workflow as nodes and directed connections between them as edges.
+ `CreationStatus` – UTF-8 string (valid values: `CREATING` \$1 `CREATED` \$1 `CREATION_FAILED`).

  The creation status of the workflow.
+ `MaxConcurrentRuns` – Number (integer).

  You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.
+ `BlueprintDetails` – A [BlueprintDetails](#aws-glue-api-workflow-BlueprintDetails) object.

  This structure indicates the details of the blueprint that this particular workflow is created from.

## WorkflowGraph structure
<a name="aws-glue-api-workflow-WorkflowGraph"></a>

A workflow graph represents the complete workflow containing all the AWS Glue components present in the workflow and all the directed connections between them.

**Fields**
+ `Nodes` – An array of [Node](#aws-glue-api-workflow-Node) objects.

  A list of the the AWS Glue components belong to the workflow represented as nodes.
+ `Edges` – An array of [Edge](#aws-glue-api-workflow-Edge) objects.

  A list of all the directed connections between the nodes belonging to the workflow.

## WorkflowRun structure
<a name="aws-glue-api-workflow-WorkflowRun"></a>

A workflow run is an execution of a workflow providing all the runtime information.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the workflow that was run.
+ `WorkflowRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of this workflow run.
+ `PreviousRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the previous workflow run.
+ `WorkflowRunProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string.

  The workflow run properties which were set during the run.
+ `StartedOn` – Timestamp.

  The date and time when the workflow run was started.
+ `CompletedOn` – Timestamp.

  The date and time when the workflow run completed.
+ `Status` – UTF-8 string (valid values: `RUNNING` \$1 `COMPLETED` \$1 `STOPPING` \$1 `STOPPED` \$1 `ERROR`).

  The status of the workflow run.
+ `ErrorMessage` – UTF-8 string.

  This error message describes any error that may have occurred in starting the workflow run. Currently the only error message is "Concurrent runs exceeded for workflow: `foo`."
+ `Statistics` – A [WorkflowRunStatistics](#aws-glue-api-workflow-WorkflowRunStatistics) object.

  The statistics of the run.
+ `Graph` – A [WorkflowGraph](#aws-glue-api-workflow-WorkflowGraph) object.

  The graph representing all the AWS Glue components that belong to the workflow as nodes and directed connections between them as edges.
+ `StartingEventBatchCondition` – A [StartingEventBatchCondition](#aws-glue-api-workflow-StartingEventBatchCondition) object.

  The batch condition that started the workflow run.

## WorkflowRunStatistics structure
<a name="aws-glue-api-workflow-WorkflowRunStatistics"></a>

Workflow run statistics provides statistics about the workflow run.

**Fields**
+ `TotalActions` – Number (integer).

  Total number of Actions in the workflow run.
+ `TimeoutActions` – Number (integer).

  Total number of Actions that timed out.
+ `FailedActions` – Number (integer).

  Total number of Actions that have failed.
+ `StoppedActions` – Number (integer).

  Total number of Actions that have stopped.
+ `SucceededActions` – Number (integer).

  Total number of Actions that have succeeded.
+ `RunningActions` – Number (integer).

  Total number Actions in running state.
+ `ErroredActions` – Number (integer).

  Indicates the count of job runs in the ERROR state in the workflow run.
+ `WaitingActions` – Number (integer).

  Indicates the count of job runs in WAITING state in the workflow run.

## StartingEventBatchCondition structure
<a name="aws-glue-api-workflow-StartingEventBatchCondition"></a>

The batch condition that started the workflow run. Either the number of events in the batch size arrived, in which case the BatchSize member is non-zero, or the batch window expired, in which case the BatchWindow member is non-zero.

**Fields**
+ `BatchSize` – Number (integer).

  Number of events in the batch.
+ `BatchWindow` – Number (integer).

  Duration of the batch window in seconds.

## Blueprint structure
<a name="aws-glue-api-workflow-Blueprint"></a>

The details of a blueprint.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The name of the blueprint.
+ `Description` – UTF-8 string, not less than 1 or more than 512 bytes long.

  The description of the blueprint.
+ `CreatedOn` – Timestamp.

  The date and time the blueprint was registered.
+ `LastModifiedOn` – Timestamp.

  The date and time the blueprint was last modified.
+ `ParameterSpec` – UTF-8 string, not less than 1 or more than 131072 bytes long.

  A JSON string that indicates the list of parameter specifications for the blueprint.
+ `BlueprintLocation` – UTF-8 string.

  Specifies the path in Amazon S3 where the blueprint is published.
+ `BlueprintServiceLocation` – UTF-8 string.

  Specifies a path in Amazon S3 where the blueprint is copied when you call `CreateBlueprint/UpdateBlueprint` to register the blueprint in AWS Glue.
+ `Status` – UTF-8 string (valid values: `CREATING` \$1 `ACTIVE` \$1 `UPDATING` \$1 `FAILED`).

  The status of the blueprint registration.
  + Creating — The blueprint registration is in progress.
  + Active — The blueprint has been successfully registered.
  + Updating — An update to the blueprint registration is in progress.
  + Failed — The blueprint registration failed.
+ `ErrorMessage` – UTF-8 string.

  An error message.
+ `LastActiveDefinition` – A [LastActiveDefinition](#aws-glue-api-workflow-LastActiveDefinition) object.

  When there are multiple versions of a blueprint and the latest version has some errors, this attribute indicates the last successful blueprint definition that is available with the service.

## BlueprintDetails structure
<a name="aws-glue-api-workflow-BlueprintDetails"></a>

The details of a blueprint.

**Fields**
+ `BlueprintName` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The name of the blueprint.
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The run ID for this blueprint.

## LastActiveDefinition structure
<a name="aws-glue-api-workflow-LastActiveDefinition"></a>

When there are multiple versions of a blueprint and the latest version has some errors, this attribute indicates the last successful blueprint definition that is available with the service.

**Fields**
+ `Description` – UTF-8 string, not less than 1 or more than 512 bytes long.

  The description of the blueprint.
+ `LastModifiedOn` – Timestamp.

  The date and time the blueprint was last modified.
+ `ParameterSpec` – UTF-8 string, not less than 1 or more than 131072 bytes long.

  A JSON string specifying the parameters for the blueprint.
+ `BlueprintLocation` – UTF-8 string.

  Specifies a path in Amazon S3 where the blueprint is published by the AWS Glue developer.
+ `BlueprintServiceLocation` – UTF-8 string.

  Specifies a path in Amazon S3 where the blueprint is copied when you create or update the blueprint.

## BlueprintRun structure
<a name="aws-glue-api-workflow-BlueprintRun"></a>

The details of a blueprint run.

**Fields**
+ `BlueprintName` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The name of the blueprint.
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The run ID for this blueprint run.
+ `WorkflowName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of a workflow that is created as a result of a successful blueprint run. If a blueprint run has an error, there will not be a workflow created.
+ `State` – UTF-8 string (valid values: `RUNNING` \$1 `SUCCEEDED` \$1 `FAILED` \$1 `ROLLING_BACK`).

  The state of the blueprint run. Possible values are:
  + Running — The blueprint run is in progress.
  + Succeeded — The blueprint run completed successfully.
  + Failed — The blueprint run failed and rollback is complete.
  + Rolling Back — The blueprint run failed and rollback is in progress.
+ `StartedOn` – Timestamp.

  The date and time that the blueprint run started.
+ `CompletedOn` – Timestamp.

  The date and time that the blueprint run completed.
+ `ErrorMessage` – UTF-8 string.

  Indicates any errors that are seen while running the blueprint.
+ `RollbackErrorMessage` – UTF-8 string.

  If there are any errors while creating the entities of a workflow, we try to roll back the created entities until that point and delete them. This attribute indicates the errors seen while trying to delete the entities that are created.
+ `Parameters` – UTF-8 string, not less than 1 or more than 131072 bytes long.

  The blueprint parameters as a string. You will have to provide a value for each key that is required from the parameter spec that is defined in the `Blueprint$ParameterSpec`.
+ `RoleArn` – UTF-8 string, not less than 1 or more than 1024 bytes long, matching the [Custom string pattern #30](aws-glue-api-common.md#regex_30).

  The role ARN. This role will be assumed by the AWS Glue service and will be used to create the workflow and other entities of a workflow.

## Operations
<a name="aws-glue-api-workflow-actions"></a>
+ [CreateWorkflow action (Python: create\$1workflow)](#aws-glue-api-workflow-CreateWorkflow)
+ [UpdateWorkflow action (Python: update\$1workflow)](#aws-glue-api-workflow-UpdateWorkflow)
+ [DeleteWorkflow action (Python: delete\$1workflow)](#aws-glue-api-workflow-DeleteWorkflow)
+ [GetWorkflow action (Python: get\$1workflow)](#aws-glue-api-workflow-GetWorkflow)
+ [ListWorkflows action (Python: list\$1workflows)](#aws-glue-api-workflow-ListWorkflows)
+ [BatchGetWorkflows action (Python: batch\$1get\$1workflows)](#aws-glue-api-workflow-BatchGetWorkflows)
+ [GetWorkflowRun action (Python: get\$1workflow\$1run)](#aws-glue-api-workflow-GetWorkflowRun)
+ [GetWorkflowRuns action (Python: get\$1workflow\$1runs)](#aws-glue-api-workflow-GetWorkflowRuns)
+ [GetWorkflowRunProperties action (Python: get\$1workflow\$1run\$1properties)](#aws-glue-api-workflow-GetWorkflowRunProperties)
+ [PutWorkflowRunProperties action (Python: put\$1workflow\$1run\$1properties)](#aws-glue-api-workflow-PutWorkflowRunProperties)
+ [CreateBlueprint action (Python: create\$1blueprint)](#aws-glue-api-workflow-CreateBlueprint)
+ [UpdateBlueprint action (Python: update\$1blueprint)](#aws-glue-api-workflow-UpdateBlueprint)
+ [DeleteBlueprint action (Python: delete\$1blueprint)](#aws-glue-api-workflow-DeleteBlueprint)
+ [ListBlueprints action (Python: list\$1blueprints)](#aws-glue-api-workflow-ListBlueprints)
+ [BatchGetBlueprints action (Python: batch\$1get\$1blueprints)](#aws-glue-api-workflow-BatchGetBlueprints)
+ [StartBlueprintRun action (Python: start\$1blueprint\$1run)](#aws-glue-api-workflow-StartBlueprintRun)
+ [GetBlueprintRun action (Python: get\$1blueprint\$1run)](#aws-glue-api-workflow-GetBlueprintRun)
+ [GetBlueprintRuns action (Python: get\$1blueprint\$1runs)](#aws-glue-api-workflow-GetBlueprintRuns)
+ [StartWorkflowRun action (Python: start\$1workflow\$1run)](#aws-glue-api-workflow-StartWorkflowRun)
+ [StopWorkflowRun action (Python: stop\$1workflow\$1run)](#aws-glue-api-workflow-StopWorkflowRun)
+ [ResumeWorkflowRun action (Python: resume\$1workflow\$1run)](#aws-glue-api-workflow-ResumeWorkflowRun)

## CreateWorkflow action (Python: create\$1workflow)
<a name="aws-glue-api-workflow-CreateWorkflow"></a>

Creates a new workflow.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name to be assigned to the workflow. It should be unique within your account.
+ `Description` – UTF-8 string, not more than 120000 bytes long.

  A description of the workflow.
+ `DefaultRunProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string.

  A collection of properties to be used as part of each execution of the workflow.

  Run properties may be logged. Do not pass plaintext secrets as properties. Retrieve secrets from a AWS Glue Connection, AWS Secrets Manager or other secret management mechanism if you intend to use them within the workflow run.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The tags to be used with this workflow.
+ `MaxConcurrentRuns` – Number (integer).

  You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the workflow which was provided as part of the request.

**Errors**
+ `AlreadyExistsException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `ConcurrentModificationException`

## UpdateWorkflow action (Python: update\$1workflow)
<a name="aws-glue-api-workflow-UpdateWorkflow"></a>

Updates an existing workflow.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the workflow to be updated.
+ `Description` – UTF-8 string, not more than 120000 bytes long.

  The description of the workflow.
+ `DefaultRunProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string.

  A collection of properties to be used as part of each execution of the workflow.

  Run properties may be logged. Do not pass plaintext secrets as properties. Retrieve secrets from a AWS Glue Connection, AWS Secrets Manager or other secret management mechanism if you intend to use them within the workflow run.
+ `MaxConcurrentRuns` – Number (integer).

  You can use this parameter to prevent unwanted multiple updates to data, to control costs, or in some cases, to prevent exceeding the maximum number of concurrent runs of any of the component jobs. If you leave this parameter blank, there is no limit to the number of concurrent workflow runs.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the workflow which was specified in input.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`

## DeleteWorkflow action (Python: delete\$1workflow)
<a name="aws-glue-api-workflow-DeleteWorkflow"></a>

Deletes a workflow.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the workflow to be deleted.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the workflow specified in input.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ConcurrentModificationException`

## GetWorkflow action (Python: get\$1workflow)
<a name="aws-glue-api-workflow-GetWorkflow"></a>

Retrieves resource metadata for a workflow.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the workflow to retrieve.
+ `IncludeGraph` – Boolean.

  Specifies whether to include a graph when returning the workflow resource metadata.

**Response**
+ `Workflow` – A [Workflow](#aws-glue-api-workflow-Workflow) object.

  The resource metadata for the workflow.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## ListWorkflows action (Python: list\$1workflows)
<a name="aws-glue-api-workflow-ListWorkflows"></a>

Lists names of workflows created in the account.

**Request**
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation request.
+ `MaxResults` – Number (integer), not less than 1 or more than 25.

  The maximum size of a list to return.

**Response**
+ `Workflows` – An array of UTF-8 strings, not less than 1 or more than 25 strings.

  List of names of workflows in the account.
+ `NextToken` – UTF-8 string.

  A continuation token, if not all workflow names have been returned.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## BatchGetWorkflows action (Python: batch\$1get\$1workflows)
<a name="aws-glue-api-workflow-BatchGetWorkflows"></a>

Returns a list of resource metadata for a given list of workflow names. After calling the `ListWorkflows` operation, you can call this operation to access the data to which you have been granted permissions. This operation supports all IAM permissions, including permission conditions that uses tags.

**Request**
+ `Names` – *Required:* An array of UTF-8 strings, not less than 1 or more than 25 strings.

  A list of workflow names, which may be the names returned from the `ListWorkflows` operation.
+ `IncludeGraph` – Boolean.

  Specifies whether to include a graph when returning the workflow resource metadata.

**Response**
+ `Workflows` – An array of [Workflow](#aws-glue-api-workflow-Workflow) objects, not less than 1 or more than 25 structures.

  A list of workflow resource metadata.
+ `MissingWorkflows` – An array of UTF-8 strings, not less than 1 or more than 25 strings.

  A list of names of workflows not found.

**Errors**
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`

## GetWorkflowRun action (Python: get\$1workflow\$1run)
<a name="aws-glue-api-workflow-GetWorkflowRun"></a>

Retrieves the metadata for a given workflow run. Job run history is accessible for 90 days for your workflow and job run.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the workflow being run.
+ `RunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the workflow run.
+ `IncludeGraph` – Boolean.

  Specifies whether to include the workflow graph in response or not.

**Response**
+ `Run` – A [WorkflowRun](#aws-glue-api-workflow-WorkflowRun) object.

  The requested workflow run metadata.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetWorkflowRuns action (Python: get\$1workflow\$1runs)
<a name="aws-glue-api-workflow-GetWorkflowRuns"></a>

Retrieves metadata for all runs of a given workflow.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the workflow whose metadata of runs should be returned.
+ `IncludeGraph` – Boolean.

  Specifies whether to include the workflow graph in response or not.
+ `NextToken` – UTF-8 string.

  The maximum size of the response.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of workflow runs to be included in the response.

**Response**
+ `Runs` – An array of [WorkflowRun](#aws-glue-api-workflow-WorkflowRun) objects, not less than 1 or more than 1000 structures.

  A list of workflow run metadata objects.
+ `NextToken` – UTF-8 string.

  A continuation token, if not all requested workflow runs have been returned.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetWorkflowRunProperties action (Python: get\$1workflow\$1run\$1properties)
<a name="aws-glue-api-workflow-GetWorkflowRunProperties"></a>

Retrieves the workflow run properties which were set during the run.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the workflow which was run.
+ `RunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the workflow run whose run properties should be returned.

**Response**
+ `RunProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string.

  The workflow run properties which were set during the specified run.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## PutWorkflowRunProperties action (Python: put\$1workflow\$1run\$1properties)
<a name="aws-glue-api-workflow-PutWorkflowRunProperties"></a>

Puts the specified workflow run properties for the given workflow run. If a property already exists for the specified run, then it overrides the value otherwise adds the property to existing properties.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Name of the workflow which was run.
+ `RunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the workflow run for which the run properties should be updated.
+ `RunProperties` – *Required:* A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string.

  The properties to put for the specified run.

  Run properties may be logged. Do not pass plaintext secrets as properties. Retrieve secrets from a AWS Glue Connection, AWS Secrets Manager or other secret management mechanism if you intend to use them within the workflow run.

**Response**
+ *No Response parameters.*

**Errors**
+ `AlreadyExistsException`
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `ConcurrentModificationException`

## CreateBlueprint action (Python: create\$1blueprint)
<a name="aws-glue-api-workflow-CreateBlueprint"></a>

Registers a blueprint with AWS Glue.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The name of the blueprint.
+ `Description` – UTF-8 string, not less than 1 or more than 512 bytes long.

  A description of the blueprint.
+ `BlueprintLocation` – *Required:* UTF-8 string, not less than 1 or more than 8192 bytes long, matching the [Custom string pattern #32](aws-glue-api-common.md#regex_32).

  Specifies a path in Amazon S3 where the blueprint is published.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The tags to be applied to this blueprint.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Returns the name of the blueprint that was registered.

**Errors**
+ `AlreadyExistsException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `ResourceNumberLimitExceededException`

## UpdateBlueprint action (Python: update\$1blueprint)
<a name="aws-glue-api-workflow-UpdateBlueprint"></a>

Updates a registered blueprint.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The name of the blueprint.
+ `Description` – UTF-8 string, not less than 1 or more than 512 bytes long.

  A description of the blueprint.
+ `BlueprintLocation` – *Required:* UTF-8 string, not less than 1 or more than 8192 bytes long, matching the [Custom string pattern #32](aws-glue-api-common.md#regex_32).

  Specifies a path in Amazon S3 where the blueprint is published.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Returns the name of the blueprint that was updated.

**Errors**
+ `EntityNotFoundException`
+ `ConcurrentModificationException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `IllegalBlueprintStateException`

## DeleteBlueprint action (Python: delete\$1blueprint)
<a name="aws-glue-api-workflow-DeleteBlueprint"></a>

Deletes an existing blueprint.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the blueprint to delete.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Returns the name of the blueprint that was deleted.

**Errors**
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## ListBlueprints action (Python: list\$1blueprints)
<a name="aws-glue-api-workflow-ListBlueprints"></a>

Lists all the blueprint names in an account.

**Request**
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation request.
+ `MaxResults` – Number (integer), not less than 1 or more than 25.

  The maximum size of a list to return.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  Filters the list by an AWS resource tag.

**Response**
+ `Blueprints` – An array of UTF-8 strings.

  List of names of blueprints in the account.
+ `NextToken` – UTF-8 string.

  A continuation token, if not all blueprint names have been returned.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## BatchGetBlueprints action (Python: batch\$1get\$1blueprints)
<a name="aws-glue-api-workflow-BatchGetBlueprints"></a>

Retrieves information about a list of blueprints.

**Request**
+ `Names` – *Required:* An array of UTF-8 strings, not less than 1 or more than 25 strings.

  A list of blueprint names.
+ `IncludeBlueprint` – Boolean.

  Specifies whether or not to include the blueprint in the response.
+ `IncludeParameterSpec` – Boolean.

  Specifies whether or not to include the parameters, as a JSON string, for the blueprint in the response.

**Response**
+ `Blueprints` – An array of [Blueprint](#aws-glue-api-workflow-Blueprint) objects.

  Returns a list of blueprint as a `Blueprints` object.
+ `MissingBlueprints` – An array of UTF-8 strings.

  Returns a list of `BlueprintNames` that were not found.

**Errors**
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`

## StartBlueprintRun action (Python: start\$1blueprint\$1run)
<a name="aws-glue-api-workflow-StartBlueprintRun"></a>

Starts a new run of the specified blueprint.

**Request**
+ `BlueprintName` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The name of the blueprint.
+ `Parameters` – UTF-8 string, not less than 1 or more than 131072 bytes long.

  Specifies the parameters as a `BlueprintParameters` object.
+ `RoleArn` – *Required:* UTF-8 string, not less than 1 or more than 1024 bytes long, matching the [Custom string pattern #30](aws-glue-api-common.md#regex_30).

  Specifies the IAM role used to create the workflow.

**Response**
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The run ID for this blueprint run.

**Errors**
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `ResourceNumberLimitExceededException`
+ `EntityNotFoundException`
+ `IllegalBlueprintStateException`

## GetBlueprintRun action (Python: get\$1blueprint\$1run)
<a name="aws-glue-api-workflow-GetBlueprintRun"></a>

Retrieves the details of a blueprint run.

**Request**
+ `BlueprintName` – *Required:* UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #31](aws-glue-api-common.md#regex_31).

  The name of the blueprint.
+ `RunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The run ID for the blueprint run you want to retrieve.

**Response**
+ `BlueprintRun` – A [BlueprintRun](#aws-glue-api-workflow-BlueprintRun) object.

  Returns a `BlueprintRun` object.

**Errors**
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## GetBlueprintRuns action (Python: get\$1blueprint\$1runs)
<a name="aws-glue-api-workflow-GetBlueprintRuns"></a>

Retrieves the details of blueprint runs for a specified blueprint.

**Request**
+ `BlueprintName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the blueprint.
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation request.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum size of a list to return.

**Response**
+ `BlueprintRuns` – An array of [BlueprintRun](#aws-glue-api-workflow-BlueprintRun) objects.

  Returns a list of `BlueprintRun` objects.
+ `NextToken` – UTF-8 string.

  A continuation token, if not all blueprint runs have been returned.

**Errors**
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`

## StartWorkflowRun action (Python: start\$1workflow\$1run)
<a name="aws-glue-api-workflow-StartWorkflowRun"></a>

Starts a new run of the specified workflow.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the workflow to start.
+ `RunProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a UTF-8 string.

  The workflow run properties for the new workflow run.

  Run properties may be logged. Do not pass plaintext secrets as properties. Retrieve secrets from a AWS Glue Connection, AWS Secrets Manager or other secret management mechanism if you intend to use them within the workflow run.

**Response**
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  An Id for the new run.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `ConcurrentRunsExceededException`

## StopWorkflowRun action (Python: stop\$1workflow\$1run)
<a name="aws-glue-api-workflow-StopWorkflowRun"></a>

Stops the execution of the specified workflow run.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the workflow to stop.
+ `RunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the workflow run to stop.

**Response**
+ *No Response parameters.*

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `IllegalWorkflowStateException`

## ResumeWorkflowRun action (Python: resume\$1workflow\$1run)
<a name="aws-glue-api-workflow-ResumeWorkflowRun"></a>

Restarts selected nodes of a previous partially completed workflow run and resumes the workflow run. The selected nodes and all nodes that are downstream from the selected nodes are run.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the workflow to resume.
+ `RunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the workflow run to resume.
+ `NodeIds` – *Required:* An array of UTF-8 strings.

  A list of the node IDs for the nodes you want to restart. The nodes that are to be restarted must have a run attempt in the original run.

**Response**
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The new ID assigned to the resumed workflow run. Each resume of a workflow run will have a new run ID.
+ `NodeIds` – An array of UTF-8 strings.

  A list of the node IDs for the nodes that were actually restarted.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `ConcurrentRunsExceededException`
+ `IllegalWorkflowStateException`

# Usage profiles
<a name="aws-glue-api-usage-profiles"></a>

The Usage profiles API describes the data types and API related to creating, updating, or viewing usage profiles in AWS Glue.

## Data types
<a name="aws-glue-api-usage-profiles-objects"></a>
+ [ProfileConfiguration structure](#aws-glue-api-usage-profiles-ProfileConfiguration)
+ [ConfigurationObject structure](#aws-glue-api-usage-profiles-ConfigurationObject)
+ [UsageProfileDefinition structure](#aws-glue-api-usage-profiles-UsageProfileDefinition)

## ProfileConfiguration structure
<a name="aws-glue-api-usage-profiles-ProfileConfiguration"></a>

Specifies the job and session values that an admin configures in an AWS Glue usage profile.

**Fields**
+ `SessionConfiguration` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a A [ConfigurationObject](#aws-glue-api-usage-profiles-ConfigurationObject) object.

  A key-value map of configuration parameters for AWS Glue sessions. 
+ `JobConfiguration` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a A [ConfigurationObject](#aws-glue-api-usage-profiles-ConfigurationObject) object.

  A key-value map of configuration parameters for AWS Glue jobs. 

## ConfigurationObject structure
<a name="aws-glue-api-usage-profiles-ConfigurationObject"></a>

Specifies the values that an admin sets for each job or session parameter configured in a AWS Glue usage profile.

**Fields**
+ `DefaultValue` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #35](aws-glue-api-common.md#regex_35).

  A default value for the parameter.
+ `AllowedValues` – An array of UTF-8 strings.

  A list of allowed values for the parameter.
+ `MinValue` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #35](aws-glue-api-common.md#regex_35).

  A minimum allowed value for the parameter.
+ `MaxValue` – UTF-8 string, not less than 1 or more than 128 bytes long, matching the [Custom string pattern #35](aws-glue-api-common.md#regex_35).

  A maximum allowed value for the parameter.

## UsageProfileDefinition structure
<a name="aws-glue-api-usage-profiles-UsageProfileDefinition"></a>

Describes an AWS Glue usage profile.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the usage profile.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the usage profile.
+ `CreatedOn` – Timestamp.

  The date and time when the usage profile was created.
+ `LastModifiedOn` – Timestamp.

  The date and time when the usage profile was last modified.

## Operations
<a name="aws-glue-api-usage-profiles-actions"></a>
+ [CreateUsageProfile action (Python: create\$1usage\$1profile)](#aws-glue-api-usage-profiles-CreateUsageProfile)
+ [GetUsageProfile action (Python: get\$1usage\$1profile)](#aws-glue-api-usage-profiles-GetUsageProfile)
+ [UpdateUsageProfile action (Python: update\$1usage\$1profile)](#aws-glue-api-usage-profiles-UpdateUsageProfile)
+ [DeleteUsageProfile action (Python: delete\$1usage\$1profile)](#aws-glue-api-usage-profiles-DeleteUsageProfile)
+ [ListUsageProfiles action (Python: list\$1usage\$1profiles)](#aws-glue-api-usage-profiles-ListUsageProfiles)

## CreateUsageProfile action (Python: create\$1usage\$1profile)
<a name="aws-glue-api-usage-profiles-CreateUsageProfile"></a>

Creates an AWS Glue usage profile.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the usage profile.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the usage profile.
+ `Configuration` – *Required:* A [ProfileConfiguration](#aws-glue-api-usage-profiles-ProfileConfiguration) object.

  A `ProfileConfiguration` object specifying the job and session values for the profile.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  A list of tags applied to the usage profile.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the usage profile that was created.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `AlreadyExistsException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `OperationNotSupportedException`

## GetUsageProfile action (Python: get\$1usage\$1profile)
<a name="aws-glue-api-usage-profiles-GetUsageProfile"></a>

Retrieves information about the specified AWS Glue usage profile.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the usage profile to retrieve.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the usage profile.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the usage profile.
+ `Configuration` – A [ProfileConfiguration](#aws-glue-api-usage-profiles-ProfileConfiguration) object.

  A `ProfileConfiguration` object specifying the job and session values for the profile.
+ `CreatedOn` – Timestamp.

  The date and time when the usage profile was created.
+ `LastModifiedOn` – Timestamp.

  The date and time when the usage profile was last modified.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `OperationNotSupportedException`

## UpdateUsageProfile action (Python: update\$1usage\$1profile)
<a name="aws-glue-api-usage-profiles-UpdateUsageProfile"></a>

Update an AWS Glue usage profile.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the usage profile.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the usage profile.
+ `Configuration` – *Required:* A [ProfileConfiguration](#aws-glue-api-usage-profiles-ProfileConfiguration) object.

  A `ProfileConfiguration` object specifying the job and session values for the profile.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the usage profile that was updated.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `OperationNotSupportedException`
+ `ConcurrentModificationException`

## DeleteUsageProfile action (Python: delete\$1usage\$1profile)
<a name="aws-glue-api-usage-profiles-DeleteUsageProfile"></a>

Deletes the AWS Glue specified usage profile.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the usage profile to delete.

**Response**
+ *No Response parameters.*

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `OperationNotSupportedException`

## ListUsageProfiles action (Python: list\$1usage\$1profiles)
<a name="aws-glue-api-usage-profiles-ListUsageProfiles"></a>

List all the AWS Glue usage profiles.

**Request**
+ `NextToken` – UTF-8 string, not more than 400000 bytes long.

  A continuation token, included if this is a continuation call.
+ `MaxResults` – Number (integer), not less than 1 or more than 200.

  The maximum number of usage profiles to return in a single response.

**Response**
+ `Profiles` – An array of [UsageProfileDefinition](#aws-glue-api-usage-profiles-UsageProfileDefinition) objects.

  A list of usage profile (`UsageProfileDefinition`) objects.
+ `NextToken` – UTF-8 string, not more than 400000 bytes long.

  A continuation token, present if the current list segment is not the last.

**Errors**
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `InvalidInputException`
+ `OperationNotSupportedException`

# Machine learning API
<a name="aws-glue-api-machine-learning-api"></a>

The Machine learning API describes the machine learning data types, and includes the API for creating, deleting, or updating a transform, or starting a machine learning task run.

## Data types
<a name="aws-glue-api-machine-learning-api-objects"></a>
+ [TransformParameters structure](#aws-glue-api-machine-learning-api-TransformParameters)
+ [EvaluationMetrics structure](#aws-glue-api-machine-learning-api-EvaluationMetrics)
+ [MLTransform structure](#aws-glue-api-machine-learning-api-MLTransform)
+ [FindMatchesParameters structure](#aws-glue-api-machine-learning-api-FindMatchesParameters)
+ [FindMatchesMetrics structure](#aws-glue-api-machine-learning-api-FindMatchesMetrics)
+ [ConfusionMatrix structure](#aws-glue-api-machine-learning-api-ConfusionMatrix)
+ [GlueTable structure](#aws-glue-api-machine-learning-api-GlueTable)
+ [TaskRun structure](#aws-glue-api-machine-learning-api-TaskRun)
+ [TransformFilterCriteria structure](#aws-glue-api-machine-learning-api-TransformFilterCriteria)
+ [TransformSortCriteria structure](#aws-glue-api-machine-learning-api-TransformSortCriteria)
+ [TaskRunFilterCriteria structure](#aws-glue-api-machine-learning-api-TaskRunFilterCriteria)
+ [TaskRunSortCriteria structure](#aws-glue-api-machine-learning-api-TaskRunSortCriteria)
+ [TaskRunProperties structure](#aws-glue-api-machine-learning-api-TaskRunProperties)
+ [FindMatchesTaskRunProperties structure](#aws-glue-api-machine-learning-api-FindMatchesTaskRunProperties)
+ [ImportLabelsTaskRunProperties structure](#aws-glue-api-machine-learning-api-ImportLabelsTaskRunProperties)
+ [ExportLabelsTaskRunProperties structure](#aws-glue-api-machine-learning-api-ExportLabelsTaskRunProperties)
+ [LabelingSetGenerationTaskRunProperties structure](#aws-glue-api-machine-learning-api-LabelingSetGenerationTaskRunProperties)
+ [SchemaColumn structure](#aws-glue-api-machine-learning-api-SchemaColumn)
+ [TransformEncryption structure](#aws-glue-api-machine-learning-api-TransformEncryption)
+ [MLUserDataEncryption structure](#aws-glue-api-machine-learning-api-MLUserDataEncryption)
+ [ColumnImportance structure](#aws-glue-api-machine-learning-api-ColumnImportance)

## TransformParameters structure
<a name="aws-glue-api-machine-learning-api-TransformParameters"></a>

The algorithm-specific parameters that are associated with the machine learning transform.

**Fields**
+ `TransformType` – *Required:* UTF-8 string (valid values: `FIND_MATCHES`).

  The type of machine learning transform.

  For information about the types of machine learning transforms, see [Creating Machine Learning Transforms](https://docs.aws.amazon.com/glue/latest/dg/add-job-machine-learning-transform.html).
+ `FindMatchesParameters` – A [FindMatchesParameters](#aws-glue-api-machine-learning-api-FindMatchesParameters) object.

  The parameters for the find matches algorithm.

## EvaluationMetrics structure
<a name="aws-glue-api-machine-learning-api-EvaluationMetrics"></a>

Evaluation metrics provide an estimate of the quality of your machine learning transform.

**Fields**
+ `TransformType` – *Required:* UTF-8 string (valid values: `FIND_MATCHES`).

  The type of machine learning transform.
+ `FindMatchesMetrics` – A [FindMatchesMetrics](#aws-glue-api-machine-learning-api-FindMatchesMetrics) object.

  The evaluation metrics for the find matches algorithm.

## MLTransform structure
<a name="aws-glue-api-machine-learning-api-MLTransform"></a>

A structure for a machine learning transform.

**Fields**
+ `TransformId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique transform ID that is generated for the machine learning transform. The ID is guaranteed to be unique and does not change.
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A user-defined name for the machine learning transform. Names are not guaranteed unique and can be changed at any time.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A user-defined, long-form description text for the machine learning transform. Descriptions are not guaranteed to be unique and can be changed at any time.
+ `Status` – UTF-8 string (valid values: `NOT_READY` \$1 `READY` \$1 `DELETING`).

  The current status of the machine learning transform.
+ `CreatedOn` – Timestamp.

  A timestamp. The time and date that this machine learning transform was created.
+ `LastModifiedOn` – Timestamp.

  A timestamp. The last point in time when this machine learning transform was modified.
+ `InputRecordTables` – An array of [GlueTable](#aws-glue-api-machine-learning-api-GlueTable) objects, not more than 10 structures.

  A list of AWS Glue table definitions used by the transform.
+ `Parameters` – A [TransformParameters](#aws-glue-api-machine-learning-api-TransformParameters) object.

  A `TransformParameters` object. You can use parameters to tune (customize) the behavior of the machine learning transform by specifying what data it learns from and your preference on various tradeoffs (such as precious vs. recall, or accuracy vs. cost).
+ `EvaluationMetrics` – An [EvaluationMetrics](#aws-glue-api-machine-learning-api-EvaluationMetrics) object.

  An `EvaluationMetrics` object. Evaluation metrics provide an estimate of the quality of your machine learning transform.
+ `LabelCount` – Number (integer).

  A count identifier for the labeling files generated by AWS Glue for this transform. As you create a better transform, you can iteratively download, label, and upload the labeling file.
+ `Schema` – An array of [SchemaColumn](#aws-glue-api-machine-learning-api-SchemaColumn) objects, not more than 100 structures.

  A map of key-value pairs representing the columns and data types that this transform can run against. Has an upper bound of 100 columns.
+ `Role` – UTF-8 string.

  The name or Amazon Resource Name (ARN) of the IAM role with the required permissions. The required permissions include both AWS Glue service role permissions to AWS Glue resources, and Amazon S3 permissions required by the transform. 
  + This role needs AWS Glue service role permissions to allow access to resources in AWS Glue. See [Attach a Policy to IAM Users That Access AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html).
  + This role needs permission to your Amazon Simple Storage Service (Amazon S3) sources, targets, temporary directory, scripts, and any libraries used by the task run for this transform.
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see [AWS Glue Versions](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) in the developer guide.
+ `MaxCapacity` – Number (double).

  The number of AWS Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/). 

  `MaxCapacity` is a mutually exclusive option with `NumberOfWorkers` and `WorkerType`.
  + If either `NumberOfWorkers` or `WorkerType` is set, then `MaxCapacity` cannot be set.
  + If `MaxCapacity` is set then neither `NumberOfWorkers` or `WorkerType` can be set.
  + If `WorkerType` is set, then `NumberOfWorkers` is required (and vice versa).
  + `MaxCapacity` and `NumberOfWorkers` must both be at least 1.

  When the `WorkerType` field is set to a value other than `Standard`, the `MaxCapacity` field is set automatically and becomes read-only.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.025X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated when a task of this transform runs. Accepts a value of Standard, G.1X, or G.2X.
  + For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
  + For the `G.1X` worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.
  + For the `G.2X` worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.

  `MaxCapacity` is a mutually exclusive option with `NumberOfWorkers` and `WorkerType`.
  + If either `NumberOfWorkers` or `WorkerType` is set, then `MaxCapacity` cannot be set.
  + If `MaxCapacity` is set then neither `NumberOfWorkers` or `WorkerType` can be set.
  + If `WorkerType` is set, then `NumberOfWorkers` is required (and vice versa).
  + `MaxCapacity` and `NumberOfWorkers` must both be at least 1.
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `workerType` that are allocated when a task of the transform runs.

  If `WorkerType` is set, then `NumberOfWorkers` is required (and vice versa).
+ `Timeout` – Number (integer), at least 1.

  The timeout in minutes of the machine learning transform.
+ `MaxRetries` – Number (integer).

  The maximum number of times to retry after an `MLTaskRun` of the machine learning transform fails.
+ `TransformEncryption` – A [TransformEncryption](#aws-glue-api-machine-learning-api-TransformEncryption) object.

  The encryption-at-rest settings of the transform that apply to accessing user data. Machine learning transforms can access user data encrypted in Amazon S3 using KMS.

## FindMatchesParameters structure
<a name="aws-glue-api-machine-learning-api-FindMatchesParameters"></a>

The parameters to configure the find matches transform.

**Fields**
+ `PrimaryKeyColumnName` – UTF-8 string, not less than 1 or more than 1024 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of a column that uniquely identifies rows in the source table. Used to help identify matching records.
+ `PrecisionRecallTradeoff` – Number (double), not more than 1.0.

  The value selected when tuning your transform for a balance between precision and recall. A value of 0.5 means no preference; a value of 1.0 means a bias purely for precision, and a value of 0.0 means a bias for recall. Because this is a tradeoff, choosing values close to 1.0 means very low recall, and choosing values close to 0.0 results in very low precision.

  The precision metric indicates how often your model is correct when it predicts a match. 

  The recall metric indicates that for an actual match, how often your model predicts the match.
+ `AccuracyCostTradeoff` – Number (double), not more than 1.0.

  The value that is selected when tuning your transform for a balance between accuracy and cost. A value of 0.5 means that the system balances accuracy and cost concerns. A value of 1.0 means a bias purely for accuracy, which typically results in a higher cost, sometimes substantially higher. A value of 0.0 means a bias purely for cost, which results in a less accurate `FindMatches` transform, sometimes with unacceptable accuracy.

  Accuracy measures how well the transform finds true positives and true negatives. Increasing accuracy requires more machine resources and cost. But it also results in increased recall. 

  Cost measures how many compute resources, and thus money, are consumed to run the transform.
+ `EnforceProvidedLabels` – Boolean.

  The value to switch on or off to force the output to match the provided labels from users. If the value is `True`, the `find matches` transform forces the output to match the provided labels. The results override the normal conflation results. If the value is `False`, the `find matches` transform does not ensure all the labels provided are respected, and the results rely on the trained model.

  Note that setting this value to true may increase the conflation execution time.

## FindMatchesMetrics structure
<a name="aws-glue-api-machine-learning-api-FindMatchesMetrics"></a>

The evaluation metrics for the find matches algorithm. The quality of your machine learning transform is measured by getting your transform to predict some matches and comparing the results to known matches from the same dataset. The quality metrics are based on a subset of your data, so they are not precise.

**Fields**
+ `AreaUnderPRCurve` – Number (double), not more than 1.0.

  The area under the precision/recall curve (AUPRC) is a single number measuring the overall quality of the transform, that is independent of the choice made for precision vs. recall. Higher values indicate that you have a more attractive precision vs. recall tradeoff.

  For more information, see [Precision and recall](https://en.wikipedia.org/wiki/Precision_and_recall) in Wikipedia.
+ `Precision` – Number (double), not more than 1.0.

  The precision metric indicates when often your transform is correct when it predicts a match. Specifically, it measures how well the transform finds true positives from the total true positives possible.

  For more information, see [Precision and recall](https://en.wikipedia.org/wiki/Precision_and_recall) in Wikipedia.
+ `Recall` – Number (double), not more than 1.0.

  The recall metric indicates that for an actual match, how often your transform predicts the match. Specifically, it measures how well the transform finds true positives from the total records in the source data.

  For more information, see [Precision and recall](https://en.wikipedia.org/wiki/Precision_and_recall) in Wikipedia.
+ `F1` – Number (double), not more than 1.0.

  The maximum F1 metric indicates the transform's accuracy between 0 and 1, where 1 is the best accuracy.

  For more information, see [F1 score](https://en.wikipedia.org/wiki/F1_score) in Wikipedia.
+ `ConfusionMatrix` – A [ConfusionMatrix](#aws-glue-api-machine-learning-api-ConfusionMatrix) object.

  The confusion matrix shows you what your transform is predicting accurately and what types of errors it is making.

  For more information, see [Confusion matrix](https://en.wikipedia.org/wiki/Confusion_matrix) in Wikipedia.
+ `ColumnImportances` – An array of [ColumnImportance](#aws-glue-api-machine-learning-api-ColumnImportance) objects, not more than 100 structures.

  A list of `ColumnImportance` structures containing column importance metrics, sorted in order of descending importance.

## ConfusionMatrix structure
<a name="aws-glue-api-machine-learning-api-ConfusionMatrix"></a>

The confusion matrix shows you what your transform is predicting accurately and what types of errors it is making.

For more information, see [Confusion matrix](https://en.wikipedia.org/wiki/Confusion_matrix) in Wikipedia.

**Fields**
+ `NumTruePositives` – Number (long).

  The number of matches in the data that the transform correctly found, in the confusion matrix for your transform.
+ `NumFalsePositives` – Number (long).

  The number of nonmatches in the data that the transform incorrectly classified as a match, in the confusion matrix for your transform.
+ `NumTrueNegatives` – Number (long).

  The number of nonmatches in the data that the transform correctly rejected, in the confusion matrix for your transform.
+ `NumFalseNegatives` – Number (long).

  The number of matches in the data that the transform didn't find, in the confusion matrix for your transform.

## GlueTable structure
<a name="aws-glue-api-machine-learning-api-GlueTable"></a>

The database and table in the AWS Glue Data Catalog that is used for input or output data.

**Fields**
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A database name in the AWS Glue Data Catalog.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A table name in the AWS Glue Data Catalog.
+ `CatalogId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique identifier for the AWS Glue Data Catalog.
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection to the AWS Glue Data Catalog.
+ `AdditionalOptions` – A map array of key-value pairs, not less than 1 or more than 10 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  Additional options for the table. Currently there are two keys supported:
  + `pushDownPredicate`: to filter on partitions without having to list and read all the files in your dataset.
  + `catalogPartitionPredicate`: to use server-side partition pruning using partition indexes in the AWS Glue Data Catalog.

## TaskRun structure
<a name="aws-glue-api-machine-learning-api-TaskRun"></a>

The sampling parameters that are associated with the machine learning transform.

**Fields**
+ `TransformId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier for the transform.
+ `TaskRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier for this task run.
+ `Status` – UTF-8 string (valid values: `RUNNING` \$1 `FINISHED` \$1 `FAILED` \$1 `PENDING_EXECUTION` \$1 `TIMED_OUT` \$1 `CANCELING` \$1 `CANCELED` \$1 `RECEIVED_BY_TASKRUNNER`).

  The current status of the requested task run.
+ `LogGroupName` – UTF-8 string.

  The names of the log group for secure logging, associated with this task run.
+ `Properties` – A [TaskRunProperties](#aws-glue-api-machine-learning-api-TaskRunProperties) object.

  Specifies configuration properties associated with this task run.
+ `ErrorString` – UTF-8 string.

  The list of error strings associated with this task run.
+ `StartedOn` – Timestamp.

  The date and time that this task run started.
+ `LastModifiedOn` – Timestamp.

  The last point in time that the requested task run was updated.
+ `CompletedOn` – Timestamp.

  The last point in time that the requested task run was completed.
+ `ExecutionTime` – Number (integer).

  The amount of time (in seconds) that the task run consumed resources.

## TransformFilterCriteria structure
<a name="aws-glue-api-machine-learning-api-TransformFilterCriteria"></a>

The criteria used to filter the machine learning transforms.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique transform name that is used to filter the machine learning transforms.
+ `TransformType` – UTF-8 string (valid values: `FIND_MATCHES`).

  The type of machine learning transform that is used to filter the machine learning transforms.
+ `Status` – UTF-8 string (valid values: `NOT_READY` \$1 `READY` \$1 `DELETING`).

  Filters the list of machine learning transforms by the last known status of the transforms (to indicate whether a transform can be used or not). One of "NOT\$1READY", "READY", or "DELETING".
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see [AWS Glue Versions](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) in the developer guide.
+ `CreatedBefore` – Timestamp.

  The time and date before which the transforms were created.
+ `CreatedAfter` – Timestamp.

  The time and date after which the transforms were created.
+ `LastModifiedBefore` – Timestamp.

  Filter on transforms last modified before this date.
+ `LastModifiedAfter` – Timestamp.

  Filter on transforms last modified after this date.
+ `Schema` – An array of [SchemaColumn](#aws-glue-api-machine-learning-api-SchemaColumn) objects, not more than 100 structures.

  Filters on datasets with a specific schema. The `Map<Column, Type>` object is an array of key-value pairs representing the schema this transform accepts, where `Column` is the name of a column, and `Type` is the type of the data such as an integer or string. Has an upper bound of 100 columns.

## TransformSortCriteria structure
<a name="aws-glue-api-machine-learning-api-TransformSortCriteria"></a>

The sorting criteria that are associated with the machine learning transform.

**Fields**
+ `Column` – *Required:* UTF-8 string (valid values: `NAME` \$1 `TRANSFORM_TYPE` \$1 `STATUS` \$1 `CREATED` \$1 `LAST_MODIFIED`).

  The column to be used in the sorting criteria that are associated with the machine learning transform.
+ `SortDirection` – *Required:* UTF-8 string (valid values: `DESCENDING` \$1 `ASCENDING`).

  The sort direction to be used in the sorting criteria that are associated with the machine learning transform.

## TaskRunFilterCriteria structure
<a name="aws-glue-api-machine-learning-api-TaskRunFilterCriteria"></a>

The criteria that are used to filter the task runs for the machine learning transform.

**Fields**
+ `TaskRunType` – UTF-8 string (valid values: `EVALUATION` \$1 `LABELING_SET_GENERATION` \$1 `IMPORT_LABELS` \$1 `EXPORT_LABELS` \$1 `FIND_MATCHES`).

  The type of task run.
+ `Status` – UTF-8 string (valid values: `RUNNING` \$1 `FINISHED` \$1 `FAILED` \$1 `PENDING_EXECUTION` \$1 `TIMED_OUT` \$1 `CANCELING` \$1 `CANCELED` \$1 `RECEIVED_BY_TASKRUNNER`).

  The current status of the task run.
+ `StartedBefore` – Timestamp.

  Filter on task runs started before this date.
+ `StartedAfter` – Timestamp.

  Filter on task runs started after this date.

## TaskRunSortCriteria structure
<a name="aws-glue-api-machine-learning-api-TaskRunSortCriteria"></a>

The sorting criteria that are used to sort the list of task runs for the machine learning transform.

**Fields**
+ `Column` – *Required:* UTF-8 string (valid values: `TASK_RUN_TYPE` \$1 `STATUS` \$1 `STARTED`).

  The column to be used to sort the list of task runs for the machine learning transform.
+ `SortDirection` – *Required:* UTF-8 string (valid values: `DESCENDING` \$1 `ASCENDING`).

  The sort direction to be used to sort the list of task runs for the machine learning transform.

## TaskRunProperties structure
<a name="aws-glue-api-machine-learning-api-TaskRunProperties"></a>

The configuration properties for the task run.

**Fields**
+ `TaskType` – UTF-8 string (valid values: `EVALUATION` \$1 `LABELING_SET_GENERATION` \$1 `IMPORT_LABELS` \$1 `EXPORT_LABELS` \$1 `FIND_MATCHES`).

  The type of task run.
+ `ImportLabelsTaskRunProperties` – An [ImportLabelsTaskRunProperties](#aws-glue-api-machine-learning-api-ImportLabelsTaskRunProperties) object.

  The configuration properties for an importing labels task run.
+ `ExportLabelsTaskRunProperties` – An [ExportLabelsTaskRunProperties](#aws-glue-api-machine-learning-api-ExportLabelsTaskRunProperties) object.

  The configuration properties for an exporting labels task run.
+ `LabelingSetGenerationTaskRunProperties` – A [LabelingSetGenerationTaskRunProperties](#aws-glue-api-machine-learning-api-LabelingSetGenerationTaskRunProperties) object.

  The configuration properties for a labeling set generation task run.
+ `FindMatchesTaskRunProperties` – A [FindMatchesTaskRunProperties](#aws-glue-api-machine-learning-api-FindMatchesTaskRunProperties) object.

  The configuration properties for a find matches task run.

## FindMatchesTaskRunProperties structure
<a name="aws-glue-api-machine-learning-api-FindMatchesTaskRunProperties"></a>

Specifies configuration properties for a Find Matches task run.

**Fields**
+ `JobId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The job ID for the Find Matches task run.
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name assigned to the job for the Find Matches task run.
+ `JobRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The job run ID for the Find Matches task run.

## ImportLabelsTaskRunProperties structure
<a name="aws-glue-api-machine-learning-api-ImportLabelsTaskRunProperties"></a>

Specifies configuration properties for an importing labels task run.

**Fields**
+ `InputS3Path` – UTF-8 string.

  The Amazon Simple Storage Service (Amazon S3) path from where you will import the labels.
+ `Replace` – Boolean.

  Indicates whether to overwrite your existing labels.

## ExportLabelsTaskRunProperties structure
<a name="aws-glue-api-machine-learning-api-ExportLabelsTaskRunProperties"></a>

Specifies configuration properties for an exporting labels task run.

**Fields**
+ `OutputS3Path` – UTF-8 string.

  The Amazon Simple Storage Service (Amazon S3) path where you will export the labels.

## LabelingSetGenerationTaskRunProperties structure
<a name="aws-glue-api-machine-learning-api-LabelingSetGenerationTaskRunProperties"></a>

Specifies configuration properties for a labeling set generation task run.

**Fields**
+ `OutputS3Path` – UTF-8 string.

  The Amazon Simple Storage Service (Amazon S3) path where you will generate the labeling set.

## SchemaColumn structure
<a name="aws-glue-api-machine-learning-api-SchemaColumn"></a>

A key-value pair representing a column and data type that this transform can run against. The `Schema` parameter of the `MLTransform` may contain up to 100 of these structures.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 1024 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the column.
+ `DataType` – UTF-8 string, not more than 131072 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The type of data in the column.

## TransformEncryption structure
<a name="aws-glue-api-machine-learning-api-TransformEncryption"></a>

The encryption-at-rest settings of the transform that apply to accessing user data. Machine learning transforms can access user data encrypted in Amazon S3 using KMS.

Additionally, imported labels and trained transforms can now be encrypted using a customer provided KMS key.

**Fields**
+ `MlUserDataEncryption` – A [MLUserDataEncryption](#aws-glue-api-machine-learning-api-MLUserDataEncryption) object.

  An `MLUserDataEncryption` object containing the encryption mode and customer-provided KMS key ID.
+ `TaskRunSecurityConfigurationName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the security configuration.

## MLUserDataEncryption structure
<a name="aws-glue-api-machine-learning-api-MLUserDataEncryption"></a>

The encryption-at-rest settings of the transform that apply to accessing user data.

**Fields**
+ `MlUserDataEncryptionMode` – *Required:* UTF-8 string (valid values: `DISABLED` \$1 `SSE-KMS="SSEKMS"`).

  The encryption mode applied to user data. Valid values are:
  + DISABLED: encryption is disabled
  + SSEKMS: use of server-side encryption with AWS Key Management Service (SSE-KMS) for user data stored in Amazon S3.
+ `KmsKeyId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID for the customer-provided KMS key.

## ColumnImportance structure
<a name="aws-glue-api-machine-learning-api-ColumnImportance"></a>

A structure containing the column name and column importance score for a column. 

Column importance helps you understand how columns contribute to your model, by identifying which columns in your records are more important than others.

**Fields**
+ `ColumnName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of a column.
+ `Importance` – Number (double), not more than 1.0.

  The column importance score for the column, as a decimal.

## Operations
<a name="aws-glue-api-machine-learning-api-actions"></a>
+ [CreateMLTransform action (Python: create\$1ml\$1transform)](#aws-glue-api-machine-learning-api-CreateMLTransform)
+ [UpdateMLTransform action (Python: update\$1ml\$1transform)](#aws-glue-api-machine-learning-api-UpdateMLTransform)
+ [DeleteMLTransform action (Python: delete\$1ml\$1transform)](#aws-glue-api-machine-learning-api-DeleteMLTransform)
+ [GetMLTransform action (Python: get\$1ml\$1transform)](#aws-glue-api-machine-learning-api-GetMLTransform)
+ [GetMLTransforms action (Python: get\$1ml\$1transforms)](#aws-glue-api-machine-learning-api-GetMLTransforms)
+ [ListMLTransforms action (Python: list\$1ml\$1transforms)](#aws-glue-api-machine-learning-api-ListMLTransforms)
+ [StartMLEvaluationTaskRun action (Python: start\$1ml\$1evaluation\$1task\$1run)](#aws-glue-api-machine-learning-api-StartMLEvaluationTaskRun)
+ [StartMLLabelingSetGenerationTaskRun action (Python: start\$1ml\$1labeling\$1set\$1generation\$1task\$1run)](#aws-glue-api-machine-learning-api-StartMLLabelingSetGenerationTaskRun)
+ [GetMLTaskRun action (Python: get\$1ml\$1task\$1run)](#aws-glue-api-machine-learning-api-GetMLTaskRun)
+ [GetMLTaskRuns action (Python: get\$1ml\$1task\$1runs)](#aws-glue-api-machine-learning-api-GetMLTaskRuns)
+ [CancelMLTaskRun action (Python: cancel\$1ml\$1task\$1run)](#aws-glue-api-machine-learning-api-CancelMLTaskRun)
+ [StartExportLabelsTaskRun action (Python: start\$1export\$1labels\$1task\$1run)](#aws-glue-api-machine-learning-api-StartExportLabelsTaskRun)
+ [StartImportLabelsTaskRun action (Python: start\$1import\$1labels\$1task\$1run)](#aws-glue-api-machine-learning-api-StartImportLabelsTaskRun)

## CreateMLTransform action (Python: create\$1ml\$1transform)
<a name="aws-glue-api-machine-learning-api-CreateMLTransform"></a>

Creates an AWS Glue machine learning transform. This operation creates the transform and all the necessary parameters to train it.

Call this operation as the first step in the process of using a machine learning transform (such as the `FindMatches` transform) for deduplicating data. You can provide an optional `Description`, in addition to the parameters that you want to use for your algorithm.

You must also specify certain parameters for the tasks that AWS Glue runs on your behalf as part of learning from your data and creating a high-quality machine learning transform. These parameters include `Role`, and optionally, `AllocatedCapacity`, `Timeout`, and `MaxRetries`. For more information, see [Jobs](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-jobs-job.html).

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique name that you give the transform when you create it.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the machine learning transform that is being defined. The default is an empty string.
+ `InputRecordTables` – *Required:* An array of [GlueTable](#aws-glue-api-machine-learning-api-GlueTable) objects, not more than 10 structures.

  A list of AWS Glue table definitions used by the transform.
+ `Parameters` – *Required:* A [TransformParameters](#aws-glue-api-machine-learning-api-TransformParameters) object.

  The algorithmic parameters that are specific to the transform type used. Conditionally dependent on the transform type.
+ `Role` – *Required:* UTF-8 string.

  The name or Amazon Resource Name (ARN) of the IAM role with the required permissions. The required permissions include both AWS Glue service role permissions to AWS Glue resources, and Amazon S3 permissions required by the transform. 
  + This role needs AWS Glue service role permissions to allow access to resources in AWS Glue. See [Attach a Policy to IAM Users That Access AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/attach-policy-iam-user.html).
  + This role needs permission to your Amazon Simple Storage Service (Amazon S3) sources, targets, temporary directory, scripts, and any libraries used by the task run for this transform.
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see [AWS Glue Versions](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) in the developer guide.
+ `MaxCapacity` – Number (double).

  The number of AWS Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/). 

  `MaxCapacity` is a mutually exclusive option with `NumberOfWorkers` and `WorkerType`.
  + If either `NumberOfWorkers` or `WorkerType` is set, then `MaxCapacity` cannot be set.
  + If `MaxCapacity` is set then neither `NumberOfWorkers` or `WorkerType` can be set.
  + If `WorkerType` is set, then `NumberOfWorkers` is required (and vice versa).
  + `MaxCapacity` and `NumberOfWorkers` must both be at least 1.

  When the `WorkerType` field is set to a value other than `Standard`, the `MaxCapacity` field is set automatically and becomes read-only.

  When the `WorkerType` field is set to a value other than `Standard`, the `MaxCapacity` field is set automatically and becomes read-only.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.025X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.
  + For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
  + For the `G.1X` worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.
  + For the `G.2X` worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.

  `MaxCapacity` is a mutually exclusive option with `NumberOfWorkers` and `WorkerType`.
  + If either `NumberOfWorkers` or `WorkerType` is set, then `MaxCapacity` cannot be set.
  + If `MaxCapacity` is set then neither `NumberOfWorkers` or `WorkerType` can be set.
  + If `WorkerType` is set, then `NumberOfWorkers` is required (and vice versa).
  + `MaxCapacity` and `NumberOfWorkers` must both be at least 1.
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `workerType` that are allocated when this task runs.

  If `WorkerType` is set, then `NumberOfWorkers` is required (and vice versa).
+ `Timeout` – Number (integer), at least 1.

  The timeout of the task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters `TIMEOUT` status. The default is 2,880 minutes (48 hours).
+ `MaxRetries` – Number (integer).

  The maximum number of times to retry a task for this transform after a task run fails.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The tags to use with this machine learning transform. You may use tags to limit access to the machine learning transform. For more information about tags in AWS Glue, see [AWS Tags in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) in the developer guide.
+ `TransformEncryption` – A [TransformEncryption](#aws-glue-api-machine-learning-api-TransformEncryption) object.

  The encryption-at-rest settings of the transform that apply to accessing user data. Machine learning transforms can access user data encrypted in Amazon S3 using KMS.

**Response**
+ `TransformId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique identifier that is generated for the transform.

**Errors**
+ `AlreadyExistsException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `AccessDeniedException`
+ `ResourceNumberLimitExceededException`
+ `IdempotentParameterMismatchException`

## UpdateMLTransform action (Python: update\$1ml\$1transform)
<a name="aws-glue-api-machine-learning-api-UpdateMLTransform"></a>

Updates an existing machine learning transform. Call this operation to tune the algorithm parameters to achieve better results.

After calling this operation, you can call the `StartMLEvaluationTaskRun` operation to assess how well your new parameters achieved your goals (such as improving the quality of your machine learning transform, or making it more cost-effective).

**Request**
+ `TransformId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique identifier that was generated when the transform was created.
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique name that you gave the transform when you created it.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the transform. The default is an empty string.
+ `Parameters` – A [TransformParameters](#aws-glue-api-machine-learning-api-TransformParameters) object.

  The configuration parameters that are specific to the transform type (algorithm) used. Conditionally dependent on the transform type.
+ `Role` – UTF-8 string.

  The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see [AWS Glue Versions](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) in the developer guide.
+ `MaxCapacity` – Number (double).

  The number of AWS Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/). 

  When the `WorkerType` field is set to a value other than `Standard`, the `MaxCapacity` field is set automatically and becomes read-only.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.025X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.
  + For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
  + For the `G.1X` worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.
  + For the `G.2X` worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `workerType` that are allocated when this task runs.
+ `Timeout` – Number (integer), at least 1.

  The timeout for a task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters `TIMEOUT` status. The default is 2,880 minutes (48 hours).
+ `MaxRetries` – Number (integer).

  The maximum number of times to retry a task for this transform after a task run fails.

**Response**
+ `TransformId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier for the transform that was updated.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `AccessDeniedException`

## DeleteMLTransform action (Python: delete\$1ml\$1transform)
<a name="aws-glue-api-machine-learning-api-DeleteMLTransform"></a>

Deletes an AWS Glue machine learning transform. Machine learning transforms are a special type of transform that use machine learning to learn the details of the transformation to be performed by learning from examples provided by humans. These transformations are then saved by AWS Glue. If you no longer need a transform, you can delete it by calling `DeleteMLTransforms`. However, any AWS Glue jobs that still reference the deleted transform will no longer succeed.

**Request**
+ `TransformId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the transform to delete.

**Response**
+ `TransformId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the transform that was deleted.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## GetMLTransform action (Python: get\$1ml\$1transform)
<a name="aws-glue-api-machine-learning-api-GetMLTransform"></a>

Gets an AWS Glue machine learning transform artifact and all its corresponding metadata. Machine learning transforms are a special type of transform that use machine learning to learn the details of the transformation to be performed by learning from examples provided by humans. These transformations are then saved by AWS Glue. You can retrieve their metadata by calling `GetMLTransform`.

**Request**
+ `TransformId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the transform, generated at the time that the transform was created.

**Response**
+ `TransformId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the transform, generated at the time that the transform was created.
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique name given to the transform when it was created.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the transform.
+ `Status` – UTF-8 string (valid values: `NOT_READY` \$1 `READY` \$1 `DELETING`).

  The last known status of the transform (to indicate whether it can be used or not). One of "NOT\$1READY", "READY", or "DELETING".
+ `CreatedOn` – Timestamp.

  The date and time when the transform was created.
+ `LastModifiedOn` – Timestamp.

  The date and time when the transform was last modified.
+ `InputRecordTables` – An array of [GlueTable](#aws-glue-api-machine-learning-api-GlueTable) objects, not more than 10 structures.

  A list of AWS Glue table definitions used by the transform.
+ `Parameters` – A [TransformParameters](#aws-glue-api-machine-learning-api-TransformParameters) object.

  The configuration parameters that are specific to the algorithm used.
+ `EvaluationMetrics` – An [EvaluationMetrics](#aws-glue-api-machine-learning-api-EvaluationMetrics) object.

  The latest evaluation metrics.
+ `LabelCount` – Number (integer).

  The number of labels available for this transform.
+ `Schema` – An array of [SchemaColumn](#aws-glue-api-machine-learning-api-SchemaColumn) objects, not more than 100 structures.

  The `Map<Column, Type>` object that represents the schema that this transform accepts. Has an upper bound of 100 columns.
+ `Role` – UTF-8 string.

  The name or Amazon Resource Name (ARN) of the IAM role with the required permissions.
+ `GlueVersion` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #48](aws-glue-api-common.md#regex_48).

  This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see [AWS Glue Versions](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions) in the developer guide.
+ `MaxCapacity` – Number (double).

  The number of AWS Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the [AWS Glue pricing page](https://aws.amazon.com/glue/pricing/). 

  When the `WorkerType` field is set to a value other than `Standard`, the `MaxCapacity` field is set automatically and becomes read-only.
+ `WorkerType` – UTF-8 string (valid values: `Standard=""` \$1 `G.1X=""` \$1 `G.2X=""` \$1 `G.025X=""` \$1 `G.4X=""` \$1 `G.8X=""` \$1 `Z.2X=""`).

  The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.
  + For the `Standard` worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.
  + For the `G.1X` worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.
  + For the `G.2X` worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.
+ `NumberOfWorkers` – Number (integer).

  The number of workers of a defined `workerType` that are allocated when this task runs.
+ `Timeout` – Number (integer), at least 1.

  The timeout for a task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters `TIMEOUT` status. The default is 2,880 minutes (48 hours).
+ `MaxRetries` – Number (integer).

  The maximum number of times to retry a task for this transform after a task run fails.
+ `TransformEncryption` – A [TransformEncryption](#aws-glue-api-machine-learning-api-TransformEncryption) object.

  The encryption-at-rest settings of the transform that apply to accessing user data. Machine learning transforms can access user data encrypted in Amazon S3 using KMS.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## GetMLTransforms action (Python: get\$1ml\$1transforms)
<a name="aws-glue-api-machine-learning-api-GetMLTransforms"></a>

Gets a sortable, filterable list of existing AWS Glue machine learning transforms. Machine learning transforms are a special type of transform that use machine learning to learn the details of the transformation to be performed by learning from examples provided by humans. These transformations are then saved by AWS Glue, and you can retrieve their metadata by calling `GetMLTransforms`.

**Request**
+ `NextToken` – UTF-8 string.

  A paginated token to offset the results.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results to return.
+ `Filter` – A [TransformFilterCriteria](#aws-glue-api-machine-learning-api-TransformFilterCriteria) object.

  The filter transformation criteria.
+ `Sort` – A [TransformSortCriteria](#aws-glue-api-machine-learning-api-TransformSortCriteria) object.

  The sorting criteria.

**Response**
+ `Transforms` – *Required:* An array of [MLTransform](#aws-glue-api-machine-learning-api-MLTransform) objects.

  A list of machine learning transforms.
+ `NextToken` – UTF-8 string.

  A pagination token, if more results are available.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## ListMLTransforms action (Python: list\$1ml\$1transforms)
<a name="aws-glue-api-machine-learning-api-ListMLTransforms"></a>

 Retrieves a sortable, filterable list of existing AWS Glue machine learning transforms in this AWS account, or the resources with the specified tag. This operation takes the optional `Tags` field, which you can use as a filter of the responses so that tagged resources can be retrieved as a group. If you choose to use tag filtering, only resources with the tags are retrieved. 

**Request**
+ `NextToken` – UTF-8 string.

  A continuation token, if this is a continuation request.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum size of a list to return.
+ `Filter` – A [TransformFilterCriteria](#aws-glue-api-machine-learning-api-TransformFilterCriteria) object.

  A `TransformFilterCriteria` used to filter the machine learning transforms.
+ `Sort` – A [TransformSortCriteria](#aws-glue-api-machine-learning-api-TransformSortCriteria) object.

  A `TransformSortCriteria` used to sort the machine learning transforms.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  Specifies to return only these tagged resources.

**Response**
+ `TransformIds` – *Required:* An array of UTF-8 strings.

  The identifiers of all the machine learning transforms in the account, or the machine learning transforms with the specified tags.
+ `NextToken` – UTF-8 string.

  A continuation token, if the returned list does not contain the last metric available.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## StartMLEvaluationTaskRun action (Python: start\$1ml\$1evaluation\$1task\$1run)
<a name="aws-glue-api-machine-learning-api-StartMLEvaluationTaskRun"></a>

Starts a task to estimate the quality of the transform. 

When you provide label sets as examples of truth, AWS Glue machine learning uses some of those examples to learn from them. The rest of the labels are used as a test to estimate quality.

Returns a unique identifier for the run. You can call `GetMLTaskRun` to get more information about the stats of the `EvaluationTaskRun`.

**Request**
+ `TransformId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the machine learning transform.

**Response**
+ `TaskRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier associated with this run.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `ConcurrentRunsExceededException`
+ `MLTransformNotReadyException`

## StartMLLabelingSetGenerationTaskRun action (Python: start\$1ml\$1labeling\$1set\$1generation\$1task\$1run)
<a name="aws-glue-api-machine-learning-api-StartMLLabelingSetGenerationTaskRun"></a>

Starts the active learning workflow for your machine learning transform to improve the transform's quality by generating label sets and adding labels.

When the `StartMLLabelingSetGenerationTaskRun` finishes, AWS Glue will have generated a "labeling set" or a set of questions for humans to answer.

In the case of the `FindMatches` transform, these questions are of the form, "What is the correct way to group these rows together into groups composed entirely of matching records?" 

After the labeling process is finished, you can upload your labels with a call to `StartImportLabelsTaskRun`. After `StartImportLabelsTaskRun` finishes, all future runs of the machine learning transform will use the new and improved labels and perform a higher-quality transformation.

Note: The role used to write the generated labeling set to the `OutputS3Path` is the role associated with the Machine Learning Transform, specified in the `CreateMLTransform` API.

**Request**
+ `TransformId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the machine learning transform.
+ `OutputS3Path` – *Required:* UTF-8 string.

  The Amazon Simple Storage Service (Amazon S3) path where you generate the labeling set.

**Response**
+ `TaskRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier that is associated with this task run.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `ConcurrentRunsExceededException`

## GetMLTaskRun action (Python: get\$1ml\$1task\$1run)
<a name="aws-glue-api-machine-learning-api-GetMLTaskRun"></a>

Gets details for a specific task run on a machine learning transform. Machine learning task runs are asynchronous tasks that AWS Glue runs on your behalf as part of various machine learning workflows. You can check the stats of any task run by calling `GetMLTaskRun` with the `TaskRunID` and its parent transform's `TransformID`.

**Request**
+ `TransformId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the machine learning transform.
+ `TaskRunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the task run.

**Response**
+ `TransformId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the task run.
+ `TaskRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier associated with this run.
+ `Status` – UTF-8 string (valid values: `RUNNING` \$1 `FINISHED` \$1 `FAILED` \$1 `PENDING_EXECUTION` \$1 `TIMED_OUT` \$1 `CANCELING` \$1 `CANCELED` \$1 `RECEIVED_BY_TASKRUNNER`).

  The status for this task run.
+ `LogGroupName` – UTF-8 string.

  The names of the log groups that are associated with the task run.
+ `Properties` – A [TaskRunProperties](#aws-glue-api-machine-learning-api-TaskRunProperties) object.

  The list of properties that are associated with the task run.
+ `ErrorString` – UTF-8 string.

  The error strings that are associated with the task run.
+ `StartedOn` – Timestamp.

  The date and time when this task run started.
+ `LastModifiedOn` – Timestamp.

  The date and time when this task run was last modified.
+ `CompletedOn` – Timestamp.

  The date and time when this task run was completed.
+ `ExecutionTime` – Number (integer).

  The amount of time (in seconds) that the task run consumed resources.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## GetMLTaskRuns action (Python: get\$1ml\$1task\$1runs)
<a name="aws-glue-api-machine-learning-api-GetMLTaskRuns"></a>

Gets a list of runs for a machine learning transform. Machine learning task runs are asynchronous tasks that AWS Glue runs on your behalf as part of various machine learning workflows. You can get a sortable, filterable list of machine learning task runs by calling `GetMLTaskRuns` with their parent transform's `TransformID` and other optional parameters as documented in this section.

This operation returns a list of historic runs and must be paginated.

**Request**
+ `TransformId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the machine learning transform.
+ `NextToken` – UTF-8 string.

  A token for pagination of the results. The default is empty.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results to return. 
+ `Filter` – A [TaskRunFilterCriteria](#aws-glue-api-machine-learning-api-TaskRunFilterCriteria) object.

  The filter criteria, in the `TaskRunFilterCriteria` structure, for the task run.
+ `Sort` – A [TaskRunSortCriteria](#aws-glue-api-machine-learning-api-TaskRunSortCriteria) object.

  The sorting criteria, in the `TaskRunSortCriteria` structure, for the task run.

**Response**
+ `TaskRuns` – An array of [TaskRun](#aws-glue-api-machine-learning-api-TaskRun) objects.

  A list of task runs that are associated with the transform.
+ `NextToken` – UTF-8 string.

  A pagination token, if more results are available.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## CancelMLTaskRun action (Python: cancel\$1ml\$1task\$1run)
<a name="aws-glue-api-machine-learning-api-CancelMLTaskRun"></a>

Cancels (stops) a task run. Machine learning task runs are asynchronous tasks that AWS Glue runs on your behalf as part of various machine learning workflows. You can cancel a machine learning task run at any time by calling `CancelMLTaskRun` with a task run's parent transform's `TransformID` and the task run's `TaskRunId`. 

**Request**
+ `TransformId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the machine learning transform.
+ `TaskRunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique identifier for the task run.

**Response**
+ `TransformId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the machine learning transform.
+ `TaskRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier for the task run.
+ `Status` – UTF-8 string (valid values: `RUNNING` \$1 `FINISHED` \$1 `FAILED` \$1 `PENDING_EXECUTION` \$1 `TIMED_OUT` \$1 `CANCELING` \$1 `CANCELED` \$1 `RECEIVED_BY_TASKRUNNER`).

  The status for this run.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## StartExportLabelsTaskRun action (Python: start\$1export\$1labels\$1task\$1run)
<a name="aws-glue-api-machine-learning-api-StartExportLabelsTaskRun"></a>

Begins an asynchronous task to export all labeled data for a particular transform. This task is the only label-related API call that is not part of the typical active learning workflow. You typically use `StartExportLabelsTaskRun` when you want to work with all of your existing labels at the same time, such as when you want to remove or change labels that were previously submitted as truth. This API operation accepts the `TransformId` whose labels you want to export and an Amazon Simple Storage Service (Amazon S3) path to export the labels to. The operation returns a `TaskRunId`. You can check on the status of your task run by calling the `GetMLTaskRun` API.

**Request**
+ `TransformId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the machine learning transform.
+ `OutputS3Path` – *Required:* UTF-8 string.

  The Amazon S3 path where you export the labels.

**Response**
+ `TaskRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier for the task run.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## StartImportLabelsTaskRun action (Python: start\$1import\$1labels\$1task\$1run)
<a name="aws-glue-api-machine-learning-api-StartImportLabelsTaskRun"></a>

Enables you to provide additional labels (examples of truth) to be used to teach the machine learning transform and improve its quality. This API operation is generally used as part of the active learning workflow that starts with the `StartMLLabelingSetGenerationTaskRun` call and that ultimately results in improving the quality of your machine learning transform. 

After the `StartMLLabelingSetGenerationTaskRun` finishes, AWS Glue machine learning will have generated a series of questions for humans to answer. (Answering these questions is often called 'labeling' in the machine learning workflows). In the case of the `FindMatches` transform, these questions are of the form, "What is the correct way to group these rows together into groups composed entirely of matching records?" After the labeling process is finished, users upload their answers/labels with a call to `StartImportLabelsTaskRun`. After `StartImportLabelsTaskRun` finishes, all future runs of the machine learning transform use the new and improved labels and perform a higher-quality transformation.

By default, `StartMLLabelingSetGenerationTaskRun` continually learns from and combines all labels that you upload unless you set `Replace` to true. If you set `Replace` to true, `StartImportLabelsTaskRun` deletes and forgets all previously uploaded labels and learns only from the exact set that you upload. Replacing labels can be helpful if you realize that you previously uploaded incorrect labels, and you believe that they are having a negative effect on your transform quality.

You can check on the status of your task run by calling the `GetMLTaskRun` operation. 

**Request**
+ `TransformId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier of the machine learning transform.
+ `InputS3Path` – *Required:* UTF-8 string.

  The Amazon Simple Storage Service (Amazon S3) path from where you import the labels.
+ `ReplaceAllLabels` – Boolean.

  Indicates whether to overwrite your existing labels.

**Response**
+ `TaskRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique identifier for the task run.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`
+ `InternalServiceException`

# Data Quality API
<a name="aws-glue-api-data-quality-api"></a>

The Data Quality API describes the data quality data types, and includes the API for creating, deleting, or updating data quality rulesets, runs and evaluations.

## Data types
<a name="aws-glue-api-data-quality-api-objects"></a>
+ [DataSource structure](#aws-glue-api-data-quality-api-DataSource)
+ [DataQualityRulesetListDetails structure](#aws-glue-api-data-quality-api-DataQualityRulesetListDetails)
+ [DataQualityTargetTable structure](#aws-glue-api-data-quality-api-DataQualityTargetTable)
+ [DataQualityRulesetEvaluationRunDescription structure](#aws-glue-api-data-quality-api-DataQualityRulesetEvaluationRunDescription)
+ [DataQualityRulesetEvaluationRunFilter structure](#aws-glue-api-data-quality-api-DataQualityRulesetEvaluationRunFilter)
+ [DataQualityEvaluationRunAdditionalRunOptions structure](#aws-glue-api-data-quality-api-DataQualityEvaluationRunAdditionalRunOptions)
+ [DataQualityRuleRecommendationRunDescription structure](#aws-glue-api-data-quality-api-DataQualityRuleRecommendationRunDescription)
+ [DataQualityRuleRecommendationRunFilter structure](#aws-glue-api-data-quality-api-DataQualityRuleRecommendationRunFilter)
+ [DataQualityResult structure](#aws-glue-api-data-quality-api-DataQualityResult)
+ [DataQualityAnalyzerResult structure](#aws-glue-api-data-quality-api-DataQualityAnalyzerResult)
+ [DataQualityObservation structure](#aws-glue-api-data-quality-api-DataQualityObservation)
+ [MetricBasedObservation structure](#aws-glue-api-data-quality-api-MetricBasedObservation)
+ [DataQualityMetricValues structure](#aws-glue-api-data-quality-api-DataQualityMetricValues)
+ [DataQualityRuleResult structure](#aws-glue-api-data-quality-api-DataQualityRuleResult)
+ [DataQualityResultDescription structure](#aws-glue-api-data-quality-api-DataQualityResultDescription)
+ [DataQualityResultFilterCriteria structure](#aws-glue-api-data-quality-api-DataQualityResultFilterCriteria)
+ [DataQualityRulesetFilterCriteria structure](#aws-glue-api-data-quality-api-DataQualityRulesetFilterCriteria)
+ [DataQualityAggregatedMetrics structure](#aws-glue-api-data-quality-api-DataQualityAggregatedMetrics)
+ [StatisticAnnotation structure](#aws-glue-api-data-quality-api-StatisticAnnotation)
+ [TimestampedInclusionAnnotation structure](#aws-glue-api-data-quality-api-TimestampedInclusionAnnotation)
+ [AnnotationError structure](#aws-glue-api-data-quality-api-AnnotationError)
+ [DatapointInclusionAnnotation structure](#aws-glue-api-data-quality-api-DatapointInclusionAnnotation)
+ [StatisticSummaryList list](#aws-glue-api-data-quality-api-StatisticSummaryList)
+ [StatisticSummary structure](#aws-glue-api-data-quality-api-StatisticSummary)
+ [RunIdentifier structure](#aws-glue-api-data-quality-api-RunIdentifier)
+ [StatisticModelResult structure](#aws-glue-api-data-quality-api-StatisticModelResult)
+ [DataQualityGlueTable structure](#aws-glue-api-data-quality-api-DataQualityGlueTable)

## DataSource structure
<a name="aws-glue-api-data-quality-api-DataSource"></a>

A data source (an AWS Glue table) for which you want data quality results.

**Fields**
+ `GlueTable` – A [GlueTable](aws-glue-api-machine-learning-api.md#aws-glue-api-machine-learning-api-GlueTable) object.

  An AWS Glue table.
+ `DataQualityGlueTable` – A [DataQualityGlueTable](#aws-glue-api-data-quality-api-DataQualityGlueTable) object.

  An AWS Glue table for Data Quality Operations.

## DataQualityRulesetListDetails structure
<a name="aws-glue-api-data-quality-api-DataQualityRulesetListDetails"></a>

Describes a data quality ruleset returned by `GetDataQualityRuleset`.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the data quality ruleset.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the data quality ruleset.
+ `CreatedOn` – Timestamp.

  The date and time the data quality ruleset was created.
+ `LastModifiedOn` – Timestamp.

  The date and time the data quality ruleset was last modified.
+ `TargetTable` – A [DataQualityTargetTable](#aws-glue-api-data-quality-api-DataQualityTargetTable) object.

  An object representing an AWS Glue table.
+ `RecommendationRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  When a ruleset was created from a recommendation run, this run ID is generated to link the two together.
+ `RuleCount` – Number (integer).

  The number of rules in the ruleset.

## DataQualityTargetTable structure
<a name="aws-glue-api-data-quality-api-DataQualityTargetTable"></a>

An object representing an AWS Glue table.

**Fields**
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the AWS Glue table.
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the database where the AWS Glue table exists.
+ `CatalogId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The catalog id where the AWS Glue table exists.

## DataQualityRulesetEvaluationRunDescription structure
<a name="aws-glue-api-data-quality-api-DataQualityRulesetEvaluationRunDescription"></a>

Describes the result of a data quality ruleset evaluation run.

**Fields**
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier associated with this run.
+ `Status` – UTF-8 string (valid values: `RUNNING` \$1 `FINISHED` \$1 `FAILED` \$1 `PENDING_EXECUTION` \$1 `TIMED_OUT` \$1 `CANCELING` \$1 `CANCELED` \$1 `RECEIVED_BY_TASKRUNNER`).

  The status for this run.
+ `StartedOn` – Timestamp.

  The date and time when the run started.
+ `DataSource` – A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  The data source (an AWS Glue table) associated with the run.

## DataQualityRulesetEvaluationRunFilter structure
<a name="aws-glue-api-data-quality-api-DataQualityRulesetEvaluationRunFilter"></a>

The filter criteria.

**Fields**
+ `DataSource` – *Required:* A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  Filter based on a data source (an AWS Glue table) associated with the run.
+ `StartedBefore` – Timestamp.

  Filter results by runs that started before this time.
+ `StartedAfter` – Timestamp.

  Filter results by runs that started after this time.

## DataQualityEvaluationRunAdditionalRunOptions structure
<a name="aws-glue-api-data-quality-api-DataQualityEvaluationRunAdditionalRunOptions"></a>

Additional run options you can specify for an evaluation run.

**Fields**
+ `CloudWatchMetricsEnabled` – Boolean.

  Whether or not to enable CloudWatch metrics.
+ `ResultsS3Prefix` – UTF-8 string.

  Prefix for Amazon S3 to store results.
+ `CompositeRuleEvaluationMethod` – UTF-8 string (valid values: `COLUMN` \$1 `ROW`).

  Set the evaluation method for composite rules in the ruleset to ROW/COLUMN

## DataQualityRuleRecommendationRunDescription structure
<a name="aws-glue-api-data-quality-api-DataQualityRuleRecommendationRunDescription"></a>

Describes the result of a data quality rule recommendation run.

**Fields**
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier associated with this run.
+ `Status` – UTF-8 string (valid values: `RUNNING` \$1 `FINISHED` \$1 `FAILED` \$1 `PENDING_EXECUTION` \$1 `TIMED_OUT` \$1 `CANCELING` \$1 `CANCELED` \$1 `RECEIVED_BY_TASKRUNNER`).

  The status for this run.
+ `StartedOn` – Timestamp.

  The date and time when this run started.
+ `DataSource` – A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  The data source (AWS Glue table) associated with the recommendation run.

## DataQualityRuleRecommendationRunFilter structure
<a name="aws-glue-api-data-quality-api-DataQualityRuleRecommendationRunFilter"></a>

A filter for listing data quality recommendation runs.

**Fields**
+ `DataSource` – *Required:* A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  Filter based on a specified data source (AWS Glue table).
+ `StartedBefore` – Timestamp.

  Filter based on time for results started before provided time.
+ `StartedAfter` – Timestamp.

  Filter based on time for results started after provided time.

## DataQualityResult structure
<a name="aws-glue-api-data-quality-api-DataQualityResult"></a>

Describes a data quality result.

**Fields**
+ `ResultId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique result ID for the data quality result.
+ `ProfileId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Profile ID for the data quality result.
+ `Score` – Number (double), not more than 1.0.

  An aggregate data quality score. Represents the ratio of rules that passed to the total number of rules.
+ `DataSource` – A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  The table associated with the data quality result, if any.
+ `RulesetName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the ruleset associated with the data quality result.
+ `EvaluationContext` – UTF-8 string.

  In the context of a job in AWS Glue Studio, each node in the canvas is typically assigned some sort of name and data quality nodes will have names. In the case of multiple nodes, the `evaluationContext` can differentiate the nodes.
+ `StartedOn` – Timestamp.

  The date and time when this data quality run started.
+ `CompletedOn` – Timestamp.

  The date and time when this data quality run completed.
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The job name associated with the data quality result, if any.
+ `JobRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The job run ID associated with the data quality result, if any.
+ `RulesetEvaluationRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run ID for the ruleset evaluation for this data quality result.
+ `RuleResults` – An array of [DataQualityRuleResult](#aws-glue-api-data-quality-api-DataQualityRuleResult) objects, not more than 2000 structures.

  A list of `DataQualityRuleResult` objects representing the results for each rule. 
+ `AnalyzerResults` – An array of [DataQualityAnalyzerResult](#aws-glue-api-data-quality-api-DataQualityAnalyzerResult) objects, not more than 2000 structures.

  A list of `DataQualityAnalyzerResult` objects representing the results for each analyzer. 
+ `Observations` – An array of [DataQualityObservation](#aws-glue-api-data-quality-api-DataQualityObservation) objects, not more than 50 structures.

  A list of `DataQualityObservation` objects representing the observations generated after evaluating the rules and analyzers. 
+ `AggregatedMetrics` – A [DataQualityAggregatedMetrics](#aws-glue-api-data-quality-api-DataQualityAggregatedMetrics) object.

   A summary of `DataQualityAggregatedMetrics` objects showing the total counts of processed rows and rules, including their pass/fail statistics based on row-level results. 

## DataQualityAnalyzerResult structure
<a name="aws-glue-api-data-quality-api-DataQualityAnalyzerResult"></a>

Describes the result of the evaluation of a data quality analyzer.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the data quality analyzer.
+ `Description` – UTF-8 string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the data quality analyzer.
+ `EvaluationMessage` – UTF-8 string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  An evaluation message.
+ `EvaluatedMetrics` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a Number (double).

  A map of metrics associated with the evaluation of the analyzer.

## DataQualityObservation structure
<a name="aws-glue-api-data-quality-api-DataQualityObservation"></a>

Describes the observation generated after evaluating the rules and analyzers.

**Fields**
+ `Description` – UTF-8 string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the data quality observation.
+ `MetricBasedObservation` – A [MetricBasedObservation](#aws-glue-api-data-quality-api-MetricBasedObservation) object.

  An object of type `MetricBasedObservation` representing the observation that is based on evaluated data quality metrics.

## MetricBasedObservation structure
<a name="aws-glue-api-data-quality-api-MetricBasedObservation"></a>

Describes the metric based observation generated based on evaluated data quality metrics.

**Fields**
+ `MetricName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the data quality metric used for generating the observation.
+ `StatisticId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Statistic ID.
+ `MetricValues` – A [DataQualityMetricValues](#aws-glue-api-data-quality-api-DataQualityMetricValues) object.

  An object of type `DataQualityMetricValues` representing the analysis of the data quality metric value.
+ `NewRules` – An array of UTF-8 strings.

  A list of new data quality rules generated as part of the observation based on the data quality metric value.

## DataQualityMetricValues structure
<a name="aws-glue-api-data-quality-api-DataQualityMetricValues"></a>

Describes the data quality metric value according to the analysis of historical data.

**Fields**
+ `ActualValue` – Number (double).

  The actual value of the data quality metric.
+ `ExpectedValue` – Number (double).

  The expected value of the data quality metric according to the analysis of historical data.
+ `LowerLimit` – Number (double).

  The lower limit of the data quality metric value according to the analysis of historical data.
+ `UpperLimit` – Number (double).

  The upper limit of the data quality metric value according to the analysis of historical data.

## DataQualityRuleResult structure
<a name="aws-glue-api-data-quality-api-DataQualityRuleResult"></a>

Describes the result of the evaluation of a data quality rule.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the data quality rule.
+ `Description` – UTF-8 string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the data quality rule.
+ `EvaluationMessage` – UTF-8 string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  An evaluation message.
+ `Result` – UTF-8 string (valid values: `PASS` \$1 `FAIL` \$1 `ERROR`).

  A pass or fail status for the rule.
+ `EvaluatedMetrics` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a Number (double).

  A map of metrics associated with the evaluation of the rule.
+ `EvaluatedRule` – UTF-8 string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The evaluated rule.
+ `RuleMetrics` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a Number (double).

  A map containing metrics associated with the evaluation of the rule based on row-level results. 

## DataQualityResultDescription structure
<a name="aws-glue-api-data-quality-api-DataQualityResultDescription"></a>

Describes a data quality result.

**Fields**
+ `ResultId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique result ID for this data quality result.
+ `DataSource` – A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  The table name associated with the data quality result.
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The job name associated with the data quality result.
+ `JobRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The job run ID associated with the data quality result.
+ `StartedOn` – Timestamp.

  The time that the run started for this data quality result.

## DataQualityResultFilterCriteria structure
<a name="aws-glue-api-data-quality-api-DataQualityResultFilterCriteria"></a>

Criteria used to return data quality results.

**Fields**
+ `DataSource` – A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  Filter results by the specified data source. For example, retrieving all results for an AWS Glue table.
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Filter results by the specified job name.
+ `JobRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Filter results by the specified job run ID.
+ `StartedAfter` – Timestamp.

  Filter results by runs that started after this time.
+ `StartedBefore` – Timestamp.

  Filter results by runs that started before this time.

## DataQualityRulesetFilterCriteria structure
<a name="aws-glue-api-data-quality-api-DataQualityRulesetFilterCriteria"></a>

The criteria used to filter data quality rulesets.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the ruleset filter criteria.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The description of the ruleset filter criteria.
+ `CreatedBefore` – Timestamp.

  Filter on rulesets created before this date.
+ `CreatedAfter` – Timestamp.

  Filter on rulesets created after this date.
+ `LastModifiedBefore` – Timestamp.

  Filter on rulesets last modified before this date.
+ `LastModifiedAfter` – Timestamp.

  Filter on rulesets last modified after this date.
+ `TargetTable` – A [DataQualityTargetTable](#aws-glue-api-data-quality-api-DataQualityTargetTable) object.

  The name and database name of the target table.

## DataQualityAggregatedMetrics structure
<a name="aws-glue-api-data-quality-api-DataQualityAggregatedMetrics"></a>

A summary of metrics showing the total counts of processed rows and rules, including their pass/fail statistics based on row-level results.

**Fields**
+ `TotalRowsProcessed` – Number (double).

  The total number of rows that were processed during the data quality evaluation.
+ `TotalRowsPassed` – Number (double).

  The total number of rows that passed all applicable data quality rules.
+ `TotalRowsFailed` – Number (double).

  The total number of rows that failed one or more data quality rules.
+ `TotalRulesProcessed` – Number (double).

  The total number of data quality rules that were evaluated.
+ `TotalRulesPassed` – Number (double).

  The total number of data quality rules that passed their evaluation criteria.
+ `TotalRulesFailed` – Number (double).

  The total number of data quality rules that failed their evaluation criteria.

## StatisticAnnotation structure
<a name="aws-glue-api-data-quality-api-StatisticAnnotation"></a>

A Statistic Annotation.

**Fields**
+ `ProfileId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Profile ID.
+ `StatisticId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Statistic ID.
+ `StatisticRecordedOn` – Timestamp.

  The timestamp when the annotated statistic was recorded.
+ `InclusionAnnotation` – A [TimestampedInclusionAnnotation](#aws-glue-api-data-quality-api-TimestampedInclusionAnnotation) object.

  The inclusion annotation applied to the statistic.

## TimestampedInclusionAnnotation structure
<a name="aws-glue-api-data-quality-api-TimestampedInclusionAnnotation"></a>

A timestamped inclusion annotation.

**Fields**
+ `Value` – UTF-8 string (valid values: `INCLUDE` \$1 `EXCLUDE`).

  The inclusion annotation value.
+ `LastModifiedOn` – Timestamp.

  The timestamp when the inclusion annotation was last modified.

## AnnotationError structure
<a name="aws-glue-api-data-quality-api-AnnotationError"></a>

A failed annotation.

**Fields**
+ `ProfileId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Profile ID for the failed annotation.
+ `StatisticId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Statistic ID for the failed annotation.
+ `FailureReason` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  The reason why the annotation failed.

## DatapointInclusionAnnotation structure
<a name="aws-glue-api-data-quality-api-DatapointInclusionAnnotation"></a>

An Inclusion Annotation.

**Fields**
+ `ProfileId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the data quality profile the statistic belongs to.
+ `StatisticId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Statistic ID.
+ `InclusionAnnotation` – UTF-8 string (valid values: `INCLUDE` \$1 `EXCLUDE`).

  The inclusion annotation value to apply to the statistic.

## StatisticSummaryList list
<a name="aws-glue-api-data-quality-api-StatisticSummaryList"></a>

A list of `StatisticSummary`.

An array of [StatisticSummary](#aws-glue-api-data-quality-api-StatisticSummary) objects.

A list of `StatisticSummary`.

## StatisticSummary structure
<a name="aws-glue-api-data-quality-api-StatisticSummary"></a>

Summary information about a statistic.

**Fields**
+ `StatisticId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Statistic ID.
+ `ProfileId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Profile ID.
+ `RunIdentifier` – A [RunIdentifier](#aws-glue-api-data-quality-api-RunIdentifier) object.

  The Run Identifier
+ `StatisticName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Custom string pattern #16](aws-glue-api-common.md#regex_16).

  The name of the statistic.
+ `DoubleValue` – Number (double).

  The value of the statistic.
+ `EvaluationLevel` – UTF-8 string (valid values: `Dataset="DATASET"` \$1 `Column="COLUMN"` \$1 `Multicolumn="MULTICOLUMN"`).

  The evaluation level of the statistic. Possible values: `Dataset`, `Column`, `Multicolumn`.
+ `ColumnsReferenced` – An array of UTF-8 strings.

  The list of columns referenced by the statistic.
+ `ReferencedDatasets` – An array of UTF-8 strings.

  The list of datasets referenced by the statistic.
+ `StatisticProperties` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A `StatisticPropertiesMap`, which contains a `NameString` and `DescriptionString`
+ `RecordedOn` – Timestamp.

  The timestamp when the statistic was recorded.
+ `InclusionAnnotation` – A [TimestampedInclusionAnnotation](#aws-glue-api-data-quality-api-TimestampedInclusionAnnotation) object.

  The inclusion annotation for the statistic.

## RunIdentifier structure
<a name="aws-glue-api-data-quality-api-RunIdentifier"></a>

A run identifier.

**Fields**
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Run ID.
+ `JobRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Job Run ID.

## StatisticModelResult structure
<a name="aws-glue-api-data-quality-api-StatisticModelResult"></a>

The statistic model result.

**Fields**
+ `LowerBound` – Number (double).

  The lower bound.
+ `UpperBound` – Number (double).

  The upper bound.
+ `PredictedValue` – Number (double).

  The predicted value.
+ `ActualValue` – Number (double).

  The actual value.
+ `Date` – Timestamp.

  The date.
+ `InclusionAnnotation` – UTF-8 string (valid values: `INCLUDE` \$1 `EXCLUDE`).

  The inclusion annotation.

## DataQualityGlueTable structure
<a name="aws-glue-api-data-quality-api-DataQualityGlueTable"></a>

The database and table in the AWS Glue Data Catalog that is used for input or output data for Data Quality Operations.

**Fields**
+ `DatabaseName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A database name in the AWS Glue Data Catalog.
+ `TableName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A table name in the AWS Glue Data Catalog.
+ `CatalogId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique identifier for the AWS Glue Data Catalog.
+ `ConnectionName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the connection to the AWS Glue Data Catalog.
+ `AdditionalOptions` – A map array of key-value pairs, not less than 1 or more than 10 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  Additional options for the table. Currently there are two keys supported:
  + `pushDownPredicate`: to filter on partitions without having to list and read all the files in your dataset.
  + `catalogPartitionPredicate`: to use server-side partition pruning using partition indexes in the AWS Glue Data Catalog.
+ `PreProcessingQuery` – UTF-8 string, not more than 51200 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  SQL Query of SparkSQL format that can be used to pre-process the data for the table in AWS Glue Data Catalog, before running the Data Quality Operation.

## Operations
<a name="aws-glue-api-data-quality-api-actions"></a>
+ [StartDataQualityRulesetEvaluationRun action (Python: start\$1data\$1quality\$1ruleset\$1evaluation\$1run)](#aws-glue-api-data-quality-api-StartDataQualityRulesetEvaluationRun)
+ [CancelDataQualityRulesetEvaluationRun action (Python: cancel\$1data\$1quality\$1ruleset\$1evaluation\$1run)](#aws-glue-api-data-quality-api-CancelDataQualityRulesetEvaluationRun)
+ [GetDataQualityRulesetEvaluationRun action (Python: get\$1data\$1quality\$1ruleset\$1evaluation\$1run)](#aws-glue-api-data-quality-api-GetDataQualityRulesetEvaluationRun)
+ [ListDataQualityRulesetEvaluationRuns action (Python: list\$1data\$1quality\$1ruleset\$1evaluation\$1runs)](#aws-glue-api-data-quality-api-ListDataQualityRulesetEvaluationRuns)
+ [StartDataQualityRuleRecommendationRun action (Python: start\$1data\$1quality\$1rule\$1recommendation\$1run)](#aws-glue-api-data-quality-api-StartDataQualityRuleRecommendationRun)
+ [CancelDataQualityRuleRecommendationRun action (Python: cancel\$1data\$1quality\$1rule\$1recommendation\$1run)](#aws-glue-api-data-quality-api-CancelDataQualityRuleRecommendationRun)
+ [GetDataQualityRuleRecommendationRun action (Python: get\$1data\$1quality\$1rule\$1recommendation\$1run)](#aws-glue-api-data-quality-api-GetDataQualityRuleRecommendationRun)
+ [ListDataQualityRuleRecommendationRuns action (Python: list\$1data\$1quality\$1rule\$1recommendation\$1runs)](#aws-glue-api-data-quality-api-ListDataQualityRuleRecommendationRuns)
+ [GetDataQualityResult action (Python: get\$1data\$1quality\$1result)](#aws-glue-api-data-quality-api-GetDataQualityResult)
+ [BatchGetDataQualityResult action (Python: batch\$1get\$1data\$1quality\$1result)](#aws-glue-api-data-quality-api-BatchGetDataQualityResult)
+ [ListDataQualityResults action (Python: list\$1data\$1quality\$1results)](#aws-glue-api-data-quality-api-ListDataQualityResults)
+ [CreateDataQualityRuleset action (Python: create\$1data\$1quality\$1ruleset)](#aws-glue-api-data-quality-api-CreateDataQualityRuleset)
+ [DeleteDataQualityRuleset action (Python: delete\$1data\$1quality\$1ruleset)](#aws-glue-api-data-quality-api-DeleteDataQualityRuleset)
+ [GetDataQualityRuleset action (Python: get\$1data\$1quality\$1ruleset)](#aws-glue-api-data-quality-api-GetDataQualityRuleset)
+ [ListDataQualityRulesets action (Python: list\$1data\$1quality\$1rulesets)](#aws-glue-api-data-quality-api-ListDataQualityRulesets)
+ [UpdateDataQualityRuleset action (Python: update\$1data\$1quality\$1ruleset)](#aws-glue-api-data-quality-api-UpdateDataQualityRuleset)
+ [ListDataQualityStatistics action (Python: list\$1data\$1quality\$1statistics)](#aws-glue-api-data-quality-api-ListDataQualityStatistics)
+ [TimestampFilter structure](#aws-glue-api-data-quality-api-TimestampFilter)
+ [CreateDataQualityRulesetRequest structure](#aws-glue-api-data-quality-api-CreateDataQualityRulesetRequest)
+ [GetDataQualityRulesetResponse structure](#aws-glue-api-data-quality-api-GetDataQualityRulesetResponse)
+ [GetDataQualityResultResponse structure](#aws-glue-api-data-quality-api-GetDataQualityResultResponse)
+ [StartDataQualityRuleRecommendationRunRequest structure](#aws-glue-api-data-quality-api-StartDataQualityRuleRecommendationRunRequest)
+ [GetDataQualityRuleRecommendationRunResponse structure](#aws-glue-api-data-quality-api-GetDataQualityRuleRecommendationRunResponse)
+ [BatchPutDataQualityStatisticAnnotation action (Python: batch\$1put\$1data\$1quality\$1statistic\$1annotation)](#aws-glue-api-data-quality-api-BatchPutDataQualityStatisticAnnotation)
+ [GetDataQualityModel action (Python: get\$1data\$1quality\$1model)](#aws-glue-api-data-quality-api-GetDataQualityModel)
+ [GetDataQualityModelResult action (Python: get\$1data\$1quality\$1model\$1result)](#aws-glue-api-data-quality-api-GetDataQualityModelResult)
+ [ListDataQualityStatisticAnnotations action (Python: list\$1data\$1quality\$1statistic\$1annotations)](#aws-glue-api-data-quality-api-ListDataQualityStatisticAnnotations)
+ [PutDataQualityProfileAnnotation action (Python: put\$1data\$1quality\$1profile\$1annotation)](#aws-glue-api-data-quality-api-PutDataQualityProfileAnnotation)

## StartDataQualityRulesetEvaluationRun action (Python: start\$1data\$1quality\$1ruleset\$1evaluation\$1run)
<a name="aws-glue-api-data-quality-api-StartDataQualityRulesetEvaluationRun"></a>

Once you have a ruleset definition (either recommended or your own), you call this operation to evaluate the ruleset against a data source (AWS Glue table). The evaluation computes results which you can retrieve with the `GetDataQualityResult` API.

**Request**
+ `DataSource` – *Required:* A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  The data source (AWS Glue table) associated with this run.
+ `Role` – *Required:* UTF-8 string.

  An IAM role supplied to encrypt the results of the run.
+ `NumberOfWorkers` – Number (integer).

  The number of `G.1X` workers to be used in the run. The default is 5.
+ `Timeout` – Number (integer), at least 1.

  The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters `TIMEOUT` status. The default is 2,880 minutes (48 hours).
+ `ClientToken` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.
+ `AdditionalRunOptions` – A [DataQualityEvaluationRunAdditionalRunOptions](#aws-glue-api-data-quality-api-DataQualityEvaluationRunAdditionalRunOptions) object.

  Additional run options you can specify for an evaluation run.
+ `RulesetNames` – *Required:* An array of UTF-8 strings, not less than 1 or more than 10 strings.

  A list of ruleset names.
+ `AdditionalDataSources` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  A map of reference strings to additional data sources you can specify for an evaluation run.

**Response**
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier associated with this run.

**Errors**
+ `InvalidInputException`
+ `EntityNotFoundException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `ConflictException`

## CancelDataQualityRulesetEvaluationRun action (Python: cancel\$1data\$1quality\$1ruleset\$1evaluation\$1run)
<a name="aws-glue-api-data-quality-api-CancelDataQualityRulesetEvaluationRun"></a>

Cancels a run where a ruleset is being evaluated against a data source.

**Request**
+ `RunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier associated with this run.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## GetDataQualityRulesetEvaluationRun action (Python: get\$1data\$1quality\$1ruleset\$1evaluation\$1run)
<a name="aws-glue-api-data-quality-api-GetDataQualityRulesetEvaluationRun"></a>

Retrieves a specific run where a ruleset is evaluated against a data source.

**Request**
+ `RunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier associated with this run.

**Response**
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier associated with this run.
+ `DataSource` – A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  The data source (an AWS Glue table) associated with this evaluation run.
+ `Role` – UTF-8 string.

  An IAM role supplied to encrypt the results of the run.
+ `NumberOfWorkers` – Number (integer).

  The number of `G.1X` workers to be used in the run. The default is 5.
+ `Timeout` – Number (integer), at least 1.

  The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters `TIMEOUT` status. The default is 2,880 minutes (48 hours).
+ `AdditionalRunOptions` – A [DataQualityEvaluationRunAdditionalRunOptions](#aws-glue-api-data-quality-api-DataQualityEvaluationRunAdditionalRunOptions) object.

  Additional run options you can specify for an evaluation run.
+ `Status` – UTF-8 string (valid values: `RUNNING` \$1 `FINISHED` \$1 `FAILED` \$1 `PENDING_EXECUTION` \$1 `TIMED_OUT` \$1 `CANCELING` \$1 `CANCELED` \$1 `RECEIVED_BY_TASKRUNNER`).

  The status for this run.
+ `ErrorString` – UTF-8 string.

  The error strings that are associated with the run.
+ `StartedOn` – Timestamp.

  The date and time when this run started.
+ `LastModifiedOn` – Timestamp.

  A timestamp. The last point in time when this data quality rule recommendation run was modified.
+ `CompletedOn` – Timestamp.

  The date and time when this run was completed.
+ `ExecutionTime` – Number (integer).

  The amount of time (in seconds) that the run consumed resources.
+ `RulesetNames` – An array of UTF-8 strings, not less than 1 or more than 10 strings.

  A list of ruleset names for the run. Currently, this parameter takes only one Ruleset name.
+ `ResultIds` – An array of UTF-8 strings, not less than 1 or more than 10 strings.

  A list of result IDs for the data quality results for the run.
+ `AdditionalDataSources` – A map array of key-value pairs.

  Each key is a UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Each value is a A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  A map of reference strings to additional data sources you can specify for an evaluation run.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## ListDataQualityRulesetEvaluationRuns action (Python: list\$1data\$1quality\$1ruleset\$1evaluation\$1runs)
<a name="aws-glue-api-data-quality-api-ListDataQualityRulesetEvaluationRuns"></a>

Lists all the runs meeting the filter criteria, where a ruleset is evaluated against a data source.

**Request**
+ `Filter` – A [DataQualityRulesetEvaluationRunFilter](#aws-glue-api-data-quality-api-DataQualityRulesetEvaluationRunFilter) object.

  The filter criteria.
+ `NextToken` – UTF-8 string.

  A paginated token to offset the results.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results to return.

**Response**
+ `Runs` – An array of [DataQualityRulesetEvaluationRunDescription](#aws-glue-api-data-quality-api-DataQualityRulesetEvaluationRunDescription) objects.

  A list of `DataQualityRulesetEvaluationRunDescription` objects representing data quality ruleset runs.
+ `NextToken` – UTF-8 string.

  A pagination token, if more results are available.

**Errors**
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## StartDataQualityRuleRecommendationRun action (Python: start\$1data\$1quality\$1rule\$1recommendation\$1run)
<a name="aws-glue-api-data-quality-api-StartDataQualityRuleRecommendationRun"></a>

Starts a recommendation run that is used to generate rules when you don't know what rules to write. AWS Glue Data Quality analyzes the data and comes up with recommendations for a potential ruleset. You can then triage the ruleset and modify the generated ruleset to your liking.

Recommendation runs are automatically deleted after 90 days.

**Request**

The request of the Data Quality rule recommendation request.
+ `DataSource` – *Required:* A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  The data source (AWS Glue table) associated with this run.
+ `Role` – *Required:* UTF-8 string.

  An IAM role supplied to encrypt the results of the run.
+ `NumberOfWorkers` – Number (integer).

  The number of `G.1X` workers to be used in the run. The default is 5.
+ `Timeout` – Number (integer), at least 1.

  The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters `TIMEOUT` status. The default is 2,880 minutes (48 hours).
+ `CreatedRulesetName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A name for the ruleset.
+ `DataQualitySecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the security configuration created with the data quality encryption option.
+ `ClientToken` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.

**Response**
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier associated with this run.

**Errors**
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `ConflictException`

## CancelDataQualityRuleRecommendationRun action (Python: cancel\$1data\$1quality\$1rule\$1recommendation\$1run)
<a name="aws-glue-api-data-quality-api-CancelDataQualityRuleRecommendationRun"></a>

Cancels the specified recommendation run that was being used to generate rules.

**Request**
+ `RunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier associated with this run.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## GetDataQualityRuleRecommendationRun action (Python: get\$1data\$1quality\$1rule\$1recommendation\$1run)
<a name="aws-glue-api-data-quality-api-GetDataQualityRuleRecommendationRun"></a>

Gets the specified recommendation run that was used to generate rules.

**Request**
+ `RunId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier associated with this run.

**Response**

The response for the Data Quality rule recommendation run.
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier associated with this run.
+ `DataSource` – A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  The data source (an AWS Glue table) associated with this run.
+ `Role` – UTF-8 string.

  An IAM role supplied to encrypt the results of the run.
+ `NumberOfWorkers` – Number (integer).

  The number of `G.1X` workers to be used in the run. The default is 5.
+ `Timeout` – Number (integer), at least 1.

  The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters `TIMEOUT` status. The default is 2,880 minutes (48 hours).
+ `Status` – UTF-8 string (valid values: `RUNNING` \$1 `FINISHED` \$1 `FAILED` \$1 `PENDING_EXECUTION` \$1 `TIMED_OUT` \$1 `CANCELING` \$1 `CANCELED` \$1 `RECEIVED_BY_TASKRUNNER`).

  The status for this run.
+ `ErrorString` – UTF-8 string.

  The error strings that are associated with the run.
+ `StartedOn` – Timestamp.

  The date and time when this run started.
+ `LastModifiedOn` – Timestamp.

  A timestamp. The last point in time when this data quality rule recommendation run was modified.
+ `CompletedOn` – Timestamp.

  The date and time when this run was completed.
+ `ExecutionTime` – Number (integer).

  The amount of time (in seconds) that the run consumed resources.
+ `RecommendedRuleset` – UTF-8 string, not less than 1 or more than 65536 bytes long.

  When a start rule recommendation run completes, it creates a recommended ruleset (a set of rules). This member has those rules in Data Quality Definition Language (DQDL) format.
+ `CreatedRulesetName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the ruleset that was created by the run.
+ `DataQualitySecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the security configuration created with the data quality encryption option.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## ListDataQualityRuleRecommendationRuns action (Python: list\$1data\$1quality\$1rule\$1recommendation\$1runs)
<a name="aws-glue-api-data-quality-api-ListDataQualityRuleRecommendationRuns"></a>

Lists the recommendation runs meeting the filter criteria.

**Request**
+ `Filter` – A [DataQualityRuleRecommendationRunFilter](#aws-glue-api-data-quality-api-DataQualityRuleRecommendationRunFilter) object.

  The filter criteria.
+ `NextToken` – UTF-8 string.

  A paginated token to offset the results.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results to return.

**Response**
+ `Runs` – An array of [DataQualityRuleRecommendationRunDescription](#aws-glue-api-data-quality-api-DataQualityRuleRecommendationRunDescription) objects.

  A list of `DataQualityRuleRecommendationRunDescription` objects.
+ `NextToken` – UTF-8 string.

  A pagination token, if more results are available.

**Errors**
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## GetDataQualityResult action (Python: get\$1data\$1quality\$1result)
<a name="aws-glue-api-data-quality-api-GetDataQualityResult"></a>

Retrieves the result of a data quality rule evaluation.

**Request**
+ `ResultId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique result ID for the data quality result.

**Response**

The response for the data quality result.
+ `ResultId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique result ID for the data quality result.
+ `ProfileId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Profile ID for the data quality result.
+ `Score` – Number (double), not more than 1.0.

  An aggregate data quality score. Represents the ratio of rules that passed to the total number of rules.
+ `DataSource` – A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  The table associated with the data quality result, if any.
+ `RulesetName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the ruleset associated with the data quality result.
+ `EvaluationContext` – UTF-8 string.

  In the context of a job in AWS Glue Studio, each node in the canvas is typically assigned some sort of name and data quality nodes will have names. In the case of multiple nodes, the `evaluationContext` can differentiate the nodes.
+ `StartedOn` – Timestamp.

  The date and time when the run for this data quality result started.
+ `CompletedOn` – Timestamp.

  The date and time when the run for this data quality result was completed.
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The job name associated with the data quality result, if any.
+ `JobRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The job run ID associated with the data quality result, if any.
+ `RulesetEvaluationRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run ID associated with the ruleset evaluation.
+ `RuleResults` – An array of [DataQualityRuleResult](#aws-glue-api-data-quality-api-DataQualityRuleResult) objects, not more than 2000 structures.

  A list of `DataQualityRuleResult` objects representing the results for each rule. 
+ `AnalyzerResults` – An array of [DataQualityAnalyzerResult](#aws-glue-api-data-quality-api-DataQualityAnalyzerResult) objects, not more than 2000 structures.

  A list of `DataQualityAnalyzerResult` objects representing the results for each analyzer. 
+ `Observations` – An array of [DataQualityObservation](#aws-glue-api-data-quality-api-DataQualityObservation) objects, not more than 50 structures.

  A list of `DataQualityObservation` objects representing the observations generated after evaluating the rules and analyzers. 
+ `AggregatedMetrics` – A [DataQualityAggregatedMetrics](#aws-glue-api-data-quality-api-DataQualityAggregatedMetrics) object.

   A summary of `DataQualityAggregatedMetrics` objects showing the total counts of processed rows and rules, including their pass/fail statistics based on row-level results. 

**Errors**
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `EntityNotFoundException`

## BatchGetDataQualityResult action (Python: batch\$1get\$1data\$1quality\$1result)
<a name="aws-glue-api-data-quality-api-BatchGetDataQualityResult"></a>

Retrieves a list of data quality results for the specified result IDs.

**Request**
+ `ResultIds` – *Required:* An array of UTF-8 strings, not less than 1 or more than 100 strings.

  A list of unique result IDs for the data quality results.

**Response**
+ `Results` – *Required:* An array of [DataQualityResult](#aws-glue-api-data-quality-api-DataQualityResult) objects.

  A list of `DataQualityResult` objects representing the data quality results.
+ `ResultsNotFound` – An array of UTF-8 strings, not less than 1 or more than 100 strings.

  A list of result IDs for which results were not found.

**Errors**
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## ListDataQualityResults action (Python: list\$1data\$1quality\$1results)
<a name="aws-glue-api-data-quality-api-ListDataQualityResults"></a>

Returns all data quality execution results for your account.

**Request**
+ `Filter` – A [DataQualityResultFilterCriteria](#aws-glue-api-data-quality-api-DataQualityResultFilterCriteria) object.

  The filter criteria.
+ `NextToken` – UTF-8 string.

  A paginated token to offset the results.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results to return.

**Response**
+ `Results` – *Required:* An array of [DataQualityResultDescription](#aws-glue-api-data-quality-api-DataQualityResultDescription) objects.

  A list of `DataQualityResultDescription` objects.
+ `NextToken` – UTF-8 string.

  A pagination token, if more results are available.

**Errors**
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## CreateDataQualityRuleset action (Python: create\$1data\$1quality\$1ruleset)
<a name="aws-glue-api-data-quality-api-CreateDataQualityRuleset"></a>

Creates a data quality ruleset with DQDL rules applied to a specified AWS Glue table.

You create the ruleset using the Data Quality Definition Language (DQDL). For more information, see the AWS Glue developer guide.

**Request**

A request to create a data quality ruleset.
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique name for the data quality ruleset.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the data quality ruleset.
+ `Ruleset` – *Required:* UTF-8 string, not less than 1 or more than 65536 bytes long.

  A Data Quality Definition Language (DQDL) ruleset. For more information, see the AWS Glue developer guide.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  A list of tags applied to the data quality ruleset.
+ `TargetTable` – A [DataQualityTargetTable](#aws-glue-api-data-quality-api-DataQualityTargetTable) object.

  A target table associated with the data quality ruleset.
+ `RecommendationRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique run ID for the recommendation run.
+ `DataQualitySecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the security configuration created with the data quality encryption option.
+ `ClientToken` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique name for the data quality ruleset.

**Errors**
+ `InvalidInputException`
+ `AlreadyExistsException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `ResourceNumberLimitExceededException`

## DeleteDataQualityRuleset action (Python: delete\$1data\$1quality\$1ruleset)
<a name="aws-glue-api-data-quality-api-DeleteDataQualityRuleset"></a>

Deletes a data quality ruleset.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A name for the data quality ruleset.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## GetDataQualityRuleset action (Python: get\$1data\$1quality\$1ruleset)
<a name="aws-glue-api-data-quality-api-GetDataQualityRuleset"></a>

Returns an existing ruleset by identifier or name.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the ruleset.

**Response**

Returns the data quality ruleset response.
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the ruleset.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the ruleset.
+ `Ruleset` – UTF-8 string, not less than 1 or more than 65536 bytes long.

  A Data Quality Definition Language (DQDL) ruleset. For more information, see the AWS Glue developer guide.
+ `TargetTable` – A [DataQualityTargetTable](#aws-glue-api-data-quality-api-DataQualityTargetTable) object.

  The name and database name of the target table.
+ `CreatedOn` – Timestamp.

  A timestamp. The time and date that this data quality ruleset was created.
+ `LastModifiedOn` – Timestamp.

  A timestamp. The last point in time when this data quality ruleset was modified.
+ `RecommendationRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  When a ruleset was created from a recommendation run, this run ID is generated to link the two together.
+ `DataQualitySecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the security configuration created with the data quality encryption option.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## ListDataQualityRulesets action (Python: list\$1data\$1quality\$1rulesets)
<a name="aws-glue-api-data-quality-api-ListDataQualityRulesets"></a>

Returns a paginated list of rulesets for the specified list of AWS Glue tables.

**Request**
+ `NextToken` – UTF-8 string.

  A paginated token to offset the results.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results to return.
+ `Filter` – A [DataQualityRulesetFilterCriteria](#aws-glue-api-data-quality-api-DataQualityRulesetFilterCriteria) object.

  The filter criteria. 
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  A list of key-value pair tags.

**Response**
+ `Rulesets` – An array of [DataQualityRulesetListDetails](#aws-glue-api-data-quality-api-DataQualityRulesetListDetails) objects.

  A paginated list of rulesets for the specified list of AWS Glue tables.
+ `NextToken` – UTF-8 string.

  A pagination token, if more results are available.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## UpdateDataQualityRuleset action (Python: update\$1data\$1quality\$1ruleset)
<a name="aws-glue-api-data-quality-api-UpdateDataQualityRuleset"></a>

Updates the specified data quality ruleset.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the data quality ruleset.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the ruleset.
+ `Ruleset` – UTF-8 string, not less than 1 or more than 65536 bytes long.

  A Data Quality Definition Language (DQDL) ruleset. For more information, see the AWS Glue developer guide.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the data quality ruleset.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the ruleset.
+ `Ruleset` – UTF-8 string, not less than 1 or more than 65536 bytes long.

  A Data Quality Definition Language (DQDL) ruleset. For more information, see the AWS Glue developer guide.

**Errors**
+ `EntityNotFoundException`
+ `AlreadyExistsException`
+ `IdempotentParameterMismatchException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`
+ `ResourceNumberLimitExceededException`

## ListDataQualityStatistics action (Python: list\$1data\$1quality\$1statistics)
<a name="aws-glue-api-data-quality-api-ListDataQualityStatistics"></a>

Retrieves a list of data quality statistics.

**Request**
+ `StatisticId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Statistic ID.
+ `ProfileId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Profile ID.
+ `TimestampFilter` – A [TimestampFilter](#aws-glue-api-data-quality-api-TimestampFilter) object.

  A timestamp filter.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results to return in this request.
+ `NextToken` – UTF-8 string.

  A pagination token to request the next page of results.

**Response**
+ `Statistics` – An array of [StatisticSummary](#aws-glue-api-data-quality-api-StatisticSummary) objects.

  A `StatisticSummaryList`.
+ `NextToken` – UTF-8 string.

  A pagination token to request the next page of results.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`

## TimestampFilter structure
<a name="aws-glue-api-data-quality-api-TimestampFilter"></a>

A timestamp filter.

**Fields**
+ `RecordedBefore` – Timestamp.

  The timestamp before which statistics should be included in the results.
+ `RecordedAfter` – Timestamp.

  The timestamp after which statistics should be included in the results.

## CreateDataQualityRulesetRequest structure
<a name="aws-glue-api-data-quality-api-CreateDataQualityRulesetRequest"></a>

A request to create a data quality ruleset.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique name for the data quality ruleset.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the data quality ruleset.
+ `Ruleset` – *Required:* UTF-8 string, not less than 1 or more than 65536 bytes long.

  A Data Quality Definition Language (DQDL) ruleset. For more information, see the AWS Glue developer guide.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  A list of tags applied to the data quality ruleset.
+ `TargetTable` – A [DataQualityTargetTable](#aws-glue-api-data-quality-api-DataQualityTargetTable) object.

  A target table associated with the data quality ruleset.
+ `RecommendationRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique run ID for the recommendation run.
+ `DataQualitySecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the security configuration created with the data quality encryption option.
+ `ClientToken` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.

## GetDataQualityRulesetResponse structure
<a name="aws-glue-api-data-quality-api-GetDataQualityRulesetResponse"></a>

Returns the data quality ruleset response.

**Fields**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the ruleset.
+ `Description` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-uri).

  A description of the ruleset.
+ `Ruleset` – UTF-8 string, not less than 1 or more than 65536 bytes long.

  A Data Quality Definition Language (DQDL) ruleset. For more information, see the AWS Glue developer guide.
+ `TargetTable` – A [DataQualityTargetTable](#aws-glue-api-data-quality-api-DataQualityTargetTable) object.

  The name and database name of the target table.
+ `CreatedOn` – Timestamp.

  A timestamp. The time and date that this data quality ruleset was created.
+ `LastModifiedOn` – Timestamp.

  A timestamp. The last point in time when this data quality ruleset was modified.
+ `RecommendationRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  When a ruleset was created from a recommendation run, this run ID is generated to link the two together.
+ `DataQualitySecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the security configuration created with the data quality encryption option.

## GetDataQualityResultResponse structure
<a name="aws-glue-api-data-quality-api-GetDataQualityResultResponse"></a>

The response for the data quality result.

**Fields**
+ `ResultId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A unique result ID for the data quality result.
+ `ProfileId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Profile ID for the data quality result.
+ `Score` – Number (double), not more than 1.0.

  An aggregate data quality score. Represents the ratio of rules that passed to the total number of rules.
+ `DataSource` – A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  The table associated with the data quality result, if any.
+ `RulesetName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the ruleset associated with the data quality result.
+ `EvaluationContext` – UTF-8 string.

  In the context of a job in AWS Glue Studio, each node in the canvas is typically assigned some sort of name and data quality nodes will have names. In the case of multiple nodes, the `evaluationContext` can differentiate the nodes.
+ `StartedOn` – Timestamp.

  The date and time when the run for this data quality result started.
+ `CompletedOn` – Timestamp.

  The date and time when the run for this data quality result was completed.
+ `JobName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The job name associated with the data quality result, if any.
+ `JobRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The job run ID associated with the data quality result, if any.
+ `RulesetEvaluationRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run ID associated with the ruleset evaluation.
+ `RuleResults` – An array of [DataQualityRuleResult](#aws-glue-api-data-quality-api-DataQualityRuleResult) objects, not more than 2000 structures.

  A list of `DataQualityRuleResult` objects representing the results for each rule. 
+ `AnalyzerResults` – An array of [DataQualityAnalyzerResult](#aws-glue-api-data-quality-api-DataQualityAnalyzerResult) objects, not more than 2000 structures.

  A list of `DataQualityAnalyzerResult` objects representing the results for each analyzer. 
+ `Observations` – An array of [DataQualityObservation](#aws-glue-api-data-quality-api-DataQualityObservation) objects, not more than 50 structures.

  A list of `DataQualityObservation` objects representing the observations generated after evaluating the rules and analyzers. 
+ `AggregatedMetrics` – A [DataQualityAggregatedMetrics](#aws-glue-api-data-quality-api-DataQualityAggregatedMetrics) object.

   A summary of `DataQualityAggregatedMetrics` objects showing the total counts of processed rows and rules, including their pass/fail statistics based on row-level results. 

## StartDataQualityRuleRecommendationRunRequest structure
<a name="aws-glue-api-data-quality-api-StartDataQualityRuleRecommendationRunRequest"></a>

The request of the Data Quality rule recommendation request.

**Fields**
+ `DataSource` – *Required:* A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  The data source (AWS Glue table) associated with this run.
+ `Role` – *Required:* UTF-8 string.

  An IAM role supplied to encrypt the results of the run.
+ `NumberOfWorkers` – Number (integer).

  The number of `G.1X` workers to be used in the run. The default is 5.
+ `Timeout` – Number (integer), at least 1.

  The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters `TIMEOUT` status. The default is 2,880 minutes (48 hours).
+ `CreatedRulesetName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A name for the ruleset.
+ `DataQualitySecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the security configuration created with the data quality encryption option.
+ `ClientToken` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Used for idempotency and is recommended to be set to a random ID (such as a UUID) to avoid creating or starting multiple instances of the same resource.

## GetDataQualityRuleRecommendationRunResponse structure
<a name="aws-glue-api-data-quality-api-GetDataQualityRuleRecommendationRunResponse"></a>

The response for the Data Quality rule recommendation run.

**Fields**
+ `RunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The unique run identifier associated with this run.
+ `DataSource` – A [DataSource](#aws-glue-api-data-quality-api-DataSource) object.

  The data source (an AWS Glue table) associated with this run.
+ `Role` – UTF-8 string.

  An IAM role supplied to encrypt the results of the run.
+ `NumberOfWorkers` – Number (integer).

  The number of `G.1X` workers to be used in the run. The default is 5.
+ `Timeout` – Number (integer), at least 1.

  The timeout for a run in minutes. This is the maximum time that a run can consume resources before it is terminated and enters `TIMEOUT` status. The default is 2,880 minutes (48 hours).
+ `Status` – UTF-8 string (valid values: `RUNNING` \$1 `FINISHED` \$1 `FAILED` \$1 `PENDING_EXECUTION` \$1 `TIMED_OUT` \$1 `CANCELING` \$1 `CANCELED` \$1 `RECEIVED_BY_TASKRUNNER`).

  The status for this run.
+ `ErrorString` – UTF-8 string.

  The error strings that are associated with the run.
+ `StartedOn` – Timestamp.

  The date and time when this run started.
+ `LastModifiedOn` – Timestamp.

  A timestamp. The last point in time when this data quality rule recommendation run was modified.
+ `CompletedOn` – Timestamp.

  The date and time when this run was completed.
+ `ExecutionTime` – Number (integer).

  The amount of time (in seconds) that the run consumed resources.
+ `RecommendedRuleset` – UTF-8 string, not less than 1 or more than 65536 bytes long.

  When a start rule recommendation run completes, it creates a recommended ruleset (a set of rules). This member has those rules in Data Quality Definition Language (DQDL) format.
+ `CreatedRulesetName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the ruleset that was created by the run.
+ `DataQualitySecurityConfiguration` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the security configuration created with the data quality encryption option.

## BatchPutDataQualityStatisticAnnotation action (Python: batch\$1put\$1data\$1quality\$1statistic\$1annotation)
<a name="aws-glue-api-data-quality-api-BatchPutDataQualityStatisticAnnotation"></a>

Annotate datapoints over time for a specific data quality statistic. The API requires both profileID and statisticID as part of the InclusionAnnotation input. The API only works for a single statisticId across multiple profiles.

**Request**
+ `InclusionAnnotations` – *Required:* An array of [DatapointInclusionAnnotation](#aws-glue-api-data-quality-api-DatapointInclusionAnnotation) objects.

  A list of `DatapointInclusionAnnotation`'s. The InclusionAnnotations must contain a profileId and statisticId. If there are multiple InclusionAnnotations, the list must refer to a single statisticId across multiple profileIds.
+ `ClientToken` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  Client Token.

**Response**
+ `FailedInclusionAnnotations` – An array of [AnnotationError](#aws-glue-api-data-quality-api-AnnotationError) objects.

  A list of `AnnotationError`'s.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`
+ `ResourceNumberLimitExceededException`

## GetDataQualityModel action (Python: get\$1data\$1quality\$1model)
<a name="aws-glue-api-data-quality-api-GetDataQualityModel"></a>

Retrieve the training status of the model along with more information (CompletedOn, StartedOn, FailureReason).

**Request**
+ `StatisticId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Statistic ID.
+ `ProfileId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Profile ID.

**Response**
+ `Status` – UTF-8 string (valid values: `RUNNING` \$1 `SUCCEEDED` \$1 `FAILED`).

  The training status of the data quality model.
+ `StartedOn` – Timestamp.

  The timestamp when the data quality model training started.
+ `CompletedOn` – Timestamp.

  The timestamp when the data quality model training completed.
+ `FailureReason` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The training failure reason.

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## GetDataQualityModelResult action (Python: get\$1data\$1quality\$1model\$1result)
<a name="aws-glue-api-data-quality-api-GetDataQualityModelResult"></a>

Retrieve a statistic's predictions for a given Profile ID.

**Request**
+ `StatisticId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Statistic ID.
+ `ProfileId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Profile ID.

**Response**
+ `CompletedOn` – Timestamp.

  The timestamp when the data quality model training completed.
+ `Model` – An array of [StatisticModelResult](#aws-glue-api-data-quality-api-StatisticModelResult) objects.

  A list of `StatisticModelResult`

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

## ListDataQualityStatisticAnnotations action (Python: list\$1data\$1quality\$1statistic\$1annotations)
<a name="aws-glue-api-data-quality-api-ListDataQualityStatisticAnnotations"></a>

Retrieve annotations for a data quality statistic.

**Request**
+ `StatisticId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Statistic ID.
+ `ProfileId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The Profile ID.
+ `TimestampFilter` – A [TimestampFilter](#aws-glue-api-data-quality-api-TimestampFilter) object.

  A timestamp filter.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results to return in this request.
+ `NextToken` – UTF-8 string.

  A pagination token to retrieve the next set of results.

**Response**
+ `Annotations` – An array of [StatisticAnnotation](#aws-glue-api-data-quality-api-StatisticAnnotation) objects.

  A list of `StatisticAnnotation` applied to the Statistic
+ `NextToken` – UTF-8 string.

  A pagination token to retrieve the next set of results.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`

## PutDataQualityProfileAnnotation action (Python: put\$1data\$1quality\$1profile\$1annotation)
<a name="aws-glue-api-data-quality-api-PutDataQualityProfileAnnotation"></a>

Annotate all datapoints for a Profile.

**Request**
+ `ProfileId` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the data quality monitoring profile to annotate.
+ `InclusionAnnotation` – *Required:* UTF-8 string (valid values: `INCLUDE` \$1 `EXCLUDE`).

  The inclusion annotation value to apply to the profile.

**Response**
+ *No Response parameters.*

**Errors**
+ `EntityNotFoundException`
+ `InvalidInputException`
+ `InternalServiceException`

# Sensitive data detection API
<a name="aws-glue-api-sensitive-data-api"></a>

The Sensitive data detection API describes the APIs used to detect sensitive data across the columns and rows of your structured data. 

## Data types
<a name="aws-glue-api-sensitive-data-api-objects"></a>
+ [CustomEntityType structure](#aws-glue-api-sensitive-data-api-CustomEntityType)

## CustomEntityType structure
<a name="aws-glue-api-sensitive-data-api-CustomEntityType"></a>

An object representing a custom pattern for detecting sensitive data across the columns and rows of your structured data.

**Fields**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A name for the custom pattern that allows it to be retrieved or deleted later. This name must be unique per AWS account.
+ `RegexString` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A regular expression string that is used for detecting sensitive data in a custom pattern.
+ `ContextWords` – An array of UTF-8 strings, not less than 1 or more than 20 strings.

  A list of context words. If none of these context words are found within the vicinity of the regular expression the data will not be detected as sensitive data.

  If no context words are passed only a regular expression is checked.

## Operations
<a name="aws-glue-api-sensitive-data-api-actions"></a>
+ [CreateCustomEntityType action (Python: create\$1custom\$1entity\$1type)](#aws-glue-api-sensitive-data-api-CreateCustomEntityType)
+ [DeleteCustomEntityType action (Python: delete\$1custom\$1entity\$1type)](#aws-glue-api-sensitive-data-api-DeleteCustomEntityType)
+ [GetCustomEntityType action (Python: get\$1custom\$1entity\$1type)](#aws-glue-api-sensitive-data-api-GetCustomEntityType)
+ [BatchGetCustomEntityTypes action (Python: batch\$1get\$1custom\$1entity\$1types)](#aws-glue-api-sensitive-data-api-BatchGetCustomEntityTypes)
+ [ListCustomEntityTypes action (Python: list\$1custom\$1entity\$1types)](#aws-glue-api-sensitive-data-api-ListCustomEntityTypes)

## CreateCustomEntityType action (Python: create\$1custom\$1entity\$1type)
<a name="aws-glue-api-sensitive-data-api-CreateCustomEntityType"></a>

Creates a custom pattern that is used to detect sensitive data across the columns and rows of your structured data.

Each custom pattern you create specifies a regular expression and an optional list of context words. If no context words are passed only a regular expression is checked.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A name for the custom pattern that allows it to be retrieved or deleted later. This name must be unique per AWS account.
+ `RegexString` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A regular expression string that is used for detecting sensitive data in a custom pattern.
+ `ContextWords` – An array of UTF-8 strings, not less than 1 or more than 20 strings.

  A list of context words. If none of these context words are found within the vicinity of the regular expression the data will not be detected as sensitive data.

  If no context words are passed only a regular expression is checked.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  A list of tags applied to the custom entity type.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the custom pattern you created.

**Errors**
+ `AccessDeniedException`
+ `AlreadyExistsException`
+ `IdempotentParameterMismatchException`
+ `InternalServiceException`
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `ResourceNumberLimitExceededException`

## DeleteCustomEntityType action (Python: delete\$1custom\$1entity\$1type)
<a name="aws-glue-api-sensitive-data-api-DeleteCustomEntityType"></a>

Deletes a custom pattern by specifying its name.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the custom pattern that you want to delete.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the custom pattern you deleted.

**Errors**
+ `EntityNotFoundException`
+ `AccessDeniedException`
+ `InternalServiceException`
+ `InvalidInputException`
+ `OperationTimeoutException`

## GetCustomEntityType action (Python: get\$1custom\$1entity\$1type)
<a name="aws-glue-api-sensitive-data-api-GetCustomEntityType"></a>

Retrieves the details of a custom pattern by specifying its name.

**Request**
+ `Name` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the custom pattern that you want to retrieve.

**Response**
+ `Name` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The name of the custom pattern that you retrieved.
+ `RegexString` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  A regular expression string that is used for detecting sensitive data in a custom pattern.
+ `ContextWords` – An array of UTF-8 strings, not less than 1 or more than 20 strings.

  A list of context words if specified when you created the custom pattern. If none of these context words are found within the vicinity of the regular expression the data will not be detected as sensitive data.

**Errors**
+ `EntityNotFoundException`
+ `AccessDeniedException`
+ `InternalServiceException`
+ `InvalidInputException`
+ `OperationTimeoutException`

## BatchGetCustomEntityTypes action (Python: batch\$1get\$1custom\$1entity\$1types)
<a name="aws-glue-api-sensitive-data-api-BatchGetCustomEntityTypes"></a>

Retrieves the details for the custom patterns specified by a list of names.

**Request**
+ `Names` – *Required:* An array of UTF-8 strings, not less than 1 or more than 50 strings.

  A list of names of the custom patterns that you want to retrieve.

**Response**
+ `CustomEntityTypes` – An array of [CustomEntityType](#aws-glue-api-sensitive-data-api-CustomEntityType) objects.

  A list of `CustomEntityType` objects representing the custom patterns that have been created.
+ `CustomEntityTypesNotFound` – An array of UTF-8 strings, not less than 1 or more than 50 strings.

  A list of the names of custom patterns that were not found.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`

## ListCustomEntityTypes action (Python: list\$1custom\$1entity\$1types)
<a name="aws-glue-api-sensitive-data-api-ListCustomEntityTypes"></a>

Lists all the custom patterns that have been created.

**Request**
+ `NextToken` – UTF-8 string.

  A paginated token to offset the results.
+ `MaxResults` – Number (integer), not less than 1 or more than 1000.

  The maximum number of results to return.
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  A list of key-value pair tags.

**Response**
+ `CustomEntityTypes` – An array of [CustomEntityType](#aws-glue-api-sensitive-data-api-CustomEntityType) objects.

  A list of `CustomEntityType` objects representing custom patterns.
+ `NextToken` – UTF-8 string.

  A pagination token, if more results are available.

**Errors**
+ `InvalidInputException`
+ `OperationTimeoutException`
+ `InternalServiceException`

# Tagging APIs in AWS Glue
<a name="aws-glue-api-tags"></a>

## Data types
<a name="aws-glue-api-tags-objects"></a>
+ [Tag structure](#aws-glue-api-tags-Tag)

## Tag structure
<a name="aws-glue-api-tags-Tag"></a>

The `Tag` object represents a label that you can assign to an AWS resource. Each tag consists of a key and an optional value, both of which you define.

For more information about tags, and controlling access to resources in AWS Glue, see [AWS Tags in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) and [Specifying AWS Glue Resource ARNs](https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html) in the developer guide.

**Fields**
+ `key` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The tag key. The key is required when you create a tag on an object. The key is case-sensitive, and must not contain the prefix aws.
+ `value` – UTF-8 string, not more than 256 bytes long.

  The tag value. The value is optional when you create a tag on an object. The value is case-sensitive, and must not contain the prefix aws.

## Operations
<a name="aws-glue-api-tags-actions"></a>
+ [TagResource action (Python: tag\$1resource)](#aws-glue-api-tags-TagResource)
+ [UntagResource action (Python: untag\$1resource)](#aws-glue-api-tags-UntagResource)
+ [GetTags action (Python: get\$1tags)](#aws-glue-api-tags-GetTags)

## TagResource action (Python: tag\$1resource)
<a name="aws-glue-api-tags-TagResource"></a>

Adds tags to a resource. A tag is a label you can assign to an AWS resource. In AWS Glue, you can tag only certain resources. For information about what resources you can tag, see [AWS Tags in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html).

In addition to the tagging permissions to call tag related APIs, you also need the `glue:GetConnection` permission to call tagging APIs on connections, and the `glue:GetDatabase` permission to call tagging APIs on databases.

**Request**
+ `ResourceArn` – *Required:* UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The ARN of the AWS Glue resource to which to add the tags. For more information about AWS Glue resource ARNs, see the [AWS Glue ARN string pattern](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-common.html#aws-glue-api-regex-aws-glue-arn-id).
+ `TagsToAdd` – *Required:* A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  Tags to add to this resource.

**Response**
+ *No Response parameters.*

**Errors**
+ `ResourceNotFoundException`

## UntagResource action (Python: untag\$1resource)
<a name="aws-glue-api-tags-UntagResource"></a>

Removes the specified tags from an integration resource.

**Request**
+ `ResourceArn` – *Required:* UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) for the integration resource.
+ `TagsToRemove` – *Required:* An array of UTF-8 strings, not more than 50 strings.

  A list of metadata tags to be removed from the resource.

**Response**
+ *No Response parameters.*

**Errors**
+ `ResourceNotFoundException`

## GetTags action (Python: get\$1tags)
<a name="aws-glue-api-tags-GetTags"></a>

Retrieves a list of tags associated with a resource.

**Request**
+ `ResourceArn` – *Required:* UTF-8 string, not less than 1 or more than 10240 bytes long, matching the [Custom string pattern #50](aws-glue-api-common.md#regex_50).

  The Amazon Resource Name (ARN) of the resource for which to retrieve tags.

**Response**
+ `Tags` – A map array of key-value pairs, not more than 50 pairs.

  Each key is a UTF-8 string, not less than 1 or more than 128 bytes long.

  Each value is a UTF-8 string, not more than 256 bytes long.

  The requested tags.

**Errors**
+ `InvalidInputException`
+ `InternalServiceException`
+ `OperationTimeoutException`
+ `EntityNotFoundException`

# Common data types
<a name="aws-glue-api-common"></a>

The Common data types describes miscellaneous common data types in AWS Glue.

## Tag structure
<a name="aws-glue-api-common-Tag"></a>

The `Tag` object represents a label that you can assign to an AWS resource. Each tag consists of a key and an optional value, both of which you define.

For more information about tags, and controlling access to resources in AWS Glue, see [AWS Tags in AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/monitor-tags.html) and [Specifying AWS Glue Resource ARNs](https://docs.aws.amazon.com/glue/latest/dg/glue-specifying-resource-arns.html) in the developer guide.

**Fields**
+ `key` – UTF-8 string, not less than 1 or more than 128 bytes long.

  The tag key. The key is required when you create a tag on an object. The key is case-sensitive, and must not contain the prefix aws.
+ `value` – UTF-8 string, not more than 256 bytes long.

  The tag value. The value is optional when you create a tag on an object. The value is case-sensitive, and must not contain the prefix aws.

## DecimalNumber structure
<a name="aws-glue-api-common-DecimalNumber"></a>

Contains a numeric value in decimal format.

**Fields**
+ `UnscaledValue` – *Required:* Blob.

  The unscaled numeric value.
+ `Scale` – *Required:* Number (integer).

  The scale that determines where the decimal point falls in the unscaled value.

## ErrorDetail structure
<a name="aws-glue-api-common-ErrorDetail"></a>

Contains details about an error.

**Fields**
+ `ErrorCode` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](#aws-glue-api-regex-oneLine).

  The code associated with this error.
+ `ErrorMessage` – Description string, not more than 2048 bytes long, matching the [URI address multi-line string pattern](#aws-glue-api-regex-uri).

  A message describing the error.

## PropertyPredicate structure
<a name="aws-glue-api-common-PropertyPredicate"></a>

Defines a property predicate.

**Fields**
+ `Key` – Value string, not less than 1 or more than 1024 bytes long.

  The key of the property.
+ `Value` – Value string, not less than 1 or more than 1024 bytes long.

  The value of the property.
+ `Comparator` – UTF-8 string (valid values: `EQUALS` \$1 `GREATER_THAN` \$1 `LESS_THAN` \$1 `GREATER_THAN_EQUALS` \$1 `LESS_THAN_EQUALS`).

  The comparator used to compare this property to others.

## ResourceUri structure
<a name="aws-glue-api-common-ResourceUri"></a>

The URIs for function resources.

**Fields**
+ `ResourceType` – UTF-8 string (valid values: `JAR` \$1 `FILE` \$1 `ARCHIVE`).

  The type of the resource.
+ `Uri` – Uniform resource identifier (uri), not less than 1 or more than 1024 bytes long, matching the [URI address multi-line string pattern](#aws-glue-api-regex-uri).

  The URI for accessing the resource.

## ColumnStatistics structure
<a name="aws-glue-api-common-ColumnStatistics"></a>

Represents the generated column-level statistics for a table or partition.

**Fields**
+ `ColumnName` – *Required:* UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](#aws-glue-api-regex-oneLine).

  Name of column which statistics belong to.
+ `ColumnType` – *Required:* Type name, not more than 20000 bytes long, matching the [Single-line string pattern](#aws-glue-api-regex-oneLine).

  The data type of the column.
+ `AnalyzedTime` – *Required:* Timestamp.

  The timestamp of when column statistics were generated.
+ `StatisticsData` – *Required:* A [ColumnStatisticsData](#aws-glue-api-common-ColumnStatisticsData) object.

  A `ColumnStatisticData` object that contains the statistics data values.

## ColumnStatisticsError structure
<a name="aws-glue-api-common-ColumnStatisticsError"></a>

Encapsulates a `ColumnStatistics` object that failed and the reason for failure.

**Fields**
+ `ColumnStatistics` – A [ColumnStatistics](#aws-glue-api-common-ColumnStatistics) object.

  The `ColumnStatistics` of the column.
+ `Error` – An [ErrorDetail](#aws-glue-api-common-ErrorDetail) object.

  An error message with the reason for the failure of an operation.

## ColumnError structure
<a name="aws-glue-api-common-ColumnError"></a>

Encapsulates a column name that failed and the reason for failure.

**Fields**
+ `ColumnName` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](#aws-glue-api-regex-oneLine).

  The name of the column that failed.
+ `Error` – An [ErrorDetail](#aws-glue-api-common-ErrorDetail) object.

  An error message with the reason for the failure of an operation.

## ColumnStatisticsData structure
<a name="aws-glue-api-common-ColumnStatisticsData"></a>

Contains the individual types of column statistics data. Only one data object should be set and indicated by the `Type` attribute.

**Fields**
+ `Type` – *Required:* UTF-8 string (valid values: `BOOLEAN` \$1 `DATE` \$1 `DECIMAL` \$1 `DOUBLE` \$1 `LONG` \$1 `STRING` \$1 `BINARY`).

  The type of column statistics data.
+ `BooleanColumnStatisticsData` – A [BooleanColumnStatisticsData](#aws-glue-api-common-BooleanColumnStatisticsData) object.

  Boolean column statistics data.
+ `DateColumnStatisticsData` – A [DateColumnStatisticsData](#aws-glue-api-common-DateColumnStatisticsData) object.

  Date column statistics data.
+ `DecimalColumnStatisticsData` – A [DecimalColumnStatisticsData](#aws-glue-api-common-DecimalColumnStatisticsData) object.

   Decimal column statistics data. UnscaledValues within are Base64-encoded binary objects storing big-endian, two's complement representations of the decimal's unscaled value. 
+ `DoubleColumnStatisticsData` – A [DoubleColumnStatisticsData](#aws-glue-api-common-DoubleColumnStatisticsData) object.

  Double column statistics data.
+ `LongColumnStatisticsData` – A [LongColumnStatisticsData](#aws-glue-api-common-LongColumnStatisticsData) object.

  Long column statistics data.
+ `StringColumnStatisticsData` – A [StringColumnStatisticsData](#aws-glue-api-common-StringColumnStatisticsData) object.

  String column statistics data.
+ `BinaryColumnStatisticsData` – A [BinaryColumnStatisticsData](#aws-glue-api-common-BinaryColumnStatisticsData) object.

  Binary column statistics data.

## BooleanColumnStatisticsData structure
<a name="aws-glue-api-common-BooleanColumnStatisticsData"></a>

Defines column statistics supported for Boolean data columns.

**Fields**
+ `NumberOfTrues` – *Required:* Number (long), not more than None.

  The number of true values in the column.
+ `NumberOfFalses` – *Required:* Number (long), not more than None.

  The number of false values in the column.
+ `NumberOfNulls` – *Required:* Number (long), not more than None.

  The number of null values in the column.

## DateColumnStatisticsData structure
<a name="aws-glue-api-common-DateColumnStatisticsData"></a>

Defines column statistics supported for timestamp data columns.

**Fields**
+ `MinimumValue` – Timestamp.

  The lowest value in the column.
+ `MaximumValue` – Timestamp.

  The highest value in the column.
+ `NumberOfNulls` – *Required:* Number (long), not more than None.

  The number of null values in the column.
+ `NumberOfDistinctValues` – *Required:* Number (long), not more than None.

  The number of distinct values in a column.

## DecimalColumnStatisticsData structure
<a name="aws-glue-api-common-DecimalColumnStatisticsData"></a>

Defines column statistics supported for fixed-point number data columns.

**Fields**
+ `MinimumValue` – A [DecimalNumber](#aws-glue-api-common-DecimalNumber) object.

  The lowest value in the column.
+ `MaximumValue` – A [DecimalNumber](#aws-glue-api-common-DecimalNumber) object.

  The highest value in the column.
+ `NumberOfNulls` – *Required:* Number (long), not more than None.

  The number of null values in the column.
+ `NumberOfDistinctValues` – *Required:* Number (long), not more than None.

  The number of distinct values in a column.

## DoubleColumnStatisticsData structure
<a name="aws-glue-api-common-DoubleColumnStatisticsData"></a>

Defines column statistics supported for floating-point number data columns.

**Fields**
+ `MinimumValue` – Number (double).

  The lowest value in the column.
+ `MaximumValue` – Number (double).

  The highest value in the column.
+ `NumberOfNulls` – *Required:* Number (long), not more than None.

  The number of null values in the column.
+ `NumberOfDistinctValues` – *Required:* Number (long), not more than None.

  The number of distinct values in a column.

## LongColumnStatisticsData structure
<a name="aws-glue-api-common-LongColumnStatisticsData"></a>

Defines column statistics supported for integer data columns.

**Fields**
+ `MinimumValue` – Number (long).

  The lowest value in the column.
+ `MaximumValue` – Number (long).

  The highest value in the column.
+ `NumberOfNulls` – *Required:* Number (long), not more than None.

  The number of null values in the column.
+ `NumberOfDistinctValues` – *Required:* Number (long), not more than None.

  The number of distinct values in a column.

## StringColumnStatisticsData structure
<a name="aws-glue-api-common-StringColumnStatisticsData"></a>

Defines column statistics supported for character sequence data values.

**Fields**
+ `MaximumLength` – *Required:* Number (long), not more than None.

  The size of the longest string in the column.
+ `AverageLength` – *Required:* Number (double), not more than None.

  The average string length in the column.
+ `NumberOfNulls` – *Required:* Number (long), not more than None.

  The number of null values in the column.
+ `NumberOfDistinctValues` – *Required:* Number (long), not more than None.

  The number of distinct values in a column.

## BinaryColumnStatisticsData structure
<a name="aws-glue-api-common-BinaryColumnStatisticsData"></a>

Defines column statistics supported for bit sequence data values.

**Fields**
+ `MaximumLength` – *Required:* Number (long), not more than None.

  The size of the longest bit sequence in the column.
+ `AverageLength` – *Required:* Number (double), not more than None.

  The average bit sequence length in the column.
+ `NumberOfNulls` – *Required:* Number (long), not more than None.

  The number of null values in the column.

## String patterns
<a name="aws-glue-api-common-_string-patterns"></a>

The API uses the following regular expressions to define what is valid content for various string parameters and members:
+ Single-line string pattern – "`[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*`"
+ URI address multi-line string pattern – "`[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*`"
+ A Logstash Grok string pattern – "`[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\t]*`"
+ Identifier string pattern – "`[A-Za-z_][A-Za-z0-9_]*`"
+ AWS IAM ARN string pattern – "`arn:aws:iam::\d{12}:role/.*`"
+ Version string pattern – "`^[a-zA-Z0-9-_]+$`"
+ Log group string pattern – "`[\.\-_/#A-Za-z0-9]+`"
+ Log-stream string pattern – "`[^:*]*`"
+ Custom string pattern \$110 – "`[a-zA-Z0-9-_]+`"
+ Custom string pattern \$111 – "`[-a-zA-Z0-9+=/:_]*`"
+ Custom string pattern \$112 – "`[\S\s]*`"
+ Custom string pattern \$113 – "`.*\S.*`"
+ Custom string pattern \$114 – "`[a-zA-Z0-9-=._/@]+`"
+ Custom string pattern \$115 – "`[1-9][0-9]*|[1-9][0-9]*-[1-9][0-9]*`"
+ Custom string pattern \$116 – "`[A-Z][A-Za-z\.]+`"
+ Custom string pattern \$117 – "`[\S]*`"
+ Custom string pattern \$118 – "`[\w]*`"
+ Custom string pattern \$119 – "`arn:aws[a-z\-]*:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+`"
+ Custom string pattern \$120 – "`subnet-[a-z0-9]+`"
+ Custom string pattern \$121 – "`\d{12}`"
+ Custom string pattern \$122 – "`([a-z]+)-([a-z]+-)?([a-z]+)-[0-9]+[a-z]+`"
+ Custom string pattern \$123 – "`[a-zA-Z0-9.-]*`"
+ Custom string pattern \$124 – "`arn:aws[a-z0-9\-]*:lambda:[a-z0-9\-]+:\d{12}:function:([\w\-]{1,64})`"
+ Custom string pattern \$125 – "`^(?!(.*[.\/\\]|aws:)).*$`"
+ Custom string pattern \$126 – "`[^\r\n]`"
+ Custom string pattern \$127 – "`^\w+\.\w+\.\w+$`"
+ Custom string pattern \$128 – "`^\w+\.\w+$`"
+ Custom string pattern \$129 – "`^$|arn:aws[a-z0-9-]*:kms:.*`"
+ Custom string pattern \$130 – "`arn:aws[^:]*:iam::[0-9]*:role/.+`"
+ Custom string pattern \$131 – "`[\.\-_A-Za-z0-9]+`"
+ Custom string pattern \$132 – "`^s3://([^/]+)/([^/]+/)*([^/]+)$`"
+ Custom string pattern \$133 – "`.*`"
+ Custom string pattern \$134 – "`^(Sun|Mon|Tue|Wed|Thu|Fri|Sat):([01]?[0-9]|2[0-3])$`"
+ Custom string pattern \$135 – "`[a-zA-Z0-9_.-]+`"
+ Custom string pattern \$136 – "`^arn:aws(-(cn|us-gov|eusc|iso(-[bef])?))?:secretsmanager:.*$`"
+ Custom string pattern \$137 – "`\S+`"
+ Custom string pattern \$138 – "`^[\x20-\x7E]*$`"
+ Custom string pattern \$139 – "`^([a-zA-Z0-9_=]+)\.([a-zA-Z0-9_=]+)\.([a-zA-Z0-9_\-\+\/=]*)`"
+ Custom string pattern \$140 – "`^(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]`"
+ Custom string pattern \$141 – "`^(https?):\/\/[^\s/$.?#].[^\s]*$`"
+ Custom string pattern \$142 – "`arn:aws:kms:.*`"
+ Custom string pattern \$143 – "`^subnet-[a-z0-9]+$`"
+ Custom string pattern \$144 – "`[\p{L}\p{N}\p{P}]*`"
+ Custom string pattern \$145 – "`[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}`"
+ Custom string pattern \$146 – "`[a-zA-Z0-9-_$#.]+`"
+ Custom string pattern \$147 – "`^\d{12}$`"
+ Custom string pattern \$148 – "`^(\w+\.)+\w+$`"
+ Custom string pattern \$149 – "`^([2-3]|3[.]9)$`"
+ Custom string pattern \$150 – "`arn:aws(-(cn|us-gov|eusc|iso(-[bef])?))?:glue:.*`"
+ Custom string pattern \$151 – "`[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}`"
+ Custom string pattern \$152 – "`(^arn:aws(-(cn|us-gov|eusc|iso(-[bef])?))?:iam::\w{12}:root)`"
+ Custom string pattern \$153 – "`^arn:aws(-(cn|us-gov|eusc|iso(-[bef])?))?:iam::[0-9]{12}:role/.+`"
+ Custom string pattern \$154 – "`[\s\S]*`"
+ Custom string pattern \$155 – "`([\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF]|[^\S\r\n"'= ;])*`"
+ Custom string pattern \$156 – "`^[A-Z\_]+$`"
+ Custom string pattern \$157 – "`^[A-Za-z0-9]+$`"
+ Custom string pattern \$158 – "`[*A-Za-z0-9_-]*`"
+ Custom string pattern \$159 – "`([\u0020-\u007E\r\s\n])*`"
+ Custom string pattern \$160 – "`[A-Za-z0-9_-]*`"
+ Custom string pattern \$161 – "`([\u0009\u000B\u000C\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF])*`"
+ Custom string pattern \$162 – "`([\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\s])*`"
+ Custom string pattern \$163 – "`([^\r\n])*`"

# Exceptions
<a name="aws-glue-api-exceptions"></a>

This section describes AWS Glue exceptions that you can use to find the source of problems and fix them. For more information on HTTP error codes and strings for exceptions related to machine learning, see [AWS Glue machine learning exceptions](exceptions-machine-learning.md).

## AccessDeniedException structure
<a name="aws-glue-api-exceptions-AccessDeniedException"></a>

Access to a resource was denied.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## AlreadyExistsException structure
<a name="aws-glue-api-exceptions-AlreadyExistsException"></a>

A resource to be created or added already exists.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## ConcurrentModificationException structure
<a name="aws-glue-api-exceptions-ConcurrentModificationException"></a>

Two processes are trying to modify a resource simultaneously.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## ConcurrentRunsExceededException structure
<a name="aws-glue-api-exceptions-ConcurrentRunsExceededException"></a>

Too many jobs are being run concurrently.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## CrawlerNotRunningException structure
<a name="aws-glue-api-exceptions-CrawlerNotRunningException"></a>

The specified crawler is not running.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## CrawlerRunningException structure
<a name="aws-glue-api-exceptions-CrawlerRunningException"></a>

The operation cannot be performed because the crawler is already running.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## CrawlerStoppingException structure
<a name="aws-glue-api-exceptions-CrawlerStoppingException"></a>

The specified crawler is stopping.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## EntityNotFoundException structure
<a name="aws-glue-api-exceptions-EntityNotFoundException"></a>

A specified entity does not exist

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.
+ `FromFederationSource` – Boolean.

  Indicates whether or not the exception relates to a federated source.

## FederationSourceException structure
<a name="aws-glue-api-exceptions-FederationSourceException"></a>

A federation source failed.

**Fields**
+ `FederationSourceErrorCode` – UTF-8 string (valid values: `AccessDeniedException` \$1 `EntityNotFoundException` \$1 `InvalidCredentialsException` \$1 `InvalidInputException` \$1 `InvalidResponseException` \$1 `OperationTimeoutException` \$1 `OperationNotSupportedException` \$1 `InternalServiceException` \$1 `PartialFailureException` \$1 `ThrottlingException`).

  The error code of the problem.
+ `Message` – UTF-8 string.

  The message describing the problem.

## FederationSourceRetryableException structure
<a name="aws-glue-api-exceptions-FederationSourceRetryableException"></a>

A federation source failed, but the operation may be retried.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## GlueEncryptionException structure
<a name="aws-glue-api-exceptions-GlueEncryptionException"></a>

An encryption operation failed.

**Fields**
+ `Message` – UTF-8 string.

  The message describing the problem.

## IdempotentParameterMismatchException structure
<a name="aws-glue-api-exceptions-IdempotentParameterMismatchException"></a>

The same unique identifier was associated with two different records.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## IllegalWorkflowStateException structure
<a name="aws-glue-api-exceptions-IllegalWorkflowStateException"></a>

The workflow is in an invalid state to perform a requested operation.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## InternalServiceException structure
<a name="aws-glue-api-exceptions-InternalServiceException"></a>

An internal service error occurred.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## InvalidExecutionEngineException structure
<a name="aws-glue-api-exceptions-InvalidExecutionEngineException"></a>

An unknown or invalid execution engine was specified.

**Fields**
+ `message` – UTF-8 string.

  A message describing the problem.

## InvalidInputException structure
<a name="aws-glue-api-exceptions-InvalidInputException"></a>

The input provided was not valid.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.
+ `FromFederationSource` – Boolean.

  Indicates whether or not the exception relates to a federated source.

## InvalidStateException structure
<a name="aws-glue-api-exceptions-InvalidStateException"></a>

An error that indicates your data is in an invalid state.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## InvalidTaskStatusTransitionException structure
<a name="aws-glue-api-exceptions-InvalidTaskStatusTransitionException"></a>

Proper transition from one task to the next failed.

**Fields**
+ `message` – UTF-8 string.

  A message describing the problem.

## JobDefinitionErrorException structure
<a name="aws-glue-api-exceptions-JobDefinitionErrorException"></a>

A job definition is not valid.

**Fields**
+ `message` – UTF-8 string.

  A message describing the problem.

## JobRunInTerminalStateException structure
<a name="aws-glue-api-exceptions-JobRunInTerminalStateException"></a>

The terminal state of a job run signals a failure.

**Fields**
+ `message` – UTF-8 string.

  A message describing the problem.

## JobRunInvalidStateTransitionException structure
<a name="aws-glue-api-exceptions-JobRunInvalidStateTransitionException"></a>

A job run encountered an invalid transition from source state to target state.

**Fields**
+ `jobRunId` – UTF-8 string, not less than 1 or more than 255 bytes long, matching the [Single-line string pattern](aws-glue-api-common.md#aws-glue-api-regex-oneLine).

  The ID of the job run in question.
+ `message` – UTF-8 string.

  A message describing the problem.
+ `sourceState` – UTF-8 string (valid values: `STARTING` \$1 `RUNNING` \$1 `STOPPING` \$1 `STOPPED` \$1 `SUCCEEDED` \$1 `FAILED` \$1 `TIMEOUT` \$1 `ERROR` \$1 `WAITING` \$1 `EXPIRED`).

  The source state.
+ `targetState` – UTF-8 string (valid values: `STARTING` \$1 `RUNNING` \$1 `STOPPING` \$1 `STOPPED` \$1 `SUCCEEDED` \$1 `FAILED` \$1 `TIMEOUT` \$1 `ERROR` \$1 `WAITING` \$1 `EXPIRED`).

  The target state.

## JobRunNotInTerminalStateException structure
<a name="aws-glue-api-exceptions-JobRunNotInTerminalStateException"></a>

A job run is not in a terminal state.

**Fields**
+ `message` – UTF-8 string.

  A message describing the problem.

## LateRunnerException structure
<a name="aws-glue-api-exceptions-LateRunnerException"></a>

A job runner is late.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## NoScheduleException structure
<a name="aws-glue-api-exceptions-NoScheduleException"></a>

There is no applicable schedule.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## OperationTimeoutException structure
<a name="aws-glue-api-exceptions-OperationTimeoutException"></a>

The operation timed out.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## ResourceNotReadyException structure
<a name="aws-glue-api-exceptions-ResourceNotReadyException"></a>

A resource was not ready for a transaction.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## ResourceNumberLimitExceededException structure
<a name="aws-glue-api-exceptions-ResourceNumberLimitExceededException"></a>

A resource numerical limit was exceeded.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## SchedulerNotRunningException structure
<a name="aws-glue-api-exceptions-SchedulerNotRunningException"></a>

The specified scheduler is not running.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## SchedulerRunningException structure
<a name="aws-glue-api-exceptions-SchedulerRunningException"></a>

The specified scheduler is already running.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## SchedulerTransitioningException structure
<a name="aws-glue-api-exceptions-SchedulerTransitioningException"></a>

The specified scheduler is transitioning.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## UnrecognizedRunnerException structure
<a name="aws-glue-api-exceptions-UnrecognizedRunnerException"></a>

The job runner was not recognized.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## ValidationException structure
<a name="aws-glue-api-exceptions-ValidationException"></a>

A value could not be validated.

**Fields**
+ `Message` – UTF-8 string.

  A message describing the problem.

## VersionMismatchException structure
<a name="aws-glue-api-exceptions-VersionMismatchException"></a>

There was a version conflict.

**Fields**
+ `message` – UTF-8 string.

  A message describing the problem.