The field of Water Resources Management (WRM) is becoming increasingly interdisciplinary, realizing its direct connections with energy, food, and social and economic sciences, among others. Computationally, this leads to more complex models, wherein the achievement of multiple goals is sought. Optimization processes have found various applications in such complex WRM problems. This entry considers the main factors involved in modern WRM, and puts them in a single optimization problem, including water allocation from different sources to different uses and non-renewable and renewable energy supplies, with their associated carbon emissions and costs. The entry explores the problem mathematically by presenting different optimization approaches, such as linear, fuzzy, dynamic, goal, and non-linear programming models. Furthermore, codes for each model are provided in Python, an open-source language. This entry has an educational character, and the examples presented are easily reproducible, so this is expected to be a useful resource for students, modelers, researchers, and water managers.