Following this instructions (How To: Add coded value domains to a hosted feature service from a REST endpoint), I can successfully add a new coded value domain to a layer's field.
<SPAN class="comment token">/* ... (pseudo JSON) */</SPAN>
<SPAN class="punctuation token">{</SPAN>
<SPAN class="string token">"name"</SPAN> <SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"pipeType"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="comment token">/* ... */</SPAN>
<SPAN class="string token">"domain"</SPAN> <SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="string token">"type"</SPAN> <SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"codedValue"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"name"</SPAN> <SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"hydrantType"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"codedValues"</SPAN> <SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">{</SPAN>
<SPAN class="string token">"name"</SPAN> <SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"Private"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"code"</SPAN> <SPAN class="punctuation token">:</SPAN> <SPAN class="number token">1</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="punctuation token">{</SPAN>
<SPAN class="string token">"name"</SPAN> <SPAN class="punctuation token">:</SPAN> <SPAN class="string token">"Public"</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"code"</SPAN> <SPAN class="punctuation token">:</SPAN> <SPAN class="number token">2</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN>
<SPAN class="string token">"defaultValue"</SPAN> <SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">null</SPAN> <SPAN class="comment token">/* <--- change this to 2 */</SPAN>
<SPAN class="punctuation token">}</SPAN>
<SPAN class="comment token">/* ... */</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>However, when changing the default value (e.g. null to 2; my field is a short integer), that change will be ignored but no errors or warnings occur. Furthermore, when doing both, adding a new coded value domain and changing the default value, the coded value domain is successfully added and the default value is being ignored. Is this a bug or do I miss something?