def METHOD_NAME(appengine_admin: appengine.AppEngineAdmin,
                  version: common.VersionKey,
                  cmds: Tuple[steps.KillNomulusInstance, ...], min_delay: int,
                  configured_num_instances: Optional[int]) -> None:
    print(f'Restarting {len(cmds)} instances in {version.service_id}')
    for cmd in cmds:
        print(cmd.info())
        cmd.execute()
        while True:
            time.sleep(min_delay)
            running_instances = [
                inst.instance_name
                for inst in appengine_admin.list_instances(version)
            ]
            if cmd.instance_name in running_instances:
                print('Waiting for VM to shut down...')
                continue
            if (configured_num_instances is not None
                    and len(running_instances) < configured_num_instances):
                print('Waiting for new VM to come up...')
                continue
            break
        print('VM instance has shut down.\n')
    print(f'Done: {len(cmds)} instances in {version.service_id}\n')