diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/compute.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/compute.json index a2643769d84b..74e3bfcb3542 100644 --- a/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/compute.json +++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/compute.json @@ -3108,6 +3108,9 @@ }, "Create a VM with Uefi Settings of secureBoot and vTPM.": { "$ref": "./examples/CreateAVmWithUefiSettings.json" + }, + "Create a VM with network interface configuration": { + "$ref": "./examples/CreateAVmWithNetworkInterfaceConfiguration.json" } } }, @@ -9446,6 +9449,18 @@ "primary": { "type": "boolean", "description": "Specifies the primary network interface in case the virtual machine has more than 1 network interface." + }, + "deleteOption": { + "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 + } } }, "description": "Describes a network interface reference properties." @@ -9464,6 +9479,291 @@ ], "description": "Describes a network interface reference." }, + "VirtualMachineIpTag": { + "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." + } + }, + "description": "Contains the IP tag associated with the public IP address." + }, + "VirtualMachinePublicIPAddressDnsSettingsConfiguration": { + "properties": { + "domainNameLabel": { + "type": "string", + "description": "The Domain name label prefix of the PublicIPAddress resources that will be created. The generated name label is the concatenation of the domain name label and vm network profile unique ID." + } + }, + "required": [ + "domainNameLabel" + ], + "description": "Describes a virtual machines network configuration's DNS settings." + }, + "VirtualMachinePublicIPAddressConfigurationProperties": { + "properties": { + "idleTimeoutInMinutes": { + "type": "integer", + "format": "int32", + "description": "The idle timeout of the public IP address." + }, + "deleteOption": { + "type": "string", + "description": "Specify what happens to the public IP address when the VM is deleted", + "enum": [ + "Delete", + "Detach" + ], + "x-ms-enum": { + "name": "DeleteOptions", + "modelAsString": true + } + }, + "dnsSettings": { + "$ref": "#/definitions/VirtualMachinePublicIPAddressDnsSettingsConfiguration", + "description": "The dns settings to be applied on the publicIP addresses ." + }, + "ipTags": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineIpTag" + }, + "description": "The list of IP tags associated with the public IP address." + }, + "publicIPPrefix": { + "$ref": "#/definitions/SubResource", + "description": "The PublicIPPrefix from which to allocate publicIP addresses." + }, + "publicIPAddressVersion": { + "type": "string", + "description": "Available from Api-Version 2019-07-01 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.", + "enum": [ + "IPv4", + "IPv6" + ], + "x-ms-enum": { + "name": "IPVersions", + "modelAsString": true + } + }, + "publicIPAllocationMethod": { + "type": "string", + "description": "Specify the public IP allocation type", + "enum": [ + "Dynamic", + "Static" + ], + "x-ms-enum": { + "name": "PublicIPAllocationMethod", + "modelAsString": true + } + } + }, + "description": "Describes a virtual machines IP Configuration's PublicIPAddress configuration" + }, + "PublicIPAddressSku": { + "properties": { + "publicIPAddressSkuName": { + "type": "string", + "description": "Specify public IP sku name", + "enum": [ + "Basic", + "Standard" + ], + "x-ms-enum": { + "name": "PublicIPAddressSkuName", + "modelAsString": true + } + }, + "publicIPAddressSkuTier": { + "type": "string", + "description": "Specify public IP sku tier", + "enum": [ + "Regional", + "Global" + ], + "x-ms-enum": { + "name": "PublicIPAddressSkuTier", + "modelAsString": true + } + } + }, + "required": [ + "publicIPAddressSkuName" + ], + "description": "Describes the public IP Sku" + }, + "VirtualMachinePublicIPAddressConfiguration": { + "properties": { + "name": { + "type": "string", + "description": "The publicIP address configuration name." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachinePublicIPAddressConfigurationProperties" + }, + "sku": { + "$ref": "#/definitions/PublicIPAddressSku" + } + }, + "required": [ + "name" + ], + "description": "Describes a virtual machines IP Configuration's PublicIPAddress configuration" + }, + "VirtualMachineNetworkInterfaceIPConfigurationProperties": { + "properties": { + "subnet": { + "$ref": "#/definitions/SubResource", + "description": "Specifies the identifier of the subnet." + }, + "primary": { + "type": "boolean", + "description": "Specifies the primary network interface in case the virtual machine has more than 1 network interface." + }, + "publicIPAddressConfiguration": { + "$ref": "#/definitions/VirtualMachinePublicIPAddressConfiguration", + "description": "The publicIPAddressConfiguration." + }, + "privateIPAddressVersion": { + "type": "string", + "description": "Available from Api-Version 2017-03-30 onwards, it represents whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. Possible values are: 'IPv4' and 'IPv6'.", + "enum": [ + "IPv4", + "IPv6" + ], + "x-ms-enum": { + "name": "IPVersions", + "modelAsString": true + } + }, + "applicationSecurityGroups": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Specifies an array of references to application security group." + }, + "applicationGatewayBackendAddressPools": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Specifies an array of references to backend address pools of application gateways. A virtual machine can reference backend address pools of multiple application gateways. Multiple virtual machines cannot use the same application gateway." + }, + "loadBalancerBackendAddressPools": { + "type": "array", + "items": { + "$ref": "#/definitions/SubResource" + }, + "description": "Specifies an array of references to backend address pools of load balancers. A virtual machine can reference backend address pools of one public and one internal load balancer. [Multiple virtual machines cannot use the same basic sku load balancer]." + } + }, + "description": "Describes a virtual machine network interface IP configuration properties." + }, + "VirtualMachineNetworkInterfaceIPConfiguration": { + "properties": { + "name": { + "type": "string", + "description": "The IP configuration name." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachineNetworkInterfaceIPConfigurationProperties" + } + }, + "required": [ + "name" + ], + "description": "Describes a virtual machine network profile's IP configuration." + }, + "VirtualMachineNetworkInterfaceDnsSettingsConfiguration": { + "properties": { + "dnsServers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of DNS servers IP addresses" + } + }, + "description": "Describes a virtual machines network configuration's DNS settings." + }, + "VirtualMachineNetworkInterfaceConfigurationProperties": { + "properties": { + "primary": { + "type": "boolean", + "description": "Specifies the primary network interface in case the virtual machine has more than 1 network interface." + }, + "deleteOption": { + "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 + } + }, + "enableAcceleratedNetworking": { + "type": "boolean", + "description": "Specifies whether the network interface is accelerated networking-enabled." + }, + "enableFpga": { + "type": "boolean", + "description": "Specifies whether the network interface is FPGA networking-enabled." + }, + "enableIPForwarding": { + "type": "boolean", + "description": "Whether IP forwarding enabled on this NIC." + }, + "networkSecurityGroup": { + "$ref": "#/definitions/SubResource", + "description": "The network security group." + }, + "dnsSettings": { + "$ref": "#/definitions/VirtualMachineNetworkInterfaceDnsSettingsConfiguration", + "description": "The dns settings to be applied on the network interfaces." + }, + "ipConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineNetworkInterfaceIPConfiguration" + }, + "description": "Specifies the IP configurations of the network interface." + }, + "dscpConfiguration": { + "$ref": "#/definitions/SubResource" + } + }, + "required": [ + "ipConfigurations" + ], + "description": "Describes a virtual machine network profile's IP configuration." + }, + "VirtualMachineNetworkInterfaceConfiguration": { + "properties": { + "name": { + "type": "string", + "description": "The network interface configuration name." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/VirtualMachineNetworkInterfaceConfigurationProperties" + } + }, + "required": [ + "name" + ], + "description": "Describes a virtual machine network interface configurations." + }, "NetworkProfile": { "properties": { "networkInterfaces": { @@ -9472,9 +9772,27 @@ "$ref": "#/definitions/NetworkInterfaceReference" }, "description": "Specifies the list of resource Ids for the network interfaces associated with the virtual machine." + }, + "networkApiVersion": { + "type": "string", + "description": "specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations", + "enum": [ + "2020-11-01" + ], + "x-ms-enum": { + "name": "NetworkApiVersion", + "modelAsString": true + } + }, + "networkInterfaceConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/VirtualMachineNetworkInterfaceConfiguration" + }, + "description": "Specifies the networking configurations that will be used to create the virtual machine networking resources." } }, - "description": "Specifies the network interfaces of the virtual machine." + "description": "Specifies the network interfaces or the networking configuration of the virtual machine." }, "BootDiagnostics": { "properties": { @@ -10812,6 +11130,18 @@ "enableIPForwarding": { "type": "boolean", "description": "Whether IP forwarding enabled on this NIC." + }, + "deleteOption": { + "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 + } } }, "required": [ @@ -10851,6 +11181,18 @@ "enableIPForwarding": { "type": "boolean", "description": "Whether IP forwarding enabled on this NIC." + }, + "deleteOption": { + "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 + } } }, "description": "Describes a virtual machine scale set updatable network profile's IP configuration.Use this object for updating network profile's IP Configuration." @@ -10940,6 +11282,9 @@ "properties": { "x-ms-client-flatten": true, "$ref": "#/definitions/VirtualMachineScaleSetPublicIPAddressConfigurationProperties" + }, + "sku": { + "$ref": "#/definitions/PublicIPAddressSku" } }, "required": [ @@ -10993,6 +11338,18 @@ "name": "IPVersion", "modelAsString": true } + }, + "deleteOption": { + "type": "string", + "description": "Specify what happens to the public IP when the VM is deleted", + "enum": [ + "Delete", + "Detach" + ], + "x-ms-enum": { + "name": "DeleteOptions", + "modelAsString": true + } } }, "description": "Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration" @@ -11007,6 +11364,18 @@ "dnsSettings": { "$ref": "#/definitions/VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings", "description": "The dns settings to be applied on the publicIP addresses ." + }, + "deleteOption": { + "type": "string", + "description": "Specify what happens to the public IP when the VM is deleted", + "enum": [ + "Delete", + "Detach" + ], + "x-ms-enum": { + "name": "DeleteOptions", + "modelAsString": true + } } }, "description": "Describes a virtual machines scale set IP Configuration's PublicIPAddress configuration" @@ -11023,6 +11392,17 @@ "$ref": "#/definitions/VirtualMachineScaleSetNetworkConfiguration" }, "description": "The list of network configurations." + }, + "networkApiVersion": { + "type": "string", + "description": "specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'", + "enum": [ + "2020-11-01" + ], + "x-ms-enum": { + "name": "NetworkApiVersion", + "modelAsString": true + } } }, "description": "Describes a virtual machine scale set network profile." @@ -11039,6 +11419,17 @@ "$ref": "#/definitions/VirtualMachineScaleSetUpdateNetworkConfiguration" }, "description": "The list of network configurations." + }, + "networkApiVersion": { + "type": "string", + "description": "specifies the Microsoft.Network API version used when creating networking resources in the Network Interface Configurations for Virtual Machine Scale Set with orchestration mode 'Flexible'", + "enum": [ + "2020-11-01" + ], + "x-ms-enum": { + "name": "NetworkApiVersion", + "modelAsString": true + } } }, "description": "Describes a virtual machine scale set network profile." diff --git a/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/examples/CreateAVmWithNetworkInterfaceConfiguration.json b/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/examples/CreateAVmWithNetworkInterfaceConfiguration.json new file mode 100644 index 000000000000..75cb4f765ab2 --- /dev/null +++ b/specification/compute/resource-manager/Microsoft.Compute/stable/2021-03-01/examples/CreateAVmWithNetworkInterfaceConfiguration.json @@ -0,0 +1,174 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "myResourceGroup", + "vmName": "myVM", + "api-version": "2021-03-01", + "parameters": { + "location": "westus", + "properties": { + "hardwareProfile": { + "vmSize": "Standard_D1_v2" + }, + "storageProfile": { + "imageReference": { + "sku": "2016-Datacenter", + "publisher": "MicrosoftWindowsServer", + "version": "latest", + "offer": "WindowsServer" + }, + "osDisk": { + "caching": "ReadWrite", + "managedDisk": { + "storageAccountType": "Standard_LRS" + }, + "name": "myVMosdisk", + "createOption": "FromImage" + } + }, + "networkProfile": { + "networkApiVersion": "2020-11-01", + "networkInterfaceConfigurations": [ + { + "name": "{nic-config-name}", + "properties": { + "primary": true, + "deleteOption": "Delete", + "ipConfigurations": [ + { + "name": "{ip-config-name}", + "properties": { + "primary": true, + "publicIPAddressConfiguration": { + "name": "{publicIP-config-name}", + "sku": { + "publicIPAddressSkuName": "Basic", + "publicIPAddressSkuTier": "Global" + }, + "properties": { + "deleteOption": "Detach", + "publicIPAllocationMethod": "Static" + } + } + } + } + ] + } + } + ] + }, + "osProfile": { + "adminUsername": "{your-username}", + "computerName": "myVM", + "adminPassword": "{your-password}" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM", + "type": "Microsoft.Compute/virtualMachines", + "properties": { + "osProfile": { + "adminUsername": "{your-username}", + "secrets": [], + "computerName": "myVM", + "windowsConfiguration": { + "provisionVMAgent": true, + "enableAutomaticUpdates": true + } + }, + "networkProfile": { + "networkInterfaces": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/toBeCreatedNetworkInterface", + "properties": { + "primary": true + } + } + ] + }, + "storageProfile": { + "imageReference": { + "sku": "2016-Datacenter", + "publisher": "MicrosoftWindowsServer", + "version": "latest", + "offer": "WindowsServer" + }, + "osDisk": { + "osType": "Windows", + "caching": "ReadWrite", + "createOption": "FromImage", + "name": "myVMosdisk", + "managedDisk": { + "storageAccountType": "Standard_LRS" + } + }, + "dataDisks": [] + }, + "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f", + "hardwareProfile": { + "vmSize": "Standard_D1_v2" + }, + "provisioningState": "Creating" + }, + "name": "myVM", + "location": "westus" + } + }, + "201": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM", + "type": "Microsoft.Compute/virtualMachines", + "properties": { + "osProfile": { + "adminUsername": "{your-username}", + "secrets": [], + "computerName": "myVM", + "windowsConfiguration": { + "provisionVMAgent": true, + "enableAutomaticUpdates": true + } + }, + "networkProfile": { + "networkInterfaces": [ + { + "id": "/subscriptions/{subscription-id}/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/toBeCreatedNetworkInterface", + "properties": { + "primary": true + } + } + ] + }, + "storageProfile": { + "imageReference": { + "sku": "2016-Datacenter", + "publisher": "MicrosoftWindowsServer", + "version": "latest", + "offer": "WindowsServer" + }, + "osDisk": { + "osType": "Windows", + "caching": "ReadWrite", + "createOption": "FromImage", + "name": "myVMosdisk", + "managedDisk": { + "storageAccountType": "Standard_LRS" + } + }, + "dataDisks": [] + }, + "vmId": "b7a098cc-b0b8-46e8-a205-62f301a62a8f", + "hardwareProfile": { + "vmSize": "Standard_D1_v2" + }, + "provisioningState": "Creating" + }, + "name": "myVM", + "location": "westus" + } + } + } +}