---
title: "POST /subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteCreateFlex"
method: POST
path: "/subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteCreateFlex"
---

# POST /subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteCreateFlex

`POST /subscriptions/{subscriptionId}/providers/Microsoft.ComputeSchedule/locations/{locationparameter}/virtualMachinesExecuteCreateFlex`

VirtualMachinesExecuteCreateFlex: Execute create operation for a batch of virtual machines with flex properties, this operation is triggered as soon as Computeschedule receives it.

## Path parameters

- `locationparameter` string, required

## Parameters

- `../../../../../common-types/resource-management/v6/types.json#/components/parameters/ApiVersionParameter` — unresolved $ref
- `../../../../../common-types/resource-management/v6/types.json#/components/parameters/SubscriptionIdParameter` — unresolved $ref

## Request body

- ExecuteCreateFlexRequest — The ExecuteCreateFlexRequest request for executeCreateFlex operations
  - `resourceConfigParameters` ResourceProvisionFlexPayload, required — Resource creation data model for flex VM provisioning
    - `virtualMachineBaseProfile` BulkVMConfiguration — Specifies the configuration for a virtual machine operation
      - `name` string — Identifier for created virtual machine. If not passed, it will be created from resource prefix.
      - `computeApiVersion` string — Specifies the Microsoft.Compute API version to use when creating underlying Virtual Machines.
      - `resourceGroupName` string — Resource group name for the virtual machine.
      - `zones` string[] — The availability zones.
      - `plan` Plan — unresolved $ref
      - `identity` VirtualMachineIdentity — Identity for the virtual machine.
        - `principalId` string — The principal id of virtual machine identity. This property will only be provided for a system assigned identity.
        - `tenantId` string — The tenant id associated with the virtual machine. This property will only be provided for a system assigned identity.
        - `type` 'SystemAssigned' | 'UserAssigned' | 'SystemAssigned, UserAssigned' | 'None' — The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
        - `userAssignedIdentities` object — The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
      - `extendedLocation` AzureResourceManagerCommonTypesExtendedLocation — The complex type of the extended location.
        - `name` string, required — The name of the extended location.
        - `type` 'EdgeZone' | 'CustomLocation', required — The supported ExtendedLocation types.
      - `placement` Placement — Describes the user-defined constraints for resource hardware placement.
        - `zonePlacementPolicy` 'Any' | 'Auto' — Specifies the policy for resource's placement in availability zone. Possible values are: **Any** (used for Virtual Machines), **Auto** (used for Virtual Machine Scale Sets) - An availability zone will be automatically picked by system as part of resource creation.
        - `includeZones` string[] — This property supplements the 'zonePlacementPolicy' property. If 'zonePlacementPolicy' is set to 'Any'/'Auto', availability zone selected by the system must be present in the list of availability zones passed with 'includeZones'. If 'includeZones' is not provided, all availability zones in region will be considered for selection.
        - `excludeZones` string[] — This property supplements the 'zonePlacementPolicy' property. If 'zonePlacementPolicy' is set to 'Any'/'Auto', availability zone selected by the system must not be present in the list of availability zones passed with 'excludeZones'. If 'excludeZones' is not provided, all availability zones in region will be considered for selection.
      - `tags` object — Resource tags to apply to the virtual machines created by this bulk action.
      - `properties` BulkActionVMProperties — Describes the properties of a Virtual Machine for create.
        - `scheduledEventsPolicy` ScheduledEventsPolicy — Specifies Redeploy, Reboot and ScheduledEventsAdditionalPublishingTargets Scheduled Event related configurations.
          - `userInitiatedRedeploy` UserInitiatedRedeploy — Specifies Redeploy related Scheduled Event related configurations.
            - `automaticallyApprove` boolean — Specifies Redeploy Scheduled Event related configurations.
          - `userInitiatedReboot` UserInitiatedReboot — Specifies Reboot related Scheduled Event related configurations.
            - `automaticallyApprove` boolean — Specifies Reboot Scheduled Event related configurations.
          - `scheduledEventsAdditionalPublishingTargets` ScheduledEventsAdditionalPublishingTargets — Specifies additional publishing targets for scheduled events.
            - `eventGridAndResourceGraph` EventGridAndResourceGraph — Specifies eventGridAndResourceGraph related Scheduled Event related configurations.
              - …
          - `allInstancesDown` AllInstancesDown — Specifies if Scheduled Events should be auto-approved when all instances are down.
            - `automaticallyApprove` boolean — Specifies if Scheduled Events should be auto-approved when all instances are down. Its default value is true.
        - `storageProfile` StorageProfile — Specifies the storage settings for the virtual machine disks.
          - `imageReference` ImageReference — Describes a reference to a sub-resource.
            - `id` string — The ID of the sub-resource.
          - `osDisk` OSDisk — Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview).
            - `osType` 'Windows' | 'Linux' — This property allows you to specify the supported type of the OS that application is built for. Possible values are: **Windows,** **Linux.**
            - `encryptionSettings` DiskEncryptionSettings — Describes a Encryption Settings for a Disk
              - …
            - `name` string — The disk name.
            - `vhd` VirtualHardDisk — Describes the uri of a disk.
              - …
            - `image` VirtualHardDisk — Describes the uri of a disk.
              - …
            - `caching` 'None' | 'ReadOnly' | 'ReadWrite' — Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage**
            - `writeAcceleratorEnabled` boolean — Specifies whether writeAccelerator should be enabled or disabled on the disk.
            - `diffDiskSettings` DiffDiskSettings — Describes the parameters of ephemeral disk settings that can be specified for operating system disk. Note: The ephemeral disk settings can only be specified for managed disk.
              - …
            - `createOption` 'FromImage' | 'Empty' | 'Attach' | 'Copy' | 'Restore', required — Specifies how the virtual machine disk should be created. Possible values are **Attach:** This value is used when you are using a specialized disk to create the virtual machine. **FromImage:** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. **Empty:** This value is used when creating an empty data disk. **Copy:** This value is used to create a data disk from a snapshot or another disk. **Restore:** This value is used to create a data disk from a disk restore point.
            - `diskSizeGB` integer — Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
            - `managedDisk` ManagedDiskParameters — Describes a reference to a sub-resource.
              - …
            - `deleteOption` 'Delete' | 'Detach' — Specifies the behavior of the managed disk when the VM gets deleted, for example whether the managed disk is deleted or detached. Supported values are: **Delete.** If this value is used, the managed disk is deleted when VM gets deleted. **Detach.** If this value is used, the managed disk is retained after VM gets deleted. Minimum api-version: 2021-03-01.
          - `dataDisks` DataDisk[] — Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview).
            - `lun` integer, required — Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
            - `name` string — The disk name.
            - `vhd` VirtualHardDisk — Describes the uri of a disk.
              - …
            - `image` VirtualHardDisk — Describes the uri of a disk.
              - …
            - `caching` 'None' | 'ReadOnly' | 'ReadWrite' — Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage**
            - `writeAcceleratorEnabled` boolean — Specifies whether writeAccelerator should be enabled or disabled on the disk.
            - `createOption` 'FromImage' | 'Empty' | 'Attach' | 'Copy' | 'Restore', required — Specifies how the virtual machine disk should be created. Possible values are **Attach:** This value is used when you are using a specialized disk to create the virtual machine. **FromImage:** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. **Empty:** This value is used when creating an empty data disk. **Copy:** This value is used to create a data disk from a snapshot or another disk. **Restore:** This value is used to create a data disk from a disk restore point.
            - `diskSizeGB` integer — Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
            - `managedDisk` ManagedDiskParameters — Describes a reference to a sub-resource.
              - …
            - `sourceResource` ApiEntityReference — The API entity reference.
              - …
            - `toBeDetached` boolean — Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset.
            - `detachOption` 'ForceDetach' — Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values are: **ForceDetach.** detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. **This feature is still in preview**. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
            - `deleteOption` 'Delete' | 'Detach' — Specifies the behavior of the managed disk when the VM gets deleted, for example whether the managed disk is deleted or detached. Supported values are: **Delete.** If this value is used, the managed disk is deleted when VM gets deleted. **Detach.** If this value is used, the managed disk is retained after VM gets deleted. Minimum api-version: 2021-03-01.
          - `diskControllerType` 'SCSI' | 'NVMe' — Specifies the disk controller type configured for the VM and VirtualMachineScaleSet. This property is only supported for virtual machines whose operating system disk and VM sku supports Generation 2 (https://docs.microsoft.com/en-us/azure/virtual-machines/generation-2), please check the HyperVGenerations capability returned as part of VM sku capabilities in the response of Microsoft.Compute SKUs api for the region contains V2 (https://docs.microsoft.com/rest/api/compute/resourceskus/list). For more information about Disk Controller Types supported please refer to https://aka.ms/azure-diskcontrollertypes.
        - `additionalCapabilities` AdditionalCapabilities — Enables or disables a capability on the virtual machine or virtual machine scale set.
          - `ultraSSDEnabled` boolean — The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
          - `hibernationEnabled` boolean — The flag that enables or disables hibernation capability on the VM.
        - `osProfile` OSProfile — Specifies the operating system settings for the virtual machine. Some of the settings cannot be changed once VM is provisioned.
          - `computerName` string — Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. **Max-length (Windows):** 15 characters. **Max-length (Linux):** 64 characters. For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules).
          - `adminUsername` string — Specifies the name of the administrator account. <br><br> This property cannot be updated after the VM is created. <br><br> **Windows-only restriction:** Cannot end in "." <br><br> **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". <br><br> **Minimum-length (Linux):** 1 character <br><br> **Max-length (Linux):** 64 characters <br><br> **Max-length (Windows):** 20 characters.
          - `adminPassword` string, password — Specifies the password of the administrator account. <br><br> **Minimum-length (Windows):** 8 characters <br><br> **Minimum-length (Linux):** 6 characters <br><br> **Max-length (Windows):** 123 characters <br><br> **Max-length (Linux):** 72 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" <br><br> For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/reset-rdp) <br><br> For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/troubleshoot-ssh-connection)
          - `customData` string — Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. **Note: Do not pass any secrets or passwords in customData property.** This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/). For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init).
          - `windowsConfiguration` WindowsConfiguration — Specifies Windows operating system settings on the virtual machine.
            - `provisionVMAgent` boolean — Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
            - `enableAutomaticUpdates` boolean — Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
            - `timeZone` string — Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones).
            - `additionalUnattendContent` AdditionalUnattendContent[] — Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
              - …
            - `patchSettings` PatchSettings — Specifies settings related to VM Guest Patching on Windows.
              - …
            - `winRM` WinRMConfiguration — Describes Windows Remote Management configuration of the VM
              - …
          - `linuxConfiguration` LinuxConfiguration — Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros).
            - `disablePasswordAuthentication` boolean — Specifies whether password authentication should be disabled.
            - `ssh` SshConfiguration — SSH configuration for Linux based VMs running on Azure
              - …
            - `provisionVMAgent` boolean — Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
            - `patchSettings` LinuxPatchSettings — Specifies settings related to VM Guest Patching on Linux.
              - …
            - `enableVMAgentPlatformUpdates` boolean — Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
          - `secrets` VaultSecretGroup[] — Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows).
            - `sourceVault` SubResource — Describes a reference to a sub-resource.
              - …
            - `vaultCertificates` VaultCertificate[] — The list of key vault references in SourceVault which contain certificates.
              - …
          - `allowExtensionOperations` boolean — Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
          - `requireGuestProvisionSignal` boolean — Optional property which must either be set to True or omitted.
        - `networkProfile` NetworkProfile — Specifies the network interfaces or the networking configuration of the virtual machine.
          - `networkInterfaces` NetworkInterfaceReference[] — Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
            - `id` string — The ID of the sub-resource.
          - `networkApiVersion` '2020-11-01' | '2022-11-01' — Specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
          - `networkInterfaceConfigurations` VirtualMachineNetworkInterfaceConfiguration[] — Specifies the networking configurations that will be used to create the virtual machine networking resources.
            - `name` string, required — The network interface configuration name.
            - `properties` VirtualMachineNetworkInterfaceConfigurationProperties — Describes a virtual machine network profile's IP configuration.
              - …
            - `tags` object — Resource tags applied to the networkInterface address created by this NetworkInterfaceConfiguration
        - `hardwareProfile` HardwareProfile — Specifies the hardware profile for the virtual machine.
          - `vmSize` string — Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes), [List all available virtual machine sizes in a region]( https://docs.microsoft.com/rest/api/compute/resourceskus/list), [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes). The available VM sizes depend on region and availability set.
          - `vmSizeProperties` VmSizeProperties — Specifies VM Size Property settings on the virtual machine.
            - `vCpusAvailable` integer — Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list).
            - `vCpusPerCore` integer — Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). **Setting this property to 1 also means that hyper-threading is disabled.**
        - `securityProfile` SecurityProfile — Specifies the Security profile settings for the virtual machine or virtual machine scale set.
          - `uefiSettings` UefiSettings — Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
            - `secureBootEnabled` boolean — Specifies whether secure boot should be enabled on the virtual machine. Minimum compute api-version: 2020-12-01.
            - `vTpmEnabled` boolean — Specifies whether vTPM should be enabled on the virtual machine. Minimum compute api-version: 2020-12-01.
          - `encryptionAtHost` boolean — This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
          - `securityType` 'TrustedLaunch' | 'ConfidentialVM' — Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
          - `encryptionIdentity` EncryptionIdentity — Specifies the Managed Identity used by ADE to get access token for keyvault operations.
            - `userAssignedIdentityResourceId` string — Specifies ARM Resource ID of one of the user identities associated with the VM.
          - `proxyAgentSettings` ProxyAgentSettings — Specifies ProxyAgent settings for the virtual machine or virtual machine scale set. Minimum api-version: 2023-09-01.
            - `enabled` boolean — Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
            - `mode` 'Audit' | 'Enforce' — Specifies the mode that ProxyAgent will execute on if the feature is enabled. ProxyAgent will start to audit or monitor but not enforce access control over requests to host endpoints in Audit mode, while in Enforce mode it will enforce access control. The default value is Enforce mode.
            - `keyIncarnationId` integer — Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
            - `wireServer` HostEndpointSettings — Specifies particular host endpoint settings.
              - …
            - `imds` HostEndpointSettings — Specifies particular host endpoint settings.
              - …
            - `addProxyAgentExtension` boolean — Specify whether to implicitly install the ProxyAgent Extension. This option is currently applicable only for Linux Os.
        - `diagnosticsProfile` DiagnosticsProfile — Specifies the boot diagnostic settings state. Minimum compute api-version: 2015-06-15.
          - `bootDiagnostics` BootDiagnostics — Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
            - `enabled` boolean — Whether boot diagnostics should be enabled on the Virtual Machine.
            - `storageUri` string — Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
        - `licenseType` string — Specifies that the image or disk that is being used was licensed on-premises. <br><br> Possible values for Windows Server operating system are: <br><br> Windows_Client <br><br> Windows_Server <br><br> Possible values for Linux Server operating system are: <br><br> RHEL_BYOS (for RHEL) <br><br> SLES_BYOS (for SUSE) <br><br> For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing) <br><br> [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux) <br><br> Minimum api-version: 2015-06-15
        - `extensionsTimeBudget` string — Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum compute api-version: 2020-06-01.
        - `scheduledEventsProfile` ScheduledEventsProfile — Profile for the scheduled events.
          - `terminateNotificationProfile` TerminateNotificationProfile — Profile properties for the Terminate Scheduled event.
            - `notBeforeTimeout` string — Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
            - `enable` boolean — Specifies whether the Terminate Scheduled event is enabled or disabled.
          - `osImageNotificationProfile` OSImageNotificationProfile — Profile for the OS Image Scheduled event.
            - `notBeforeTimeout` string — Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
            - `enable` boolean — Specifies whether the OS Image Scheduled event is enabled or disabled.
        - `userData` string — UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum compute api-version: 2021-03-01.
        - `capacityReservation` CapacityReservationProfile — The parameters of a capacity reservation Profile.
          - `capacityReservationGroup` SubResource — Describes a reference to a sub-resource.
            - `id` string — The ID of the sub-resource.
        - `applicationProfile` ApplicationProfile — Contains the list of gallery applications that should be made available to the VM
          - `galleryApplications` VMGalleryApplication[] — Specifies the gallery applications that should be made available to the VM
            - `tags` string — Optional, Specifies a passthrough value for more generic context.
            - `order` integer — Optional, Specifies the order in which the packages have to be installed
            - `packageReferenceId` string, required — Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
            - `configurationReference` string — Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
            - `treatFailureAsDeploymentFailure` boolean — Optional, If true, any failure for any operation in the VmApplication will fail the deployment
            - `enableAutomaticUpgrade` boolean — If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
      - `vmExtensions` BulkActionVMExtension[] — Virtual Machine Extensions Array to be applied to the Virtual Machines.
        - `name` string, required — The name of the virtual machine extension.
        - `properties` BulkActionVmExtensionProperties, required — Describes the properties of a Virtual Machine Extension.
          - `forceUpdateTag` string — How the extension handler should be forced to update even if the extension configuration has not changed.
          - `publisher` string — The name of the extension handler publisher.
          - `type` string — Specifies the type of the extension; an example is 'CustomScriptExtension'.
          - `typeHandlerVersion` string — Specifies the version of the script handler.
          - `autoUpgradeMinorVersion` boolean — Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
          - `enableAutomaticUpgrade` boolean — Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
          - `settings` object — JSON formatted public settings for the extension.
          - `protectedSettings` object — The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
          - `suppressFailures` boolean — Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
          - `protectedSettingsFromKeyVault` KeyVaultSecretReference — Describes a reference to Key Vault Secret
            - `secretUrl` string, required — The URL referencing a secret in a Key Vault.
            - `sourceVault` SubResource, required — Describes a reference to a sub-resource.
              - …
          - `provisionAfterExtensions` string[] — Collection of extension names after which this extension needs to be provisioned.
    - `virtualMachineOverrides` BulkVMConfiguration[] — JSON array that contains VM properties that should be overridden for each VM in the batch
      - `name` string — Identifier for created virtual machine. If not passed, it will be created from resource prefix.
      - `computeApiVersion` string — Specifies the Microsoft.Compute API version to use when creating underlying Virtual Machines.
      - `resourceGroupName` string — Resource group name for the virtual machine.
      - `zones` string[] — The availability zones.
      - `plan` Plan — unresolved $ref
      - `identity` VirtualMachineIdentity — Identity for the virtual machine.
        - `principalId` string — The principal id of virtual machine identity. This property will only be provided for a system assigned identity.
        - `tenantId` string — The tenant id associated with the virtual machine. This property will only be provided for a system assigned identity.
        - `type` 'SystemAssigned' | 'UserAssigned' | 'SystemAssigned, UserAssigned' | 'None' — The type of identity used for the virtual machine scale set. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user assigned identities. The type 'None' will remove any identities from the virtual machine scale set.
        - `userAssignedIdentities` object — The list of user identities associated with the Virtual Machine. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
      - `extendedLocation` AzureResourceManagerCommonTypesExtendedLocation — The complex type of the extended location.
        - `name` string, required — The name of the extended location.
        - `type` 'EdgeZone' | 'CustomLocation', required — The supported ExtendedLocation types.
      - `placement` Placement — Describes the user-defined constraints for resource hardware placement.
        - `zonePlacementPolicy` 'Any' | 'Auto' — Specifies the policy for resource's placement in availability zone. Possible values are: **Any** (used for Virtual Machines), **Auto** (used for Virtual Machine Scale Sets) - An availability zone will be automatically picked by system as part of resource creation.
        - `includeZones` string[] — This property supplements the 'zonePlacementPolicy' property. If 'zonePlacementPolicy' is set to 'Any'/'Auto', availability zone selected by the system must be present in the list of availability zones passed with 'includeZones'. If 'includeZones' is not provided, all availability zones in region will be considered for selection.
        - `excludeZones` string[] — This property supplements the 'zonePlacementPolicy' property. If 'zonePlacementPolicy' is set to 'Any'/'Auto', availability zone selected by the system must not be present in the list of availability zones passed with 'excludeZones'. If 'excludeZones' is not provided, all availability zones in region will be considered for selection.
      - `tags` object — Resource tags to apply to the virtual machines created by this bulk action.
      - `properties` BulkActionVMProperties — Describes the properties of a Virtual Machine for create.
        - `scheduledEventsPolicy` ScheduledEventsPolicy — Specifies Redeploy, Reboot and ScheduledEventsAdditionalPublishingTargets Scheduled Event related configurations.
          - `userInitiatedRedeploy` UserInitiatedRedeploy — Specifies Redeploy related Scheduled Event related configurations.
            - `automaticallyApprove` boolean — Specifies Redeploy Scheduled Event related configurations.
          - `userInitiatedReboot` UserInitiatedReboot — Specifies Reboot related Scheduled Event related configurations.
            - `automaticallyApprove` boolean — Specifies Reboot Scheduled Event related configurations.
          - `scheduledEventsAdditionalPublishingTargets` ScheduledEventsAdditionalPublishingTargets — Specifies additional publishing targets for scheduled events.
            - `eventGridAndResourceGraph` EventGridAndResourceGraph — Specifies eventGridAndResourceGraph related Scheduled Event related configurations.
              - …
          - `allInstancesDown` AllInstancesDown — Specifies if Scheduled Events should be auto-approved when all instances are down.
            - `automaticallyApprove` boolean — Specifies if Scheduled Events should be auto-approved when all instances are down. Its default value is true.
        - `storageProfile` StorageProfile — Specifies the storage settings for the virtual machine disks.
          - `imageReference` ImageReference — Describes a reference to a sub-resource.
            - `id` string — The ID of the sub-resource.
          - `osDisk` OSDisk — Specifies information about the operating system disk used by the virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview).
            - `osType` 'Windows' | 'Linux' — This property allows you to specify the supported type of the OS that application is built for. Possible values are: **Windows,** **Linux.**
            - `encryptionSettings` DiskEncryptionSettings — Describes a Encryption Settings for a Disk
              - …
            - `name` string — The disk name.
            - `vhd` VirtualHardDisk — Describes the uri of a disk.
              - …
            - `image` VirtualHardDisk — Describes the uri of a disk.
              - …
            - `caching` 'None' | 'ReadOnly' | 'ReadWrite' — Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage**
            - `writeAcceleratorEnabled` boolean — Specifies whether writeAccelerator should be enabled or disabled on the disk.
            - `diffDiskSettings` DiffDiskSettings — Describes the parameters of ephemeral disk settings that can be specified for operating system disk. Note: The ephemeral disk settings can only be specified for managed disk.
              - …
            - `createOption` 'FromImage' | 'Empty' | 'Attach' | 'Copy' | 'Restore', required — Specifies how the virtual machine disk should be created. Possible values are **Attach:** This value is used when you are using a specialized disk to create the virtual machine. **FromImage:** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. **Empty:** This value is used when creating an empty data disk. **Copy:** This value is used to create a data disk from a snapshot or another disk. **Restore:** This value is used to create a data disk from a disk restore point.
            - `diskSizeGB` integer — Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
            - `managedDisk` ManagedDiskParameters — Describes a reference to a sub-resource.
              - …
            - `deleteOption` 'Delete' | 'Detach' — Specifies the behavior of the managed disk when the VM gets deleted, for example whether the managed disk is deleted or detached. Supported values are: **Delete.** If this value is used, the managed disk is deleted when VM gets deleted. **Detach.** If this value is used, the managed disk is retained after VM gets deleted. Minimum api-version: 2021-03-01.
          - `dataDisks` DataDisk[] — Specifies the parameters that are used to add a data disk to a virtual machine. For more information about disks, see [About disks and VHDs for Azure virtual machines](https://docs.microsoft.com/azure/virtual-machines/managed-disks-overview).
            - `lun` integer, required — Specifies the logical unit number of the data disk. This value is used to identify data disks within the VM and therefore must be unique for each data disk attached to a VM.
            - `name` string — The disk name.
            - `vhd` VirtualHardDisk — Describes the uri of a disk.
              - …
            - `image` VirtualHardDisk — Describes the uri of a disk.
              - …
            - `caching` 'None' | 'ReadOnly' | 'ReadWrite' — Specifies the caching requirements. Possible values are: **None,** **ReadOnly,** **ReadWrite.** The default values are: **None for Standard storage. ReadOnly for Premium storage**
            - `writeAcceleratorEnabled` boolean — Specifies whether writeAccelerator should be enabled or disabled on the disk.
            - `createOption` 'FromImage' | 'Empty' | 'Attach' | 'Copy' | 'Restore', required — Specifies how the virtual machine disk should be created. Possible values are **Attach:** This value is used when you are using a specialized disk to create the virtual machine. **FromImage:** This value is used when you are using an image to create the virtual machine. If you are using a platform image, you should also use the imageReference element described above. If you are using a marketplace image, you should also use the plan element previously described. **Empty:** This value is used when creating an empty data disk. **Copy:** This value is used to create a data disk from a snapshot or another disk. **Restore:** This value is used to create a data disk from a disk restore point.
            - `diskSizeGB` integer — Specifies the size of an empty data disk in gigabytes. This element can be used to overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB' is the number of bytes x 1024^3 for the disk and the value cannot be larger than 1023.
            - `managedDisk` ManagedDiskParameters — Describes a reference to a sub-resource.
              - …
            - `sourceResource` ApiEntityReference — The API entity reference.
              - …
            - `toBeDetached` boolean — Specifies whether the data disk is in process of detachment from the VirtualMachine/VirtualMachineScaleset.
            - `detachOption` 'ForceDetach' — Specifies the detach behavior to be used while detaching a disk or which is already in the process of detachment from the virtual machine. Supported values are: **ForceDetach.** detachOption: **ForceDetach** is applicable only for managed data disks. If a previous detachment attempt of the data disk did not complete due to an unexpected failure from the virtual machine and the disk is still not released then use force-detach as a last resort option to detach the disk forcibly from the VM. All writes might not have been flushed when using this detach behavior. **This feature is still in preview**. To force-detach a data disk update toBeDetached to 'true' along with setting detachOption: 'ForceDetach'.
            - `deleteOption` 'Delete' | 'Detach' — Specifies the behavior of the managed disk when the VM gets deleted, for example whether the managed disk is deleted or detached. Supported values are: **Delete.** If this value is used, the managed disk is deleted when VM gets deleted. **Detach.** If this value is used, the managed disk is retained after VM gets deleted. Minimum api-version: 2021-03-01.
          - `diskControllerType` 'SCSI' | 'NVMe' — Specifies the disk controller type configured for the VM and VirtualMachineScaleSet. This property is only supported for virtual machines whose operating system disk and VM sku supports Generation 2 (https://docs.microsoft.com/en-us/azure/virtual-machines/generation-2), please check the HyperVGenerations capability returned as part of VM sku capabilities in the response of Microsoft.Compute SKUs api for the region contains V2 (https://docs.microsoft.com/rest/api/compute/resourceskus/list). For more information about Disk Controller Types supported please refer to https://aka.ms/azure-diskcontrollertypes.
        - `additionalCapabilities` AdditionalCapabilities — Enables or disables a capability on the virtual machine or virtual machine scale set.
          - `ultraSSDEnabled` boolean — The flag that enables or disables a capability to have one or more managed data disks with UltraSSD_LRS storage account type on the VM or VMSS. Managed disks with storage account type UltraSSD_LRS can be added to a virtual machine or virtual machine scale set only if this property is enabled.
          - `hibernationEnabled` boolean — The flag that enables or disables hibernation capability on the VM.
        - `osProfile` OSProfile — Specifies the operating system settings for the virtual machine. Some of the settings cannot be changed once VM is provisioned.
          - `computerName` string — Specifies the host OS name of the virtual machine. This name cannot be updated after the VM is created. **Max-length (Windows):** 15 characters. **Max-length (Linux):** 64 characters. For naming conventions and restrictions see [Azure infrastructure services implementation guidelines](https://docs.microsoft.com/azure/azure-resource-manager/management/resource-name-rules).
          - `adminUsername` string — Specifies the name of the administrator account. <br><br> This property cannot be updated after the VM is created. <br><br> **Windows-only restriction:** Cannot end in "." <br><br> **Disallowed values:** "administrator", "admin", "user", "user1", "test", "user2", "test1", "user3", "admin1", "1", "123", "a", "actuser", "adm", "admin2", "aspnet", "backup", "console", "david", "guest", "john", "owner", "root", "server", "sql", "support", "support_388945a0", "sys", "test2", "test3", "user4", "user5". <br><br> **Minimum-length (Linux):** 1 character <br><br> **Max-length (Linux):** 64 characters <br><br> **Max-length (Windows):** 20 characters.
          - `adminPassword` string, password — Specifies the password of the administrator account. <br><br> **Minimum-length (Windows):** 8 characters <br><br> **Minimum-length (Linux):** 6 characters <br><br> **Max-length (Windows):** 123 characters <br><br> **Max-length (Linux):** 72 characters <br><br> **Complexity requirements:** 3 out of 4 conditions below need to be fulfilled <br> Has lower characters <br>Has upper characters <br> Has a digit <br> Has a special character (Regex match [\W_]) <br><br> **Disallowed values:** "abc@123", "P@$$w0rd", "P@ssw0rd", "P@ssword123", "Pa$$word", "pass@word1", "Password!", "Password1", "Password22", "iloveyou!" <br><br> For resetting the password, see [How to reset the Remote Desktop service or its login password in a Windows VM](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/reset-rdp) <br><br> For resetting root password, see [Manage users, SSH, and check or repair disks on Azure Linux VMs using the VMAccess Extension](https://docs.microsoft.com/troubleshoot/azure/virtual-machines/troubleshoot-ssh-connection)
          - `customData` string — Specifies a base-64 encoded string of custom data. The base-64 encoded string is decoded to a binary array that is saved as a file on the Virtual Machine. The maximum length of the binary array is 65535 bytes. **Note: Do not pass any secrets or passwords in customData property.** This property cannot be updated after the VM is created. The property 'customData' is passed to the VM to be saved as a file, for more information see [Custom Data on Azure VMs](https://azure.microsoft.com/blog/custom-data-and-cloud-init-on-windows-azure/). For using cloud-init for your Linux VM, see [Using cloud-init to customize a Linux VM during creation](https://docs.microsoft.com/azure/virtual-machines/linux/using-cloud-init).
          - `windowsConfiguration` WindowsConfiguration — Specifies Windows operating system settings on the virtual machine.
            - `provisionVMAgent` boolean — Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, it is set to true by default. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
            - `enableAutomaticUpdates` boolean — Indicates whether Automatic Updates is enabled for the Windows virtual machine. Default value is true. For virtual machine scale sets, this property can be updated and updates will take effect on OS reprovisioning.
            - `timeZone` string — Specifies the time zone of the virtual machine. e.g. "Pacific Standard Time". Possible values can be [TimeZoneInfo.Id](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id) value from time zones returned by [TimeZoneInfo.GetSystemTimeZones](https://docs.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones).
            - `additionalUnattendContent` AdditionalUnattendContent[] — Specifies additional base-64 encoded XML formatted information that can be included in the Unattend.xml file, which is used by Windows Setup.
              - …
            - `patchSettings` PatchSettings — Specifies settings related to VM Guest Patching on Windows.
              - …
            - `winRM` WinRMConfiguration — Describes Windows Remote Management configuration of the VM
              - …
          - `linuxConfiguration` LinuxConfiguration — Specifies the Linux operating system settings on the virtual machine. For a list of supported Linux distributions, see [Linux on Azure-Endorsed Distributions](https://docs.microsoft.com/azure/virtual-machines/linux/endorsed-distros).
            - `disablePasswordAuthentication` boolean — Specifies whether password authentication should be disabled.
            - `ssh` SshConfiguration — SSH configuration for Linux based VMs running on Azure
              - …
            - `provisionVMAgent` boolean — Indicates whether virtual machine agent should be provisioned on the virtual machine. When this property is not specified in the request body, default behavior is to set it to true. This will ensure that VM Agent is installed on the VM so that extensions can be added to the VM later.
            - `patchSettings` LinuxPatchSettings — Specifies settings related to VM Guest Patching on Linux.
              - …
            - `enableVMAgentPlatformUpdates` boolean — Indicates whether VMAgent Platform Updates is enabled for the Linux virtual machine. Default value is false.
          - `secrets` VaultSecretGroup[] — Specifies set of certificates that should be installed onto the virtual machine. To install certificates on a virtual machine it is recommended to use the [Azure Key Vault virtual machine extension for Linux](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-linux) or the [Azure Key Vault virtual machine extension for Windows](https://docs.microsoft.com/azure/virtual-machines/extensions/key-vault-windows).
            - `sourceVault` SubResource — Describes a reference to a sub-resource.
              - …
            - `vaultCertificates` VaultCertificate[] — The list of key vault references in SourceVault which contain certificates.
              - …
          - `allowExtensionOperations` boolean — Specifies whether extension operations should be allowed on the virtual machine. This may only be set to False when no extensions are present on the virtual machine.
          - `requireGuestProvisionSignal` boolean — Optional property which must either be set to True or omitted.
        - `networkProfile` NetworkProfile — Specifies the network interfaces or the networking configuration of the virtual machine.
          - `networkInterfaces` NetworkInterfaceReference[] — Specifies the list of resource Ids for the network interfaces associated with the virtual machine.
            - `id` string — The ID of the sub-resource.
          - `networkApiVersion` '2020-11-01' | '2022-11-01' — Specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations
          - `networkInterfaceConfigurations` VirtualMachineNetworkInterfaceConfiguration[] — Specifies the networking configurations that will be used to create the virtual machine networking resources.
            - `name` string, required — The network interface configuration name.
            - `properties` VirtualMachineNetworkInterfaceConfigurationProperties — Describes a virtual machine network profile's IP configuration.
              - …
            - `tags` object — Resource tags applied to the networkInterface address created by this NetworkInterfaceConfiguration
        - `hardwareProfile` HardwareProfile — Specifies the hardware profile for the virtual machine.
          - `vmSize` string — Specifies the size of the virtual machine. The enum data type is currently deprecated and will be removed by December 23rd 2023. The recommended way to get the list of available sizes is using these APIs: [List all available virtual machine sizes in an availability set](https://docs.microsoft.com/rest/api/compute/availabilitysets/listavailablesizes), [List all available virtual machine sizes in a region]( https://docs.microsoft.com/rest/api/compute/resourceskus/list), [List all available virtual machine sizes for resizing](https://docs.microsoft.com/rest/api/compute/virtualmachines/listavailablesizes). For more information about virtual machine sizes, see [Sizes for virtual machines](https://docs.microsoft.com/azure/virtual-machines/sizes). The available VM sizes depend on region and availability set.
          - `vmSizeProperties` VmSizeProperties — Specifies VM Size Property settings on the virtual machine.
            - `vCpusAvailable` integer — Specifies the number of vCPUs available for the VM. When this property is not specified in the request body the default behavior is to set it to the value of vCPUs available for that VM size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list).
            - `vCpusPerCore` integer — Specifies the vCPU to physical core ratio. When this property is not specified in the request body the default behavior is set to the value of vCPUsPerCore for the VM Size exposed in api response of [List all available virtual machine sizes in a region](https://docs.microsoft.com/en-us/rest/api/compute/resource-skus/list). **Setting this property to 1 also means that hyper-threading is disabled.**
        - `securityProfile` SecurityProfile — Specifies the Security profile settings for the virtual machine or virtual machine scale set.
          - `uefiSettings` UefiSettings — Specifies the security settings like secure boot and vTPM used while creating the virtual machine. Minimum api-version: 2020-12-01.
            - `secureBootEnabled` boolean — Specifies whether secure boot should be enabled on the virtual machine. Minimum compute api-version: 2020-12-01.
            - `vTpmEnabled` boolean — Specifies whether vTPM should be enabled on the virtual machine. Minimum compute api-version: 2020-12-01.
          - `encryptionAtHost` boolean — This property can be used by user in the request to enable or disable the Host Encryption for the virtual machine or virtual machine scale set. This will enable the encryption for all the disks including Resource/Temp disk at host itself. The default behavior is: The Encryption at host will be disabled unless this property is set to true for the resource.
          - `securityType` 'TrustedLaunch' | 'ConfidentialVM' — Specifies the SecurityType of the virtual machine. It has to be set to any specified value to enable UefiSettings. The default behavior is: UefiSettings will not be enabled unless this property is set.
          - `encryptionIdentity` EncryptionIdentity — Specifies the Managed Identity used by ADE to get access token for keyvault operations.
            - `userAssignedIdentityResourceId` string — Specifies ARM Resource ID of one of the user identities associated with the VM.
          - `proxyAgentSettings` ProxyAgentSettings — Specifies ProxyAgent settings for the virtual machine or virtual machine scale set. Minimum api-version: 2023-09-01.
            - `enabled` boolean — Specifies whether ProxyAgent feature should be enabled on the virtual machine or virtual machine scale set.
            - `mode` 'Audit' | 'Enforce' — Specifies the mode that ProxyAgent will execute on if the feature is enabled. ProxyAgent will start to audit or monitor but not enforce access control over requests to host endpoints in Audit mode, while in Enforce mode it will enforce access control. The default value is Enforce mode.
            - `keyIncarnationId` integer — Increase the value of this property allows users to reset the key used for securing communication channel between guest and host.
            - `wireServer` HostEndpointSettings — Specifies particular host endpoint settings.
              - …
            - `imds` HostEndpointSettings — Specifies particular host endpoint settings.
              - …
            - `addProxyAgentExtension` boolean — Specify whether to implicitly install the ProxyAgent Extension. This option is currently applicable only for Linux Os.
        - `diagnosticsProfile` DiagnosticsProfile — Specifies the boot diagnostic settings state. Minimum compute api-version: 2015-06-15.
          - `bootDiagnostics` BootDiagnostics — Boot Diagnostics is a debugging feature which allows you to view Console Output and Screenshot to diagnose VM status. You can easily view the output of your console log. Azure also enables you to see a screenshot of the VM from the hypervisor.
            - `enabled` boolean — Whether boot diagnostics should be enabled on the Virtual Machine.
            - `storageUri` string — Uri of the storage account to use for placing the console output and screenshot. If storageUri is not specified while enabling boot diagnostics, managed storage will be used.
        - `licenseType` string — Specifies that the image or disk that is being used was licensed on-premises. <br><br> Possible values for Windows Server operating system are: <br><br> Windows_Client <br><br> Windows_Server <br><br> Possible values for Linux Server operating system are: <br><br> RHEL_BYOS (for RHEL) <br><br> SLES_BYOS (for SUSE) <br><br> For more information, see [Azure Hybrid Use Benefit for Windows Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing) <br><br> [Azure Hybrid Use Benefit for Linux Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux) <br><br> Minimum api-version: 2015-06-15
        - `extensionsTimeBudget` string — Specifies the time alloted for all extensions to start. The time duration should be between 15 minutes and 120 minutes (inclusive) and should be specified in ISO 8601 format. The default value is 90 minutes (PT1H30M). Minimum compute api-version: 2020-06-01.
        - `scheduledEventsProfile` ScheduledEventsProfile — Profile for the scheduled events.
          - `terminateNotificationProfile` TerminateNotificationProfile — Profile properties for the Terminate Scheduled event.
            - `notBeforeTimeout` string — Configurable length of time a Virtual Machine being deleted will have to potentially approve the Terminate Scheduled Event before the event is auto approved (timed out). The configuration must be specified in ISO 8601 format, the default value is 5 minutes (PT5M)
            - `enable` boolean — Specifies whether the Terminate Scheduled event is enabled or disabled.
          - `osImageNotificationProfile` OSImageNotificationProfile — Profile for the OS Image Scheduled event.
            - `notBeforeTimeout` string — Length of time a Virtual Machine being reimaged or having its OS upgraded will have to potentially approve the OS Image Scheduled Event before the event is auto approved (timed out). The configuration is specified in ISO 8601 format, and the value must be 15 minutes (PT15M)
            - `enable` boolean — Specifies whether the OS Image Scheduled event is enabled or disabled.
        - `userData` string — UserData for the VM, which must be base-64 encoded. Customer should not pass any secrets in here. Minimum compute api-version: 2021-03-01.
        - `capacityReservation` CapacityReservationProfile — The parameters of a capacity reservation Profile.
          - `capacityReservationGroup` SubResource — Describes a reference to a sub-resource.
            - `id` string — The ID of the sub-resource.
        - `applicationProfile` ApplicationProfile — Contains the list of gallery applications that should be made available to the VM
          - `galleryApplications` VMGalleryApplication[] — Specifies the gallery applications that should be made available to the VM
            - `tags` string — Optional, Specifies a passthrough value for more generic context.
            - `order` integer — Optional, Specifies the order in which the packages have to be installed
            - `packageReferenceId` string, required — Specifies the GalleryApplicationVersion resource id on the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}
            - `configurationReference` string — Optional, Specifies the uri to an azure blob that will replace the default configuration for the package if provided
            - `treatFailureAsDeploymentFailure` boolean — Optional, If true, any failure for any operation in the VmApplication will fail the deployment
            - `enableAutomaticUpgrade` boolean — If set to true, when a new Gallery Application version is available in PIR/SIG, it will be automatically updated for the VM/VMSS
      - `vmExtensions` BulkActionVMExtension[] — Virtual Machine Extensions Array to be applied to the Virtual Machines.
        - `name` string, required — The name of the virtual machine extension.
        - `properties` BulkActionVmExtensionProperties, required — Describes the properties of a Virtual Machine Extension.
          - `forceUpdateTag` string — How the extension handler should be forced to update even if the extension configuration has not changed.
          - `publisher` string — The name of the extension handler publisher.
          - `type` string — Specifies the type of the extension; an example is 'CustomScriptExtension'.
          - `typeHandlerVersion` string — Specifies the version of the script handler.
          - `autoUpgradeMinorVersion` boolean — Indicates whether the extension should use a newer minor version if one is available at deployment time. Once deployed, however, the extension will not upgrade minor versions unless redeployed, even with this property set to true.
          - `enableAutomaticUpgrade` boolean — Indicates whether the extension should be automatically upgraded by the platform if there is a newer version of the extension available.
          - `settings` object — JSON formatted public settings for the extension.
          - `protectedSettings` object — The extension can contain either protectedSettings or protectedSettingsFromKeyVault or no protected settings at all.
          - `suppressFailures` boolean — Indicates whether failures stemming from the extension will be suppressed (Operational failures such as not connecting to the VM will not be suppressed regardless of this value). The default is false.
          - `protectedSettingsFromKeyVault` KeyVaultSecretReference — Describes a reference to Key Vault Secret
            - `secretUrl` string, required — The URL referencing a secret in a Key Vault.
            - `sourceVault` SubResource, required — Describes a reference to a sub-resource.
              - …
          - `provisionAfterExtensions` string[] — Collection of extension names after which this extension needs to be provisioned.
    - `resourceCount` integer, required — Number of VMs to be created
    - `resourcePrefix` string — If resourceOverrides doesn't contain name, service will create name based on prefix and resourceCount
    - `flexProperties` FlexProperties, required — The flex properties for flexible VM creation
      - `vmSizeProfiles` VmSizeProfile[], required — The list of VM size profiles to use for flex creation
        - `name` string, required — The name of the VM size, eg Standard_D2ads_v5
        - `rank` integer — The rank of this VM size in the priority order
      - `osType` 'Windows' | 'Linux', required — The supported operating system types for flex VM creation
      - `priorityProfile` PriorityProfile, required — The priority profile for flex VM creation
        - `type` 'Regular' | 'Spot' — The priority type for VM allocation
        - `allocationStrategy` 'LowestPrice' | 'Prioritized' | 'CapacityOptimized' — The allocation strategy for VM size selection
      - `zoneAllocationPolicy` ZoneAllocationPolicy — The zone allocation policy for distributing VMs across availability zones
        - `distributionStrategy` 'BestEffortSingleZone' | 'Prioritized' | 'BestEffortBalanced' | 'StrictBalanced', required — The distribution strategy for zone allocation
        - `zonePreferences` ZonePreference[] — The zone preferences for allocation priority
          - `zone` string, required — The zone identifier
          - `rank` integer — The rank of this zone in the priority order
  - `executionParameters` ExecutionParameters, required — Extra details needed to run the user's request
    - `optimizationPreference` 'Cost' | 'Availability' | 'CostAvailabilityBalanced' — The preferences customers can select to optimize their requests to ScheduledActions
    - `retryPolicy` RetryPolicy — The retry policy for the user request
      - `retryCount` integer — Retry count for user request
      - `retryWindowInMinutes` integer — Retry window in minutes for user request
      - `onFailureAction` 'Unknown' | 'Start' | 'Deallocate' | 'Hibernate' | 'Create' | 'Delete' — The kind of operation types that can be performed on resources using ScheduledActions
  - `correlationid` string — Correlationid item

## Response `200`

Azure operation completed successfully.

- CreateFlexResourceOperationResponse — The response from a create flex request
  - `description` string, required — The description of the operation response
  - `type` string, required — The type of resources used in the create flex request eg virtual machines
  - `location` string, required — Represents an Azure geography region where supported resource providers live.
  - `results` ResourceOperation[] — The results from the create flex request if no errors exist
    - `resourceId` string, arm-id — Unique identifier for the resource involved in the operation, eg ArmId
    - `errorCode` string — Resource level error code if it exists
    - `errorDetails` string — Resource level error details if they exist
    - `operation` ResourceOperationDetails — The details of a response from an operation on a resource
      - `operationId` string, required — Operation identifier for the unique operation
      - `resourceId` string, arm-id — Unique identifier for the resource involved in the operation, eg ArmId
      - `opType` 'Unknown' | 'Start' | 'Deallocate' | 'Hibernate' | 'Create' | 'Delete' — Type of operation performed on the resources
      - `subscriptionId` string — Subscription id attached to the request
      - `deadline` string, date-time — Deadline for the operation
      - `deadlineType` 'Unknown' | 'InitiateAt' | 'CompleteBy' — Type of deadline of the operation
      - `state` 'Unknown' | 'PendingScheduling' | 'Scheduled' | 'PendingExecution' | 'Executing' | 'Succeeded' | 'Failed' | 'Cancelled' | 'Blocked' — Current state of the operation
      - `timezone` string — Timezone for the operation
      - `timeZone` string — Timezone for the operation
      - `resourceOperationError` ResourceOperationError — These describe errors that occur at the resource level
        - `errorCode` string, required — Code for the error eg 404, 500
        - `errorDetails` string, required — Detailed message about the error
      - `fallbackOperationInfo` FallbackOperationInfo — Describes the fallback operation that was performed
        - `lastOpType` 'Unknown' | 'Start' | 'Deallocate' | 'Hibernate' | 'Create' | 'Delete', required — The kind of operation types that can be performed on resources using ScheduledActions
        - `status` string, required — The status of the fallback operation
        - `error` ResourceOperationError — These describe errors that occur at the resource level
          - `errorCode` string, required — Code for the error eg 404, 500
          - `errorDetails` string, required — Detailed message about the error
      - `completedAt` string, date-time — Time the operation was complete if errors are null
      - `retryPolicy` RetryPolicy — The retry policy for the user request
        - `retryCount` integer — Retry count for user request
        - `retryWindowInMinutes` integer — Retry window in minutes for user request
        - `onFailureAction` 'Unknown' | 'Start' | 'Deallocate' | 'Hibernate' | 'Create' | 'Delete' — The kind of operation types that can be performed on resources using ScheduledActions

## Other responses

- `default` — An unexpected error response.

---

[API](https://skmtc.net/azure/apis/computeschedule-microsoft-computeschedule.md) · [All operations](https://skmtc.net/azure/apis/computeschedule-microsoft-computeschedule/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/azure/computeschedule-microsoft-computeschedule/revisions/5ea978da3356/schema)
