def call(Map args = [:]) {
    assert args.lambdaDirectories: 'lambdaDirectories is a required argument'

    def branchName = args.branchName ?: env.BRANCH_NAME
    def previousSuccessfulCommit = args.previousSuccessfulCommit ?: env.GIT_PREVIOUS_SUCCESSFUL_COMMIT
    def mainBranch = args.mainBranch ?: 'master'

    def directories = args.lambdaDirectories.collect{ it.path.replaceAll('/Dockerfile$', '/') }
    def modifiedDirectories = getModifiedPaths(
        branchName: branchName,
        baseCommit: previousSuccessfulCommit,
        mainBranch: mainBranch,
        paths: directories
    )
    def modifiedFunctions = modifiedDirectories.collect{ it.tokenize('/').last() }
    return modifiedFunctions
}
