Skip to content

add_direct_query_data_source async

add_direct_query_data_source(
    data_source_name: DirectQueryDataSourceName,
    data_source_type: DirectQueryDataSourceType,
    *,
    config_overrides: Optional[AsyncOpenSearchClientConfig] = None,
    description: Optional[DirectQueryDataSourceDescription] = None,
    open_search_arns: Optional[DirectQueryOpenSearchARNList] = None,
    data_source_access_policy: Optional[PolicyDocument] = None,
    tag_list: Optional[TagList] = None,
) -> AddDirectQueryDataSourceResponse

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

Parameters:

  • data_source_name (DirectQueryDataSourceName) –

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

  • data_source_type (DirectQueryDataSourceType) –

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

  • description (Optional[DirectQueryDataSourceDescription], default: None ) –

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

  • open_search_arns (Optional[DirectQueryOpenSearchARNList], default: None ) –

    An optional list of Amazon Resource Names (ARNs) for the OpenSearch collections that are associated with the direct query data source. This field is required for CloudWatchLogs and SecurityLake datasource types.

  • data_source_access_policy (Optional[PolicyDocument], default: None ) –

    An optional IAM access policy document that defines the permissions for accessing the data source. The policy document must be in valid JSON format and follow IAM policy syntax.

Raises:

Source code in docs_src/capo_opensearch/_services/async_open_search.py
async def add_direct_query_data_source(
    self,
    data_source_name: "capo_opensearch.types.direct_query_data_source_name.DirectQueryDataSourceName",
    data_source_type: "capo_opensearch.types.direct_query_data_source_type.DirectQueryDataSourceType",
    *,
    config_overrides: Optional[AsyncOpenSearchClientConfig] = None,
    description: Optional[
        "capo_opensearch.types.direct_query_data_source_description.DirectQueryDataSourceDescription"
    ] = None,
    open_search_arns: Optional[
        "capo_opensearch.types.direct_query_open_search_arn_list.DirectQueryOpenSearchARNList"
    ] = None,
    data_source_access_policy: Optional[
        "capo_opensearch.types.policy_document.PolicyDocument"
    ] = None,
    tag_list: Optional["capo_opensearch.types.tag_list.TagList"] = None,
) -> "capo_opensearch.types.add_direct_query_data_source_response.AddDirectQueryDataSourceResponse":
    """<p> Adds a new data source in Amazon OpenSearch Service so that you can perform direct queries on external data. </p>

    Args:
        data_source_name: <p> A unique, user-defined label to identify the data source within your OpenSearch Service environment. </p>
        data_source_type: <p> The supported Amazon Web Services service that you want to use as the source for direct queries in OpenSearch Service. </p>
        description: <p> An optional text field for providing additional context and details about the data source. </p>
        open_search_arns: <p> An optional list of Amazon Resource Names (ARNs) for the OpenSearch collections that are associated with the direct query data source. This field is required for CloudWatchLogs and SecurityLake datasource types. </p>
        data_source_access_policy: <p> An optional IAM access policy document that defines the permissions for accessing the data source. The policy document must be in valid JSON format and follow IAM policy syntax.</p>

    Raises:
        capo_opensearch.errors.base_exception.BaseException: <p>An error occurred while processing the request.</p>
        capo_opensearch.errors.disabled_operation_exception.DisabledOperationException: <p>An error occured because the client wanted to access an unsupported operation.</p>
        capo_opensearch.errors.internal_exception.InternalException: <p>Request processing failed because of an unknown error, exception, or internal failure.</p>
        capo_opensearch.errors.limit_exceeded_exception.LimitExceededException: <p>An exception for trying to create more than the allowed number of resources or sub-resources.</p>
        capo_opensearch.errors.resource_not_found_exception.ResourceNotFoundException: <p>An exception for accessing or deleting a resource that doesn't exist.</p>
        capo_opensearch.errors.validation_exception.ValidationException: <p>An exception for accessing or deleting a resource that doesn't exist.</p>
        capo_opensearch.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_opensearch.types.add_direct_query_data_source_request.AddDirectQueryDataSourceRequest]",
    ) -> AsyncOperationResponse[
        "capo_opensearch.types.add_direct_query_data_source_response.AddDirectQueryDataSourceResponse"
    ]:
        import capo_opensearch._operations.amazon_open_search_service.add_direct_query_data_source

        (
            output,
            http_response,
        ) = await capo_opensearch._operations.amazon_open_search_service.add_direct_query_data_source.async_add_direct_query_data_source(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("AddDirectQueryDataSource")
    )
    input_: capo_opensearch.types.add_direct_query_data_source_request.AddDirectQueryDataSourceRequest = {
        "data_source_name": data_source_name,
        "data_source_type": data_source_type,
    }
    if description is not None:
        input_["description"] = description
    if open_search_arns is not None:
        input_["open_search_arns"] = open_search_arns
    if data_source_access_policy is not None:
        input_["data_source_access_policy"] = data_source_access_policy
    if tag_list is not None:
        input_["tag_list"] = tag_list

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output