Skip to content

execute_open_cypher_explain_query

execute_open_cypher_explain_query(
    open_cypher_query: str,
    explain_mode: OpenCypherExplainMode,
    *,
    config_overrides: Optional[neptunedataClientConfig] = None,
    parameters: Optional[str] = None,
) -> ExecuteOpenCypherExplainQueryOutput

Executes an openCypher explain request. See The openCypher explain feature for more information.

When invoking this operation in a Neptune cluster that has IAM authentication enabled, the IAM user or role making the request must have a policy attached that allows the neptune-db:ReadDataViaQuery IAM action in that cluster.

Note that the neptune-db:QueryLanguage:OpenCypher IAM condition key can be used in the policy document to restrict the use of openCypher queries (see Condition keys available in Neptune IAM data-access policy statements).

Parameters:

  • open_cypher_query (str) –

    The openCypher query string.

  • parameters (Optional[str], default: None ) –

    The openCypher query parameters.

  • explain_mode (OpenCypherExplainMode) –

    The openCypher explain mode. Can be one of: static, dynamic, or details.

Raises:

Source code in docs_src/capo_neptunedata/_services/neptunedata.py
def execute_open_cypher_explain_query(
    self,
    open_cypher_query: str,
    explain_mode: "capo_neptunedata.types.open_cypher_explain_mode.OpenCypherExplainMode",
    *,
    config_overrides: Optional[neptunedataClientConfig] = None,
    parameters: Optional[str] = None,
) -> "capo_neptunedata.types.execute_open_cypher_explain_query_output.ExecuteOpenCypherExplainQueryOutput":
    """<p>Executes an openCypher <code>explain</code> request. See <a href="https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-opencypher-explain.html">The openCypher explain feature</a> for more information.</p> <p>When invoking this operation in a Neptune cluster that has IAM authentication enabled, the IAM user or role making the request must have a policy attached that allows the <a href="https://docs.aws.amazon.com/neptune/latest/userguide/iam-dp-actions.html#readdataviaquery">neptune-db:ReadDataViaQuery</a> IAM action in that cluster.</p> <p>Note that the <a href="https://docs.aws.amazon.com/neptune/latest/userguide/iam-data-condition-keys.html#iam-neptune-condition-keys">neptune-db:QueryLanguage:OpenCypher</a> IAM condition key can be used in the policy document to restrict the use of openCypher queries (see <a href="https://docs.aws.amazon.com/neptune/latest/userguide/iam-data-condition-keys.html">Condition keys available in Neptune IAM data-access policy statements</a>).</p>

    Args:
        open_cypher_query: <p>The openCypher query string.</p>
        parameters: <p>The openCypher query parameters.</p>
        explain_mode: <p>The openCypher <code>explain</code> mode. Can be one of: <code>static</code>, <code>dynamic</code>, or <code>details</code>.</p>

    Raises:
        capo_neptunedata.errors.bad_request_exception.BadRequestException: <p>Raised when a request is submitted that cannot be processed.</p>
        capo_neptunedata.errors.cancelled_by_user_exception.CancelledByUserException: <p>Raised when a user cancelled a request.</p>
        capo_neptunedata.errors.client_timeout_exception.ClientTimeoutException: <p>Raised when a request timed out in the client.</p>
        capo_neptunedata.errors.concurrent_modification_exception.ConcurrentModificationException: <p>Raised when a request attempts to modify data that is concurrently being modified by another process.</p>
        capo_neptunedata.errors.constraint_violation_exception.ConstraintViolationException: <p>Raised when a value in a request field did not satisfy required constraints.</p>
        capo_neptunedata.errors.failure_by_query_exception.FailureByQueryException: <p>Raised when a request fails.</p>
        capo_neptunedata.errors.illegal_argument_exception.IllegalArgumentException: <p>Raised when an argument in a request is not supported.</p>
        capo_neptunedata.errors.invalid_argument_exception.InvalidArgumentException: <p>Raised when an argument in a request has an invalid value.</p>
        capo_neptunedata.errors.invalid_numeric_data_exception.InvalidNumericDataException: <p>Raised when invalid numerical data is encountered when servicing a request.</p>
        capo_neptunedata.errors.invalid_parameter_exception.InvalidParameterException: <p>Raised when a parameter value is not valid.</p>
        capo_neptunedata.errors.malformed_query_exception.MalformedQueryException: <p>Raised when a query is submitted that is syntactically incorrect or does not pass additional validation.</p>
        capo_neptunedata.errors.memory_limit_exceeded_exception.MemoryLimitExceededException: <p>Raised when a request fails because of insufficient memory resources. The request can be retried.</p>
        capo_neptunedata.errors.missing_parameter_exception.MissingParameterException: <p>Raised when a required parameter is missing.</p>
        capo_neptunedata.errors.parsing_exception.ParsingException: <p>Raised when a parsing issue is encountered.</p>
        capo_neptunedata.errors.preconditions_failed_exception.PreconditionsFailedException: <p>Raised when a precondition for processing a request is not satisfied.</p>
        capo_neptunedata.errors.query_limit_exceeded_exception.QueryLimitExceededException: <p>Raised when the number of active queries exceeds what the server can process. The query in question can be retried when the system is less busy.</p>
        capo_neptunedata.errors.query_limit_exception.QueryLimitException: <p>Raised when the size of a query exceeds the system limit.</p>
        capo_neptunedata.errors.query_too_large_exception.QueryTooLargeException: <p>Raised when the body of a query is too large.</p>
        capo_neptunedata.errors.time_limit_exceeded_exception.TimeLimitExceededException: <p>Raised when the an operation exceeds the time limit allowed for it.</p>
        capo_neptunedata.errors.too_many_requests_exception.TooManyRequestsException: <p>Raised when the number of requests being processed exceeds the limit.</p>
        capo_neptunedata.errors.unsupported_operation_exception.UnsupportedOperationException: <p>Raised when a request attempts to initiate an operation that is not supported.</p>
        capo_neptunedata.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_neptunedata.types.execute_open_cypher_explain_query_input.ExecuteOpenCypherExplainQueryInput]",
    ) -> OperationResponse[
        "capo_neptunedata.types.execute_open_cypher_explain_query_output.ExecuteOpenCypherExplainQueryOutput"
    ]:
        import capo_neptunedata._operations.amazon_neptune_dataplane.execute_open_cypher_explain_query

        output, http_response = (
            capo_neptunedata._operations.amazon_neptune_dataplane.execute_open_cypher_explain_query.execute_open_cypher_explain_query(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("ExecuteOpenCypherExplainQuery")
    )
    input_: capo_neptunedata.types.execute_open_cypher_explain_query_input.ExecuteOpenCypherExplainQueryInput = {
        "open_cypher_query": open_cypher_query,
        "explain_mode": explain_mode,
    }
    if parameters is not None:
        input_["parameters"] = parameters

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output