def filter_log_events(logGroupName=None, logStreamNames=None, startTime=
    None, endTime=None, filterPattern=None, nextToken=None, limit=None,
    interleaved=None):
    """
    Lists log events from the specified log group. You can list all the log events or filter the results using a filter pattern, a time range, and the name of the log stream.
    By default, this operation returns as many log events as can fit in 1MB (up to 10,000 log events), or all the events found within the time range that you specify. If the results include a token, then there are more log events available, and you can get additional results by specifying the token in a subsequent call.
    See also: AWS API Documentation
    
    
    :example: response = client.filter_log_events(
        logGroupName='string',
        logStreamNames=[
            'string',
        ],
        startTime=123,
        endTime=123,
        filterPattern='string',
        nextToken='string',
        limit=123,
        interleaved=True|False
    )
    
    
    :type logGroupName: string
    :param logGroupName: [REQUIRED]
            The name of the log group.
            

    :type logStreamNames: list
    :param logStreamNames: Optional list of log stream names.
            (string) --
            

    :type startTime: integer
    :param startTime: The start of the time range, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp prior to this time are not returned.

    :type endTime: integer
    :param endTime: The end of the time range, expressed as the number of milliseconds since Jan 1, 1970 00:00:00 UTC. Events with a timestamp later than this time are not returned.

    :type filterPattern: string
    :param filterPattern: The filter pattern to use. If not provided, all the events are matched.

    :type nextToken: string
    :param nextToken: The token for the next set of events to return. (You received this token from a previous call.)

    :type limit: integer
    :param limit: The maximum number of events to return. The default is 10,000 events.

    :type interleaved: boolean
    :param interleaved: If the value is true, the operation makes a best effort to provide responses that contain events from multiple log streams within the log group interleaved in a single response. If the value is false all the matched log events in the first log stream are searched first, then those in the next log stream, and so on. The default is false.

    :rtype: dict
    :return: {
        'events': [
            {
                'logStreamName': 'string',
                'timestamp': 123,
                'message': 'string',
                'ingestionTime': 123,
                'eventId': 'string'
            },
        ],
        'searchedLogStreams': [
            {
                'logStreamName': 'string',
                'searchedCompletely': True|False
            },
        ],
        'nextToken': 'string'
    }
    
    
    """
    pass
