What is "epoch" in keras.models.Model.fit? Is it one gradient update? If it is more than one gradient update, then what is defining an epoch?

Suppose I am feeding my own batches to fit. I would regard "epoch" as finishing to process an entire training set (is this correct)? Then how to control keras for this way? Can I set batch_size equal to x and y size and epochs to 1?