def list_users(UserPoolId=None, AttributesToGet=None, Limit=None,
    PaginationToken=None, Filter=None):
    """
    Lists the users in the Amazon Cognito user pool.
    See also: AWS API Documentation
    
    
    :example: response = client.list_users(
        UserPoolId='string',
        AttributesToGet=[
            'string',
        ],
        Limit=123,
        PaginationToken='string',
        Filter='string'
    )
    
    
    :type UserPoolId: string
    :param UserPoolId: [REQUIRED]
            The user pool ID for the user pool on which the search should be performed.
            

    :type AttributesToGet: list
    :param AttributesToGet: An array of strings, where each string is the name of a user attribute to be returned for each user in the search results. If the array is empty, all attributes are returned.
            (string) --
            

    :type Limit: integer
    :param Limit: Maximum number of users to be returned.

    :type PaginationToken: string
    :param PaginationToken: An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

    :type Filter: string
    :param Filter: A filter string of the form 'AttributeName Filter-Type 'AttributeValue ''. Quotation marks within the filter string must be escaped using the backslash () character. For example, 'family_name = 'Reddy''.
            AttributeName : The name of the attribute to search for. You can only search for one attribute at a time.
            Filter-Type : For an exact match, use =, for example, 'given_name = 'Jon''. For a prefix ('starts with') match, use ^=, for example, 'given_name ^= 'Jon''.
            AttributeValue : The attribute value that must be matched for each user.
            If the filter string is empty, ListUsers returns all users in the user pool.
            You can only search for the following standard attributes:
            username (case-sensitive)
            email
            phone_number
            name
            given_name
            family_name
            preferred_username
            cognito:user_status (called Enabled in the Console) (case-sensitive)
            status (case-insensitive)
            Custom attributes are not searchable.
            For more information, see Searching for Users Using the ListUsers API and Examples of Using the ListUsers API in the Amazon Cognito Developer Guide .
            

    :rtype: dict
    :return: {
        'Users': [
            {
                'Username': 'string',
                'Attributes': [
                    {
                        'Name': 'string',
                        'Value': 'string'
                    },
                ],
                'UserCreateDate': datetime(2015, 1, 1),
                'UserLastModifiedDate': datetime(2015, 1, 1),
                'Enabled': True|False,
                'UserStatus': 'UNCONFIRMED'|'CONFIRMED'|'ARCHIVED'|'COMPROMISED'|'UNKNOWN'|'RESET_REQUIRED'|'FORCE_CHANGE_PASSWORD',
                'MFAOptions': [
                    {
                        'DeliveryMedium': 'SMS'|'EMAIL',
                        'AttributeName': 'string'
                    },
                ]
            },
        ],
        'PaginationToken': 'string'
    }
    
    
    :returns: 
    UNCONFIRMED - User has been created but not confirmed.
    CONFIRMED - User has been confirmed.
    ARCHIVED - User is no longer active.
    COMPROMISED - User is disabled due to a potential security threat.
    UNKNOWN - User status is not known.
    
    """
    pass
