diff --git a/specification/azurefleet/AzureFleet.Management/main.tsp b/specification/azurefleet/AzureFleet.Management/main.tsp index 845f7c95f76c..0f63d3b5540d 100644 --- a/specification/azurefleet/AzureFleet.Management/main.tsp +++ b/specification/azurefleet/AzureFleet.Management/main.tsp @@ -37,6 +37,12 @@ enum Versions { @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @doc("Public Api version") v2024_11_01: "2024-11-01", + + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @useDependency(Azure.Core.Versions.v1_0_Preview_2) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) + @doc("Public Api version") + v2025_03_01: "2025-03-01", } interface Operations extends Azure.ResourceManager.Operations {} diff --git a/specification/azurefleet/resource-manager/Microsoft.AzureFleet/stable/2025-03-01/azurefleet.json b/specification/azurefleet/resource-manager/Microsoft.AzureFleet/stable/2025-03-01/azurefleet.json new file mode 100644 index 000000000000..eeea766aeb6c --- /dev/null +++ b/specification/azurefleet/resource-manager/Microsoft.AzureFleet/stable/2025-03-01/azurefleet.json @@ -0,0 +1,3550 @@ +{ + "swagger": "2.0", + "info": { + "title": "Microsoft.AzureFleet", + "version": "2025-03-01", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "Fleets" + } + ], + "paths": { + "/providers/Microsoft.AzureFleet/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.AzureFleet/fleets": { + "get": { + "operationId": "Fleets_ListBySubscription", + "tags": [ + "Fleets" + ], + "description": "List Fleet resources by subscription ID", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/FleetListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets": { + "get": { + "operationId": "Fleets_ListByResourceGroup", + "tags": [ + "Fleets" + ], + "description": "List Fleet resources by resource group", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/FleetListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AzureFleet/fleets/{fleetName}": { + "get": { + "operationId": "Fleets_Get", + "tags": [ + "Fleets" + ], + "description": "Get a Fleet", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "fleetName", + "in": "path", + "description": "The name of the Compute Fleet", + "required": true, + "type": "string", + "pattern": "^[^_\\W][\\w\\-._]{0,79}(?
Possible values for Windows Server operating system are:

\nWindows_Client

Windows_Server

Possible values for Linux\nServer operating system are:

RHEL_BYOS (for RHEL)

SLES_BYOS\n(for SUSE)

For more information, see [Azure Hybrid Use Benefit for\nWindows\nServer](https://learn.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)\n

[Azure Hybrid Use Benefit for Linux\nServer](https://learn.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)\n

Minimum api-version: 2015-06-15" + }, + "scheduledEventsProfile": { + "$ref": "#/definitions/ScheduledEventsProfile", + "description": "Specifies Scheduled Event related configurations." + }, + "userData": { + "type": "string", + "description": "UserData for the virtual machines in the scale set, which must be base-64\nencoded. Customer should not pass any secrets in here. Minimum api-version:\n2021-03-01." + }, + "capacityReservation": { + "$ref": "#/definitions/CapacityReservationProfile", + "description": "Specifies the capacity reservation related details of a scale set. Minimum\napi-version: 2021-04-01." + }, + "applicationProfile": { + "$ref": "#/definitions/ApplicationProfile", + "description": "Specifies the gallery applications that should be made available to the VM/VMSS" + }, + "hardwareProfile": { + "$ref": "#/definitions/VirtualMachineScaleSetHardwareProfile", + "description": "Specifies the hardware profile related details of a scale set. Minimum\napi-version: 2021-11-01." + }, + "serviceArtifactReference": { + "$ref": "#/definitions/ServiceArtifactReference", + "description": "Specifies the service artifact reference id used to set same image version for\nall virtual machines in the scale set when using 'latest' image version.\nMinimum api-version: 2022-11-01" + }, + "securityPostureReference": { + "$ref": "#/definitions/SecurityPostureReference", + "description": "Specifies the security posture to be used for all virtual machines in the scale\nset. Minimum api-version: 2023-03-01" + }, + "timeCreated": { + "type": "string", + "format": "date-time", + "description": "Specifies the time in which this VM profile for the Virtual Machine Scale Set\nwas created. Minimum API version for this property is 2023-09-01. This value\nwill be added to VMSS Flex VM tags when creating/updating the VMSS VM Profile\nwith minimum api-version 2023-09-01. Examples: \"2024-07-01T00:00:01.1234567+00:00\"", + "readOnly": true + } + } + }, + "BootDiagnostics": { + "type": "object", + "description": "Boot Diagnostics is a debugging feature which allows you to view Console Output\nand Screenshot to diagnose VM status. You can easily view the output of your\nconsole log. Azure also enables you to see a screenshot of the VM from the\nhypervisor.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether boot diagnostics should be enabled on the Virtual Machine." + }, + "storageUri": { + "type": "string", + "format": "uri", + "description": "Uri of the storage account to use for placing the console output and\nscreenshot. If storageUri is not specified while enabling boot diagnostics,\nmanaged storage will be used." + } + } + }, + "CachingTypes": { + "type": "string", + "description": "Specifies the caching requirements.", + "enum": [ + "None", + "ReadOnly", + "ReadWrite" + ], + "x-ms-enum": { + "name": "CachingTypes", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "'None' is default for Standard Storage" + }, + { + "name": "ReadOnly", + "value": "ReadOnly", + "description": "'ReadOnly' is default for Premium Storage" + }, + { + "name": "ReadWrite", + "value": "ReadWrite", + "description": "'ReadWrite' is default for OS Disk" + } + ] + } + }, + "CapacityReservationProfile": { + "type": "object", + "description": "The parameters of a capacity reservation Profile.", + "properties": { + "capacityReservationGroup": { + "$ref": "#/definitions/SubResource", + "description": "Specifies the capacity reservation group resource id that should be used for\nallocating the virtual machine or scaleset vm instances provided enough\ncapacity has been reserved. Please refer to https://aka.ms/CapacityReservation\nfor more details." + } + } + }, + "ComputeProfile": { + "type": "object", + "description": "Compute Profile to use for running user's workloads.", + "properties": { + "baseVirtualMachineProfile": { + "$ref": "#/definitions/BaseVirtualMachineProfile", + "description": "Base Virtual Machine Profile Properties to be specified according to \"specification/compute/resource-manager/Microsoft.Compute/ComputeRP/stable/{computeApiVersion}/virtualMachineScaleSet.json#/definitions/VirtualMachineScaleSetVMProfile\"" + }, + "computeApiVersion": { + "type": "string", + "description": "Specifies the Microsoft.Compute API version to use when creating underlying Virtual Machine scale sets and Virtual Machines.\nThe default value will be the latest supported computeApiVersion by Compute Fleet." + }, + "platformFaultDomainCount": { + "type": "integer", + "format": "int32", + "description": "Specifies the number of fault domains to use when creating the underlying VMSS.\nA fault domain is a logical group of hardware within an Azure datacenter.\nVMs in the same fault domain share a common power source and network switch.\nIf not specified, defaults to 1, which represents \"Max Spreading\" (using as many fault domains as possible).\nThis property cannot be updated." + }, + "additionalVirtualMachineCapabilities": { + "$ref": "#/definitions/AdditionalCapabilities", + "description": "Specifies VMSS and VM API entity models support two additional capabilities as of today: ultraSSDEnabled and hibernationEnabled.\nultraSSDEnabled: Enables UltraSSD_LRS storage account type on the VMSS VMs.\nhibernationEnabled: Enables the hibernation capability on the VMSS VMs.\nDefault value is null if not specified. This property cannot be updated once set." + } + }, + "required": [ + "baseVirtualMachineProfile" + ] + }, + "CpuManufacturer": { + "type": "string", + "description": "Cpu Manufacturers supported by Azure VMs.", + "enum": [ + "Intel", + "AMD", + "Microsoft", + "Ampere" + ], + "x-ms-enum": { + "name": "CpuManufacturer", + "modelAsString": true, + "values": [ + { + "name": "Intel", + "value": "Intel", + "description": "Intel CPU." + }, + { + "name": "AMD", + "value": "AMD", + "description": "AMD CPU." + }, + { + "name": "Microsoft", + "value": "Microsoft", + "description": "Microsoft CPU." + }, + { + "name": "Ampere", + "value": "Ampere", + "description": "Ampere CPU." + } + ] + } + }, + "DeleteOptions": { + "type": "string", + "description": "Specify what happens to the network interface when the VM is deleted", + "enum": [ + "Delete", + "Detach" + ], + "x-ms-enum": { + "name": "DeleteOptions", + "modelAsString": true, + "values": [ + { + "name": "Delete", + "value": "Delete", + "description": "Delete Option" + }, + { + "name": "Detach", + "value": "Detach", + "description": "Detach Option" + } + ] + } + }, + "DiagnosticsProfile": { + "type": "object", + "description": "Specifies the boot diagnostic settings state. Minimum api-version: 2015-06-15.", + "properties": { + "bootDiagnostics": { + "$ref": "#/definitions/BootDiagnostics", + "description": "Boot Diagnostics is a debugging feature which allows you to view Console Output\nand Screenshot to diagnose VM status. **NOTE**: If storageUri is being\nspecified then ensure that the storage account is in the same region and\nsubscription as the VM. You can easily view the output of your console log.\nAzure also enables you to see a screenshot of the VM from the hypervisor." + } + } + }, + "DiffDiskOptions": { + "type": "string", + "description": "Specifies the ephemeral disk option for operating system disk.", + "enum": [ + "Local" + ], + "x-ms-enum": { + "name": "DiffDiskOptions", + "modelAsString": true, + "values": [ + { + "name": "Local", + "value": "Local", + "description": "Local Option." + } + ] + } + }, + "DiffDiskPlacement": { + "type": "string", + "description": "Specifies the ephemeral disk placement for operating system disk. This property\ncan be used by user in the request to choose the location i.e, cache disk or\nresource disk space for Ephemeral OS disk provisioning. For more information on\nEphemeral OS disk size requirements, please refer Ephemeral OS disk size\nrequirements for Windows VM at\nhttps://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements\nand Linux VM at\nhttps://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements\nMinimum api-version for NvmeDisk: 2024-03-01.", + "enum": [ + "CacheDisk", + "ResourceDisk", + "NvmeDisk" + ], + "x-ms-enum": { + "name": "DiffDiskPlacement", + "modelAsString": true, + "values": [ + { + "name": "CacheDisk", + "value": "CacheDisk", + "description": "CacheDisk option." + }, + { + "name": "ResourceDisk", + "value": "ResourceDisk", + "description": "Resource Disk option." + }, + { + "name": "NvmeDisk", + "value": "NvmeDisk", + "description": "NvmeDisk option." + } + ] + } + }, + "DiffDiskSettings": { + "type": "object", + "description": "Describes the parameters of ephemeral disk settings that can be specified for\noperating system disk. **Note:** The ephemeral disk settings can only be\nspecified for managed disk.", + "properties": { + "option": { + "$ref": "#/definitions/DiffDiskOptions", + "description": "Specifies the ephemeral disk settings for operating system disk." + }, + "placement": { + "$ref": "#/definitions/DiffDiskPlacement", + "description": "Specifies the ephemeral disk placement for operating system disk. Possible\nvalues are: **CacheDisk,** **ResourceDisk.** The defaulting behavior is:\n**CacheDisk** if one is configured for the VM size otherwise **ResourceDisk**\nis used. Refer to the VM size documentation for Windows VM at\nhttps://learn.microsoft.com/azure/virtual-machines/windows/sizes and Linux VM at\nhttps://learn.microsoft.com/azure/virtual-machines/linux/sizes to check which VM\nsizes exposes a cache disk." + } + } + }, + "DiskControllerTypes": { + "type": "string", + "description": "Specifies the disk controller type configured for the VM and\nVirtualMachineScaleSet. This property is only supported for virtual machines\nwhose operating system disk and VM sku supports Generation 2\n(https://learn.microsoft.com/en-us/azure/virtual-machines/generation-2), please\ncheck the HyperVGenerations capability returned as part of VM sku capabilities\nin the response of Microsoft.Compute SKUs api for the region contains V2\n(https://learn.microsoft.com/rest/api/compute/resourceskus/list). For more\ninformation about Disk Controller Types supported please refer to\nhttps://aka.ms/azure-diskcontrollertypes.", + "enum": [ + "SCSI", + "NVMe" + ], + "x-ms-enum": { + "name": "DiskControllerTypes", + "modelAsString": true, + "values": [ + { + "name": "SCSI", + "value": "SCSI", + "description": "SCSI disk type" + }, + { + "name": "NVMe", + "value": "NVMe", + "description": "NVMe disk type" + } + ] + } + }, + "DiskCreateOptionTypes": { + "type": "string", + "description": "Specifies how the virtual machine should be created.", + "enum": [ + "FromImage", + "Empty", + "Attach", + "Copy", + "Restore" + ], + "x-ms-enum": { + "name": "DiskCreateOptionTypes", + "modelAsString": true, + "values": [ + { + "name": "FromImage", + "value": "FromImage", + "description": "This value is used when you are using an image to create the virtual machine.\nIf you are using a platform image, you also use the imageReference element\ndescribed above. If you are using a marketplace image, you also use the\nplan element previously described." + }, + { + "name": "Empty", + "value": "Empty", + "description": "This value is used when creating an empty data disk." + }, + { + "name": "Attach", + "value": "Attach", + "description": "This value is used when you are using a specialized disk to create the virtual machine." + }, + { + "name": "Copy", + "value": "Copy", + "description": "This value is used to create a data disk from a snapshot or another disk." + }, + { + "name": "Restore", + "value": "Restore", + "description": "This value is used to create a data disk from a disk restore point." + } + ] + } + }, + "DiskDeleteOptionTypes": { + "type": "string", + "description": "Specifies the behavior of the managed disk when the VM gets deleted, for\nexample whether the managed disk is deleted or detached. Supported values are:\n**Delete.** If this value is used, the managed disk is deleted when VM gets\ndeleted. **Detach.** If this value is used, the managed disk is retained after\nVM gets deleted. Minimum api-version: 2021-03-01.", + "enum": [ + "Delete", + "Detach" + ], + "x-ms-enum": { + "name": "DiskDeleteOptionTypes", + "modelAsString": true, + "values": [ + { + "name": "Delete", + "value": "Delete", + "description": "If this value is used, the managed disk is deleted when VM gets deleted." + }, + { + "name": "Detach", + "value": "Detach", + "description": "If this value is used, the managed disk is retained after VM gets deleted." + } + ] + } + }, + "DiskEncryptionSetParameters": { + "type": "object", + "description": "Describes the parameter of customer managed disk encryption set resource id\nthat can be specified for disk. **Note:** The disk encryption set resource id\ncan only be specified for managed disk. Please refer\nhttps://aka.ms/mdssewithcmkoverview for more details.", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Resource Id" + } + } + }, + "DomainNameLabelScopeTypes": { + "type": "string", + "description": "The Domain name label scope.The concatenation of the hashed domain name label\nthat generated according to the policy from domain name label scope and vm\nindex will be the domain name labels of the PublicIPAddress resources that will\nbe created", + "enum": [ + "TenantReuse", + "SubscriptionReuse", + "ResourceGroupReuse", + "NoReuse" + ], + "x-ms-enum": { + "name": "DomainNameLabelScopeTypes", + "modelAsString": true, + "values": [ + { + "name": "TenantReuse", + "value": "TenantReuse", + "description": "TenantReuse type" + }, + { + "name": "SubscriptionReuse", + "value": "SubscriptionReuse", + "description": "SubscriptionReuse type" + }, + { + "name": "ResourceGroupReuse", + "value": "ResourceGroupReuse", + "description": "ResourceGroupReuse type" + }, + { + "name": "NoReuse", + "value": "NoReuse", + "description": "NoReuse type" + } + ] + } + }, + "EncryptionIdentity": { + "type": "object", + "description": "Specifies the Managed Identity used by ADE to get access token for keyvault\noperations.", + "properties": { + "userAssignedIdentityResourceId": { + "type": "string", + "format": "arm-id", + "description": "Specifies ARM Resource ID of one of the user identities associated with the VM." + } + } + }, + "EvictionPolicy": { + "type": "string", + "description": "Different kind of eviction policies", + "enum": [ + "Delete", + "Deallocate" + ], + "x-ms-enum": { + "name": "EvictionPolicy", + "modelAsString": true, + "values": [ + { + "name": "Delete", + "value": "Delete", + "description": "When evicted, the Spot VM will be deleted and the corresponding capacity will be updated to reflect this." + }, + { + "name": "Deallocate", + "value": "Deallocate", + "description": "When evicted, the Spot VM will be deallocated/stopped" + } + ] + } + }, + "Fleet": { + "type": "object", + "description": "An Compute Fleet resource", + "properties": { + "properties": { + "$ref": "#/definitions/FleetProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true + }, + "zones": { + "type": "array", + "description": "Zones in which the Compute Fleet is available", + "items": { + "type": "string" + } + }, + "identity": { + "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource." + }, + "plan": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Plan", + "description": "Details of the resource plan." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ] + }, + "FleetListResult": { + "type": "object", + "description": "The response of a Fleet list operation.", + "properties": { + "value": { + "type": "array", + "description": "The Fleet items on this page", + "items": { + "$ref": "#/definitions/Fleet" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "FleetProperties": { + "type": "object", + "description": "Details of the Compute Fleet.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "The status of the last operation.", + "readOnly": true + }, + "spotPriorityProfile": { + "$ref": "#/definitions/SpotPriorityProfile", + "description": "Configuration Options for Spot instances in Compute Fleet." + }, + "regularPriorityProfile": { + "$ref": "#/definitions/RegularPriorityProfile", + "description": "Configuration Options for Regular instances in Compute Fleet." + }, + "vmSizesProfile": { + "type": "array", + "description": "List of VM sizes supported for Compute Fleet", + "items": { + "$ref": "#/definitions/VmSizeProfile" + }, + "x-ms-identifiers": [] + }, + "vmAttributes": { + "$ref": "#/definitions/VMAttributes", + "description": "Attribute based Fleet." + }, + "additionalLocationsProfile": { + "$ref": "#/definitions/AdditionalLocationsProfile", + "description": "Represents the configuration for additional locations where Fleet resources may be deployed." + }, + "computeProfile": { + "$ref": "#/definitions/ComputeProfile", + "description": "Compute Profile to use for running user's workloads." + }, + "timeCreated": { + "type": "string", + "format": "date-time", + "description": "Specifies the time at which the Compute Fleet is created.", + "readOnly": true + }, + "uniqueId": { + "type": "string", + "description": "Specifies the ID which uniquely identifies a Compute Fleet.", + "readOnly": true + } + }, + "required": [ + "vmSizesProfile", + "computeProfile" + ] + }, + "FleetUpdate": { + "type": "object", + "description": "Fleet Update Model", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "identity": { + "$ref": "#/definitions/ManagedServiceIdentityUpdate", + "description": "Updatable managed service identity" + }, + "plan": { + "$ref": "#/definitions/ResourcePlanUpdate", + "description": "Updatable resource plan" + }, + "properties": { + "$ref": "#/definitions/FleetProperties", + "description": "RP-specific updatable properties" + } + } + }, + "IPVersion": { + "type": "string", + "description": "Available from Api-Version 2017-03-30 onwards, it represents whether the\nspecific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible\nvalues are: 'IPv4' and 'IPv6'.", + "enum": [ + "IPv4", + "IPv6" + ], + "x-ms-enum": { + "name": "IPVersion", + "modelAsString": true, + "values": [ + { + "name": "IPv4", + "value": "IPv4", + "description": "IPv4 version" + }, + { + "name": "IPv6", + "value": "IPv6", + "description": "IPv6 version" + } + ] + } + }, + "ImageReference": { + "type": "object", + "description": "Specifies information about the image to use. You can specify information about\nplatform images, marketplace images, or virtual machine images. This element is\nrequired when you want to use a platform image, marketplace image, or virtual\nmachine image, but is not used in other creation operations. NOTE: Image\nreference publisher and offer can only be set when you create the scale set.", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Resource Id" + }, + "publisher": { + "type": "string", + "description": "The image publisher." + }, + "offer": { + "type": "string", + "description": "Specifies the offer of the platform image or marketplace image used to create\nthe virtual machine." + }, + "sku": { + "type": "string", + "description": "The image SKU." + }, + "version": { + "type": "string", + "description": "Specifies the version of the platform image or marketplace image used to create\nthe virtual machine. The allowed formats are Major.Minor.Build or 'latest'.\nMajor, Minor, and Build are decimal numbers. Specify 'latest' to use the latest\nversion of an image available at deploy time. Even if you use 'latest', the VM\nimage will not automatically update after deploy time even if a new version\nbecomes available. Please do not use field 'version' for gallery image\ndeployment, gallery image should always use 'id' field for deployment, to use 'latest'\nversion of gallery image, just set\n'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageName}'\nin the 'id' field without version input." + }, + "exactVersion": { + "type": "string", + "description": "Specifies in decimal numbers, the version of platform image or marketplace\nimage used to create the virtual machine. This readonly field differs from 'version',\nonly if the value specified in 'version' field is 'latest'.", + "readOnly": true + }, + "sharedGalleryImageId": { + "type": "string", + "description": "Specified the shared gallery image unique id for vm deployment. This can be\nfetched from shared gallery image GET call." + }, + "communityGalleryImageId": { + "type": "string", + "description": "Specified the community gallery image unique id for vm deployment. This can be\nfetched from community gallery image GET call." + } + } + }, + "InnerError": { + "type": "object", + "description": "Inner error details.", + "properties": { + "exceptionType": { + "type": "string", + "description": "The exception type." + }, + "errorDetail": { + "type": "string", + "description": "The internal error message or exception dump." + } + } + }, + "KeyVaultSecretReference": { + "type": "object", + "description": "Describes a reference to Key Vault Secret", + "properties": { + "secretUrl": { + "type": "string", + "format": "uri", + "description": "The URL referencing a secret in a Key Vault." + }, + "sourceVault": { + "$ref": "#/definitions/SubResource", + "description": "The relative URL of the Key Vault containing the secret." + } + }, + "required": [ + "secretUrl", + "sourceVault" + ] + }, + "LinuxConfiguration": { + "type": "object", + "description": "Specifies the Linux operating system settings on the virtual machine. For a\nlist of supported Linux distributions, see [Linux on Azure-Endorsed\nDistributions](https://learn.microsoft.com/azure/virtual-machines/linux/endorsed-distros).", + "properties": { + "disablePasswordAuthentication": { + "type": "boolean", + "description": "Specifies whether password authentication should be disabled." + }, + "ssh": { + "$ref": "#/definitions/SshConfiguration", + "description": "Specifies the ssh key configuration for a Linux OS." + }, + "provisionVMAgent": { + "type": "boolean", + "description": "Indicates whether virtual machine agent should be provisioned on the virtual\nmachine. When this property is not specified in the request body, default\nbehavior is to set it to true. This will ensure that VM Agent is installed on\nthe VM so that extensions can be added to the VM later." + }, + "patchSettings": { + "$ref": "#/definitions/LinuxPatchSettings", + "description": "[Preview Feature] Specifies settings related to VM Guest Patching on Linux." + }, + "enableVMAgentPlatformUpdates": { + "type": "boolean", + "description": "Indicates whether VMAgent Platform Updates is enabled for the Linux virtual\nmachine. Default value is false." + } + } + }, + "LinuxPatchAssessmentMode": { + "type": "string", + "description": "Specifies the mode of VM Guest Patch Assessment for the IaaS virtual\nmachine.

Possible values are:

**ImageDefault** - You\ncontrol the timing of patch assessments on a virtual machine.

\n**AutomaticByPlatform** - The platform will trigger periodic patch assessments.\nThe property provisionVMAgent must be true.", + "enum": [ + "ImageDefault", + "AutomaticByPlatform" + ], + "x-ms-enum": { + "name": "LinuxPatchAssessmentMode", + "modelAsString": true, + "values": [ + { + "name": "ImageDefault", + "value": "ImageDefault", + "description": "You control the timing of patch assessments on a virtual machine." + }, + { + "name": "AutomaticByPlatform", + "value": "AutomaticByPlatform", + "description": "The platform will trigger periodic patch assessments.The property provisionVMAgent must be true." + } + ] + } + }, + "LinuxPatchSettings": { + "type": "object", + "description": "Specifies settings related to VM Guest Patching on Linux.", + "properties": { + "patchMode": { + "$ref": "#/definitions/LinuxVMGuestPatchMode", + "description": "Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual\nmachines associated to virtual machine scale set with OrchestrationMode as\nFlexible.

Possible values are:

**ImageDefault** - The\nvirtual machine's default patching configuration is used.

\n**AutomaticByPlatform** - The virtual machine will be automatically updated by\nthe platform. The property provisionVMAgent must be true" + }, + "assessmentMode": { + "$ref": "#/definitions/LinuxPatchAssessmentMode", + "description": "Specifies the mode of VM Guest Patch Assessment for the IaaS virtual\nmachine.

Possible values are:

**ImageDefault** - You\ncontrol the timing of patch assessments on a virtual machine.

\n**AutomaticByPlatform** - The platform will trigger periodic patch assessments.\nThe property provisionVMAgent must be true." + }, + "automaticByPlatformSettings": { + "$ref": "#/definitions/LinuxVMGuestPatchAutomaticByPlatformSettings", + "description": "Specifies additional settings for patch mode AutomaticByPlatform in VM Guest\nPatching on Linux." + } + } + }, + "LinuxVMGuestPatchAutomaticByPlatformRebootSetting": { + "type": "string", + "description": "Specifies the reboot setting for all AutomaticByPlatform patch installation\noperations.", + "enum": [ + "Unknown", + "IfRequired", + "Never", + "Always" + ], + "x-ms-enum": { + "name": "LinuxVMGuestPatchAutomaticByPlatformRebootSetting", + "modelAsString": true, + "values": [ + { + "name": "Unknown", + "value": "Unknown", + "description": "Unknown Reboot setting" + }, + { + "name": "IfRequired", + "value": "IfRequired", + "description": "IfRequired Reboot setting" + }, + { + "name": "Never", + "value": "Never", + "description": "Never Reboot setting" + }, + { + "name": "Always", + "value": "Always", + "description": "Always Reboot setting" + } + ] + } + }, + "LinuxVMGuestPatchAutomaticByPlatformSettings": { + "type": "object", + "description": "Specifies additional settings to be applied when patch mode AutomaticByPlatform\nis selected in Linux patch settings.", + "properties": { + "rebootSetting": { + "$ref": "#/definitions/LinuxVMGuestPatchAutomaticByPlatformRebootSetting", + "description": "Specifies the reboot setting for all AutomaticByPlatform patch installation\noperations." + }, + "bypassPlatformSafetyChecksOnUserSchedule": { + "type": "boolean", + "description": "Enables customer to schedule patching without accidental upgrades" + } + } + }, + "LinuxVMGuestPatchMode": { + "type": "string", + "description": "Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual\nmachines associated to virtual machine scale set with OrchestrationMode as\nFlexible.", + "enum": [ + "ImageDefault", + "AutomaticByPlatform" + ], + "x-ms-enum": { + "name": "LinuxVMGuestPatchMode", + "modelAsString": true, + "values": [ + { + "name": "ImageDefault", + "value": "ImageDefault", + "description": "The virtual machine's default patching configuration is used." + }, + { + "name": "AutomaticByPlatform", + "value": "AutomaticByPlatform", + "description": "The virtual machine will be automatically updated by the platform. The property provisionVMAgent must be true." + } + ] + } + }, + "LocalStorageDiskType": { + "type": "string", + "description": "Different kind of Local storage disk types supported by Azure VMs.", + "enum": [ + "HDD", + "SSD" + ], + "x-ms-enum": { + "name": "LocalStorageDiskType", + "modelAsString": true, + "values": [ + { + "name": "HDD", + "value": "HDD", + "description": "HDD DiskType." + }, + { + "name": "SSD", + "value": "SSD", + "description": "SDD DiskType." + } + ] + } + }, + "LocationProfile": { + "type": "object", + "description": "Represents the profile for a single additional location in the Fleet. The location and the virtualMachineProfileOverride (optional).", + "properties": { + "location": { + "$ref": "#/definitions/Azure.Core.azureLocation", + "description": "The ARM location name of the additional region. If LocationProfile is specified, then location is required." + }, + "virtualMachineProfileOverride": { + "$ref": "#/definitions/BaseVirtualMachineProfile", + "description": "An override for computeProfile.baseVirtualMachineProfile specific to this region. \nThis override is merged with the base virtual machine profile to define the final virtual machine profile for the resources deployed in this location." + } + }, + "required": [ + "location" + ] + }, + "ManagedServiceIdentityUpdate": { + "type": "object", + "description": "The template for adding optional properties.", + "properties": { + "type": { + "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentityType", + "description": "The type of managed identity assigned to this resource." + }, + "userAssignedIdentities": { + "type": "object", + "description": "The identities assigned to this resource by the user.", + "additionalProperties": { + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/UserAssignedIdentity" + } + ], + "type": "object", + "x-nullable": true + } + } + } + }, + "Mode": { + "type": "string", + "description": "Specifies the mode that ProxyAgent will execute on if the feature is enabled.\nProxyAgent will start to audit or monitor but not enforce access control over\nrequests to host endpoints in Audit mode, while in Enforce mode it will enforce\naccess control. The default value is Enforce mode.", + "enum": [ + "Audit", + "Enforce" + ], + "x-ms-enum": { + "name": "Mode", + "modelAsString": true, + "values": [ + { + "name": "Audit", + "value": "Audit", + "description": "Audit Mode" + }, + { + "name": "Enforce", + "value": "Enforce", + "description": "Enforce Mode" + } + ] + } + }, + "NetworkApiVersion": { + "type": "string", + "description": "specifies the Microsoft.Network API version used when creating networking\nresources in the Network Interface Configurations for Virtual Machine Scale Set\nwith orchestration mode 'Flexible'", + "enum": [ + "2020-11-01" + ], + "x-ms-enum": { + "name": "NetworkApiVersion", + "modelAsString": true, + "values": [ + { + "name": "v2020_11_01", + "value": "2020-11-01", + "description": "Initial version supported. Later versions are supported as well." + } + ] + } + }, + "NetworkInterfaceAuxiliaryMode": { + "type": "string", + "description": "Specifies whether the Auxiliary mode is enabled for the Network Interface\nresource.", + "enum": [ + "None", + "AcceleratedConnections", + "Floating" + ], + "x-ms-enum": { + "name": "NetworkInterfaceAuxiliaryMode", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "None Mode" + }, + { + "name": "AcceleratedConnections", + "value": "AcceleratedConnections", + "description": "AcceleratedConnections Mode" + }, + { + "name": "Floating", + "value": "Floating", + "description": "Floating Mode" + } + ] + } + }, + "NetworkInterfaceAuxiliarySku": { + "type": "string", + "description": "Specifies whether the Auxiliary sku is enabled for the Network Interface\nresource.", + "enum": [ + "None", + "A1", + "A2", + "A4", + "A8" + ], + "x-ms-enum": { + "name": "NetworkInterfaceAuxiliarySku", + "modelAsString": true, + "values": [ + { + "name": "None", + "value": "None", + "description": "no sku" + }, + { + "name": "A1", + "value": "A1", + "description": "A1 sku" + }, + { + "name": "A2", + "value": "A2", + "description": "A2 sku" + }, + { + "name": "A4", + "value": "A4", + "description": "A4 sku" + }, + { + "name": "A8", + "value": "A8", + "description": "A8 sku" + } + ] + } + }, + "OSImageNotificationProfile": { + "type": "object", + "description": "Specifies OS Image Scheduled Event related configurations.", + "properties": { + "notBeforeTimeout": { + "type": "string", + "description": "Length of time a Virtual Machine being reimaged or having its OS upgraded will\nhave to potentially approve the OS Image Scheduled Event before the event is\nauto approved (timed out). The configuration is specified in ISO 8601 format,\nand the value must not exceed 15 minutes (PT15M)" + }, + "enable": { + "type": "boolean", + "description": "Specifies whether the OS Image Scheduled event is enabled or disabled." + } + } + }, + "OperatingSystemTypes": { + "type": "string", + "description": "This property allows you to specify the type of the OS that is included in the\ndisk if creating a VM from user-image or a specialized VHD. Possible values\nare: **Windows,** **Linux.**", + "enum": [ + "Windows", + "Linux" + ], + "x-ms-enum": { + "name": "OperatingSystemTypes", + "modelAsString": true, + "values": [ + { + "name": "Windows", + "value": "Windows", + "description": "Windows OS type" + }, + { + "name": "Linux", + "value": "Linux", + "description": "Linux OS type" + } + ] + } + }, + "PatchSettings": { + "type": "object", + "description": "Specifies settings related to VM Guest Patching on Windows.", + "properties": { + "patchMode": { + "$ref": "#/definitions/WindowsVMGuestPatchMode", + "description": "Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual\nmachines associated to virtual machine scale set with OrchestrationMode as\nFlexible.

Possible values are:

**Manual** - You\ncontrol the application of patches to a virtual machine. You do this by\napplying patches manually inside the VM. In this mode, automatic updates are\ndisabled; the property WindowsConfiguration.enableAutomaticUpdates must be\nfalse

**AutomaticByOS** - The virtual machine will automatically be\nupdated by the OS. The property WindowsConfiguration.enableAutomaticUpdates\nmust be true.

**AutomaticByPlatform** - the virtual machine will\nautomatically updated by the platform. The properties provisionVMAgent and\nWindowsConfiguration.enableAutomaticUpdates must be true" + }, + "enableHotpatching": { + "type": "boolean", + "description": "Enables customers to patch their Azure VMs without requiring a reboot. For\nenableHotpatching, the 'provisionVMAgent' must be set to true and 'patchMode'\nmust be set to 'AutomaticByPlatform'." + }, + "assessmentMode": { + "$ref": "#/definitions/WindowsPatchAssessmentMode", + "description": "Specifies the mode of VM Guest patch assessment for the IaaS virtual\nmachine.

Possible values are:

**ImageDefault** - You\ncontrol the timing of patch assessments on a virtual machine.

\n**AutomaticByPlatform** - The platform will trigger periodic patch assessments.\nThe property provisionVMAgent must be true." + }, + "automaticByPlatformSettings": { + "$ref": "#/definitions/WindowsVMGuestPatchAutomaticByPlatformSettings", + "description": "Specifies additional settings for patch mode AutomaticByPlatform in VM Guest\nPatching on Windows." + } + } + }, + "ProtocolTypes": { + "type": "string", + "description": "Specifies the protocol of WinRM listener. Possible values are: **http,**\n**https.**", + "enum": [ + "Http", + "Https" + ], + "x-ms-enum": { + "name": "ProtocolTypes", + "modelAsString": true, + "values": [ + { + "name": "Http", + "value": "Http", + "description": "Http protocol" + }, + { + "name": "Https", + "value": "Https", + "description": "Https protocol" + } + ] + } + }, + "ProvisioningState": { + "type": "string", + "description": "The status of the current operation.", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "Creating", + "Updating", + "Deleting", + "Migrating" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Resource has been created." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Resource creation failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Resource creation was canceled." + }, + { + "name": "Creating", + "value": "Creating", + "description": "Initial creation in progress." + }, + { + "name": "Updating", + "value": "Updating", + "description": "Update in progress." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Deletion in progress." + }, + { + "name": "Migrating", + "value": "Migrating", + "description": "Resource is being migrated from one subscription or resource group to another." + } + ] + }, + "readOnly": true + }, + "ProxyAgentSettings": { + "type": "object", + "description": "Specifies ProxyAgent settings while creating the virtual machine. Minimum\napi-version: 2023-09-01.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Specifies whether ProxyAgent feature should be enabled on the virtual machine\nor virtual machine scale set." + }, + "mode": { + "$ref": "#/definitions/Mode", + "description": "Specifies the mode that ProxyAgent will execute on if the feature is enabled.\nProxyAgent will start to audit or monitor but not enforce access control over\nrequests to host endpoints in Audit mode, while in Enforce mode it will enforce\naccess control. The default value is Enforce mode." + }, + "keyIncarnationId": { + "type": "integer", + "format": "int32", + "description": "Increase the value of this property allows user to reset the key used for\nsecuring communication channel between guest and host." + } + } + }, + "PublicIPAddressSku": { + "type": "object", + "description": "Describes the public IP Sku. It can only be set with OrchestrationMode as\nFlexible.", + "properties": { + "name": { + "$ref": "#/definitions/PublicIPAddressSkuName", + "description": "Specify public IP sku name" + }, + "tier": { + "$ref": "#/definitions/PublicIPAddressSkuTier", + "description": "Specify public IP sku tier" + } + } + }, + "PublicIPAddressSkuName": { + "type": "string", + "description": "Specify public IP sku name.", + "enum": [ + "Basic", + "Standard" + ], + "x-ms-enum": { + "name": "PublicIPAddressSkuName", + "modelAsString": true, + "values": [ + { + "name": "Basic", + "value": "Basic", + "description": "Basic sku name" + }, + { + "name": "Standard", + "value": "Standard", + "description": "Standard sku name" + } + ] + } + }, + "PublicIPAddressSkuTier": { + "type": "string", + "description": "Specify public IP sku tier", + "enum": [ + "Regional", + "Global" + ], + "x-ms-enum": { + "name": "PublicIPAddressSkuTier", + "modelAsString": true, + "values": [ + { + "name": "Regional", + "value": "Regional", + "description": "Regional sku tier" + }, + { + "name": "Global", + "value": "Global", + "description": "Global sku tier" + } + ] + } + }, + "RegularPriorityAllocationStrategy": { + "type": "string", + "description": "Regular VM Allocation strategy types for Compute Fleet", + "enum": [ + "LowestPrice", + "Prioritized" + ], + "x-ms-enum": { + "name": "RegularPriorityAllocationStrategy", + "modelAsString": true, + "values": [ + { + "name": "LowestPrice", + "value": "LowestPrice", + "description": "Default. VM sizes distribution will be determined to optimize for price." + }, + { + "name": "Prioritized", + "value": "Prioritized", + "description": "VM sizes distribution will be determined to optimize for the 'priority' as specified for each vm size." + } + ] + } + }, + "RegularPriorityProfile": { + "type": "object", + "description": "Configuration Options for Regular instances in Compute Fleet.", + "properties": { + "capacity": { + "type": "integer", + "format": "int32", + "description": "Total capacity to achieve. It is currently in terms of number of VMs.", + "minimum": 0 + }, + "minCapacity": { + "type": "integer", + "format": "int32", + "description": "Minimum capacity to achieve which cannot be updated. If we will not be able to \"guarantee\" minimum capacity, we will reject the request in the sync path itself.", + "minimum": 0 + }, + "allocationStrategy": { + "$ref": "#/definitions/RegularPriorityAllocationStrategy", + "description": "Allocation strategy to follow when determining the VM sizes distribution for Regular VMs." + } + } + }, + "ResourcePlanUpdate": { + "type": "object", + "description": "The template for adding optional properties.", + "properties": { + "name": { + "type": "string", + "description": "A user defined name of the 3rd Party Artifact that is being procured." + }, + "publisher": { + "type": "string", + "description": "The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic" + }, + "product": { + "type": "string", + "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding." + }, + "promotionCode": { + "type": "string", + "description": "A publisher provided promotion code as provisioned in Data Market for the said product/artifact." + }, + "version": { + "type": "string", + "description": "The version of the desired product/artifact." + } + } + }, + "ScheduledEventsProfile": { + "type": "object", + "description": "Specifies Scheduled Event related configurations.", + "properties": { + "terminateNotificationProfile": { + "$ref": "#/definitions/TerminateNotificationProfile", + "description": "Specifies Terminate Scheduled Event related configurations." + }, + "osImageNotificationProfile": { + "$ref": "#/definitions/OSImageNotificationProfile", + "description": "Specifies OS Image Scheduled Event related configurations." + } + } + }, + "SecurityEncryptionTypes": { + "type": "string", + "description": "Specifies the EncryptionType of the managed disk.\n**Note:** It can be set for only Confidential VMs.", + "enum": [ + "VMGuestStateOnly", + "DiskWithVMGuestState", + "NonPersistedTPM" + ], + "x-ms-enum": { + "name": "SecurityEncryptionTypes", + "modelAsString": true, + "values": [ + { + "name": "VMGuestStateOnly", + "value": "VMGuestStateOnly", + "description": "EncryptionType of the managed disk is set to VMGuestStateOnly for encryption\nof just the VMGuestState blob." + }, + { + "name": "DiskWithVMGuestState", + "value": "DiskWithVMGuestState", + "description": "EncryptionType of the managed disk is set to DiskWithVMGuestState for encryption\nof the managed disk along with VMGuestState blob." + }, + { + "name": "NonPersistedTPM", + "value": "NonPersistedTPM", + "description": "EncryptionType of the managed disk is set to NonPersistedTPM for not persisting\nfirmware state in the VMGuestState blob." + } + ] + } + }, + "SecurityPostureReference": { + "type": "object", + "description": "Specifies the security posture to be used for all virtual machines in the scale\nset. Minimum api-version: 2023-03-01", + "properties": { + "id": { + "type": "string", + "description": "The security posture reference id in the form of\n/CommunityGalleries/{communityGalleryName}/securityPostures/{securityPostureName}/versions/{major.minor.patch}|{major.*}|latest" + }, + "excludeExtensions": { + "type": "array", + "description": "List of virtual machine extension names to exclude when applying the security\nposture.", + "items": { + "type": "string" + } + }, + "isOverridable": { + "type": "boolean", + "description": "Whether the security posture can be overridden by the user." + } + } + }, + "SecurityProfile": { + "type": "object", + "description": "Specifies the Security profile settings for the virtual machine or virtual\nmachine scale set.", + "properties": { + "uefiSettings": { + "$ref": "#/definitions/UefiSettings", + "description": "Specifies the security settings like secure boot and vTPM used while creating\nthe virtual machine. Minimum api-version: 2020-12-01." + }, + "encryptionAtHost": { + "type": "boolean", + "description": "This property can be used by user in the request to enable or disable the Host\nEncryption for the virtual machine or virtual machine scale set. This will\nenable the encryption for all the disks including Resource/Temp disk at host\nitself. The default behavior is: The Encryption at host will be disabled unless\nthis property is set to true for the resource." + }, + "securityType": { + "$ref": "#/definitions/SecurityTypes", + "description": "Specifies the SecurityType of the virtual machine. It has to be set to any\nspecified value to enable UefiSettings. The default behavior is: UefiSettings\nwill not be enabled unless this property is set." + }, + "encryptionIdentity": { + "$ref": "#/definitions/EncryptionIdentity", + "description": "Specifies the Managed Identity used by ADE to get access token for keyvault\noperations." + }, + "proxyAgentSettings": { + "$ref": "#/definitions/ProxyAgentSettings", + "description": "Specifies ProxyAgent settings while creating the virtual machine. Minimum\napi-version: 2023-09-01." + } + } + }, + "SecurityTypes": { + "type": "string", + "description": "Specifies the SecurityType of the virtual machine. It has to be set to any\nspecified value to enable UefiSettings. The default behavior is: UefiSettings\nwill not be enabled unless this property is set.", + "enum": [ + "TrustedLaunch", + "ConfidentialVM" + ], + "x-ms-enum": { + "name": "SecurityTypes", + "modelAsString": true, + "values": [ + { + "name": "TrustedLaunch", + "value": "TrustedLaunch", + "description": "TrustedLaunch security type" + }, + { + "name": "ConfidentialVM", + "value": "ConfidentialVM", + "description": "ConfidentialVM security type" + } + ] + } + }, + "ServiceArtifactReference": { + "type": "object", + "description": "Specifies the service artifact reference id used to set same image version for\nall virtual machines in the scale set when using 'latest' image version.\nMinimum api-version: 2022-11-01", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "The service artifact reference id in the form of\n/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}" + } + } + }, + "SettingNames": { + "type": "string", + "description": "Specifies the name of the setting to which the content applies. Possible values\nare: FirstLogonCommands and AutoLogon.", + "enum": [ + "AutoLogon", + "FirstLogonCommands" + ], + "x-ms-enum": { + "name": "SettingNames", + "modelAsString": true, + "values": [ + { + "name": "AutoLogon", + "value": "AutoLogon", + "description": "AutoLogon setting" + }, + { + "name": "FirstLogonCommands", + "value": "FirstLogonCommands", + "description": "FirstLogonCommands setting" + } + ] + } + }, + "SpotAllocationStrategy": { + "type": "string", + "description": "Spot allocation strategy types for Compute Fleet", + "enum": [ + "PriceCapacityOptimized", + "LowestPrice", + "CapacityOptimized" + ], + "x-ms-enum": { + "name": "SpotAllocationStrategy", + "modelAsString": true, + "values": [ + { + "name": "PriceCapacityOptimized", + "value": "PriceCapacityOptimized", + "description": "Default. VM sizes distribution will be determined to optimize for both price and capacity." + }, + { + "name": "LowestPrice", + "value": "LowestPrice", + "description": "VM sizes distribution will be determined to optimize for price. Note: Capacity will still be considered here but will be given much less weight." + }, + { + "name": "CapacityOptimized", + "value": "CapacityOptimized", + "description": "VM sizes distribution will be determined to optimize for capacity." + } + ] + } + }, + "SpotPriorityProfile": { + "type": "object", + "description": "Configuration Options for Spot instances in Compute Fleet.", + "properties": { + "capacity": { + "type": "integer", + "format": "int32", + "description": "Total capacity to achieve. It is currently in terms of number of VMs.", + "minimum": 0 + }, + "minCapacity": { + "type": "integer", + "format": "int32", + "description": "Minimum capacity to achieve which cannot be updated. If we will not be able to \"guarantee\" minimum capacity, we will reject the request in the sync path itself.", + "minimum": 0 + }, + "maxPricePerVM": { + "type": "number", + "format": "float", + "description": "Price per hour of each Spot VM will never exceed this." + }, + "evictionPolicy": { + "$ref": "#/definitions/EvictionPolicy", + "description": "Eviction Policy to follow when evicting Spot VMs." + }, + "allocationStrategy": { + "$ref": "#/definitions/SpotAllocationStrategy", + "description": "Allocation strategy to follow when determining the VM sizes distribution for Spot VMs." + }, + "maintain": { + "type": "boolean", + "description": "Flag to enable/disable continuous goal seeking for the desired capacity and restoration of evicted Spot VMs.\nIf maintain is enabled, AzureFleetRP will use all VM sizes in vmSizesProfile to create new VMs (if VMs are evicted deleted)\nor update existing VMs with new VM sizes (if VMs are evicted deallocated or failed to allocate due to capacity constraint) in order to achieve the desired capacity.\nMaintain is enabled by default." + } + } + }, + "SshConfiguration": { + "type": "object", + "description": "SSH configuration for Linux based VMs running on Azure", + "properties": { + "publicKeys": { + "type": "array", + "description": "The list of SSH public keys used to authenticate with linux based VMs.", + "items": { + "$ref": "#/definitions/SshPublicKey" + }, + "x-ms-identifiers": [ + "path" + ] + } + } + }, + "SshPublicKey": { + "type": "object", + "description": "Contains information about SSH certificate public key and the path on the Linux\nVM where the public key is placed.", + "properties": { + "path": { + "type": "string", + "description": "Specifies the full path on the created VM where ssh public key is stored. If\nthe file already exists, the specified key is appended to the file. Example:\n/home/user/.ssh/authorized_keys" + }, + "keyData": { + "type": "string", + "description": "SSH public key certificate used to authenticate with the VM through ssh. The\nkey needs to be at least 2048-bit and in ssh-rsa format. For creating ssh keys,\nsee [Create SSH keys on Linux and Mac for Linux VMs in\nAzure]https://learn.microsoft.com/azure/virtual-machines/linux/create-ssh-keys-detailed)." + } + } + }, + "StatusLevelTypes": { + "type": "string", + "description": "The level code.", + "enum": [ + "Info", + "Warning", + "Error" + ], + "x-ms-enum": { + "name": "StatusLevelTypes", + "modelAsString": true, + "values": [ + { + "name": "Info", + "value": "Info", + "description": "Info level" + }, + { + "name": "Warning", + "value": "Warning", + "description": "Warning level" + }, + { + "name": "Error", + "value": "Error", + "description": "Error Level" + } + ] + } + }, + "StorageAccountTypes": { + "type": "string", + "description": "Specifies the storage account type for the managed disk. Managed OS disk\nstorage account type can only be set when you create the scale set. NOTE:\nUltraSSD_LRS can only be used with data disks. It cannot be used with OS Disk.\nStandard_LRS uses Standard HDD. StandardSSD_LRS uses Standard SSD. Premium_LRS\nuses Premium SSD. UltraSSD_LRS uses Ultra disk. Premium_ZRS uses Premium SSD\nzone redundant storage. StandardSSD_ZRS uses Standard SSD zone redundant\nstorage. For more information regarding disks supported for Windows Virtual\nMachines, refer to\nhttps://learn.microsoft.com/azure/virtual-machines/windows/disks-types and, for\nLinux Virtual Machines, refer to\nhttps://learn.microsoft.com/azure/virtual-machines/linux/disks-types", + "enum": [ + "Standard_LRS", + "Premium_LRS", + "StandardSSD_LRS", + "UltraSSD_LRS", + "Premium_ZRS", + "StandardSSD_ZRS", + "PremiumV2_LRS" + ], + "x-ms-enum": { + "name": "StorageAccountTypes", + "modelAsString": true, + "values": [ + { + "name": "Standard_LRS", + "value": "Standard_LRS", + "description": "Standard_LRS option." + }, + { + "name": "Premium_LRS", + "value": "Premium_LRS", + "description": "Premium_LRS option." + }, + { + "name": "StandardSSD_LRS", + "value": "StandardSSD_LRS", + "description": "StandardSSD_LRS option." + }, + { + "name": "UltraSSD_LRS", + "value": "UltraSSD_LRS", + "description": "UltraSSD_LRS option." + }, + { + "name": "Premium_ZRS", + "value": "Premium_ZRS", + "description": "Premium_ZRS option." + }, + { + "name": "StandardSSD_ZRS", + "value": "StandardSSD_ZRS", + "description": "StandardSSD_ZRS option." + }, + { + "name": "PremiumV2_LRS", + "value": "PremiumV2_LRS", + "description": "PremiumV2_LRS option." + } + ] + } + }, + "SubResource": { + "type": "object", + "description": "Describes SubResource", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Resource Id" + } + } + }, + "SubResourceReadOnly": { + "type": "object", + "description": "Describes a Readonly subresource.", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Resource Id", + "readOnly": true + } + } + }, + "TerminateNotificationProfile": { + "type": "object", + "description": "Specifies Terminate Scheduled Event related configurations.", + "properties": { + "notBeforeTimeout": { + "type": "string", + "description": "Configurable length of time a Virtual Machine being deleted will have to\npotentially approve the Terminate Scheduled Event before the event is auto\napproved (timed out). The configuration must be specified in ISO 8601 format,\nthe default value is 5 minutes (PT5M)" + }, + "enable": { + "type": "boolean", + "description": "Specifies whether the Terminate Scheduled event is enabled or disabled." + } + } + }, + "UefiSettings": { + "type": "object", + "description": "Specifies the security settings like secure boot and vTPM used while creating\nthe virtual machine. Minimum api-version: 2020-12-01.", + "properties": { + "secureBootEnabled": { + "type": "boolean", + "description": "Specifies whether secure boot should be enabled on the virtual machine. Minimum\napi-version: 2020-12-01." + }, + "vTpmEnabled": { + "type": "boolean", + "description": "Specifies whether vTPM should be enabled on the virtual machine. Minimum\napi-version: 2020-12-01." + } + } + }, + "VMAttributeMinMaxDouble": { + "type": "object", + "description": "VMAttributes using double values.", + "properties": { + "min": { + "type": "number", + "format": "double", + "description": "Minimum value. default 0. Double.MinValue()", + "minimum": 0 + }, + "max": { + "type": "number", + "format": "double", + "description": "Maximum value. Double.MaxValue(1.7976931348623157E+308)", + "minimum": 0 + } + } + }, + "VMAttributeMinMaxInteger": { + "type": "object", + "description": "While retrieving VMSizes from CRS, Min = 0 (uint.MinValue) if not specified, Max = 4294967295 (uint.MaxValue) if not specified. This allows to filter VMAttributes on all available VMSizes.", + "properties": { + "min": { + "type": "integer", + "format": "int32", + "description": "Min VMSize from CRS, Min = 0 (uint.MinValue) if not specified.", + "minimum": 0 + }, + "max": { + "type": "integer", + "format": "int32", + "description": "Max VMSize from CRS, Max = 4294967295 (uint.MaxValue) if not specified.", + "minimum": 0 + } + } + }, + "VMAttributeSupport": { + "type": "string", + "description": "VMSizes supported by Azure VMs. Included is a union of Excluded and Required.", + "enum": [ + "Excluded", + "Included", + "Required" + ], + "x-ms-enum": { + "name": "VMAttributeSupport", + "modelAsString": true, + "values": [ + { + "name": "Excluded", + "value": "Excluded", + "description": "All VMSizes having the feature support will be excluded." + }, + { + "name": "Included", + "value": "Included", + "description": " VMSizes that have the feature support and that do not have the feature support will be used. Included is a union of Excluded and Required." + }, + { + "name": "Required", + "value": "Required", + "description": "Only the VMSizes having the feature support will be used." + } + ] + } + }, + "VMAttributes": { + "type": "object", + "description": "VMAttributes that will be used to filter VMSizes which will be used to build Fleet.", + "properties": { + "vCpuCount": { + "$ref": "#/definitions/VMAttributeMinMaxInteger", + "description": "The range of vCpuCount specified from Min to Max. Must be specified if VMAttributes are specified, either Min or Max is required if specified." + }, + "memoryInGiB": { + "$ref": "#/definitions/VMAttributeMinMaxDouble", + "description": "The range of memory specified from Min to Max. Must be specified if VMAttributes are specified, either Min or Max is required if specified." + }, + "memoryInGiBPerVCpu": { + "$ref": "#/definitions/VMAttributeMinMaxDouble", + "description": "The range of memory in GiB per vCPU specified from min to max. Optional parameter. Either Min or Max is required if specified." + }, + "localStorageSupport": { + "$ref": "#/definitions/VMAttributeSupport", + "description": "Specifies whether the VMSize supporting local storage should be used to build Fleet or not.\nIncluded - Default if not specified as most Azure VMs support local storage." + }, + "localStorageInGiB": { + "$ref": "#/definitions/VMAttributeMinMaxDouble", + "description": "LocalStorageSupport should be set to \"Included\" or \"Required\" to use this VMAttribute. \nIf localStorageSupport is \"Excluded\", this VMAttribute can not be used." + }, + "localStorageDiskTypes": { + "type": "array", + "description": "The local storage disk types specified as a list. LocalStorageSupport should be set to \"Included\" or \"Required\" to use this VMAttribute. \nIf localStorageSupport is \"Excluded\", this VMAttribute can not be used.", + "items": { + "$ref": "#/definitions/LocalStorageDiskType" + }, + "x-ms-identifiers": [] + }, + "dataDiskCount": { + "$ref": "#/definitions/VMAttributeMinMaxInteger", + "description": "The range of data disk count specified from Min to Max. Optional parameter. Either Min or Max is required if specified." + }, + "networkInterfaceCount": { + "$ref": "#/definitions/VMAttributeMinMaxInteger", + "description": "The range of network interface count specified from Min to Max. Optional parameter. Either Min or Max is required if specified." + }, + "networkBandwidthInMbps": { + "$ref": "#/definitions/VMAttributeMinMaxDouble", + "description": "The range of network bandwidth in Mbps specified from Min to Max. Optional parameter. Either Min or Max is required if specified." + }, + "rdmaSupport": { + "$ref": "#/definitions/VMAttributeSupport", + "description": "Specifies whether the VMSize supporting RDMA (Remote Direct Memory Access) should be used to build Fleet or not." + }, + "rdmaNetworkInterfaceCount": { + "$ref": "#/definitions/VMAttributeMinMaxInteger", + "description": "The range of RDMA (Remote Direct Memory Access) network interface count specified from Min to Max. Optional parameter. Either Min or Max is required if specified.\nrdmaSupport should be set to \"Included\" or \"Required\" to use this VMAttribute. \nIf rdmaSupport is \"Excluded\", this VMAttribute can not be used." + }, + "acceleratorSupport": { + "$ref": "#/definitions/VMAttributeSupport", + "description": "Specifies whether the VMSize supporting accelerator should be used to build Fleet or not.\nacceleratorSupport should be set to \"Included\" or \"Required\" to use this VMAttribute. \nIf acceleratorSupport is \"Excluded\", this VMAttribute can not be used." + }, + "acceleratorManufacturers": { + "type": "array", + "description": "The accelerator manufacturers specified as a list. \nacceleratorSupport should be set to \"Included\" or \"Required\" to use this VMAttribute. \nIf acceleratorSupport is \"Excluded\", this VMAttribute can not be used.", + "items": { + "$ref": "#/definitions/AcceleratorManufacturer" + }, + "x-ms-identifiers": [] + }, + "acceleratorTypes": { + "type": "array", + "description": "The accelerator types specified as a list. acceleratorSupport should be set to \"Included\" or \"Required\" to use this VMAttribute. \nIf acceleratorSupport is \"Excluded\", this VMAttribute can not be used.", + "items": { + "$ref": "#/definitions/AcceleratorType" + }, + "x-ms-identifiers": [] + }, + "acceleratorCount": { + "$ref": "#/definitions/VMAttributeMinMaxInteger", + "description": "The range of accelerator count specified from min to max. Optional parameter. Either Min or Max is required if specified.\nacceleratorSupport should be set to \"Included\" or \"Required\" to use this VMAttribute. \nIf acceleratorSupport is \"Excluded\", this VMAttribute can not be used." + }, + "vmCategories": { + "type": "array", + "description": "The VM category specified as a list. Optional parameter.", + "items": { + "$ref": "#/definitions/VMCategory" + }, + "x-ms-identifiers": [] + }, + "architectureTypes": { + "type": "array", + "description": "The VM architecture types specified as a list. Optional parameter.", + "items": { + "$ref": "#/definitions/ArchitectureType" + }, + "x-ms-identifiers": [] + }, + "cpuManufacturers": { + "type": "array", + "description": "The VM CPU manufacturers specified as a list. Optional parameter.", + "items": { + "$ref": "#/definitions/CpuManufacturer" + }, + "x-ms-identifiers": [] + }, + "burstableSupport": { + "$ref": "#/definitions/VMAttributeSupport", + "description": "Specifies whether the VMSize supporting burstable capability should be used to build Fleet or not." + }, + "excludedVMSizes": { + "type": "array", + "description": "Specifies which VMSizes should be excluded while building Fleet. Optional parameter.", + "items": { + "type": "string" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "vCpuCount", + "memoryInGiB" + ] + }, + "VMCategory": { + "type": "string", + "description": "VMCategories defined for Azure VMs.\nSee: https://learn.microsoft.com/en-us/azure/virtual-machines/sizes/overview?tabs=breakdownseries%2Cgeneralsizelist%2Ccomputesizelist%2Cmemorysizelist%2Cstoragesizelist%2Cgpusizelist%2Cfpgasizelist%2Chpcsizelist#general-purpose", + "enum": [ + "GeneralPurpose", + "ComputeOptimized", + "MemoryOptimized", + "StorageOptimized", + "GpuAccelerated", + "FpgaAccelerated", + "HighPerformanceCompute" + ], + "x-ms-enum": { + "name": "VMCategory", + "modelAsString": true, + "values": [ + { + "name": "GeneralPurpose", + "value": "GeneralPurpose", + "description": "General purpose VM sizes provide balanced CPU-to-memory ratio. Ideal for testing and development, small to medium databases, and low to medium traffic web servers." + }, + { + "name": "ComputeOptimized", + "value": "ComputeOptimized", + "description": "Compute optimized VM sizes have a high CPU-to-memory ratio. These sizes are good for medium traffic web servers, network appliances, batch processes, and application servers." + }, + { + "name": "MemoryOptimized", + "value": "MemoryOptimized", + "description": "Memory optimized VM sizes offer a high memory-to-CPU ratio that is great for relational database servers, medium to large caches, and in-memory analytics." + }, + { + "name": "StorageOptimized", + "value": "StorageOptimized", + "description": "Storage optimized virtual machine (VM) sizes offer high disk throughput and IO, and are ideal for Big Data, SQL, NoSQL databases, data warehousing, and large transactional databases. \nExamples include Cassandra, MongoDB, Cloudera, and Redis." + }, + { + "name": "GpuAccelerated", + "value": "GpuAccelerated", + "description": "GPU optimized VM sizes are specialized virtual machines available with single, multiple, or fractional GPUs. \nThese sizes are designed for compute-intensive, graphics-intensive, and visualization workloads." + }, + { + "name": "FpgaAccelerated", + "value": "FpgaAccelerated", + "description": "FPGA optimized VM sizes are specialized virtual machines available with single or multiple FPGA. \nThese sizes are designed for compute-intensive workloads. This article provides information about the number and type of FPGA, vCPUs, data disks, and NICs. \nStorage throughput and network bandwidth are also included for each size in this grouping." + }, + { + "name": "HighPerformanceCompute", + "value": "HighPerformanceCompute", + "description": "Azure High Performance Compute VMs are optimized for various HPC workloads such as computational fluid dynamics, finite element analysis, frontend and backend EDA, \nrendering, molecular dynamics, computational geo science, weather simulation, and financial risk analysis." + } + ] + } + }, + "VMDiskSecurityProfile": { + "type": "object", + "description": "Specifies the security profile settings for the managed disk. **Note:** It can\nonly be set for Confidential VMs.", + "properties": { + "securityEncryptionType": { + "$ref": "#/definitions/SecurityEncryptionTypes", + "description": "Specifies the EncryptionType of the managed disk. It is set to\nDiskWithVMGuestState for encryption of the managed disk along with VMGuestState\nblob, VMGuestStateOnly for encryption of just the VMGuestState blob, and\nNonPersistedTPM for not persisting firmware state in the VMGuestState blob..\n**Note:** It can be set for only Confidential VMs." + }, + "diskEncryptionSet": { + "$ref": "#/definitions/DiskEncryptionSetParameters", + "description": "Specifies the customer managed disk encryption set resource id for the managed\ndisk that is used for Customer Managed Key encrypted ConfidentialVM OS Disk and\nVMGuest blob." + } + } + }, + "VMGalleryApplication": { + "type": "object", + "description": "Specifies the required information to reference a compute gallery application\nversion", + "properties": { + "tags": { + "type": "string", + "description": "Optional, Specifies a passthrough value for more generic context." + }, + "order": { + "type": "integer", + "format": "int32", + "description": "Optional, Specifies the order in which the packages have to be installed" + }, + "packageReferenceId": { + "type": "string", + "format": "arm-id", + "description": "Specifies the GalleryApplicationVersion resource id on the form of\n/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{application}/versions/{version}" + }, + "configurationReference": { + "type": "string", + "description": "Optional, Specifies the uri to an azure blob that will replace the default\nconfiguration for the package if provided" + }, + "treatFailureAsDeploymentFailure": { + "type": "boolean", + "description": "Optional, If true, any failure for any operation in the VmApplication will fail\nthe deployment" + }, + "enableAutomaticUpgrade": { + "type": "boolean", + "description": "If set to true, when a new Gallery Application version is available in PIR/SIG,\nit will be automatically updated for the VM/VMSS" + } + }, + "required": [ + "packageReferenceId" + ] + }, + "VMSizeProperties": { + "type": "object", + "description": "Specifies VM Size Property settings on the virtual machine.", + "properties": { + "vCPUsAvailable": { + "type": "integer", + "format": "int32", + "description": "Specifies the number of vCPUs available for the VM. When this property is not\nspecified in the request body the default behavior is to set it to the value of\nvCPUs available for that VM size exposed in api response of [List all available\nvirtual machine sizes in a\nregion](https://learn.microsoft.com/en-us/rest/api/compute/resource-skus/list)." + }, + "vCPUsPerCore": { + "type": "integer", + "format": "int32", + "description": "Specifies the vCPU to physical core ratio. When this property is not specified\nin the request body the default behavior is set to the value of vCPUsPerCore\nfor the VM Size exposed in api response of [List all available virtual machine\nsizes in a\nregion](https://learn.microsoft.com/en-us/rest/api/compute/resource-skus/list).\n**Setting this property to 1 also means that hyper-threading is disabled.**" + } + } + }, + "VaultCertificate": { + "type": "object", + "description": "Describes a single certificate reference in a Key Vault, and where the\ncertificate should reside on the VM.", + "properties": { + "certificateUrl": { + "type": "string", + "format": "uri", + "description": "This is the URL of a certificate that has been uploaded to Key Vault as a\nsecret. For adding a secret to the Key Vault, see [Add a key or secret to the\nkey\nvault](https://learn.microsoft.com/azure/key-vault/key-vault-get-started/#add).\nIn this case, your certificate needs to be It is the Base64 encoding of the\nfollowing JSON Object which is encoded in UTF-8:

{
\n\"data\":\"\",
\"dataType\":\"pfx\",
\n\"password\":\"\"
}
To install certificates on a virtual\nmachine it is recommended to use the [Azure Key Vault virtual machine extension\nfor\nLinux](https://learn.microsoft.com/azure/virtual-machines/extensions/key-vault-linux)\nor the [Azure Key Vault virtual machine extension for\nWindows](https://learn.microsoft.com/azure/virtual-machines/extensions/key-vault-windows)." + }, + "certificateStore": { + "type": "string", + "description": "For Windows VMs, specifies the certificate store on the Virtual Machine to\nwhich the certificate should be added. The specified certificate store is\nimplicitly in the LocalMachine account. For Linux VMs, the certificate file is\nplaced under the /var/lib/waagent directory, with the file name\n<UppercaseThumbprint>.crt for the X509 certificate file and\n<UppercaseThumbprint>.prv for private key. Both of these files are .pem\nformatted." + } + } + }, + "VaultSecretGroup": { + "type": "object", + "description": "Describes a set of certificates which are all in the same Key Vault.", + "properties": { + "sourceVault": { + "$ref": "#/definitions/SubResource", + "description": "The relative URL of the Key Vault containing all of the certificates in\nVaultCertificates." + }, + "vaultCertificates": { + "type": "array", + "description": "The list of key vault references in SourceVault which contain certificates.", + "items": { + "$ref": "#/definitions/VaultCertificate" + }, + "x-ms-identifiers": [ + "certificateUrl" + ] + } + } + }, + "VirtualHardDisk": { + "type": "object", + "description": "Describes the uri of a disk.", + "properties": { + "uri": { + "type": "string", + "format": "uri", + "description": "Specifies the virtual hard disk's uri." + } + } + }, + "VirtualMachineScaleSet": { + "type": "object", + "description": "An AzureFleet's virtualMachineScaleSet", + "properties": { + "name": { + "type": "string", + "description": "The name of the virtualMachineScaleSet", + "readOnly": true + }, + "id": { + "type": "string", + "format": "arm-id", + "description": "The compute RP resource id of the virtualMachineScaleSet \n\"subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmssName}\"", + "readOnly": true + }, + "type": { + "type": "string", + "description": "Type of the virtualMachineScaleSet", + "readOnly": true + }, + "operationStatus": { + "$ref": "#/definitions/ProvisioningState", + "description": "This represents the operationStatus of the VMSS in response to the last operation that was performed on it by Azure Fleet resource.", + "readOnly": true + }, + "error": { + "$ref": "#/definitions/ApiError", + "description": "Error Information when `operationStatus` is `Failed`", + "readOnly": true + } + }, + "required": [ + "name", + "id", + "operationStatus" + ] + }, + "VirtualMachineScaleSetDataDisk": { + "type": "object", + "description": "Describes a virtual machine scale set data disk.", + "properties": { + "name": { + "type": "string", + "description": "The disk name." + }, + "lun": { + "type": "integer", + "format": "int32", + "description": "Specifies the logical unit number of the data disk. This value is used to\nidentify data disks within the VM and therefore must be unique for each data\ndisk attached to a VM." + }, + "caching": { + "$ref": "#/definitions/CachingTypes", + "description": "Specifies the caching requirements. Possible values are: **None,**\n**ReadOnly,** **ReadWrite.** The default values are: **None for Standard\nstorage. ReadOnly for Premium storage.**" + }, + "writeAcceleratorEnabled": { + "type": "boolean", + "description": "Specifies whether writeAccelerator should be enabled or disabled on the disk." + }, + "createOption": { + "$ref": "#/definitions/DiskCreateOptionTypes", + "description": "The create option." + }, + "diskSizeGB": { + "type": "integer", + "format": "int32", + "description": "Specifies the size of an empty data disk in gigabytes. This element can be used\nto overwrite the size of the disk in a virtual machine image. The property\ndiskSizeGB is the number of bytes x 1024^3 for the disk and the value cannot be\nlarger than 1023." + }, + "managedDisk": { + "$ref": "#/definitions/VirtualMachineScaleSetManagedDiskParameters", + "description": "The managed disk parameters." + }, + "diskIOPSReadWrite": { + "type": "integer", + "format": "int64", + "description": "Specifies the Read-Write IOPS for the managed disk. Should be used only when\nStorageAccountType is UltraSSD_LRS. If not specified, a default value would be\nassigned based on diskSizeGB." + }, + "diskMBpsReadWrite": { + "type": "integer", + "format": "int64", + "description": "Specifies the bandwidth in MB per second for the managed disk. Should be used\nonly when StorageAccountType is UltraSSD_LRS. If not specified, a default value\nwould be assigned based on diskSizeGB." + }, + "deleteOption": { + "$ref": "#/definitions/DiskDeleteOptionTypes", + "description": "Specifies whether data disk should be deleted or detached upon VMSS Flex\ndeletion (This feature is available for VMSS with Flexible OrchestrationMode\nonly).

Possible values:

**Delete** If this value is used, the\ndata disk is deleted when the VMSS Flex VM is deleted.

**Detach** If\nthis value is used, the data disk is retained after VMSS Flex VM is\ndeleted.

The default value is set to **Delete**." + } + }, + "required": [ + "lun", + "createOption" + ] + }, + "VirtualMachineScaleSetExtension": { + "type": "object", + "description": "Describes a Virtual Machine Scale Set Extension.", + "properties": { + "id": { + "type": "string", + "format": "arm-id", + "description": "Resource Id", + "readOnly": true + }, + "name": { + "type": "string", + "description": "The name of the extension." + }, + "type": { + "type": "string", + "description": "Resource type", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/VirtualMachineScaleSetExtensionProperties", + "description": "Describes the properties of a Virtual Machine Scale Set Extension." + } + } + }, + "VirtualMachineScaleSetExtensionProfile": { + "type": "object", + "description": "Describes a virtual machine scale set extension profile.", + "properties": { + "extensions": { + "type": "array", + "description": "The virtual machine scale set child extension resources.", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetExtension" + } + }, + "extensionsTimeBudget": { + "type": "string", + "description": "Specifies the time alloted for all extensions to start. The time duration\nshould be between 15 minutes and 120 minutes (inclusive) and should be\nspecified in ISO 8601 format. The default value is 90 minutes (PT1H30M).\nMinimum api-version: 2020-06-01." + } + } + }, + "VirtualMachineScaleSetExtensionProperties": { + "type": "object", + "description": "Describes the properties of a Virtual Machine Scale Set Extension.", + "properties": { + "forceUpdateTag": { + "type": "string", + "description": "If a value is provided and is different from the previous value, the extension\nhandler will be forced to update even if the extension configuration has not\nchanged." + }, + "publisher": { + "type": "string", + "description": "The name of the extension handler publisher." + }, + "type": { + "type": "string", + "description": "Specifies the type of the extension; an example is \"CustomScriptExtension\"." + }, + "typeHandlerVersion": { + "type": "string", + "description": "Specifies the version of the script handler." + }, + "autoUpgradeMinorVersion": { + "type": "boolean", + "description": "Indicates whether the extension should use a newer minor version if one is\navailable at deployment time. Once deployed, however, the extension will not\nupgrade minor versions unless redeployed, even with this property set to true." + }, + "enableAutomaticUpgrade": { + "type": "boolean", + "description": "Indicates whether the extension should be automatically upgraded by the\nplatform if there is a newer version of the extension available." + }, + "settings": { + "type": "object", + "description": "Json formatted public settings for the extension.", + "additionalProperties": {} + }, + "protectedSettings": { + "type": "object", + "description": "The extension can contain either protectedSettings or\nprotectedSettingsFromKeyVault or no protected settings at all.", + "additionalProperties": {}, + "x-ms-mutability": [ + "update", + "create" + ], + "x-ms-secret": true + }, + "provisioningState": { + "type": "string", + "description": "The provisioning state, which only appears in the response.", + "readOnly": true + }, + "provisionAfterExtensions": { + "type": "array", + "description": "Collection of extension names after which this extension needs to be\nprovisioned.", + "items": { + "type": "string" + } + }, + "suppressFailures": { + "type": "boolean", + "description": "Indicates whether failures stemming from the extension will be suppressed\n(Operational failures such as not connecting to the VM will not be suppressed\nregardless of this value). The default is false." + }, + "protectedSettingsFromKeyVault": { + "$ref": "#/definitions/KeyVaultSecretReference", + "description": "The extensions protected settings that are passed by reference, and consumed\nfrom key vault" + } + } + }, + "VirtualMachineScaleSetHardwareProfile": { + "type": "object", + "description": "Specifies the hardware settings for the virtual machine scale set.", + "properties": { + "vmSizeProperties": { + "$ref": "#/definitions/VMSizeProperties", + "description": "Specifies the properties for customizing the size of the virtual machine.\nMinimum api-version: 2021-11-01. Please follow the instructions in [VM\nCustomization](https://aka.ms/vmcustomization) for more details." + } + } + }, + "VirtualMachineScaleSetIPConfiguration": { + "type": "object", + "description": "Describes a virtual machine scale set network profile's IP configuration.", + "properties": { + "name": { + "type": "string", + "description": "The IP configuration name." + }, + "properties": { + "$ref": "#/definitions/VirtualMachineScaleSetIPConfigurationProperties", + "description": "Describes a virtual machine scale set network profile's IP configuration\nproperties." + } + }, + "required": [ + "name" + ] + }, + "VirtualMachineScaleSetIPConfigurationProperties": { + "type": "object", + "description": "Describes a virtual machine scale set network profile's IP configuration\nproperties.", + "properties": { + "subnet": { + "$ref": "#/definitions/ApiEntityReference", + "description": "Specifies the identifier of the subnet." + }, + "primary": { + "type": "boolean", + "description": "Specifies the primary network interface in case the virtual machine has more\nthan 1 network interface." + }, + "publicIPAddressConfiguration": { + "$ref": "#/definitions/VirtualMachineScaleSetPublicIPAddressConfiguration", + "description": "The publicIPAddressConfiguration." + }, + "privateIPAddressVersion": { + "$ref": "#/definitions/IPVersion", + "description": "Available from Api-Version 2017-03-30 onwards, it represents whether the\nspecific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible\nvalues are: 'IPv4' and 'IPv6'." + }, + "applicationGatewayBackendAddressPools": { + "type": "array", + "description": "Specifies an array of references to backend address pools of application\ngateways. A scale set can reference backend address pools of multiple\napplication gateways. Multiple scale sets cannot use the same application\ngateway.", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + "applicationSecurityGroups": { + "type": "array", + "description": "Specifies an array of references to application security group.", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + "loadBalancerBackendAddressPools": { + "type": "array", + "description": "Specifies an array of references to backend address pools of load balancers. A\nscale set can reference backend address pools of one public and one internal\nload balancer. Multiple scale sets cannot use the same basic sku load balancer.", + "items": { + "$ref": "#/definitions/SubResource" + } + }, + "loadBalancerInboundNatPools": { + "type": "array", + "description": "Specifies an array of references to inbound Nat pools of the load balancers. A\nscale set can reference inbound nat pools of one public and one internal load\nbalancer. Multiple scale sets cannot use the same basic sku load balancer.", + "items": { + "$ref": "#/definitions/SubResource" + } + } + } + }, + "VirtualMachineScaleSetIpTag": { + "type": "object", + "description": "Contains the IP tag associated with the public IP address.", + "properties": { + "ipTagType": { + "type": "string", + "description": "IP tag type. Example: FirstPartyUsage." + }, + "tag": { + "type": "string", + "description": "IP tag associated with the public IP. Example: SQL, Storage etc." + } + } + }, + "VirtualMachineScaleSetListResult": { + "type": "object", + "description": "The response of a VirtualMachineScaleSet list operation.", + "properties": { + "value": { + "type": "array", + "description": "The VirtualMachineScaleSet items on this page", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSet" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "VirtualMachineScaleSetManagedDiskParameters": { + "type": "object", + "description": "Describes the parameters of a ScaleSet managed disk.", + "properties": { + "storageAccountType": { + "$ref": "#/definitions/StorageAccountTypes", + "description": "Specifies the storage account type for the managed disk. NOTE: UltraSSD_LRS can\nonly be used with data disks, it cannot be used with OS Disk." + }, + "diskEncryptionSet": { + "$ref": "#/definitions/DiskEncryptionSetParameters", + "description": "Specifies the customer managed disk encryption set resource id for the managed\ndisk." + }, + "securityProfile": { + "$ref": "#/definitions/VMDiskSecurityProfile", + "description": "Specifies the security profile for the managed disk." + } + } + }, + "VirtualMachineScaleSetNetworkConfiguration": { + "type": "object", + "description": "Describes a virtual machine scale set network profile's network configurations.", + "properties": { + "name": { + "type": "string", + "description": "The network configuration name." + }, + "properties": { + "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfigurationProperties", + "description": "Describes a virtual machine scale set network profile's IP configuration." + } + }, + "required": [ + "name" + ] + }, + "VirtualMachineScaleSetNetworkConfigurationDnsSettings": { + "type": "object", + "description": "Describes a virtual machines scale sets network configuration's DNS settings.", + "properties": { + "dnsServers": { + "type": "array", + "description": "List of DNS servers IP addresses", + "items": { + "type": "string" + } + } + } + }, + "VirtualMachineScaleSetNetworkConfigurationProperties": { + "type": "object", + "description": "Describes a virtual machine scale set network profile's IP configuration.", + "properties": { + "primary": { + "type": "boolean", + "description": "Specifies the primary network interface in case the virtual machine has more\nthan 1 network interface." + }, + "enableAcceleratedNetworking": { + "type": "boolean", + "description": "Specifies whether the network interface is accelerated networking-enabled." + }, + "disableTcpStateTracking": { + "type": "boolean", + "description": "Specifies whether the network interface is disabled for tcp state tracking." + }, + "enableFpga": { + "type": "boolean", + "description": "Specifies whether the network interface is FPGA networking-enabled." + }, + "networkSecurityGroup": { + "$ref": "#/definitions/SubResource", + "description": "The network security group." + }, + "dnsSettings": { + "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfigurationDnsSettings", + "description": "The dns settings to be applied on the network interfaces." + }, + "ipConfigurations": { + "type": "array", + "description": "Specifies the IP configurations of the network interface.", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetIPConfiguration" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "enableIPForwarding": { + "type": "boolean", + "description": "Whether IP forwarding enabled on this NIC." + }, + "deleteOption": { + "$ref": "#/definitions/DeleteOptions", + "description": "Specify what happens to the network interface when the VM is deleted" + }, + "auxiliaryMode": { + "$ref": "#/definitions/NetworkInterfaceAuxiliaryMode", + "description": "Specifies whether the Auxiliary mode is enabled for the Network Interface\nresource." + }, + "auxiliarySku": { + "$ref": "#/definitions/NetworkInterfaceAuxiliarySku", + "description": "Specifies whether the Auxiliary sku is enabled for the Network Interface\nresource." + } + }, + "required": [ + "ipConfigurations" + ] + }, + "VirtualMachineScaleSetNetworkProfile": { + "type": "object", + "description": "Describes a virtual machine scale set network profile.", + "properties": { + "healthProbe": { + "$ref": "#/definitions/ApiEntityReference", + "description": "A reference to a load balancer probe used to determine the health of an\ninstance in the virtual machine scale set. The reference will be in the form:\n'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/{loadBalancerName}/probes/{probeName}'." + }, + "networkInterfaceConfigurations": { + "type": "array", + "description": "The list of network configurations.", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfiguration" + }, + "x-ms-identifiers": [] + }, + "networkApiVersion": { + "$ref": "#/definitions/NetworkApiVersion", + "description": "specifies the Microsoft.Network API version used when creating networking\nresources in the Network Interface Configurations for Virtual Machine Scale Set\nwith orchestration mode 'Flexible'" + } + } + }, + "VirtualMachineScaleSetOSDisk": { + "type": "object", + "description": "Describes a virtual machine scale set operating system disk.", + "properties": { + "name": { + "type": "string", + "description": "The disk name." + }, + "caching": { + "$ref": "#/definitions/CachingTypes", + "description": "Specifies the caching requirements. Possible values are: **None,**\n**ReadOnly,** **ReadWrite.** The default values are: **None for Standard\nstorage. ReadOnly for Premium storage.**" + }, + "writeAcceleratorEnabled": { + "type": "boolean", + "description": "Specifies whether writeAccelerator should be enabled or disabled on the disk." + }, + "createOption": { + "$ref": "#/definitions/DiskCreateOptionTypes", + "description": "Specifies how the virtual machines in the scale set should be created. The only\nallowed value is: **FromImage.** This value is used when you are using an image\nto create the virtual machine. If you are using a platform image, you also use\nthe imageReference element described above. If you are using a marketplace\nimage, you also use the plan element previously described." + }, + "diffDiskSettings": { + "$ref": "#/definitions/DiffDiskSettings", + "description": "Specifies the ephemeral disk Settings for the operating system disk used by the\nvirtual machine scale set." + }, + "diskSizeGB": { + "type": "integer", + "format": "int32", + "description": "Specifies the size of an empty data disk in gigabytes. This element can be used\nto overwrite the size of the disk in a virtual machine image. The property 'diskSizeGB'\nis the number of bytes x 1024^3 for the disk and the value cannot\nbe larger than 1023." + }, + "osType": { + "$ref": "#/definitions/OperatingSystemTypes", + "description": "This property allows you to specify the type of the OS that is included in the\ndisk if creating a VM from user-image or a specialized VHD. Possible values\nare: **Windows,** **Linux.**" + }, + "image": { + "$ref": "#/definitions/VirtualHardDisk", + "description": "Specifies information about the unmanaged user image to base the scale set on." + }, + "vhdContainers": { + "type": "array", + "description": "Specifies the container urls that are used to store operating system disks for\nthe scale set.", + "items": { + "type": "string" + } + }, + "managedDisk": { + "$ref": "#/definitions/VirtualMachineScaleSetManagedDiskParameters", + "description": "The managed disk parameters." + }, + "deleteOption": { + "$ref": "#/definitions/DiskDeleteOptionTypes", + "description": "Specifies whether OS Disk should be deleted or detached upon VMSS Flex deletion\n(This feature is available for VMSS with Flexible OrchestrationMode only).\n

Possible values:

**Delete** If this value is used, the OS\ndisk is deleted when VMSS Flex VM is deleted.

**Detach** If this value\nis used, the OS disk is retained after VMSS Flex VM is deleted.

The\ndefault value is set to **Delete**. For an Ephemeral OS Disk, the default value\nis set to **Delete**. User cannot change the delete option for Ephemeral OS\nDisk." + } + }, + "required": [ + "createOption" + ] + }, + "VirtualMachineScaleSetOSProfile": { + "type": "object", + "description": "Describes a virtual machine scale set OS profile.", + "properties": { + "computerNamePrefix": { + "type": "string", + "description": "Specifies the computer name prefix for all of the virtual machines in the scale\nset. Computer name prefixes must be 1 to 15 characters long." + }, + "adminUsername": { + "type": "string", + "description": "Specifies the name of the administrator account.

**Windows-only\nrestriction:** Cannot end in \".\"

**Disallowed values:**\n\"administrator\", \"admin\", \"user\", \"user1\", \"test\", \"user2\", \"test1\", \"user3\",\n\"admin1\", \"1\", \"123\", \"a\", \"actuser\", \"adm\", \"admin2\", \"aspnet\", \"backup\",\n\"console\", \"david\", \"guest\", \"john\", \"owner\", \"root\", \"server\", \"sql\",\n\"support\", \"support_388945a0\", \"sys\", \"test2\", \"test3\", \"user4\", \"user5\".\n

**Minimum-length (Linux):** 1 character

**Max-length\n(Linux):** 64 characters

**Max-length (Windows):** 20 characters" + }, + "adminPassword": { + "type": "string", + "format": "password", + "description": "Specifies the password of the administrator account.

**Minimum-length\n(Windows):** 8 characters

**Minimum-length (Linux):** 6 characters\n

**Max-length (Windows):** 123 characters

**Max-length\n(Linux):** 72 characters

**Complexity requirements:** 3 out of 4\nconditions below need to be fulfilled
Has lower characters
Has upper\ncharacters
Has a digit
Has a special character (Regex match [\\W_])\n

**Disallowed values:** \"abc@123\", \"P@$$w0rd\", \"P@ssw0rd\",\n\"P@ssword123\", \"Pa$$word\", \"pass@word1\", \"Password!\", \"Password1\",\n\"Password22\", \"iloveyou!\"

For resetting the password, see [How to\nreset the Remote Desktop service or its login password in a Windows\nVM](https://learn.microsoft.com/troubleshoot/azure/virtual-machines/reset-rdp)\n

For resetting root password, see [Manage users, SSH, and check or\nrepair disks on Azure Linux VMs using the VMAccess\nExtension](https://learn.microsoft.com/troubleshoot/azure/virtual-machines/troubleshoot-ssh-connection)", + "x-ms-mutability": [ + "update", + "create" + ], + "x-ms-secret": true + }, + "customData": { + "type": "string", + "format": "password", + "description": "Specifies a base-64 encoded string of custom data. The base-64 encoded string\nis decoded to a binary array that is saved as a file on the Virtual Machine.\nThe maximum length of the binary array is 65535 bytes. For using cloud-init for\nyour VM, see [Using cloud-init to customize a Linux VM during\ncreation](https://learn.microsoft.com/azure/virtual-machines/linux/using-cloud-init)", + "x-ms-mutability": [ + "update", + "create" + ], + "x-ms-secret": true + }, + "windowsConfiguration": { + "$ref": "#/definitions/WindowsConfiguration", + "description": "Specifies Windows operating system settings on the virtual machine." + }, + "linuxConfiguration": { + "$ref": "#/definitions/LinuxConfiguration", + "description": "Specifies the Linux operating system settings on the virtual machine. For a\nlist of supported Linux distributions, see [Linux on Azure-Endorsed\nDistributions](https://learn.microsoft.com/azure/virtual-machines/linux/endorsed-distros)." + }, + "secrets": { + "type": "array", + "description": "Specifies set of certificates that should be installed onto the virtual\nmachines in the scale set. To install certificates on a virtual machine it is\nrecommended to use the [Azure Key Vault virtual machine extension for\nLinux](https://learn.microsoft.com/azure/virtual-machines/extensions/key-vault-linux)\nor the [Azure Key Vault virtual machine extension for\nWindows](https://learn.microsoft.com/azure/virtual-machines/extensions/key-vault-windows).", + "items": { + "$ref": "#/definitions/VaultSecretGroup" + }, + "x-ms-identifiers": [ + "sourceVault/id" + ] + }, + "allowExtensionOperations": { + "type": "boolean", + "description": "Specifies whether extension operations should be allowed on the virtual machine\nscale set. This may only be set to False when no extensions are present on the\nvirtual machine scale set." + }, + "requireGuestProvisionSignal": { + "type": "boolean", + "description": "Optional property which must either be set to True or omitted." + } + } + }, + "VirtualMachineScaleSetPublicIPAddressConfiguration": { + "type": "object", + "description": "Describes a virtual machines scale set IP Configuration's PublicIPAddress\nconfiguration", + "properties": { + "name": { + "type": "string", + "description": "The publicIP address configuration name." + }, + "properties": { + "$ref": "#/definitions/VirtualMachineScaleSetPublicIPAddressConfigurationProperties", + "description": "Describes a virtual machines scale set IP Configuration's PublicIPAddress\nconfiguration" + }, + "sku": { + "$ref": "#/definitions/PublicIPAddressSku", + "description": "Describes the public IP Sku. It can only be set with OrchestrationMode as\nFlexible." + } + }, + "required": [ + "name" + ] + }, + "VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings": { + "type": "object", + "description": "Describes a virtual machines scale sets network configuration's DNS settings.", + "properties": { + "domainNameLabel": { + "type": "string", + "description": "The Domain name label.The concatenation of the domain name label and vm index\nwill be the domain name labels of the PublicIPAddress resources that will be\ncreated" + }, + "domainNameLabelScope": { + "$ref": "#/definitions/DomainNameLabelScopeTypes", + "description": "The Domain name label scope.The concatenation of the hashed domain name label\nthat generated according to the policy from domain name label scope and vm\nindex will be the domain name labels of the PublicIPAddress resources that will\nbe created" + } + }, + "required": [ + "domainNameLabel" + ] + }, + "VirtualMachineScaleSetPublicIPAddressConfigurationProperties": { + "type": "object", + "description": "Describes a virtual machines scale set IP Configuration's PublicIPAddress\nconfiguration", + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "format": "int32", + "description": "The idle timeout of the public IP address." + }, + "dnsSettings": { + "$ref": "#/definitions/VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings", + "description": "The dns settings to be applied on the publicIP addresses ." + }, + "ipTags": { + "type": "array", + "description": "The list of IP tags associated with the public IP address.", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetIpTag" + }, + "x-ms-identifiers": [] + }, + "publicIPPrefix": { + "$ref": "#/definitions/SubResource", + "description": "The PublicIPPrefix from which to allocate publicIP addresses." + }, + "publicIPAddressVersion": { + "$ref": "#/definitions/IPVersion", + "description": "Available from Api-Version 2019-07-01 onwards, it represents whether the\nspecific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible\nvalues are: 'IPv4' and 'IPv6'." + }, + "deleteOption": { + "$ref": "#/definitions/DeleteOptions", + "description": "Specify what happens to the public IP when the VM is deleted" + } + } + }, + "VirtualMachineScaleSetStorageProfile": { + "type": "object", + "description": "Describes a virtual machine scale set storage profile.", + "properties": { + "imageReference": { + "$ref": "#/definitions/ImageReference", + "description": "Specifies information about the image to use. You can specify information about\nplatform images, marketplace images, or virtual machine images. This element is\nrequired when you want to use a platform image, marketplace image, or virtual\nmachine image, but is not used in other creation operations." + }, + "osDisk": { + "$ref": "#/definitions/VirtualMachineScaleSetOSDisk", + "description": "Specifies information about the operating system disk used by the virtual\nmachines in the scale set. For more information about disks, see [About disks\nand VHDs for Azure virtual\nmachines](https://learn.microsoft.com/azure/virtual-machines/managed-disks-overview)." + }, + "dataDisks": { + "type": "array", + "description": "Specifies the parameters that are used to add data disks to the virtual\nmachines in the scale set. For more information about disks, see [About disks\nand VHDs for Azure virtual\nmachines](https://learn.microsoft.com/azure/virtual-machines/managed-disks-overview).", + "items": { + "$ref": "#/definitions/VirtualMachineScaleSetDataDisk" + }, + "x-ms-identifiers": [ + "name", + "lun" + ] + }, + "diskControllerType": { + "$ref": "#/definitions/DiskControllerTypes", + "description": "Specifies the disk controller type configured for the virtual machines in the scale set. Minimum api-version: 2022-08-01" + } + } + }, + "VmSizeProfile": { + "type": "object", + "description": "Specifications about a VM Size. This will also contain the corresponding rank and weight in future.", + "properties": { + "name": { + "type": "string", + "description": "The Sku name (e.g. 'Standard_DS1_v2')" + }, + "rank": { + "type": "integer", + "format": "int32", + "description": "The rank of the VM size. This is used with 'RegularPriorityAllocationStrategy.Prioritized'\nThe lower the number, the higher the priority. Starting with 0.", + "minimum": 0, + "maximum": 65535 + } + }, + "required": [ + "name" + ] + }, + "WinRMConfiguration": { + "type": "object", + "description": "Describes Windows Remote Management configuration of the VM", + "properties": { + "listeners": { + "type": "array", + "description": "The list of Windows Remote Management listeners", + "items": { + "$ref": "#/definitions/WinRMListener" + }, + "x-ms-identifiers": [] + } + } + }, + "WinRMListener": { + "type": "object", + "description": "Describes Protocol and thumbprint of Windows Remote Management listener", + "properties": { + "protocol": { + "$ref": "#/definitions/ProtocolTypes", + "description": "Specifies the protocol of WinRM listener. Possible values are: **http,**\n**https.**" + }, + "certificateUrl": { + "type": "string", + "format": "uri", + "description": "This is the URL of a certificate that has been uploaded to Key Vault as a\nsecret. For adding a secret to the Key Vault, see [Add a key or secret to the\nkey\nvault](https://learn.microsoft.com/azure/key-vault/key-vault-get-started/#add).\nIn this case, your certificate needs to be the Base64 encoding of the following\nJSON Object which is encoded in UTF-8:

{
\n\"data\":\"\",
\"dataType\":\"pfx\",
\n\"password\":\"\"
}
To install certificates on a virtual\nmachine it is recommended to use the [Azure Key Vault virtual machine extension\nfor\nLinux](https://learn.microsoft.com/azure/virtual-machines/extensions/key-vault-linux)\nor the [Azure Key Vault virtual machine extension for\nWindows](https://learn.microsoft.com/azure/virtual-machines/extensions/key-vault-windows)." + } + } + }, + "WindowsConfiguration": { + "type": "object", + "description": "Specifies Windows operating system settings on the virtual machine.", + "properties": { + "provisionVMAgent": { + "type": "boolean", + "description": "Indicates whether virtual machine agent should be provisioned on the virtual\nmachine. When this property is not specified in the request body, it is set to\ntrue by default. This will ensure that VM Agent is installed on the VM so that\nextensions can be added to the VM later." + }, + "enableAutomaticUpdates": { + "type": "boolean", + "description": "Indicates whether Automatic Updates is enabled for the Windows virtual machine.\nDefault value is true. For virtual machine scale sets, this property can be\nupdated and updates will take effect on OS reprovisioning." + }, + "timeZone": { + "type": "string", + "description": "Specifies the time zone of the virtual machine. e.g. \"Pacific Standard Time\".\nPossible values can be\n[TimeZoneInfo.Id](https://learn.microsoft.com/dotnet/api/system.timezoneinfo.id?#System_TimeZoneInfo_Id)\nvalue from time zones returned by\n[TimeZoneInfo.GetSystemTimeZones](https://learn.microsoft.com/dotnet/api/system.timezoneinfo.getsystemtimezones)." + }, + "additionalUnattendContent": { + "type": "array", + "description": "Specifies additional base-64 encoded XML formatted information that can be\nincluded in the Unattend.xml file, which is used by Windows Setup.", + "items": { + "$ref": "#/definitions/AdditionalUnattendContent" + }, + "x-ms-identifiers": [] + }, + "patchSettings": { + "$ref": "#/definitions/PatchSettings", + "description": "[Preview Feature] Specifies settings related to VM Guest Patching on Windows." + }, + "winRM": { + "$ref": "#/definitions/WinRMConfiguration", + "description": "Specifies the Windows Remote Management listeners. This enables remote Windows\nPowerShell." + }, + "enableVMAgentPlatformUpdates": { + "type": "boolean", + "description": "Indicates whether VMAgent Platform Updates is enabled for the Windows virtual\nmachine. Default value is false." + } + } + }, + "WindowsPatchAssessmentMode": { + "type": "string", + "description": "Specifies the mode of VM Guest patch assessment for the IaaS virtual machine.", + "enum": [ + "ImageDefault", + "AutomaticByPlatform" + ], + "x-ms-enum": { + "name": "WindowsPatchAssessmentMode", + "modelAsString": true, + "values": [ + { + "name": "ImageDefault", + "value": "ImageDefault", + "description": "You control the timing of patch assessments on a virtual machine." + }, + { + "name": "AutomaticByPlatform", + "value": "AutomaticByPlatform", + "description": "The platform will trigger periodic patch assessments. The property provisionVMAgent must be true." + } + ] + } + }, + "WindowsVMGuestPatchAutomaticByPlatformRebootSetting": { + "type": "string", + "description": "Specifies the reboot setting for all AutomaticByPlatform patch installation operations.", + "enum": [ + "Unknown", + "IfRequired", + "Never", + "Always" + ], + "x-ms-enum": { + "name": "WindowsVMGuestPatchAutomaticByPlatformRebootSetting", + "modelAsString": true, + "values": [ + { + "name": "Unknown", + "value": "Unknown", + "description": "Unknown Reboot setting" + }, + { + "name": "IfRequired", + "value": "IfRequired", + "description": "IfRequired Reboot setting" + }, + { + "name": "Never", + "value": "Never", + "description": "Never Reboot setting" + }, + { + "name": "Always", + "value": "Always", + "description": "Always Reboot setting" + } + ] + } + }, + "WindowsVMGuestPatchAutomaticByPlatformSettings": { + "type": "object", + "description": "Specifies additional settings to be applied when patch mode AutomaticByPlatform\nis selected in Windows patch settings.", + "properties": { + "rebootSetting": { + "$ref": "#/definitions/WindowsVMGuestPatchAutomaticByPlatformRebootSetting", + "description": "Specifies the reboot setting for all AutomaticByPlatform patch installation\noperations." + }, + "bypassPlatformSafetyChecksOnUserSchedule": { + "type": "boolean", + "description": "Enables customer to schedule patching without accidental upgrades" + } + } + }, + "WindowsVMGuestPatchMode": { + "type": "string", + "description": "Specifies the mode of VM Guest Patching to IaaS virtual machine or virtual\nmachines associated to virtual machine scale set with OrchestrationMode as\nFlexible.", + "enum": [ + "Manual", + "AutomaticByOS", + "AutomaticByPlatform" + ], + "x-ms-enum": { + "name": "WindowsVMGuestPatchMode", + "modelAsString": true, + "values": [ + { + "name": "Manual", + "value": "Manual", + "description": "You control the application of patches to a virtual machine.\nYou do this by applying patches manually inside the VM. In this mode,\nautomatic updates are disabled; the property WindowsConfiguration.enableAutomaticUpdates\nmust be false" + }, + { + "name": "AutomaticByOS", + "value": "AutomaticByOS", + "description": "The virtual machine will automatically be updated by the OS.\nThe property WindowsConfiguration.enableAutomaticUpdates must be true." + }, + { + "name": "AutomaticByPlatform", + "value": "AutomaticByPlatform", + "description": "The virtual machine will automatically updated by the platform. The properties\nprovisionVMAgent and WindowsConfiguration.enableAutomaticUpdates must be true." + } + ] + } + } + }, + "parameters": {} +} diff --git a/specification/azurefleet/resource-manager/readme.md b/specification/azurefleet/resource-manager/readme.md index 5efb46981174..3ea504a30e2b 100644 --- a/specification/azurefleet/resource-manager/readme.md +++ b/specification/azurefleet/resource-manager/readme.md @@ -38,15 +38,17 @@ suppressions: - $.definitions.VirtualMachineExtensionProperties.properties.settings - $.definitions.VirtualMachineScaleSetExtensionProperties.properties.protectedSettings - $.definitions.VirtualMachineScaleSetExtensionProperties.properties.settings - reason: Property "settings" and "protectedSettings" for VirtualMachineExtension - and VirtualMachineScaleSetExtensionProperties were previously defined like an empty object. + reason: + Property "settings" and "protectedSettings" for VirtualMachineExtension + and VirtualMachineScaleSetExtensionProperties were previously defined like an empty object. - code: DefinitionsPropertiesNamesCamelCase from: azurefleet.json where: - $.definitions.VirtualMachineScaleSetDataDisk.properties.diskIOPSReadWrite - $.definitions.AdditionalCapabilities.properties.ultraSSDEnabled - reason: Property "diskIOPSReadWrite" does not follow Camel Case and can't be changed as it is being - defined previously in Microsoft.Compute like this. ultraSSDEnabled - SSD doesn't follow camel case. + reason: + Property "diskIOPSReadWrite" does not follow Camel Case and can't be changed as it is being + defined previously in Microsoft.Compute like this. ultraSSDEnabled - SSD doesn't follow camel case. ``` ### Tag: package-preview-2023-11 @@ -87,11 +89,6 @@ This is not used by Autorest itself. ```yaml $(swagger-to-sdk) swagger-to-sdk: - - repo: azure-sdk-for-net - - repo: azure-sdk-for-python - - repo: azure-sdk-for-java - - repo: azure-sdk-for-go - - repo: azure-sdk-for-js - repo: azure-resource-manager-schemas - repo: azure-cli-extensions - repo: azure-powershell