What is the difference between the different access levels of the attributes?

What is the difference between the different access levels of the attributes?

In the Data Tab of a model there is a column called Access in which each attribute can be defined between private, input, output and in_output. Which is the difference between each of these values?