- Upgraded api-version tag from 'package-2025-02-01' to 'package-2025-04-01'
- Added
VirtualMachineScaleSet.ScaleOutOperation. - Added
TagstoVirtualMachineScaleSetNetworkConfiguration,VirtualMachineScaleSetIPConfiguration,VirtualMachineScaleSetPublicIPAddressConfigurationandVirtualMachineScaleSetPublicIPAddressConfigurationDnsSettingsclasses. - Added
Placementproperty toVirtualMachineScaleSetclass. - Added
ZoneAllocationPolicyproperty toResiliencyPolicyclass. - Added
MaxInstancePercentPerZonePolicyproperty toAutomaticZoneRebalancingPolicyclass. - Added
ReservationTypeproperty toCapacityReservationGroupclass. - Added
ScheduleProfileproperty toCapacityReservationclass. - Added
AddProxyAgentExtensionproperty toProxyAgentSettingsclass. - Added
ScriptShellTypesenum toRunCommandScriptSourceclass. - Added
GalleryScriptReferenceIdproperty toRunCommandScriptSourceclass. - Added
AllInstancesDownproperty toScheduledEventsPolicyclass. - Added
ScheduledEventsApiVersionproperty toEventGridAndResourceGraphclass. - Added
AutomaticZoneRebalancingproperty toOrchetrationServiceNamesclass. - Added
highSpeedInterconnectPlacementproperty toVirtualMachineScaleSetPropertiesclass. - Added
patchNameMasksToIncludeandpatchNameMasksToExcludeproperties toWindowsParametersclass.
- Make
Azure.ResourceManager.ComputeAOT-compatible - Upgraded api-version tag from 'package-2025-02-01' to 'package-2025-03-01'. Tag detail available at https://github.com/Azure/azure-rest-api-specs/blob/0f03ae6d4107a964b20a48aa87fa520052750bb9/specification/compute/resource-manager/readme.md.
- Added new classes:
SupportedSecurityOption,AvailabilityPolicyDiskDelay,SnapshotAccessState,AvailabilityPolicy. - Added
SecurityMetadataUriandInstantAccessDurationMinutesproperties toDiskCreationDataclass. - Added
SecurityMetadataAccessSasproperty toAccessUriclass. - Added
AvailabilityPolicyproperty toManagedDiskDataandManagedDiskUpdateDataclasses. - Added
SupportedSecurityOptionproperty toSupportedCapabilitiesclass. - Added
SnapshotAccessStatetoSnapshotDataandSnapshotUpdateDataclasses.
- Added new classes:
- Removed
GetVirtualMachineImagesWithPropertiesExpandclass as it has no utility.
- Added
Propertiesproperty inVirtualMachineScaleSetVmDataclass.- This property contains the properties of the VirtualMachineScaleSetVm. It supports
AdditionalPropertiesto send and receive private/internal properties supported by the service. - Please use the properties in
VirtualMachineScaleSetVmData.Propertiesto set the properties of the VirtualMachineScaleSetVm, instead of using those properties at the root level ofVirtualMachineScaleSetVmDataclass.
- This property contains the properties of the VirtualMachineScaleSetVm. It supports
- Upgraded api-version tag from 'package-2024-11-04' to 'package-2025-02-01'. Tag detail available at https://github.com/Azure/azure-sdk-for-net/blob/6b1e2c24d807ffb6faf338f670cca5f35b01428c/sdk/compute/Azure.ResourceManager.Compute/src/autorest.md.
- Added operation
AvailabilitySets.StartMigrationToVirtualMachineScaleSet. - Added operation
AvailabilitySets.CancelMigrationToVirtualMachineScaleSet. - Added operation
AvailabilitySets.ValidateMigrationToVirtualMachineScaleSet. - Added operation
AvailabilitySets.ConvertToVirtualMachineScaleSet. - Added operation
GetVirtualMachineImagesWithProperties - Added operation
VirtualMachines.MigrateToVirtualMachineScaleSet. - Added new classes :
AutomaticZoneRebalancingPolicy,ConvertToVirtualMachineScaleSetContent,HostEndpointSettings,MigrateToVirtualMachineScaleSetInput,MigrateVmToVirtualMachineScaleSetContent,VmssRebalanceStrategy,VmssRebalanceBehavior,SubscriptionResourceGetVirtualMachineImagesWithPropertiesOptions,VirtualMachineImagesWithPropertiesListResult,VirtualMachineScaleSetMigrationInfo,
- Added operation
- Enabled AnyZone Capability preview.
- Upgraded api-version tag from 'package-2024-11-03' to 'package-2024-11-04'. Tag detail available at https://github.com/Azure/azure-rest-api-specs/blob/bf420af156ea90b4226e96582bdb4c9647491ae6/specification/compute/resource-manager/readme.md.
- Added a new property named
IsBootstrapCertificatetoCloudServiceRoleProfileclass.
- Change a few parameters in one of the overload of
ArmComputeModelFactory.VirtualMachineScaleSetDatato required to reduce the possibility of ambiguous invocation.
- Upgraded api-version tag from 'package-2024-07-01' to 'package-2024-11-03'. Tag detail available at https://github.com/Azure/azure-rest-api-specs/blob/b09c9ec927456021dc549e111fa2cac3b4b00659/specification/compute/resource-manager/readme.md.
- Added new classes named
GalleryInVmAccessControlProfileCollection,ComputeGalleryValidationProfile,GalleryImageExecutedValidation,AdditionalReplicaSet,GallerySoftDeleted,GallerySoftDeletedResourceList,ComputeGalleryEndpointAccess,ComputeGalleryEndpointTypes, andComputeGalleryPlatformAttribute. - Added a new property named
IsBlockedDeletionBeforeEndOfLifetoGalleryImageVersionSafetyProfileclass. - Added a new property named
StartsAtVersiontoGalleryImageFeatureclass. - Added a new property named
AllowUpdateImagetoGalleryImageDataclass. - Added new properties named
ValidationsProfileandEnableRestoretoGalleryImageVersionDataclass. - Added a new property named
IsRestoreEnabledtoGalleryImageVersionPatchclass. - Added a new property named
SecurityUefiSettingstoGalleryListclass. - Added a new property named
ScriptBehaviorAfterReboottoUserARtifactSettingsclass. - Added a new property named
AdditionalReplicaSetstoTargetRegionclass. - Added a new property named
IdentitytoGalleryDataclass. `
- Added new classes named
- Upgraded Azure.Core from 1.42.0 to 1.44.1
- Upgraded Azure.ResourceManager from 1.12.0 to 1.13.0
- Please use the properties in
VirtualMachineScaleSetData.Propertiesto set the properties of the VMSS, instead of using those properties at the root level ofVirtualMachineScaleSetDataclass. - Please use the properties in
VirtualMachineScaleSetPatch.Propertiesto set the properties of the VMSS, instead of using those properties at the root level ofVirtualMachineScaleSetPatchclass. - Added
VirtualMachineScaleSetPropertieswhich supportsAdditionalPropertiesto send and receive private/internal properties supported by the service. - Added
AdditionalPropertiestoVirtualMachineSizePropertiesandVirtualMachineScaleSetUpgradePolicyclasses to support private/internal properties supported by the service.
- Exposed
JsonModelWriteCorefor model serialization procedure.
- Added a new read-only property
LogicalSectorSizetoDiskRestorePointDataclass. - Added new properties
SkuProfileandZonalPlatformFaultDomainAlignModetoVirtualMachineScaleSetDataclass. - Added new properties
Zones,ZonalPlatformFaultDomainAlignMode, andSkuProfiletoVirtualMachineScaleSetPatchclass. - Added a new property
ScheduledEventsPolicytoAvailabilitySetPatchandAvailabilitySetDataclass.
ExcludeExtensionsproperty inComputeSecurityPostureReferenceis replaced byExcludeExtensionNamesproperty which takes in a list of strings.IsVmAgentPlatformUpdatesEnabledproperty inWindowsConfigurationclass is now read-only.
- Updated the CRP api-version from 'package-2023-09-01' to the newer 'package-2024-03-01'. This is for the latest Compute RP release (VM, VMSS, etc).
- Support long-running operation rehydration.
- Upgraded dependent
Azure.ResourceManagerto 1.11.1.
- Added a new property 'virtualMachineId' to the 'GalleryArtifactVersionFullSource'.
- Updated the api-version tag from 'package-2023-10-02' to the newer 'package-2023-07-03'. This is for the latest Gallery RP release (Galleries, CommunityGalleries, etc).
- Upgraded api-version tag from 'package-2023-09-01' to 'package-2023-10-02'. Tag detail available at https://github.com/Azure/azure-rest-api-specs/blob/ce47f9b775ec53750f37def0402ecacf3f1d661b/specification/compute/resource-manager/readme.md.
- Enable the new model serialization by using the System.ClientModel, refer this document for more details.
- Upgraded dependent
Azure.ResourceManagerto 1.10.0.
- Compute RP to
2023-09-01(AvailabilitySets, VirtualMachines, VirtualMachineScaleSets, etc)
- Enable mocking for extension methods, refer this document for more details.
- Upgraded dependent
Azure.ResourceManagerto 1.9.0.
- Compute RP to
2023-03-01(AvailabilitySets, VirtualMachines, VirtualMachineScaleSets, etc)- Added new parameter
DomainNameLabelScopeto VM and VMSS Public IP Dns Settings. - Added new parameter
TimeCreatedto VMSS VM properties. - Added new parameters
AuxiliaryModeandAuxiliarySkuto VM and VMSS Network Configuration Properties.
- Added new parameter
- Make
ComputeArmClientMockingExtension,ComputeResourceGroupMockingExtension,ComputeSubscriptionMockingExtensionpublic for mocking the extension methods.
- Disk RP to
2023-01-02- Added new property class
DiskImageFileFormattoGrantAccessDataclass
- Added new property class
- Enable the model factory feature for model mocking, more information can be found here.
- Added new properties
ComputerName,OSName,OSVersionandHyperVGenerationtoVirtualMachineScaleSetVmInstanceViewclass - Added new value
StandardSsdLrstoImageStorageAccountType - Compute RP to
2023-03-01(AvailabilitySets, VirtualMachines, VirtualMachineScaleSets, etc)- Added new method
ReapplyforVirtualMachineScaleSetclass. - Added new method
ListAvailabeSizesforDedicatedHostclass. - Added new parameter
expandforVirtualMachineList methods. - Added new parameter
hibernateforVirtualMachineScaleSetdeallocate methods. - Added new parameters
PriorityMixPolicyandSpotRestorePolicyforVirtualMachineScaleSetupdate methods. - Added new property
BypassPlatformSafetyChecksOnUserScheduleforVirtualMachineclass. - Added new property
SecurityPostureReferencetoVirtualMachineScaleSetclass. - Added new properties
OutputBlobManagedIdentityandErrorBlobManagedIdentitytoRunCommandclass. - Added new properties
RestorePointEncryption,SourceDiskRestorePoint,HyperVGenerationandWriteAcceleratorEnabledforRestorePointclass.
- Added new method
- Class
VirtualMachineScaleSetNetworkConfigurationandVirtualMachineScaleSetIPConfigurationno longer have the propertyId
- Upgraded dependent
Azure.Coreto 1.32.0. - Upgraded dependent
Azure.ResourceManagerto 1.6.0.
Bumps the api-version
- Compute RP to
2022-11-01(AvailabilitySets, VirtualMachines, VirtualMachineScaleSets, etc) - Disk RP to
2022-07-02(ManagedDisks, Snapshots, etc) - Gallery RP to
2022-03-03(Galleries, CommunityGalleries, etc) - CloudService RP to
2022-09-04(CloudServices, etc)
- Upgraded dependent
Azure.Coreto1.28.0. - Upgraded dependent
Azure.ResourceManagerto1.4.0.
- Fixes a bug that exceptions are thrown during serialization when constructor
VirtualMachineScaleSetExtensionData(string name)is called
This release is the first stable release of the Compute Management client library.
- Added Update methods in resource classes.
Polishing since last public beta release:
- Prepended
Compute/VirtualMachineprefix to all single / simple model names. - Corrected the format of all
Guidtype properties / parameters. - Corrected the format of all
ResourceIdentifiertype properties / parameters. - Corrected the format of all
ResouceTypetype properties / parameters. - Corrected the format of all
ETagtype properties / parameters. - Corrected the format of all
AzureLocationtype properties / parameters. - Corrected the format of all binary type properties / parameters.
- Corrected all acronyms that not follow .Net Naming Guidelines.
- Corrected enumeration name by following Naming Enumerations Rule.
- Corrected the suffix of
DateTimeOffsetproperties / parameters. - Corrected the name of interval / duration properties / parameters that end with units.
- Optimized the name of some models and functions.
- Correct inherits
- Base type of
VirtualMachineScaleSetVmExtensionDatachanged toAzure.ResourceManager.Models.ResourceData. - Base type of
GalleryApplicationPatchchanged toAzure.ResourceManager.Models.ResourceData. - Base type of
GalleryImagePatchchanged toAzure.ResourceManager.Models.ResourceData. - Base type of
GalleryPatchchanged toAzure.ResourceManager.Models.ResourceData. - Base type of
GalleryPatchchanged toAzure.ResourceManager.Models.ResourceData. - Type
GalleryUpdateResourceDatawas removed. - Base type of
VirtualMachineScaleSetExtensionPatchchanged toAzure.ResourceManager.Models.ResourceData. - Base type of
VirtualMachineScaleSetVmExtensionPatchchanged toAzure.ResourceManager.Models.ResourceData. - Type
ApiErrorrenamed toComputeApiError. - Type
ApiErrorBaserenamed toComputeApiErrorBase. - Type
DeleteOptionrenamed toComputeDeleteOption. - Type
UsageNamerenamed toComputeUsageName. - Type
UsageUnitrenamed toComputeUsageUnit. - Type
UserArtifactManagerenamed toUserArtifactManagement.
- Base type of
- Method
CloudServiceCollection.CreateOrUpdateandCloudServiceCollection.CreateOrUpdateAsyncnow required the parameterdata.
- Upgraded dependent
Azure.ResourceManagerto 1.2.0 - Upgraded dependent
Azure.Coreto 1.25.0
- Rename plenty of classes and property names according to the architecture board's review.
- Updated API version of compute RP to
2022-03-01. - Updated API version of disk RP to
2022-03-02. - Updated API version of gallery RP to
2022-01-03.
- Simplify
typeproperty names. - Normalized the body parameter type names for PUT / POST / PATCH operations if it is only used as input.
- Upgrade dependency to Azure.ResourceManager 1.0.0
- Now all the resource classes would have a
Resourcesuffix (if it previously does not have one). - Renamed some models to more comprehensive names.
bool waitForCompletionparameter in all long running operations were changed toWaitUntil waitUntil.- Removed
GetIfExistsmethods from all the resource classes. - All properties of the type
objectwere changed toBinaryData.
- waitForCompletion is now a required parameter and moved to the first parameter in LRO operations.
- Removed GetAllAsGenericResources in [Resource]Collections.
- Added Resource constructor to use ArmClient for ClientContext information and removed previous constructors with parameters.
- Couple of renamings.
- Added
CreateResourceIdentifierfor each resource class - Class
OSFamilyCollectionandOSVersionCollectionnow implement theIEnumerable<T>andIAsyncEnumerable<T> - Class
VirtualMachineExtensionImageCollectionnow implements theIEnumerable<T>
- Renamed
CheckIfExiststoExistsfor each resource collection class - Renamed
Get{Resource}ByNametoGet{Resource}AsGenericResourcesinSubscriptionExtensions - Constructor of
OSFamilyCollection,OSVersionCollectionno longer acceptlocationas their first parameter - Constructor of
VirtualMachineExtensionImageCollectionno longer acceptslocationandpublisheras its first two parameters - Method
GetOSFamiliesandGetOSVersionsinSubscriptionExtensionsnow accept an extra parameterlocation - Method
GetVirtualMachineExtensionImagesinSubscriptionExtensionsnow accepts two extra parameterslocationandpublisher
- Fixed comments for
FirstPageFuncof each pageable resource class
- Unified the identification rule of detecting resources, therefore some resources might become non-resources, and vice versa.
- Fixed problematic internal parameter invocation from the context
Idproperty to the correspondingRestOperations.
- Renamed [Resource]Container to [Resource]Collection and added the IEnumerable and IAsyncEnumerable interfaces to them making it easier to iterate over the list in the simple case.
- Added ArmClient extension methods to support start from the middle scenario.
This package follows the new Azure SDK guidelines, and provides many core capabilities:
- Support MSAL.NET, Azure.Identity is out of box for supporting MSAL.NET.
- Support [OpenTelemetry](https://opentelemetry.io/) for distributed tracing.
- HTTP pipeline with custom policies.
- Better error-handling.
- Support uniform telemetry across all languages.
This package is a Public Preview version, so expect incompatible changes in subsequent releases as we improve the product. To provide feedback, submit an issue in our Azure SDK for .NET GitHub repo.
NOTE: For more information about unified authentication, please refer to Microsoft Azure Identity documentation for .NET.
The package name has been changed from Microsoft.Azure.Management.Compute to Azure.ResourceManager.Compute
New design of track 2 initial commit.
Example: Create a VM:
Before upgrade:
You need the following using statements:
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Azure.Management.Compute;
using Microsoft.Azure.Management.Compute.Models;
using Microsoft.Azure.Management.Network;
using Microsoft.Azure.Management.Network.Models;
using Microsoft.Azure.Management.ResourceManager;
using Microsoft.Azure.Management.ResourceManager.Fluent;
using Microsoft.Azure.Management.ResourceManager.Models;
using IPVersion = Microsoft.Azure.Management.Network.Models.IPVersion;
using ResourceManagementClient = Microsoft.Azure.Management.ResourceManager.ResourceManagementClient;
using Sku = Microsoft.Azure.Management.Compute.Models.Sku;
using SubResource = Microsoft.Azure.Management.Compute.Models.SubResource;The code looks like:
var credentials = new TokenCredentials("YOUR ACCESS TOKEN");;
var resourceClient = new ResourceManagementClient(credentials);
var networkClient = new NetworkManagementClient(credentials);
var computeClient = new ComputeManagementClient(credentials);
resourceClient.SubscriptionId = subscriptionId;
networkClient.SubscriptionId = subscriptionId;
computeClient.SubscriptionId = subscriptionId;
var location = "westus";
// Create Resource Group
await resourceClient.ResourceGroups.CreateOrUpdateAsync(resourceGroupName, new ResourceGroup(location));
// Create Availability Set
var availabilitySet = new AvailabilitySet(location)
{
PlatformUpdateDomainCount = 5,
PlatformFaultDomainCount = 2,
Sku = new Sku("Aligned"),
};
availabilitySet = await computeClient.AvailabilitySets
.CreateOrUpdateAsync(resourceGroupName, vmName + "_aSet", availabilitySet);
// Create IP Address
var ipAddress = new PublicIPAddress()
{
PublicIPAddressVersion = IPVersion.IPv4,
PublicIPAllocationMethod = IPAllocationMethod.Dynamic,
Location = location,
};
ipAddress = await networkClient
.PublicIPAddresses.BeginCreateOrUpdateAsync(resourceGroupName, vmName + "_ip", ipAddress);
// Create VNet
var vnet = new VirtualNetwork()
{
Location = location,
AddressSpace = new AddressSpace() { AddressPrefixes = new List<string>() { "10.0.0.0/16" } },
Subnets = new List<Subnet>()
{
new Subnet()
{
Name = "mySubnet",
AddressPrefix = "10.0.0.0/24",
}
},
};
vnet = await networkClient.VirtualNetworks
.BeginCreateOrUpdateAsync(resourceGroupName, vmName + "_vent", vnet);
// Create Network interface
var nic = new NetworkInterface()
{
Location = location,
IpConfigurations = new List<NetworkInterfaceIPConfiguration>()
{
new NetworkInterfaceIPConfiguration()
{
Name = "Primary",
Primary = true,
Subnet = new Subnet() { Id = vnet.Subnets.First().Id },
PrivateIPAllocationMethod = IPAllocationMethod.Dynamic,
PublicIPAddress = new PublicIPAddress() { Id = ipAddress.Id }
}
}
};
nic = await networkClient.NetworkInterfaces
.BeginCreateOrUpdateAsync(resourceGroupName, vmName + "_nic", nic);
var vm = new VirtualMachine(location)
{
NetworkProfile = new NetworkProfile { NetworkInterfaces = new[] { new NetworkInterfaceReference() { Id = nic.Id } } },
AvailabilitySet = new SubResource { Id = availabilitySet.Id },
OsProfile = new OSProfile
{
ComputerName = "testVM",
AdminUsername = "azureUser",
AdminPassword = "azure12345QWE!",
LinuxConfiguration = new LinuxConfiguration { DisablePasswordAuthentication = false, ProvisionVMAgent = true }
},
StorageProfile = new StorageProfile()
{
ImageReference = new ImageReference()
{
Offer = "UbuntuServer",
Publisher = "Canonical",
Sku = "18.04-LTS",
Version = "latest"
},
DataDisks = new List<DataDisk>()
},
HardwareProfile = new HardwareProfile() { VmSize = VirtualMachineSizeTypes.StandardB1ms },
};
await computeClient.VirtualMachines.BeginCreateOrUpdateAsync(resourceGroupName, vmName, vm);After upgrade:
You need the following using statements:
using Azure.Identity;
using Azure.ResourceManager.Compute.Models;
using Azure.ResourceManager.Network;
using Azure.ResourceManager.Network.Models;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.Resources.Models;
using Azure.Core;
using System;
using System.Linq;The code looks like:
ArmClient armClient = new ArmClient(new DefaultAzureCredential());
AzureLocation location = AzureLocation.WestUS;
// Create ResourceGroupResource
SubscriptionResource subscription = await armClient.GetDefaultSubscriptionAsync();
ArmOperation<ResourceGroupResource> rgOperation = await subscription.GetResourceGroups().CreateOrUpdateAsync(WaitUntil.Completed, "myResourceGroup", new ResourceGroupData(location));
ResourceGroupResource resourceGroup = rgOperation.Value;
// Create AvailabilitySet
AvailabilitySetData availabilitySetData = new AvailabilitySetData(location)
{
PlatformUpdateDomainCount = 5,
PlatformFaultDomainCount = 2,
Sku = new ComputeSku() { Name = "Aligned" }
};
ArmOperation<AvailabilitySetResource> asetOperation = await resourceGroup.GetAvailabilitySets().CreateOrUpdateAsync(WaitUntil.Completed, "myAvailabilitySet", availabilitySetData);
AvailabilitySetResource availabilitySet = asetOperation.Value;
// Create VNet
VirtualNetworkData vnetData = new VirtualNetworkData()
{
Location = location,
Subnets =
{
new SubnetData()
{
Name = "mySubnet",
AddressPrefix = "10.0.0.0/24",
}
},
AddressPrefixes =
{
"10.0.0.0/16"
}
};
ArmOperation<VirtualNetworkResource> vnetOperation = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(WaitUntil.Completed, "myVirtualNetwork", vnetData);
VirtualNetworkResource vnet = vnetOperation.Value;
// Create Network interface
NetworkInterfaceData nicData = new NetworkInterfaceData()
{
Location = location,
IPConfigurations =
{
new NetworkInterfaceIPConfigurationData()
{
Name = "Primary",
Primary = true,
Subnet = new SubnetData() { Id = vnet.Data.Subnets.First().Id },
PrivateIPAllocationMethod = NetworkIPAllocationMethod.Dynamic,
}
}
};
ArmOperation<NetworkInterfaceResource> nicOperation = await resourceGroup.GetNetworkInterfaces().CreateOrUpdateAsync(WaitUntil.Completed, "myNetworkInterface", nicData);
NetworkInterfaceResource nic = nicOperation.Value;
VirtualMachineData vmData = new VirtualMachineData(location)
{
AvailabilitySet = new WritableSubResource() { Id = availabilitySet.Id },
NetworkProfile = new VirtualMachineNetworkProfile
{
NetworkInterfaces = { new VirtualMachineNetworkInterfaceReference() { Id = nic.Id } }
},
OSProfile = new VirtualMachineOSProfile()
{
ComputerName = "testVM",
AdminUsername = "username",
AdminPassword = "(YourPassword)",
LinuxConfiguration = new LinuxConfiguration { DisablePasswordAuthentication = false, ProvisionVmAgent = true }
},
StorageProfile = new VirtualMachineStorageProfile()
{
ImageReference = new ImageReference()
{
Offer = "UbuntuServer",
Publisher = "Canonical",
Sku = "18.04-LTS",
Version = "latest"
}
},
HardwareProfile = new VirtualMachineHardwareProfile() { VmSize = VirtualMachineSizeType.StandardB1Ms },
};
ArmOperation<VirtualMachineResource> vmOperation = await resourceGroup.GetVirtualMachines().CreateOrUpdateAsync(WaitUntil.Completed, "myVirtualMachine", vmData);
VirtualMachineResource vm = vmOperation.Value;Example: Create a Virtual Machine Extension
Before upgrade:
var vmExtension = new VirtualMachineExtension
{
Location = "westus",
Tags = new Dictionary<string, string>() { { "extensionTag1", "1" }, { "extensionTag2", "2" } },
Publisher = "Microsoft.Compute",
VirtualMachineExtensionType = "VMAccessAgent",
TypeHandlerVersion = "2.0",
AutoUpgradeMinorVersion = true,
ForceUpdateTag = "RerunExtension",
Settings = "{}",
ProtectedSettings = "{}"
};
typeof(Resource).GetRuntimeProperty("Name").SetValue(vmExtension, "vmext01");
typeof(Resource).GetRuntimeProperty("Type").SetValue(vmExtension, "Microsoft.Compute/virtualMachines/extensions");After upgrade:
var vmExtension = new VirtualMachineExtensionData(AzureLocation.WestUS)
{
Tags = { { "extensionTag1", "1" }, { "extensionTag2", "2" } },
Publisher = "Microsoft.Compute",
ExtensionType = "VMAccessAgent",
TypeHandlerVersion = "2.0",
AutoUpgradeMinorVersion = true,
ForceUpdateTag = "RerunExtension",
Settings = BinaryData.FromObjectAsJson(new { }),
ProtectedSettings = BinaryData.FromObjectAsJson(new { })
};