# API Endpoints (scripts/main.py) Non-commented FastAPI routes defined in `scripts/main.py`. - `POST /login/` - `GET /getallextensiondatakeys/` - `GET /getallextensiondata/` - `GET /getextensiondata/` - `POST /setextensiondata` - `GET /listprojects/` - `GET /haveproject/` - `POST /createproject/` - `POST /deleteproject/` - `GET /isprojectopen/` - `POST /openproject/` - `POST /closeproject/` - `POST /copyproject/` - `POST /importinp/` - `GET /exportinp/` - `POST /readinp/` - `GET /dumpinp/` - `GET /runproject/` - `GET /runprojectreturndict/` - `GET /runinp/` - `GET /dumpoutput/` - `GET /isprojectlocked/` - `GET /isprojectlockedbyme/` - `POST /lockproject/` - `POST /unlockproject/` - `GET /getcurrentoperationid/` - `POST /undo/` - `POST /redo/` - `GET /getsnapshots/` - `GET /havesnapshot/` - `GET /havesnapshotforoperation/` - `GET /havesnapshotforcurrentoperation/` - `POST /takesnapshotforoperation/` - `POST takenapshotforcurrentoperation` - `POST /takesnapshot/` - `POST /picksnapshot/` - `POST /pickoperation/` - `GET /syncwithserver/` - `POST /batch/` - `POST /compressedbatch/` - `GET /getrestoreoperation/` - `POST /setrestoreoperation/` - `GET /isnode/` - `GET /isjunction/` - `GET /isreservoir/` - `GET /istank/` - `GET /islink/` - `GET /ispipe/` - `GET /ispump/` - `GET /isvalve/` - `GET /getnodetype/` - `GET /getlinktype/` - `GET /getelementtype/` - `GET /getelementtypevalue/` - `GET /iscurve/` - `GET /ispattern/` - `GET /getnodes/` - `GET /getlinks/` - `GET /getcurves/` - `GET /getpatterns/` - `GET /getnodelinks/` - `GET /getnodeproperties/` - `GET /getlinkproperties/` - `GET /getscadaproperties/` - `GET /getallscadaproperties/` - `GET /getelementpropertieswithtype/` - `GET /getelementproperties/` - `GET /gettitleschema/` - `GET /gettitle/` - `GET /settitle/` - `GET /getjunctionschema` - `POST /addjunction/` - `POST /deletejunction/` - `GET /getjunctionelevation/` - `GET /getjunctionx/` - `GET /getjunctiony/` - `GET /getjunctioncoord/` - `GET /getjunctiondemand/` - `GET /getjunctionpattern/` - `POST /setjunctionelevation/` - `POST /setjunctionx/` - `POST /setjunctiony/` - `POST /setjunctioncoord/` - `POST /setjunctiondemand/` - `POST /setjunctionpattern/` - `GET /getjunctionproperties/` - `GET /getalljunctionproperties/` - `POST /setjunctionproperties/` - `GET /getreservoirschema` - `POST /addreservoir/` - `POST /deletereservoir/` - `GET /getreservoirhead/` - `GET /getreservoirpattern/` - `GET /getreservoirx/` - `GET /getreservoiry/` - `GET /getreservoircoord/` - `POST /setreservoirhead/` - `POST /setreservoirpattern/` - `POST /setreservoirx/` - `POST /setreservoirx/` - `POST /setreservoircoord/` - `GET /getreservoirproperties/` - `GET /getallreservoirproperties/` - `POST /setreservoirproperties/` - `GET /gettankschema` - `POST /addtank/` - `POST /deletetank/` - `GET /gettankelevation/` - `GET /gettankinitlevel/` - `GET /gettankminlevel/` - `GET /gettankmaxlevel/` - `GET /gettankdiameter/` - `GET /gettankminvol/` - `GET /gettankvolcurve/` - `GET /gettankoverflow/` - `GET /gettankx/` - `GET /gettanky/` - `GET /gettankcoord/` - `POST /settankelevation/` - `POST /settankinitlevel/` - `POST /settankminlevel/` - `POST /settankmaxlevel/` - `POST settankdiameter//` - `POST /settankminvol/` - `POST /settankvolcurve/` - `POST /settankoverflow/` - `POST /settankx/` - `POST /settanky/` - `POST /settankcoord/` - `GET /gettankproperties/` - `GET /getalltankproperties/` - `POST /settankproperties/` - `GET /getpipeschema` - `POST /addpipe/` - `POST /deletepipe/` - `GET /getpipenode1/` - `GET /getpipenode2/` - `GET /getpipelength/` - `GET /getpipediameter/` - `GET /getpiperoughness/` - `GET /getpipeminorloss/` - `GET /getpipestatus/` - `POST /setpipenode1/` - `POST /setpipenode2/` - `POST /setpipelength/` - `POST /setpipediameter/` - `POST /setpiperoughness/` - `POST /setpipeminorloss/` - `POST /setpipestatus/` - `GET /getpipeproperties/` - `GET /getallpipeproperties/` - `POST /setpipeproperties/` - `GET /getpumpschema` - `POST /addpump/` - `POST /deletepump/` - `GET /getpumpnode1/` - `GET /getpumpnode2/` - `POST /setpumpnode1/` - `POST /setpumpnode2/` - `GET /getpumpproperties/` - `GET /getallpumpproperties/` - `POST /setpumpproperties/` - `GET /getvalveschema` - `POST /addvalve/` - `POST /deletevalve/` - `GET /getvalvenode1/` - `GET /getvalvenode2/` - `GET /getvalvediameter/` - `GET /getvalvetype/` - `GET /getvalvesetting/` - `GET /getvalveminorloss/` - `POST /setvalvenode1/` - `POST /setvalvenode2/` - `POST /setvalvenodediameter/` - `POST /setvalvetype/` - `POST /setvalvesetting/` - `GET /getvalveproperties/` - `GET /getallvalveproperties/` - `POST /setvalveproperties/` - `POST /deletenode/` - `POST /deletelink/` - `GET /gettagschema/` - `GET /gettag/` - `GET /gettags/` - `POST /settag/` - `GET /getdemandschema` - `GET /getdemandproperties/` - `POST /setdemandproperties/` - `GET /getstatusschema` - `GET /getstatus/` - `POST /setstatus/` - `GET /getpatternschema` - `POST /addpattern/` - `POST /deletepattern/` - `GET /getpatternproperties/` - `POST /setpatternproperties/` - `GET /getcurveschema` - `POST /addcurve/` - `POST /deletecurve/` - `GET /getcurveproperties/` - `POST /setcurveproperties/` - `GET /getcontrolschema/` - `GET /getcontrolproperties/` - `POST /setcontrolproperties/` - `GET /getruleschema/` - `GET /getruleproperties/` - `POST /setruleproperties/` - `GET /getenergyschema/` - `GET /getenergyproperties/` - `POST /setenergyproperties/` - `GET /getpumpenergyschema/` - `GET /getpumpenergyproperties//` - `GET /setpumpenergyproperties//` - `GET /getemitterschema` - `GET /getemitterproperties/` - `POST /setemitterproperties/` - `GET /getqualityschema/` - `GET /getqualityproperties/` - `POST /setqualityproperties/` - `GET /getsourcechema/` - `GET /getsource/` - `POST /setsource/` - `POST /addsource/` - `POST /deletesource/` - `GET /getreactionschema/` - `GET /getreaction/` - `POST /setreaction/` - `GET /getpipereactionschema/` - `GET /getpipereaction/` - `POST /setpipereaction/` - `GET /gettankreactionschema/` - `GET /gettankreaction/` - `POST /settankreaction/` - `GET /getmixingschema/` - `GET /getmixing/` - `POST /setmixing/` - `POST /addmixing/` - `POST /deletemixing/` - `GET /gettimeschema` - `GET /gettimeproperties/` - `POST /settimeproperties/` - `GET /getoptionschema/` - `GET /getoptionproperties/` - `POST /setoptionproperties/` - `GET /getnodecoord/` - `GET /getnetworkgeometries/` - `GET /getmajornodecoords/` - `GET /getnetworkinextent/` - `GET /getnetworklinknodes/` - `GET /getmajorpipenodes/` - `GET /getvertexschema/` - `GET /getvertexproperties/` - `POST /setvertexproperties/` - `POST /addvertex/` - `POST /deletevertex/` - `GET /getallvertexlinks/` - `GET /getallvertices/` - `GET /getlabelschema/` - `GET /getlabelproperties/` - `POST /setlabelproperties/` - `POST /addlabel/` - `POST /deletelabel/` - `GET /getbackdropschema/` - `GET /getbackdropproperties/` - `POST /setbackdropproperties/` - `GET /getscadadeviceschema/` - `GET /getscadadevice/` - `POST /setscadadevice/` - `POST /addscadadevice/` - `POST /deletescadadevice/` - `POST /cleanscadadevice/` - `GET /getallscadadeviceids/` - `GET /getallscadadevices/` - `GET /getscadadevicedataschema/` - `GET /getscadadevicedata/` - `POST /setscadadevicedata/` - `POST /addscadadevicedata/` - `POST /deletescadadevicedata/` - `POST /cleanscadadevicedata/` - `GET /getscadaelementschema/` - `GET /getscadaelements/` - `GET /getscadaelement/` - `POST /setscadaelement/` - `POST /addscadaelement/` - `POST /deletescadaelement/` - `POST /cleanscadaelement/` - `GET /getregionschema/` - `GET /getregion/` - `POST /setregion/` - `POST /addregion/` - `POST /deleteregion/` - `GET /calculatedistrictmeteringareafornodes/` - `GET /calculatedistrictmeteringareaforregion/` - `GET /calculatedistrictmeteringareafornetwork/` - `GET /getdistrictmeteringareaschema/` - `GET /getdistrictmeteringarea/` - `POST /setdistrictmeteringarea/` - `POST /adddistrictmeteringarea/` - `POST /deletedistrictmeteringarea/` - `GET /getalldistrictmeteringareaids/` - `GET /getalldistrictmeteringareas/` - `POST /generatedistrictmeteringarea/` - `POST /generatesubdistrictmeteringarea/` - `GET /calculateservicearea/` - `GET /getserviceareaschema/` - `GET /getservicearea/` - `POST /setservicearea/` - `POST /addservicearea/` - `POST /deleteservicearea/` - `GET /getallserviceareas/` - `POST /generateservicearea/` - `GET /calculatevirtualdistrict/` - `GET /getvirtualdistrictschema/` - `GET /getvirtualdistrict/` - `POST /setvirtualdistrict/` - `POST /addvirtualdistrict/` - `POST /deletevirtualdistrict/` - `GET /getallvirtualdistrict/` - `POST /generatevirtualdistrict/` - `GET /calculatedemandtonodes/` - `GET /calculatedemandtoregion/` - `GET /calculatedemandtonetwork/` - `GET /getscadainfoschema/` - `GET /getscadainfo/` - `GET /getallscadainfo/` - `GET /getuserschema/` - `GET /getuser/` - `GET /getallusers/` - `GET /getschemeschema/` - `GET /getscheme/` - `GET /getallschemes/` - `GET /getpiperiskprobabilitynow/` - `GET /getpiperiskprobability/` - `GET /getpipesriskprobability/` - `GET /getnetworkpiperiskprobabilitynow/` - `GET /getpiperiskprobabilitygeometries/` - `GET /getallsensorplacements/` - `GET /getallburstlocateresults/` - `POST /uploadinp/` - `GET /downloadinp/` - `GET /convertv3tov2/` - `GET /getjson/` - `GET /getrealtimedata/` - `GET /getsimulationresult/` - `GET /querynodelatestrecordbyid/` - `GET /querylinklatestrecordbyid/` - `GET /queryscadalatestrecordbyid/` - `GET /queryallrecordsbytime/` - `GET /queryallrecordsbytimeproperty/` - `GET /queryallschemerecordsbytimeproperty/` - `GET /querysimulationrecordsbyidtime/` - `GET /queryschemesimulationrecordsbyidtime/` - `GET /queryallrecordsbydate/` - `GET /queryallrecordsbytimerange/` - `GET /queryallrecordsbydatewithtype/` - `GET /queryallrecordsbyidsdatetype/` - `GET /queryallrecordsbydateproperty/` - `GET /querynodecurvebyidpropertydaterange/` - `GET /querylinkcurvebyidpropertydaterange/` - `GET /queryscadadatabydeviceidandtime/` - `GET /queryscadadatabydeviceidandtimerange/` - `GET /queryfillingscadadatabydeviceidandtimerange/` - `GET /querycleaningscadadatabydeviceidandtimerange/` - `GET /querysimulationscadadatabydeviceidandtimerange/` - `GET /querycleanedscadadatabydeviceidandtimerange/` - `GET /queryscadadatabydeviceidanddate/` - `GET /queryallscadarecordsbydate/` - `GET /queryallschemeallrecords/` - `GET /queryschemeallrecordsproperty/` - `POST /clearrediskey/` - `POST /clearrediskeys/` - `POST /clearallredis/` - `GET /queryredis/` - `GET /queryinfluxdbbuckets/` - `GET /queryinfluxdbbucketmeasurements/` - `POST /download_history_data_manually/` - `POST /runsimulationmanuallybydate/` - `POST /burst_analysis/` - `GET /valve_close_analysis/` - `GET /flushing_analysis/` - `GET /contaminant_simulation/` - `GET /age_analysis/` - `POST /scheduling_analysis/` - `POST /pressure_regulation/` - `POST /project_management/` - `POST /network_project/` - `POST /daily_scheduling_analysis/` - `POST /network_update/` - `POST /pump_failure/` - `POST /pressure_sensor_placement_sensitivity/` - `POST /pressure_sensor_placement_kmeans/` - `POST /sensorplacementscheme/create` - `POST /scadadevicedatacleaning/` - `POST /test_dict/`