It is both. It is bidirectional because it can send data in both directions, and it is full-duplex because it can do that simultaneously, without requiring line turnarounds, at the API level.
Of course at a lower level it may be restricted by the available physical layer.