updateDataSource method

Future<UpdateDataSourceResponse> updateDataSource({
  1. required DataSourceConfiguration dataSourceConfiguration,
  2. required String dataSourceId,
  3. required String knowledgeBaseId,
  4. required String name,
  5. DataDeletionPolicy? dataDeletionPolicy,
  6. String? description,
  7. ServerSideEncryptionConfiguration? serverSideEncryptionConfiguration,
  8. VectorIngestionConfiguration? vectorIngestionConfiguration,
})

Updates the configurations for a data source connector.

May throw AccessDeniedException. May throw ConflictException. May throw InternalServerException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw ValidationException.

Parameter dataSourceConfiguration : The connection configuration for the data source that you want to update.

Parameter dataSourceId : The unique identifier of the data source.

Parameter knowledgeBaseId : The unique identifier of the knowledge base for the data source.

Parameter name : Specifies a new name for the data source.

Parameter dataDeletionPolicy : The data deletion policy for the data source that you want to update.

Parameter description : Specifies a new description for the data source.

Parameter serverSideEncryptionConfiguration : Contains details about server-side encryption of the data source.

Parameter vectorIngestionConfiguration : Contains details about how to ingest the documents in the data source.

Implementation

Future<UpdateDataSourceResponse> updateDataSource({
  required DataSourceConfiguration dataSourceConfiguration,
  required String dataSourceId,
  required String knowledgeBaseId,
  required String name,
  DataDeletionPolicy? dataDeletionPolicy,
  String? description,
  ServerSideEncryptionConfiguration? serverSideEncryptionConfiguration,
  VectorIngestionConfiguration? vectorIngestionConfiguration,
}) async {
  final $payload = <String, dynamic>{
    'dataSourceConfiguration': dataSourceConfiguration,
    'name': name,
    if (dataDeletionPolicy != null)
      'dataDeletionPolicy': dataDeletionPolicy.value,
    if (description != null) 'description': description,
    if (serverSideEncryptionConfiguration != null)
      'serverSideEncryptionConfiguration': serverSideEncryptionConfiguration,
    if (vectorIngestionConfiguration != null)
      'vectorIngestionConfiguration': vectorIngestionConfiguration,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'PUT',
    requestUri:
        '/knowledgebases/${Uri.encodeComponent(knowledgeBaseId)}/datasources/${Uri.encodeComponent(dataSourceId)}',
    exceptionFnMap: _exceptionFns,
  );
  return UpdateDataSourceResponse.fromJson(response);
}