def count_closed_workflow_executions(domain=None, startTimeFilter=None,
    closeTimeFilter=None, executionFilter=None, typeFilter=None, tagFilter=
    None, closeStatusFilter=None):
    """
    Returns the number of closed workflow executions within the given domain that meet the specified filtering criteria.
    Access Control
    You can use IAM policies to control this action's access to Amazon SWF resources as follows:
    If the caller does not 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 will be set to OPERATION_NOT_PERMITTED. For details and example IAM policies, see Using IAM to Manage Access to Amazon SWF Workflows .
    See also: AWS API Documentation
    
    
    :example: response = client.count_closed_workflow_executions(
        domain='string',
        startTimeFilter={
            'oldestDate': datetime(2015, 1, 1),
            'latestDate': datetime(2015, 1, 1)
        },
        closeTimeFilter={
            'oldestDate': datetime(2015, 1, 1),
            'latestDate': datetime(2015, 1, 1)
        },
        executionFilter={
            'workflowId': 'string'
        },
        typeFilter={
            'name': 'string',
            'version': 'string'
        },
        tagFilter={
            'tag': 'string'
        },
        closeStatusFilter={
            'status': 'COMPLETED'|'FAILED'|'CANCELED'|'TERMINATED'|'CONTINUED_AS_NEW'|'TIMED_OUT'
        }
    )
    
    
    :type domain: string
    :param domain: [REQUIRED]
            The name of the domain containing the workflow executions to count.
            

    :type startTimeFilter: dict
    :param startTimeFilter: If specified, only workflow executions that meet the start time criteria of the filter are counted.
            Note
            startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.
            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 closeTimeFilter: dict
    :param closeTimeFilter: If specified, only workflow executions that meet the close time criteria of the filter are counted.
            Note
            startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.
            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 executionFilter: dict
    :param executionFilter: If specified, only workflow executions matching the WorkflowId in the filter are counted.
            Note
            closeStatusFilter , 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.
            

    :type typeFilter: dict
    :param typeFilter: If specified, indicates the type of the workflow executions to be counted.
            Note
            closeStatusFilter , executionFilter , typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.
            name (string) -- [REQUIRED]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
            closeStatusFilter , executionFilter , typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.
            tag (string) -- [REQUIRED]Required. Specifies the tag that must be associated with the execution for it to meet the filter criteria.
            

    :type closeStatusFilter: dict
    :param closeStatusFilter: If specified, only workflow executions that match this close status are counted. This filter has an affect only if executionStatus is specified as CLOSED .
            Note
            closeStatusFilter , executionFilter , typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.
            status (string) -- [REQUIRED]Required. The close status that must match the close status of an execution for it to meet the criteria of this filter.
            

    :rtype: dict
    :return: {
        'count': 123,
        'truncated': True|False
    }
    
    
    :returns: 
    domain (string) -- [REQUIRED]
    The name of the domain containing the workflow executions to count.
    
    startTimeFilter (dict) -- If specified, only workflow executions that meet the start time criteria of the filter are counted.
    
    Note
    startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.
    
    
    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.
    
    
    
    closeTimeFilter (dict) -- If specified, only workflow executions that meet the close time criteria of the filter are counted.
    
    Note
    startTimeFilter and closeTimeFilter are mutually exclusive. You must specify one of these in a request but not both.
    
    
    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.
    
    
    
    executionFilter (dict) -- If specified, only workflow executions matching the WorkflowId in the filter are counted.
    
    Note
    closeStatusFilter , 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.
    
    
    
    typeFilter (dict) -- If specified, indicates the type of the workflow executions to be counted.
    
    Note
    closeStatusFilter , executionFilter , typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.
    
    
    name (string) -- [REQUIRED]Required. Name of the workflow type.
    
    version (string) --Version of the workflow type.
    
    
    
    tagFilter (dict) -- If specified, only executions that have a tag that matches the filter are counted.
    
    Note
    closeStatusFilter , executionFilter , typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.
    
    
    tag (string) -- [REQUIRED]Required. Specifies the tag that must be associated with the execution for it to meet the filter criteria.
    
    
    
    closeStatusFilter (dict) -- If specified, only workflow executions that match this close status are counted. This filter has an affect only if executionStatus is specified as CLOSED .
    
    Note
    closeStatusFilter , executionFilter , typeFilter and tagFilter are mutually exclusive. You can specify at most one of these in a request.
    
    
    status (string) -- [REQUIRED]Required. The close status that must match the close status of an execution for it to meet the criteria of this filter.
    
    
    
    
    """
    pass
