def METHOD_NAME(access_string: Optional[str] = None,
             authentication_modes: Optional[Sequence[pulumi.InputType['GetUserAuthenticationModeArgs']]] = None,
             engine: Optional[str] = None,
             no_password_required: Optional[bool] = None,
             passwords: Optional[Sequence[str]] = None,
             user_id: Optional[str] = None,
             user_name: Optional[str] = None,
             opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetUserResult:
    """
    Use this data source to get information about an ElastiCache User.
    ## Example Usage
    ```python
    import pulumi
    import pulumi_aws as aws
    bar = aws.elasticache.get_user(user_id="example")
    ```
    :param str access_string: String for what access a user possesses within the associated ElastiCache replication groups or clusters.
    :param str user_id: Identifier for the user.
    :param str user_name: User name of the user.
    """
    __args__ = dict()
    __args__['accessString'] = access_string
    __args__['authenticationModes'] = authentication_modes
    __args__['engine'] = engine
    __args__['noPasswordRequired'] = no_password_required
    __args__['passwords'] = passwords
    __args__['userId'] = user_id
    __args__['userName'] = user_name
    opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
    __ret__ = pulumi.runtime.invoke('aws:elasticache/getUser:getUser', __args__, opts=opts, typ=GetUserResult).value
    return AwaitableGetUserResult(
        access_string=pulumi.get(__ret__, 'access_string'),
        authentication_modes=pulumi.get(__ret__, 'authentication_modes'),
        engine=pulumi.get(__ret__, 'engine'),
        id=pulumi.get(__ret__, 'id'),
        no_password_required=pulumi.get(__ret__, 'no_password_required'),
        passwords=pulumi.get(__ret__, 'passwords'),
        user_id=pulumi.get(__ret__, 'user_id'),
        user_name=pulumi.get(__ret__, 'user_name'))