:doc:`NeptuneData <../../neptunedata>` / Client / execute_open_cypher_explain_query

*********************************
execute_open_cypher_explain_query
*********************************



.. py:method:: NeptuneData.Client.execute_open_cypher_explain_query(**kwargs)

  

  Executes an openCypher ``explain`` request. See `The openCypher explain feature <https://docs.aws.amazon.com/neptune/latest/userguide/access-graph-opencypher-explain.html>`__ 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 <https://docs.aws.amazon.com/neptune/latest/userguide/iam-dp-actions.html#readdataviaquery>`__ IAM action in that cluster.

   

  Note that the `neptune-db\:QueryLanguage\:OpenCypher <https://docs.aws.amazon.com/neptune/latest/userguide/iam-data-condition-keys.html#iam-neptune-condition-keys>`__ 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 <https://docs.aws.amazon.com/neptune/latest/userguide/iam-data-condition-keys.html>`__).

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/neptunedata-2023-08-01/ExecuteOpenCypherExplainQuery>`_  


  **Request Syntax**
  ::

    response = client.execute_open_cypher_explain_query(
        openCypherQuery='string',
        parameters='string',
        explainMode='static'|'dynamic'|'details'
    )
    
  :type openCypherQuery: string
  :param openCypherQuery: **[REQUIRED]** 

    The openCypher query string.

    

  
  :type parameters: string
  :param parameters: 

    The openCypher query parameters.

    

  
  :type explainMode: string
  :param explainMode: **[REQUIRED]** 

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

    

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

    
    ::

      {
          'results': StreamingBody()
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **results** (:class:`.StreamingBody`) -- 

        A text blob containing the openCypher ``explain`` results.

        
  
  **Exceptions**
  
  *   :py:class:`NeptuneData.Client.exceptions.QueryTooLargeException`

  
  *   :py:class:`NeptuneData.Client.exceptions.InvalidNumericDataException`

  
  *   :py:class:`NeptuneData.Client.exceptions.BadRequestException`

  
  *   :py:class:`NeptuneData.Client.exceptions.QueryLimitExceededException`

  
  *   :py:class:`NeptuneData.Client.exceptions.InvalidParameterException`

  
  *   :py:class:`NeptuneData.Client.exceptions.QueryLimitException`

  
  *   :py:class:`NeptuneData.Client.exceptions.ClientTimeoutException`

  
  *   :py:class:`NeptuneData.Client.exceptions.CancelledByUserException`

  
  *   :py:class:`NeptuneData.Client.exceptions.IllegalArgumentException`

  
  *   :py:class:`NeptuneData.Client.exceptions.TooManyRequestsException`

  
  *   :py:class:`NeptuneData.Client.exceptions.UnsupportedOperationException`

  
  *   :py:class:`NeptuneData.Client.exceptions.FailureByQueryException`

  
  *   :py:class:`NeptuneData.Client.exceptions.MemoryLimitExceededException`

  
  *   :py:class:`NeptuneData.Client.exceptions.PreconditionsFailedException`

  
  *   :py:class:`NeptuneData.Client.exceptions.MalformedQueryException`

  
  *   :py:class:`NeptuneData.Client.exceptions.ParsingException`

  
  *   :py:class:`NeptuneData.Client.exceptions.ConstraintViolationException`

  
  *   :py:class:`NeptuneData.Client.exceptions.TimeLimitExceededException`

  
  *   :py:class:`NeptuneData.Client.exceptions.InvalidArgumentException`

  
  *   :py:class:`NeptuneData.Client.exceptions.ConcurrentModificationException`

  
  *   :py:class:`NeptuneData.Client.exceptions.MissingParameterException`

  