diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayAbortMigration.json b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayAbortMigration.json new file mode 100644 index 000000000000..ee99b5ee19af --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayAbortMigration.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "api-version": "2024-07-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "virtualNetworkGatewayName": "vpngw" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/locations/eastus/operations/00000000-0000-0000-0000-000000000000?api-version=2024-07-01" + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayCommitMigration.json b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayCommitMigration.json new file mode 100644 index 000000000000..ee99b5ee19af --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayCommitMigration.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "api-version": "2024-07-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "virtualNetworkGatewayName": "vpngw" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/locations/eastus/operations/00000000-0000-0000-0000-000000000000?api-version=2024-07-01" + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayExecuteMigration.json b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayExecuteMigration.json new file mode 100644 index 000000000000..ee99b5ee19af --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayExecuteMigration.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "api-version": "2024-07-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "virtualNetworkGatewayName": "vpngw" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/locations/eastus/operations/00000000-0000-0000-0000-000000000000?api-version=2024-07-01" + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayGet.json index 00057d348b44..e94cbf2cbb0c 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayGet.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayGet.json @@ -16,6 +16,11 @@ "properties": { "provisioningState": "Succeeded", "resourceGuid": "00000000-0000-0000-0000-000000000000", + "virtualNetworkGatewayMigrationStatus": { + "state": "", + "phase": "", + "errorMessage": "" + }, "ipConfigurations": [ { "name": "gwipconfig1", diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayList.json b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayList.json index ba109df401cd..234c8d6bf13d 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayList.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayList.json @@ -17,6 +17,11 @@ "properties": { "provisioningState": "Succeeded", "resourceGuid": "00000000-0000-0000-0000-000000000000", + "virtualNetworkGatewayMigrationStatus": { + "state": "", + "phase": "", + "errorMessage": "" + }, "ipConfigurations": [ { "name": "default", @@ -117,6 +122,11 @@ "properties": { "provisioningState": "Succeeded", "resourceGuid": "00000000-0000-0000-0000-000000000000", + "virtualNetworkGatewayMigrationStatus": { + "state": "", + "phase": "", + "errorMessage": "" + }, "ipConfigurations": [ { "name": "default", diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayPrepareMigration.json b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayPrepareMigration.json new file mode 100644 index 000000000000..c499610a6a7f --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/examples/VirtualNetworkGatewayPrepareMigration.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2024-07-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "virtualNetworkGatewayName": "vpngw", + "migrationParams": { + "migrationType": "UpgradeDeploymentToStandardIP", + "resourceUrl": "testUrl" + } + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/locations/eastus/operations/00000000-0000-0000-0000-000000000000?api-version=2024-07-01" + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/virtualNetworkGateway.json b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/virtualNetworkGateway.json index a01ec6fe2206..1218ee97866e 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/virtualNetworkGateway.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2024-07-01/virtualNetworkGateway.json @@ -2863,9 +2863,354 @@ "nextLinkName": "nextLink" } } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/prepareMigration": { + "post": { + "operationId": "VirtualNetworkGateways_InvokePrepareMigration", + "description": "Trigger prepare migration for the basic virtual network gateway.", + "parameters": [ + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The resource group name of the virtual network gateway." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the gateway." + }, + { + "name": "migrationParams", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/VirtualNetworkGatewayMigrationParameters" + }, + "description": "Parameters supplied to the Begin Prepare migration on basic vpn gateway through Network resource provider." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Request received successfully. Prepare migration in progress; follow the Location header to poll for final outcome.", + "headers": { + "location": { + "type": "string" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./network.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "VirtualNetworkGatewayPrepareMigration": { + "$ref": "./examples/VirtualNetworkGatewayPrepareMigration.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/executeMigration": { + "post": { + "operationId": "VirtualNetworkGateways_InvokeExecuteMigration", + "description": "Trigger execute migration for the basic virtual network gateway.", + "parameters": [ + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The resource group name of the virtual network gateway." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the gateway." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Request received successfully. Execute migration in progress; follow the Location header to poll for final outcome.", + "headers": { + "location": { + "type": "string" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./network.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "VirtualNetworkGatewayExecuteMigration": { + "$ref": "./examples/VirtualNetworkGatewayExecuteMigration.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/commitMigration": { + "post": { + "operationId": "VirtualNetworkGateways_InvokeCommitMigration", + "description": "Trigger commit migration for the basic virtual network gateway.", + "parameters": [ + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The resource group name of the virtual network gateway." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the gateway." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Request received successfully. Commit migration in progress; follow the Location header to poll for final outcome.", + "headers": { + "location": { + "type": "string" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./network.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "VirtualNetworkGatewayCommitMigration": { + "$ref": "./examples/VirtualNetworkGatewayCommitMigration.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworkGateways/{virtualNetworkGatewayName}/abortMigration": { + "post": { + "operationId": "VirtualNetworkGateways_InvokeAbortMigration", + "description": "Trigger abort migration for the basic virtual network gateway.", + "parameters": [ + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The resource group name of the virtual network gateway." + }, + { + "name": "virtualNetworkGatewayName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the gateway." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "202": { + "description": "Request received successfully. Abort migration in progress; follow the Location header to poll for final outcome.", + "headers": { + "location": { + "type": "string" + } + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./network.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "VirtualNetworkGatewayAbortMigration": { + "$ref": "./examples/VirtualNetworkGatewayAbortMigration.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } } }, "definitions": { + "VirtualNetworkGatewayMigrationParameters": { + "type": "object", + "properties": { + "migrationType": { + "$ref": "#/definitions/VirtualNetworkGatewayMigrationType" + }, + "resourceUrl": { + "$ref": "./network.json#/definitions/SubResource", + "description": "The reference to the public IP resource." + } + }, + "required": [ + "migrationType" + ], + "description": "Virtual network gateway migration parameters." + }, + "VirtualNetworkGatewayMigrationType": { + "type": "string", + "enum": [ + "UpgradeDeploymentToStandardIP" + ], + "x-ms-enum": { + "name": "VirtualNetworkGatewayMigrationType", + "modelAsString": true, + "values": [ + { + "value": "UpgradeDeploymentToStandardIP", + "name": "UpgradeDeploymentToStandardIP", + "description": "Indicates that it is a migration process from basic IP CSES to standard IP VMSS." + } + ] + }, + "description": "MigrationType for the virtual network gateway." + }, + "VirtualNetworkGatewayMigrationStatus": { + "type": "object", + "properties": { + "state": { + "type": "string", + "description": "Represent the current state of gateway migration.", + "enum": [ + "None", + "InProgress", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "VirtualNetworkGatewayMigrationState", + "modelAsString": true + } + }, + "phase": { + "type": "string", + "description": "Represent the current migration phase of gateway.", + "enum": [ + "None", + "Prepare", + "PrepareSucceeded", + "Execute", + "ExecuteSucceeded", + "Commit", + "CommitSucceeded", + "AbortSucceeded", + "Abort" + ], + "x-ms-enum": { + "name": "VirtualNetworkGatewayMigrationPhase", + "modelAsString": true, + "values": [ + { + "value": "None", + "name": "None", + "description": "No migration phase set on gateway." + }, + { + "value": "Prepare", + "name": "Prepare", + "description": "Gateway is going through prepare migration or prepare has failed. Please see state and error details for more information." + }, + { + "value": "PrepareSucceeded", + "name": "PrepareSucceeded", + "description": "Prepare succeeded on gateway." + }, + { + "value": "Execute", + "name": "Execute", + "description": "Gateway is going through execute migration or execute has failed. Please see state and error details for more information." + }, + { + "value": "ExecuteSucceeded", + "name": "ExecuteSucceeded", + "description": "Execute succeeded on gateway." + }, + { + "value": "Commit", + "name": "Commit", + "description": "Gateway is going through commit migration or commit has failed. Please see state and error details for more information." + }, + { + "value": "CommitSucceeded", + "name": "CommitSucceeded", + "description": "Commit succeeded, represent migration is complete for the gateway." + }, + { + "value": "AbortSucceeded", + "name": "AbortSucceeded", + "description": "Represent abort succeeded on gateway, start with prepare to retrigger migration." + }, + { + "value": "Abort", + "name": "Abort", + "description": "Gateway is going through abort migration or abort has failed. Please see state and error details for more information." + } + ] + } + }, + "errorMessage": { + "type": "string", + "description": "Error if any occurs during migration." + } + }, + "description": "Migration status for the Virtual Network Gateway." + }, "VirtualNetworkGatewayIPConfigurationPropertiesFormat": { "properties": { "privateIPAllocationMethod": { @@ -3057,6 +3402,10 @@ "type": "boolean", "description": "Whether private IP needs to be enabled on this gateway for connections or not." }, + "virtualNetworkGatewayMigrationStatus": { + "$ref": "#/definitions/VirtualNetworkGatewayMigrationStatus", + "description": "The reference to the VirtualNetworkGatewayMigrationStatus which represents the status of migration." + }, "activeActive": { "type": "boolean", "description": "ActiveActive flag."