QBusiness / Client / create_data_source

create_data_source#

QBusiness.Client.create_data_source(**kwargs)#

Creates a data source connector for an Amazon Q Business application.

CreateDataSource is a synchronous operation. The operation returns 200 if the data source was successfully created. Otherwise, an exception is raised.

See also: AWS API Documentation

Request Syntax

response = client.create_data_source(
    applicationId='string',
    indexId='string',
    displayName='string',
    configuration={...}|[...]|123|123.4|'string'|True|None,
    vpcConfiguration={
        'subnetIds': [
            'string',
        ],
        'securityGroupIds': [
            'string',
        ]
    },
    description='string',
    tags=[
        {
            'key': 'string',
            'value': 'string'
        },
    ],
    syncSchedule='string',
    roleArn='string',
    clientToken='string',
    documentEnrichmentConfiguration={
        'inlineConfigurations': [
            {
                'condition': {
                    'key': 'string',
                    'operator': 'GREATER_THAN'|'GREATER_THAN_OR_EQUALS'|'LESS_THAN'|'LESS_THAN_OR_EQUALS'|'EQUALS'|'NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'|'EXISTS'|'NOT_EXISTS'|'BEGINS_WITH',
                    'value': {
                        'stringValue': 'string',
                        'stringListValue': [
                            'string',
                        ],
                        'longValue': 123,
                        'dateValue': datetime(2015, 1, 1)
                    }
                },
                'target': {
                    'key': 'string',
                    'value': {
                        'stringValue': 'string',
                        'stringListValue': [
                            'string',
                        ],
                        'longValue': 123,
                        'dateValue': datetime(2015, 1, 1)
                    },
                    'attributeValueOperator': 'DELETE'
                },
                'documentContentOperator': 'DELETE'
            },
        ],
        'preExtractionHookConfiguration': {
            'invocationCondition': {
                'key': 'string',
                'operator': 'GREATER_THAN'|'GREATER_THAN_OR_EQUALS'|'LESS_THAN'|'LESS_THAN_OR_EQUALS'|'EQUALS'|'NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'|'EXISTS'|'NOT_EXISTS'|'BEGINS_WITH',
                'value': {
                    'stringValue': 'string',
                    'stringListValue': [
                        'string',
                    ],
                    'longValue': 123,
                    'dateValue': datetime(2015, 1, 1)
                }
            },
            'lambdaArn': 'string',
            's3BucketName': 'string',
            'roleArn': 'string'
        },
        'postExtractionHookConfiguration': {
            'invocationCondition': {
                'key': 'string',
                'operator': 'GREATER_THAN'|'GREATER_THAN_OR_EQUALS'|'LESS_THAN'|'LESS_THAN_OR_EQUALS'|'EQUALS'|'NOT_EQUALS'|'CONTAINS'|'NOT_CONTAINS'|'EXISTS'|'NOT_EXISTS'|'BEGINS_WITH',
                'value': {
                    'stringValue': 'string',
                    'stringListValue': [
                        'string',
                    ],
                    'longValue': 123,
                    'dateValue': datetime(2015, 1, 1)
                }
            },
            'lambdaArn': 'string',
            's3BucketName': 'string',
            'roleArn': 'string'
        }
    }
)
Parameters:
  • applicationId (string) –

    [REQUIRED]

    The identifier of the Amazon Q Business application the data source will be attached to.

  • indexId (string) –

    [REQUIRED]

    The identifier of the index that you want to use with the data source connector.

  • displayName (string) –

    [REQUIRED]

    A name for the data source connector.

  • configuration (document) –

    [REQUIRED]

    Configuration information to connect your data source repository to Amazon Q Business. Use this parameter to provide a JSON schema with configuration information specific to your data source connector.

    Each data source has a JSON schema provided by Amazon Q Business that you must use. For example, the Amazon S3 and Web Crawler connectors require the following JSON schemas:

    You can find configuration templates for your specific data source using the following steps:

    • Navigate to the Supported connectors page in the Amazon Q Business User Guide, and select the data source of your choice.

    • Then, from your specific data source connector page, select Using the API. You will find the JSON schema for your data source, including parameter descriptions, in this section.

  • vpcConfiguration (dict) –

    Configuration information for an Amazon VPC (Virtual Private Cloud) to connect to your data source. For more information, see Using Amazon VPC with Amazon Q Business connectors.

    • subnetIds (list) – [REQUIRED]

      A list of identifiers for subnets within your Amazon VPC. The subnets should be able to connect to each other in the VPC, and they should have outgoing access to the Internet through a NAT device.

      • (string) –

    • securityGroupIds (list) – [REQUIRED]

      A list of identifiers of security groups within your Amazon VPC. The security groups should enable Amazon Q Business to connect to the data source.

      • (string) –

  • description (string) – A description for the data source connector.

  • tags (list) –

    A list of key-value pairs that identify or categorize the data source connector. You can also use tags to help control access to the data source connector. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

    • (dict) –

      A list of key/value pairs that identify an index, FAQ, or data source. Tag keys and values can consist of Unicode letters, digits, white space, and any of the following symbols: _ . : / = + - @.

      • key (string) – [REQUIRED]

        The key for the tag. Keys are not case sensitive and must be unique for the Amazon Q Business application or data source.

      • value (string) – [REQUIRED]

        The value associated with the tag. The value may be an empty string but it can’t be null.

  • syncSchedule (string) –

    Sets the frequency for Amazon Q Business to check the documents in your data source repository and update your index. If you don’t set a schedule, Amazon Q Business won’t periodically update the index.

    Specify a cron- format schedule string or an empty string to indicate that the index is updated on demand. You can’t specify the Schedule parameter when the Type parameter is set to CUSTOM. If you do, you receive a ValidationException exception.

  • roleArn (string) – The Amazon Resource Name (ARN) of an IAM role with permission to access the data source and required resources.

  • clientToken (string) –

    A token you provide to identify a request to create a data source connector. Multiple calls to the CreateDataSource API with the same client token will create only one data source connector.

    This field is autopopulated if not provided.

  • documentEnrichmentConfiguration (dict) –

    Provides the configuration information for altering document metadata and content during the document ingestion process.

    For more information, see Custom document enrichment.

    • inlineConfigurations (list) –

      Configuration information to alter document attributes or metadata fields and content when ingesting documents into Amazon Q Business.

      • (dict) –

        Provides the configuration information for applying basic logic to alter document metadata and content when ingesting documents into Amazon Q Business.

        To apply advanced logic, to go beyond what you can do with basic logic, see HookConfiguration.

        For more information, see Custom document enrichment.

        • condition (dict) –

          The condition used for the target document attribute or metadata field when ingesting documents into Amazon Q Business. You use this with DocumentAttributeTarget to apply the condition.

          For example, you can create the ‘Department’ target field and have it prefill department names associated with the documents based on information in the ‘Source_URI’ field. Set the condition that if the ‘Source_URI’ field contains ‘financial’ in its URI value, then prefill the target field ‘Department’ with the target value ‘Finance’ for the document.

          Amazon Q Business can’t create a target field if it has not already been created as an index field. After you create your index field, you can create a document metadata field using DocumentAttributeTarget. Amazon Q Business then will map your newly created metadata field to your index field.

          • key (string) – [REQUIRED]

            The identifier of the document attribute used for the condition.

            For example, ‘Source_URI’ could be an identifier for the attribute or metadata field that contains source URIs associated with the documents.

            Amazon Q Business currently doesn’t support _document_body as an attribute key used for the condition.

          • operator (string) – [REQUIRED]

            The identifier of the document attribute used for the condition.

            For example, ‘Source_URI’ could be an identifier for the attribute or metadata field that contains source URIs associated with the documents.

            Amazon Q Business currently does not support _document_body as an attribute key used for the condition.

          • value (dict) –

            The value of a document attribute. You can only provide one value for a document attribute.

            Note

            This is a Tagged Union structure. Only one of the following top level keys can be set: stringValue, stringListValue, longValue, dateValue.

            • stringValue (string) –

              A string.

            • stringListValue (list) –

              A list of strings.

              • (string) –

            • longValue (integer) –

              A long integer value.

            • dateValue (datetime) –

              A date expressed as an ISO 8601 string.

              It’s important for the time zone to be included in the ISO 8601 date-time format. For example, 2012-03-25T12:30:10+01:00 is the ISO 8601 date-time format for March 25th 2012 at 12:30PM (plus 10 seconds) in Central European Time.

        • target (dict) –

          The target document attribute or metadata field you want to alter when ingesting documents into Amazon Q Business.

          For example, you can delete all customer identification numbers associated with the documents, stored in the document metadata field called ‘Customer_ID’ by setting the target key as ‘Customer_ID’ and the deletion flag to TRUE. This removes all customer ID values in the field ‘Customer_ID’. This would scrub personally identifiable information from each document’s metadata.

          Amazon Q Business can’t create a target field if it has not already been created as an index field. After you create your index field, you can create a document metadata field using DocumentAttributeTarget. Amazon Q Business will then map your newly created document attribute to your index field.

          You can also use this with DocumentAttributeCondition.

          • key (string) – [REQUIRED]

            The identifier of the target document attribute or metadata field. For example, ‘Department’ could be an identifier for the target attribute or metadata field that includes the department names associated with the documents.

          • value (dict) –

            The value of a document attribute. You can only provide one value for a document attribute.

            Note

            This is a Tagged Union structure. Only one of the following top level keys can be set: stringValue, stringListValue, longValue, dateValue.

            • stringValue (string) –

              A string.

            • stringListValue (list) –

              A list of strings.

              • (string) –

            • longValue (integer) –

              A long integer value.

            • dateValue (datetime) –

              A date expressed as an ISO 8601 string.

              It’s important for the time zone to be included in the ISO 8601 date-time format. For example, 2012-03-25T12:30:10+01:00 is the ISO 8601 date-time format for March 25th 2012 at 12:30PM (plus 10 seconds) in Central European Time.

          • attributeValueOperator (string) –

            TRUE to delete the existing target value for your specified target attribute key. You cannot create a target value and set this to TRUE.

        • documentContentOperator (string) –

          TRUE to delete content if the condition used for the target attribute is met.

    • preExtractionHookConfiguration (dict) –

      Provides the configuration information for invoking a Lambda function in Lambda to alter document metadata and content when ingesting documents into Amazon Q Business.

      You can configure your Lambda function using the PreExtractionHookConfiguration parameter if you want to apply advanced alterations on the original or raw documents.

      If you want to apply advanced alterations on the Amazon Q Business structured documents, you must configure your Lambda function using PostExtractionHookConfiguration.

      You can only invoke one Lambda function. However, this function can invoke other functions it requires.

      For more information, see Custom document enrichment.

      • invocationCondition (dict) –

        The condition used for when a Lambda function should be invoked.

        For example, you can specify a condition that if there are empty date-time values, then Amazon Q Business should invoke a function that inserts the current date-time.

        • key (string) – [REQUIRED]

          The identifier of the document attribute used for the condition.

          For example, ‘Source_URI’ could be an identifier for the attribute or metadata field that contains source URIs associated with the documents.

          Amazon Q Business currently doesn’t support _document_body as an attribute key used for the condition.

        • operator (string) – [REQUIRED]

          The identifier of the document attribute used for the condition.

          For example, ‘Source_URI’ could be an identifier for the attribute or metadata field that contains source URIs associated with the documents.

          Amazon Q Business currently does not support _document_body as an attribute key used for the condition.

        • value (dict) –

          The value of a document attribute. You can only provide one value for a document attribute.

          Note

          This is a Tagged Union structure. Only one of the following top level keys can be set: stringValue, stringListValue, longValue, dateValue.

          • stringValue (string) –

            A string.

          • stringListValue (list) –

            A list of strings.

            • (string) –

          • longValue (integer) –

            A long integer value.

          • dateValue (datetime) –

            A date expressed as an ISO 8601 string.

            It’s important for the time zone to be included in the ISO 8601 date-time format. For example, 2012-03-25T12:30:10+01:00 is the ISO 8601 date-time format for March 25th 2012 at 12:30PM (plus 10 seconds) in Central European Time.

      • lambdaArn (string) –

        The Amazon Resource Name (ARN) of a role with permission to run a Lambda function during ingestion. For more information, see IAM roles for Custom Document Enrichment (CDE).

      • s3BucketName (string) –

        Stores the original, raw documents or the structured, parsed documents before and after altering them. For more information, see Data contracts for Lambda functions.

      • roleArn (string) –

        The Amazon Resource Name (ARN) of a role with permission to run PreExtractionHookConfiguration and PostExtractionHookConfiguration for altering document metadata and content during the document ingestion process.

    • postExtractionHookConfiguration (dict) –

      Provides the configuration information for invoking a Lambda function in Lambda to alter document metadata and content when ingesting documents into Amazon Q Business.

      You can configure your Lambda function using the PreExtractionHookConfiguration parameter if you want to apply advanced alterations on the original or raw documents.

      If you want to apply advanced alterations on the Amazon Q Business structured documents, you must configure your Lambda function using PostExtractionHookConfiguration.

      You can only invoke one Lambda function. However, this function can invoke other functions it requires.

      For more information, see Custom document enrichment.

      • invocationCondition (dict) –

        The condition used for when a Lambda function should be invoked.

        For example, you can specify a condition that if there are empty date-time values, then Amazon Q Business should invoke a function that inserts the current date-time.

        • key (string) – [REQUIRED]

          The identifier of the document attribute used for the condition.

          For example, ‘Source_URI’ could be an identifier for the attribute or metadata field that contains source URIs associated with the documents.

          Amazon Q Business currently doesn’t support _document_body as an attribute key used for the condition.

        • operator (string) – [REQUIRED]

          The identifier of the document attribute used for the condition.

          For example, ‘Source_URI’ could be an identifier for the attribute or metadata field that contains source URIs associated with the documents.

          Amazon Q Business currently does not support _document_body as an attribute key used for the condition.

        • value (dict) –

          The value of a document attribute. You can only provide one value for a document attribute.

          Note

          This is a Tagged Union structure. Only one of the following top level keys can be set: stringValue, stringListValue, longValue, dateValue.

          • stringValue (string) –

            A string.

          • stringListValue (list) –

            A list of strings.

            • (string) –

          • longValue (integer) –

            A long integer value.

          • dateValue (datetime) –

            A date expressed as an ISO 8601 string.

            It’s important for the time zone to be included in the ISO 8601 date-time format. For example, 2012-03-25T12:30:10+01:00 is the ISO 8601 date-time format for March 25th 2012 at 12:30PM (plus 10 seconds) in Central European Time.

      • lambdaArn (string) –

        The Amazon Resource Name (ARN) of a role with permission to run a Lambda function during ingestion. For more information, see IAM roles for Custom Document Enrichment (CDE).

      • s3BucketName (string) –

        Stores the original, raw documents or the structured, parsed documents before and after altering them. For more information, see Data contracts for Lambda functions.

      • roleArn (string) –

        The Amazon Resource Name (ARN) of a role with permission to run PreExtractionHookConfiguration and PostExtractionHookConfiguration for altering document metadata and content during the document ingestion process.

Return type:

dict

Returns:

Response Syntax

{
    'dataSourceId': 'string',
    'dataSourceArn': 'string'
}

Response Structure

  • (dict) –

    • dataSourceId (string) –

      The identifier of the data source connector.

    • dataSourceArn (string) –

      The Amazon Resource Name (ARN) of a data source in an Amazon Q Business application.

Exceptions

  • QBusiness.Client.exceptions.ResourceNotFoundException

  • QBusiness.Client.exceptions.InternalServerException

  • QBusiness.Client.exceptions.ConflictException

  • QBusiness.Client.exceptions.ThrottlingException

  • QBusiness.Client.exceptions.ValidationException

  • QBusiness.Client.exceptions.AccessDeniedException

  • QBusiness.Client.exceptions.ServiceQuotaExceededException