updateChangeset method
Updates a FinSpace Changeset.
May throw AccessDeniedException.
May throw ConflictException.
May throw InternalServerException.
May throw ResourceNotFoundException.
May throw ThrottlingException.
May throw ValidationException.
Parameter changesetId :
The unique identifier for the Changeset to update.
Parameter datasetId :
The unique identifier for the FinSpace Dataset in which the Changeset is
created.
Parameter formatParams :
Options that define the structure of the source file(s) including the
format type (formatType), header row
(withHeader), data separation character
(separator) and the type of compression
(compression).
formatType is a required attribute and can have the following
values:
-
PARQUET– Parquet source file format. -
CSV– CSV source file format. -
JSON– JSON source file format. -
XML– XML source file format.
formatParams:
"formatParams": { "formatType": "CSV", "withHeader": "true",
"separator": ",", "compression":"None" }
Note that if you only provide formatType as CSV,
the rest of the attributes will automatically default to CSV values as
following:
{ "withHeader": "true", "separator": "," }
For more information about supported file formats, see Supported Data Types and File Formats in the FinSpace User Guide.
Parameter sourceParams :
Options that define the location of the data being ingested
(s3SourcePath) and the source of the changeset
(sourceType).
Both s3SourcePath and sourceType are required
attributes.
Here is an example of how you could specify the sourceParams:
"sourceParams": { "s3SourcePath":
"s3://finspace-landing-us-east-2-bk7gcfvitndqa6ebnvys4d/scratch/wr5hh8pwkpqqkxa4sxrmcw/ingestion/equity.csv",
"sourceType": "S3" }
The S3 path that you specify must allow the FinSpace role access. To do that, you first need to configure the IAM policy on S3 bucket. For more information, see Loading data from an Amazon S3 Bucket using the FinSpace APIsection.
Parameter clientToken :
A token that ensures idempotency. This token expires in 10 minutes.
Implementation
Future<UpdateChangesetResponse> updateChangeset({
required String changesetId,
required String datasetId,
required Map<String, String> formatParams,
required Map<String, String> sourceParams,
String? clientToken,
}) async {
final $payload = <String, dynamic>{
'formatParams': formatParams,
'sourceParams': sourceParams,
'clientToken': clientToken ?? _s.generateIdempotencyToken(),
};
final response = await _protocol.send(
payload: $payload,
method: 'PUT',
requestUri:
'/datasets/${Uri.encodeComponent(datasetId)}/changesetsv2/${Uri.encodeComponent(changesetId)}',
exceptionFnMap: _exceptionFns,
);
return UpdateChangesetResponse.fromJson(response);
}