I'm trying to figure out how people in the ArcGIS Server world script configurations. In the GeoServer world we have the REST Config API, which lets you configure connections to a database or files, publish new layers, update their service metadata, cache the layer, change available and default styles, default projections, etc. What's the equivalent for ArcGIS Server? As far as I could tell the REST API there just allows access and manipulation of features and images, but doesn't let you actually publish new data. Or you can use the admin GUI, but I couldn't find a way to script the types of actions an admin would take. I've been scouring the docs, so if someone can point me to a reference that would be great.
You can connect to arcgis server using arcobjects. Once you get connected, you should be able to get a reference to IServerObjectAdmin2 via AgsServerConnection.ServerObjectAdmin. This interface should support the requirements you list. Here's a good example.
I suppose you could write Arcpy (python) scripts that access the underlying arcobjects mentioned above, then publish those scripts as GP services which can then be accessed via the REST API. I've never tried this though.
(If anyone has tried this and it doesn't work, please downvote this answer).