:doc:`OpenSearchService <../../opensearch>` / Client / add_direct_query_data_source

****************************
add_direct_query_data_source
****************************



.. py:method:: OpenSearchService.Client.add_direct_query_data_source(**kwargs)

  

  Adds a new data source in Amazon OpenSearch Service so that you can perform direct queries on external data.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/opensearch-2021-01-01/AddDirectQueryDataSource>`_  


  **Request Syntax**
  ::

    response = client.add_direct_query_data_source(
        DataSourceName='string',
        DataSourceType={
            'CloudWatchLog': {
                'RoleArn': 'string'
            },
            'SecurityLake': {
                'RoleArn': 'string'
            }
        },
        Description='string',
        OpenSearchArns=[
            'string',
        ],
        TagList=[
            {
                'Key': 'string',
                'Value': 'string'
            },
        ]
    )
    
  :type DataSourceName: string
  :param DataSourceName: **[REQUIRED]** 

    A unique, user-defined label to identify the data source within your OpenSearch Service environment.

    

  
  :type DataSourceType: dict
  :param DataSourceType: **[REQUIRED]** 

    The supported Amazon Web Services service that you want to use as the source for direct queries in OpenSearch Service.

    .. note::    This is a Tagged Union structure. Only one of the     following top level keys can be set: ``CloudWatchLog``, ``SecurityLake``. 

  
    - **CloudWatchLog** *(dict) --* 

      Specifies CloudWatch Logs as a type of data source for direct queries.

      

    
      - **RoleArn** *(string) --* **[REQUIRED]** 

        The unique identifier of the IAM role that grants OpenSearch Service permission to access the specified data source.

        

      
    
    - **SecurityLake** *(dict) --* 

      Specifies Security Lake as a type of data source for direct queries.

      

    
      - **RoleArn** *(string) --* **[REQUIRED]** 

        The unique identifier of the IAM role that grants OpenSearch Service permission to access the specified data source.

        

      
    
  
  :type Description: string
  :param Description: 

    An optional text field for providing additional context and details about the data source.

    

  
  :type OpenSearchArns: list
  :param OpenSearchArns: **[REQUIRED]** 

    A list of Amazon Resource Names (ARNs) for the OpenSearch collections that are associated with the direct query data source.

    

  
    - *(string) --* 

      The Amazon Resource Name (ARN) of the domain. See `Identifiers for IAM Entities <https://docs.aws.amazon.com/IAM/latest/UserGuide/index.html>`__ in *Using Amazon Web Services Identity and Access Management* for more information.

      

    

  :type TagList: list
  :param TagList: 

    A list of tags attached to a domain.

    

  
    - *(dict) --* 

      A tag (key-value pair) for an Amazon OpenSearch Service resource.

      

    
      - **Key** *(string) --* **[REQUIRED]** 

        The tag key. Tag keys must be unique for the domain to which they are attached.

        

      
      - **Value** *(string) --* **[REQUIRED]** 

        The value assigned to the corresponding tag key. Tag values can be null and don't have to be unique in a tag set. For example, you can have a key value pair in a tag set of ``project : Trinity`` and ``cost-center : Trinity``

        

      
    

  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'DataSourceArn': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **DataSourceArn** *(string) --* 

        The unique, system-generated identifier that represents the data source.

        
  
  **Exceptions**
  
  *   :py:class:`OpenSearchService.Client.exceptions.BaseException`

  
  *   :py:class:`OpenSearchService.Client.exceptions.InternalException`

  
  *   :py:class:`OpenSearchService.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`OpenSearchService.Client.exceptions.ValidationException`

  
  *   :py:class:`OpenSearchService.Client.exceptions.DisabledOperationException`

  
  *   :py:class:`OpenSearchService.Client.exceptions.LimitExceededException`

  