I'm trying to set Use in virtual machine creation
and Allow public IP creation
to Yes
programmatically. I found the right method, here's my code for that:
var fragment = new VirtualNetworkFragment(
subnetOverrides: virtualNetwork.Subnets.Select(s =>
new SubnetOverrideFragment(
labSubnetName: s.Key,
resourceId: s.Value.Inner.Id,
useInVmCreationPermission: "Allow",
usePublicIpAddressPermission: "Allow")).ToList());
var vnet = await BaseClientFactory.CreateDevTestLabClient(azureClient)
.VirtualNetworks
.UpdateWithHttpMessagesAsync(dbLab.ResourceGroupName, dbLab.LabId.ToString(), virtualNetworkId, fragment);
Unfortunately the code doesn't work but it doesn't throw any exception, either. When I serialize fragment
variable to compare it with the request that's sent when doing this manually on Azure, there is a small difference.
Here is how the body looks like in the code when it's serialized using NewtonsoftJson (I took it from the Watch window):
Here is how the body looks like when sent via Azure:
The only two changes is that my code generates a request where allowedSubnets
are null
and (more importantly, I reckon) the structure differs a little in the way that my code generates properties.subnetOverrides
instead of a proper json structure. I'm not sure if this is a bug or I'm doing something wrong - any ideas?