createIntegrationTableProperties method

Future<void> createIntegrationTableProperties({
  1. required String resourceArn,
  2. required String tableName,
  3. SourceTableConfig? sourceTableConfig,
  4. TargetTableConfig? targetTableConfig,
})

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 Glue connection ARN as ResourceArn with SourceTableConfig, and the Glue database ARN as ResourceArn with TargetTableConfig respectively.

May throw AccessDeniedException. May throw EntityNotFoundException. May throw InternalServerException. May throw InternalServiceException. May throw InvalidInputException. May throw ResourceNotFoundException. May throw ValidationException.

Parameter resourceArn : 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 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.

Parameter tableName : The name of the table to be replicated.

Parameter sourceTableConfig : A structure for the source table configuration. See the SourceTableConfig structure to see list of supported source properties.

Parameter targetTableConfig : A structure for the target table configuration.

Implementation

Future<void> createIntegrationTableProperties({
  required String resourceArn,
  required String tableName,
  SourceTableConfig? sourceTableConfig,
  TargetTableConfig? targetTableConfig,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AWSGlue.CreateIntegrationTableProperties'
  };
  await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'ResourceArn': resourceArn,
      'TableName': tableName,
      if (sourceTableConfig != null) 'SourceTableConfig': sourceTableConfig,
      if (targetTableConfig != null) 'TargetTableConfig': targetTableConfig,
    },
  );
}