updateDataCatalog method
Updates the data catalog that has the specified name.
May throw InternalServerException.
May throw InvalidRequestException.
Parameter name :
The name of the data catalog to update. The catalog name must be unique
for the Amazon Web Services account and can use a maximum of 127
alphanumeric, underscore, at sign, or hyphen characters. The remainder of
the length constraint of 256 is reserved for use by Athena.
Parameter type :
Specifies the type of data catalog to update. Specify LAMBDA
for a federated catalog, HIVE for an external hive metastore,
or GLUE for an Glue Data Catalog.
Parameter description :
New or modified text that describes the data catalog.
Parameter parameters :
Specifies the Lambda function or functions to use for updating the data
catalog. This is a mapping whose values depend on the catalog type.
-
For the
HIVEdata catalog type, use the following syntax. Themetadata-functionparameter is required.The sdk-versionparameter is optional and defaults to the currently supported version.metadata-function=lambda_arn, sdk-version=version_number -
For the
LAMBDAdata catalog type, use one of the following sets of required parameters, but not both.-
If you have one Lambda function that processes metadata and another for
reading the actual data, use the following syntax. Both parameters are
required.
metadata-function=lambda_arn, record-function=lambda_arn -
If you have a composite Lambda function that processes both metadata and
data, use the following syntax to specify your Lambda function.
function=lambda_arn
-
If you have one Lambda function that processes metadata and another for
reading the actual data, use the following syntax. Both parameters are
required.
Implementation
Future<void> updateDataCatalog({
required String name,
required DataCatalogType type,
String? description,
Map<String, String>? parameters,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AmazonAthena.UpdateDataCatalog'
};
await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'Name': name,
'Type': type.value,
if (description != null) 'Description': description,
if (parameters != null) 'Parameters': parameters,
},
);
}