Diaz, the highly-rated 19-year-old attacking midfielder, is out of contract at the end of the season and was this week reported to be ready to sign for Real Madrid.
The Spaniard would be free to speak to other clubs from next month. Diaz has been used sparingly by Guardiola and not featured since scoring twice against Fulham in the Carabao Cup on November 1.
City boss Guardiola said: “The case of Brahim is very simple. We want him to stay, we want to extend his contract for four or five years and we’ll do absolutely everything to keep him here
“But, as I said before, it’s in his hands. My advice is – if he doesn’t want to stay, he has to leave.”
City have been hoping to tie up young talents such as Diaz and Phil Foden to new deals
Sancho has become an England international after leaving City for Borussia Dortmund last year, with Guardiola admitting the club were desperate to keep hold of him.
Guardiola will not attempt to stand in Diaz’s way should he want to leave but he warns there are no guarantees of action elsewhere either.
He said: “They cannot say we don’t do absolutely everything to take care of them and their families, like a human-being, like a person, like a football player.
“It’s incredible how the academy works with these guys, taking care of them, teaching them what they need to be a high standard for a long time but at the end they decide. The market is the market.
“We cannot push more than we pushed with Brahim, for example, or with the other ones. At Barcelona there were many players, for example Cesc Fabregas, who wanted to leave and go to Arsenal. It happens, always, this situation
Guardiola does not expect Kevin De Bruyne to be ready to return from injury against Bournemouth on Saturday and said there will be late assessments over the fitness of Bernardo Silva, Ilkay Gundogan and Gabriel Jesus.
The City boss admitted he may have to "freshen up" his team with the club set to play 10 games between December 1 and January 3.
But game-time will not necessarily become more available for Diaz, who has made just three appearances this season - none of which have come in the Premier League
