def METHOD_NAME(self, fail_on_missing: bool = False) -> List[str]:
    """Provide to command to do the sync
    Args:
        fail_on_missing: Flag to make the command fail if any of
            the sources are missing.
    Returns:
        The command to do the sync, as a list of strings.
    """
    METHOD_NAME = ["rsync", "--archive"]
    if self.delete:
        METHOD_NAME += ["--delete"]
    for filter_ in self.filters:
        METHOD_NAME += ["--filter", filter_]
    if self.mkpath:
        METHOD_NAME += ["--mkpath"]
    if not fail_on_missing:
        METHOD_NAME += ["--ignore-missing-args"]
    for src in self.src:
        globs = glob.glob(src)
        if globs:
            METHOD_NAME += globs
        else:
            # 'globs' is an empty list if 'src' is missing, which could
            # render the 'rsync' command meaningless.
            # Make sure 'src' is part of the command in these cases,
            # and let --ignore-missing-args handle the rest.
            METHOD_NAME += [src]
    METHOD_NAME += [self.dest]
    return METHOD_NAME