createDataSource method

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

Connects a knowledge base to a data source. You specify the configuration for the specific data source service in the dataSourceConfiguration field.

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

Parameter dataSourceConfiguration : The connection configuration for the data source.

Parameter knowledgeBaseId : The unique identifier of the knowledge base to which to add the data source.

Parameter name : The name of the data source.

Parameter clientToken : A unique, case-sensitive identifier to ensure that the API request completes no more than one time. If this token matches a previous request, Amazon Bedrock ignores the request, but does not return an error. For more information, see Ensuring idempotency.

Parameter dataDeletionPolicy : The data deletion policy for the data source.

You can set the data deletion policy to:

  • DELETE: Deletes all data from your data source that’s converted into vector embeddings upon deletion of a knowledge base or data source resource. Note that the vector store itself is not deleted, only the data. This flag is ignored if an Amazon Web Services account is deleted.
  • RETAIN: Retains all data from your data source that’s converted into vector embeddings upon deletion of a knowledge base or data source resource. Note that the vector store itself is not deleted if you delete a knowledge base or data source resource.

Parameter description : A description of the data source.

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

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

Implementation

Future<CreateDataSourceResponse> createDataSource({
  required DataSourceConfiguration dataSourceConfiguration,
  required String knowledgeBaseId,
  required String name,
  String? clientToken,
  DataDeletionPolicy? dataDeletionPolicy,
  String? description,
  ServerSideEncryptionConfiguration? serverSideEncryptionConfiguration,
  VectorIngestionConfiguration? vectorIngestionConfiguration,
}) async {
  final $payload = <String, dynamic>{
    'dataSourceConfiguration': dataSourceConfiguration,
    'name': name,
    'clientToken': clientToken ?? _s.generateIdempotencyToken(),
    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/',
    exceptionFnMap: _exceptionFns,
  );
  return CreateDataSourceResponse.fromJson(response);
}