:doc:`SWF <../../swf>` / Client / count_open_workflow_executions

******************************
count_open_workflow_executions
******************************



.. py:method:: SWF.Client.count_open_workflow_executions(**kwargs)

  

  Returns the number of open workflow executions within the given domain that meet the specified filtering criteria.

   

  .. note::

    

    This operation is eventually consistent. The results are best effort and may not exactly reflect recent updates and changes.

    

   

  **Access Control**

   

  You can use IAM policies to control this action's access to Amazon SWF resources as follows:

   

  
  * Use a ``Resource`` element with the domain name to limit the action to only specified domains.
   
  * Use an ``Action`` element to allow or deny permission to call this action.
   
  * Constrain the following parameters by using a ``Condition`` element with the appropriate keys. 

    
    * ``tagFilter.tag``: String constraint. The key is ``swf:tagFilter.tag``.
     
    * ``typeFilter.name``: String constraint. The key is ``swf:typeFilter.name``.
     
    * ``typeFilter.version``: String constraint. The key is ``swf:typeFilter.version``.
    

  
  

   

  If the caller doesn't have sufficient permissions to invoke the action, or the parameter values fall outside the specified constraints, the action fails. The associated event attribute's ``cause`` parameter is set to ``OPERATION_NOT_PERMITTED``. For details and example IAM policies, see `Using IAM to Manage Access to Amazon SWF Workflows <https://docs.aws.amazon.com/amazonswf/latest/developerguide/swf-dev-iam.html>`__ in the *Amazon SWF Developer Guide*.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/swf-2012-01-25/CountOpenWorkflowExecutions>`_  


  **Request Syntax**
  ::

    response = client.count_open_workflow_executions(
        domain='string',
        startTimeFilter={
            'oldestDate': datetime(2015, 1, 1),
            'latestDate': datetime(2015, 1, 1)
        },
        typeFilter={
            'name': 'string',
            'version': 'string'
        },
        tagFilter={
            'tag': 'string'
        },
        executionFilter={
            'workflowId': 'string'
        }
    )
    
  :type domain: string
  :param domain: **[REQUIRED]** 

    The name of the domain containing the workflow executions to count.

    

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

    Specifies the start time criteria that workflow executions must meet in order to be counted.

    

  
    - **oldestDate** *(datetime) --* **[REQUIRED]** 

      Specifies the oldest start or close date and time to return.

      

    
    - **latestDate** *(datetime) --* 

      Specifies the latest start or close date and time to return.

      

    
  
  :type typeFilter: dict
  :param typeFilter: 

    Specifies the type of the workflow executions to be counted.

     

    .. note::

      

      ``executionFilter``, ``typeFilter`` and ``tagFilter`` are mutually exclusive. You can specify at most one of these in a request.

      

    

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

      Name of the workflow type.

      

    
    - **version** *(string) --* 

      Version of the workflow type.

      

    
  
  :type tagFilter: dict
  :param tagFilter: 

    If specified, only executions that have a tag that matches the filter are counted.

     

    .. note::

      

      ``executionFilter``, ``typeFilter`` and ``tagFilter`` are mutually exclusive. You can specify at most one of these in a request.

      

    

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

      Specifies the tag that must be associated with the execution for it to meet the filter criteria.

       

      Tags may only contain unicode letters, digits, whitespace, or these symbols: ``_ . : / = + - @``.

      

    
  
  :type executionFilter: dict
  :param executionFilter: 

    If specified, only workflow executions matching the ``WorkflowId`` in the filter are counted.

     

    .. note::

      

      ``executionFilter``, ``typeFilter`` and ``tagFilter`` are mutually exclusive. You can specify at most one of these in a request.

      

    

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

      The workflowId to pass of match the criteria of this filter.

      

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

    
    ::

      {
          'count': 123,
          'truncated': True|False
      }
      
    **Response Structure**

    

    - *(dict) --* 

      Contains the count of workflow executions returned from  CountOpenWorkflowExecutions or  CountClosedWorkflowExecutions

      
      

      - **count** *(integer) --* 

        The number of workflow executions.

        
      

      - **truncated** *(boolean) --* 

        If set to true, indicates that the actual count was more than the maximum supported by this API and the count returned is the truncated value.

        
  
  **Exceptions**
  
  *   :py:class:`SWF.Client.exceptions.UnknownResourceFault`

  
  *   :py:class:`SWF.Client.exceptions.OperationNotPermittedFault`

  