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 AWS account and can use a maximum of 128 alphanumeric, underscore,
at sign, or hyphen characters.
Parameter type
:
Specifies the type of data catalog to update. Specify LAMBDA
for a federated catalog, GLUE
for AWS Glue Catalog, or
HIVE
for an external hive metastore.
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
HIVE
data catalog type, use the following syntax. Themetadata-function
parameter is required.The sdk-version
parameter is optional and defaults to the currently supported version.metadata-function=lambda_arn, sdk-version=version_number
-
For the
LAMBDA
data 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.
-
The
GLUE
type has no parameters.
Implementation
Future<void> updateDataCatalog({
required String name,
required DataCatalogType type,
String? description,
Map<String, String>? parameters,
}) async {
ArgumentError.checkNotNull(name, 'name');
_s.validateStringLength(
'name',
name,
1,
256,
isRequired: true,
);
ArgumentError.checkNotNull(type, 'type');
_s.validateStringLength(
'description',
description,
1,
1024,
);
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.toValue(),
if (description != null) 'Description': description,
if (parameters != null) 'Parameters': parameters,
},
);
}