Ejemplo n.º 1
0
        public async Task <ExpressRouteCircuit> CreateDefaultExpressRouteCircuit(string resourceGroupName, string circuitName, string location,
                                                                                 NetworkManagementClient nrpClient)
        {
            ExpressRouteCircuitSku sku = new ExpressRouteCircuitSku
            {
                Name   = "Premium_MeteredData",
                Tier   = "Premium",
                Family = "MeteredData"
            };

            ExpressRouteCircuitServiceProviderProperties provider = new ExpressRouteCircuitServiceProviderProperties
            {
                BandwidthInMbps     = Convert.ToInt32(ExpressRouteTests.Circuit_BW),
                PeeringLocation     = ExpressRouteTests.Circuit_Location,
                ServiceProviderName = ExpressRouteTests.Circuit_Provider
            };

            ExpressRouteCircuit circuit = new ExpressRouteCircuit()
            {
                Location = location,
                Tags     = { { "key", "value" } },
                Sku      = sku,
                ServiceProviderProperties = provider
            };

            // Put circuit
            Operation <ExpressRouteCircuit> circuitOperation = await nrpClient.ExpressRouteCircuits.StartCreateOrUpdateAsync(resourceGroupName, circuitName, circuit);

            Response <ExpressRouteCircuit> circuitResponse = await WaitForCompletionAsync(circuitOperation);

            Assert.AreEqual("Succeeded", circuitResponse.Value.ProvisioningState.ToString());
            Response <ExpressRouteCircuit> getCircuitResponse = await nrpClient.ExpressRouteCircuits.GetAsync(resourceGroupName, circuitName);

            return(getCircuitResponse);
        }
        public PSExpressRouteCircuit ToPsExpressRouteCircuit(ExpressRouteCircuit circuit)
        {
            var psCircuit = Mapper.Map <PSExpressRouteCircuit>(circuit);

            psCircuit.Tag = TagsConversionHelper.CreateTagHashtable(circuit.Tags);

            return(psCircuit);
        }
        public async Task ExpressRouteMicrosoftPeeringApiTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location      = "westus";
            var    resourceGroup = await CreateResourceGroup(resourceGroupName, location);

            string circuitName = "circuit";

            ExpressRouteCircuit circuit = await CreateDefaultExpressRouteCircuit(resourceGroup, circuitName, location);

            Assert.AreEqual(circuit.Data.Name, circuitName);
            Assert.AreEqual(circuit.Data.ServiceProviderProperties.BandwidthInMbps, Convert.ToInt32(Circuit_BW));

            circuit = await UpdateDefaultExpressRouteCircuitWithMicrosoftPeering(resourceGroup, circuitName);

            Assert.AreEqual(circuit.Data.Name, circuitName);
            Assert.AreEqual(circuit.Data.ServiceProviderProperties.BandwidthInMbps, Convert.ToInt32(Circuit_BW));
            Assert.NotNull(circuit.Data.Peerings);
        }
Ejemplo n.º 4
0
        public static ExpressRouteCircuit CreateDefaultExpressRouteCircuit(string resourceGroupName, string circuitName, string location,
                                                                           NetworkManagementClient nrpClient)
        {
            ExpressRouteCircuitSku sku = new ExpressRouteCircuitSku
            {
                Name   = "Premium_MeteredData",
                Tier   = "Premium",
                Family = "MeteredData"
            };

            ExpressRouteCircuitServiceProviderProperties provider = new ExpressRouteCircuitServiceProviderProperties
            {
                BandwidthInMbps     = Convert.ToInt32(ExpressRouteTests.Circuit_BW),
                PeeringLocation     = ExpressRouteTests.Circuit_Location,
                ServiceProviderName = ExpressRouteTests.Circuit_Provider
            };

            var circuit = new ExpressRouteCircuit()
            {
                Location = location,
                Tags     = new Dictionary <string, string>()
                {
                    { "key", "value" }
                },
                Sku = sku,
                ServiceProviderProperties = provider
            };

            // Put circuit
            var circuitResponse = nrpClient.ExpressRouteCircuits.CreateOrUpdate(resourceGroupName, circuitName, circuit);

            Assert.Equal("Succeeded", circuitResponse.ProvisioningState);
            var getCircuitResponse = nrpClient.ExpressRouteCircuits.Get(resourceGroupName, circuitName);

            return(getCircuitResponse);
        }
        public virtual ExpressRouteCircuitsCreateOrUpdateOperation StartCreateOrUpdate(string resourceGroupName, string circuitName, ExpressRouteCircuit parameters, CancellationToken cancellationToken = default)
        {
            if (resourceGroupName == null)
            {
                throw new ArgumentNullException(nameof(resourceGroupName));
            }
            if (circuitName == null)
            {
                throw new ArgumentNullException(nameof(circuitName));
            }
            if (parameters == null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            using var scope = _clientDiagnostics.CreateScope("ExpressRouteCircuitsOperations.StartCreateOrUpdate");
            scope.Start();
            try
            {
                var originalResponse = RestClient.CreateOrUpdate(resourceGroupName, circuitName, parameters, cancellationToken);
                return(new ExpressRouteCircuitsCreateOrUpdateOperation(_clientDiagnostics, _pipeline, RestClient.CreateCreateOrUpdateRequest(resourceGroupName, circuitName, parameters).Request, originalResponse));
            }
            catch (Exception e)
            {
                scope.Failed(e);
                throw;
            }
        }
Ejemplo n.º 6
0
        public void ExpressRouteCircuitApiTest()
        {
            var handler = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };

            using (var context = UndoContext.Current)
            {
                context.Start();
                var resourcesClient = ResourcesManagementTestUtilities.GetResourceManagementClientWithHandler(handler);
                var networkResourceProviderClient = NetworkManagementTestUtilities.GetNetworkResourceProviderClient(handler);
                // var location = NetworkManagementTestUtilities.GetResourceLocation(resourcesClient, "Microsoft.Network/expressRouteCircuits");

                var location = "brazilsouth";

                string resourceGroupName = TestUtilities.GenerateName("csmrg");
                resourcesClient.ResourceGroups.CreateOrUpdate(
                    resourceGroupName,
                    new ResourceGroup
                {
                    Location = location
                });

                string circuitName = TestUtilities.GenerateName();

                var circuit = new ExpressRouteCircuit()
                {
                    Location = location,
                    Sku      =
                        new ExpressRouteCircuitSku()
                    {
                        Name   = "Standard_MeteredData",
                        Tier   = ExpressRouteCircuitSkuTier.Standard,
                        Family = ExpressRouteCircuitSkuFamily.MeteredData
                    },
                    BillingType = ExpressRouteCircuitBillingType.ServiceProviderType,
                    ServiceProviderProperties =
                        new ExpressRouteCircuitServiceProviderProperties()
                    {
                        ServiceProviderName = "Equinix",
                        PeeringLocation     = "Silicon Valley",
                        BandwidthInMbps     = 1000
                    }
                };
                // Create the circuit
                var putCircuit = networkResourceProviderClient.ExpressRouteCircuits.CreateOrUpdate(resourceGroupName, circuitName, circuit);
                Assert.Equal(HttpStatusCode.OK, putCircuit.StatusCode);

                var getCircuit = networkResourceProviderClient.ExpressRouteCircuits.Get(resourceGroupName, circuitName);

                // Verify properties
                Assert.Equal(HttpStatusCode.OK, getCircuit.StatusCode);

                Assert.NotNull(getCircuit.ExpressRouteCircuit);
                Assert.NotNull(getCircuit.ExpressRouteCircuit.Sku);
                Assert.NotNull(getCircuit.ExpressRouteCircuit.Etag);
                Assert.Equal("Standard_MeteredData", getCircuit.ExpressRouteCircuit.Sku.Name);
                Assert.Equal(ExpressRouteCircuitSkuTier.Standard, getCircuit.ExpressRouteCircuit.Sku.Tier);
                Assert.Equal(ExpressRouteCircuitSkuFamily.MeteredData, getCircuit.ExpressRouteCircuit.Sku.Family);
                //Assert.Equal(ExpressRouteCircuitBillingType.ServiceProviderType, getCircuit.ExpressRouteCircuit.BillingType);

                Assert.NotNull(getCircuit.ExpressRouteCircuit.ServiceProviderProperties);
                Assert.Equal("Equinix", getCircuit.ExpressRouteCircuit.ServiceProviderProperties.ServiceProviderName);
                Assert.Equal("Silicon Valley", getCircuit.ExpressRouteCircuit.ServiceProviderProperties.PeeringLocation);
                Assert.Equal(1000, getCircuit.ExpressRouteCircuit.ServiceProviderProperties.BandwidthInMbps);

                // Verify List
                var listCircuit = networkResourceProviderClient.ExpressRouteCircuits.List(resourceGroupName);
                Assert.Equal(HttpStatusCode.OK, listCircuit.StatusCode);
                Assert.NotNull(listCircuit.ExpressRouteCircuits);
                Assert.Equal(1, listCircuit.ExpressRouteCircuits.Count);
                Assert.Equal(listCircuit.ExpressRouteCircuits[0].Etag, getCircuit.ExpressRouteCircuit.Etag);
                Assert.Equal(listCircuit.ExpressRouteCircuits[0].Sku.Name, getCircuit.ExpressRouteCircuit.Sku.Name);
                Assert.Equal(listCircuit.ExpressRouteCircuits[0].Sku.Tier, getCircuit.ExpressRouteCircuit.Sku.Tier);
                Assert.Equal(listCircuit.ExpressRouteCircuits[0].Sku.Family, getCircuit.ExpressRouteCircuit.Sku.Family);

                Assert.NotNull(getCircuit.ExpressRouteCircuit.ServiceProviderProperties);
                Assert.Equal(listCircuit.ExpressRouteCircuits[0].ServiceProviderProperties.ServiceProviderName, getCircuit.ExpressRouteCircuit.ServiceProviderProperties.ServiceProviderName);
                Assert.Equal(listCircuit.ExpressRouteCircuits[0].ServiceProviderProperties.PeeringLocation, getCircuit.ExpressRouteCircuit.ServiceProviderProperties.PeeringLocation);
                Assert.Equal(listCircuit.ExpressRouteCircuits[0].ServiceProviderProperties.BandwidthInMbps, getCircuit.ExpressRouteCircuit.ServiceProviderProperties.BandwidthInMbps);

                // Verify Delete
                var deleteCircuit = networkResourceProviderClient.ExpressRouteCircuits.Delete(resourceGroupName, circuitName);
                Assert.Equal(HttpStatusCode.OK, deleteCircuit.StatusCode);

                listCircuit = networkResourceProviderClient.ExpressRouteCircuits.List(resourceGroupName);
                Assert.Equal(0, listCircuit.ExpressRouteCircuits.Count);
            }
        }
Ejemplo n.º 7
0
        public void ExpressRouteCircuitWithPeeringApiTest()
        {
            var handler = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };

            using (var context = UndoContext.Current)
            {
                context.Start();
                var resourcesClient = ResourcesManagementTestUtilities.GetResourceManagementClientWithHandler(handler);
                var networkResourceProviderClient = NetworkManagementTestUtilities.GetNetworkResourceProviderClient(handler);
                // var location = NetworkManagementTestUtilities.GetResourceLocation(resourcesClient, "Microsoft.Network/expressRouteCircuits");

                var location = "brazilsouth";

                string resourceGroupName = TestUtilities.GenerateName("csmrg");
                resourcesClient.ResourceGroups.CreateOrUpdate(
                    resourceGroupName,
                    new ResourceGroup
                {
                    Location = location
                });

                string circuitName = TestUtilities.GenerateName();

                var circuit = new ExpressRouteCircuit()
                {
                    Location = location,
                    Sku      =
                        new ExpressRouteCircuitSku()
                    {
                        Name   = "Standard_MeteredData",
                        Tier   = ExpressRouteCircuitSkuTier.Standard,
                        Family = ExpressRouteCircuitSkuFamily.MeteredData
                    },
                    BillingType = ExpressRouteCircuitBillingType.ServiceProviderType,
                    ServiceProviderProperties =
                        new ExpressRouteCircuitServiceProviderProperties()
                    {
                        ServiceProviderName = "Equinix",
                        PeeringLocation     = "Silicon Valley",
                        BandwidthInMbps     = 1000
                    },
                    Peerings = new List <ExpressRouteCircuitPeering>()
                    {
                        new ExpressRouteCircuitPeering()
                        {
                            Name        = "AzurePrivatePeering",
                            PeeringType = ExpressRouteCircuitPeeringType.AzurePrivatePeering,
                            PeerASN     = 100,
                            PrimaryPeerAddressPrefix   = "192.168.1.0/30",
                            SecondaryPeerAddressPrefix = "192.168.2.0/30",
                            VlanId = 200
                        }
                    }
                };

                // Create the circuit
                var putCircuit = networkResourceProviderClient.ExpressRouteCircuits.CreateOrUpdate(resourceGroupName, circuitName, circuit);
                Assert.Equal(HttpStatusCode.OK, putCircuit.StatusCode);

                var getCircuit = networkResourceProviderClient.ExpressRouteCircuits.Get(resourceGroupName, circuitName);

                // Verify properties
                Assert.Equal(HttpStatusCode.OK, getCircuit.StatusCode);

                Assert.NotNull(getCircuit.ExpressRouteCircuit);
                Assert.NotNull(getCircuit.ExpressRouteCircuit.Sku);
                Assert.Equal("Standard_MeteredData", getCircuit.ExpressRouteCircuit.Sku.Name);
                Assert.Equal(ExpressRouteCircuitSkuTier.Standard, getCircuit.ExpressRouteCircuit.Sku.Tier);
                Assert.Equal(ExpressRouteCircuitSkuFamily.MeteredData, getCircuit.ExpressRouteCircuit.Sku.Family);

                Assert.NotNull(getCircuit.ExpressRouteCircuit.ServiceProviderProperties);
                Assert.Equal("Equinix", getCircuit.ExpressRouteCircuit.ServiceProviderProperties.ServiceProviderName);
                Assert.Equal("Silicon Valley", getCircuit.ExpressRouteCircuit.ServiceProviderProperties.PeeringLocation);
                Assert.Equal(1000, getCircuit.ExpressRouteCircuit.ServiceProviderProperties.BandwidthInMbps);

                // Verify peering
                Assert.NotNull(getCircuit.ExpressRouteCircuit.Peerings);
                Assert.Equal(1, getCircuit.ExpressRouteCircuit.Peerings.Count);
                Assert.Equal("AzurePrivatePeering", getCircuit.ExpressRouteCircuit.Peerings[0].Name);
                Assert.Equal(ExpressRouteCircuitPeeringType.AzurePrivatePeering, getCircuit.ExpressRouteCircuit.Peerings[0].PeeringType);
                Assert.Equal(100, getCircuit.ExpressRouteCircuit.Peerings[0].PeerASN);
                Assert.Equal("192.168.1.0/30", getCircuit.ExpressRouteCircuit.Peerings[0].PrimaryPeerAddressPrefix);
                Assert.Equal("192.168.2.0/30", getCircuit.ExpressRouteCircuit.Peerings[0].SecondaryPeerAddressPrefix);
                Assert.Equal(200, getCircuit.ExpressRouteCircuit.Peerings[0].VlanId);

                // Get peering alone
                var getPeering = networkResourceProviderClient.ExpressRouteCircuitPeerings.Get(resourceGroupName, circuitName, "AzurePrivatePeering");
                Assert.Equal(HttpStatusCode.OK, getPeering.StatusCode);
                Assert.Equal("AzurePrivatePeering", getPeering.Peering.Name);
                Assert.Equal(ExpressRouteCircuitPeeringType.AzurePrivatePeering, getPeering.Peering.PeeringType);
                Assert.Equal(100, getPeering.Peering.PeerASN);
                Assert.Equal("192.168.1.0/30", getPeering.Peering.PrimaryPeerAddressPrefix);
                Assert.Equal("192.168.2.0/30", getPeering.Peering.SecondaryPeerAddressPrefix);
                Assert.Equal(200, getPeering.Peering.VlanId);
                Assert.Null(getPeering.Peering.MicrosoftPeeringConfig);

                // list all peerings
                var listPeering = networkResourceProviderClient.ExpressRouteCircuitPeerings.List(resourceGroupName, circuitName);
                Assert.Equal(HttpStatusCode.OK, listPeering.StatusCode);
                Assert.Equal(1, listPeering.Peerings.Count);
                Assert.Equal("AzurePrivatePeering", listPeering.Peerings[0].Name);
                Assert.Equal(ExpressRouteCircuitPeeringType.AzurePrivatePeering, listPeering.Peerings[0].PeeringType);
                Assert.Equal(100, listPeering.Peerings[0].PeerASN);
                Assert.Equal("192.168.1.0/30", listPeering.Peerings[0].PrimaryPeerAddressPrefix);
                Assert.Equal("192.168.2.0/30", listPeering.Peerings[0].SecondaryPeerAddressPrefix);
                Assert.Equal(200, listPeering.Peerings[0].VlanId);

                // Add a new peering
                var peering = new ExpressRouteCircuitPeering()
                {
                    PeeringType = ExpressRouteCircuitPeeringType.MicrosoftPeering,
                    PeerASN     = 100,
                    PrimaryPeerAddressPrefix   = "192.168.1.0/30",
                    SecondaryPeerAddressPrefix = "192.168.2.0/30",
                    VlanId = 200,
                    MicrosoftPeeringConfig = new ExpressRouteCircuitPeeringConfig()
                    {
                        AdvertisedPublicPrefixes = new List <string>()
                        {
                            "11.2.3.4/30", "12.2.3.4/30"
                        },
                        CustomerASN         = 1000,
                        RoutingRegistryName = "AFRINIC"
                    }
                };

                var putPeering = networkResourceProviderClient.ExpressRouteCircuitPeerings.CreateOrUpdate(resourceGroupName, circuitName, "MicrosoftPeering", peering);
                Assert.Equal(HttpStatusCode.OK, putPeering.StatusCode);

                getPeering = networkResourceProviderClient.ExpressRouteCircuitPeerings.Get(resourceGroupName, circuitName, "MicrosoftPeering");
                Assert.Equal(HttpStatusCode.OK, getPeering.StatusCode);

                Assert.Equal("MicrosoftPeering", getPeering.Peering.Name);
                Assert.Equal(ExpressRouteCircuitPeeringType.MicrosoftPeering, getPeering.Peering.PeeringType);
                Assert.Equal(100, getPeering.Peering.PeerASN);
                Assert.Equal("192.168.1.0/30", getPeering.Peering.PrimaryPeerAddressPrefix);
                Assert.Equal("192.168.2.0/30", getPeering.Peering.SecondaryPeerAddressPrefix);
                Assert.Equal(200, getPeering.Peering.VlanId);
                Assert.NotNull(getPeering.Peering.MicrosoftPeeringConfig);
                Assert.Equal(2, getPeering.Peering.MicrosoftPeeringConfig.AdvertisedPublicPrefixes.Count);
                Assert.NotNull(getPeering.Peering.MicrosoftPeeringConfig.AdvertisedPublicPrefixesState);
                Assert.Equal(1000, getPeering.Peering.MicrosoftPeeringConfig.CustomerASN);
                Assert.Equal("AFRINIC", getPeering.Peering.MicrosoftPeeringConfig.RoutingRegistryName);

                listPeering = networkResourceProviderClient.ExpressRouteCircuitPeerings.List(resourceGroupName, circuitName);
                Assert.Equal(HttpStatusCode.OK, listPeering.StatusCode);
                Assert.Equal(2, listPeering.Peerings.Count);

                // Delete Peering
                var deletePeering = networkResourceProviderClient.ExpressRouteCircuitPeerings.Delete(resourceGroupName, circuitName, "MicrosoftPeering");
                Assert.Equal(HttpStatusCode.OK, deletePeering.StatusCode);

                listPeering = networkResourceProviderClient.ExpressRouteCircuitPeerings.List(resourceGroupName, circuitName);
                Assert.Equal(HttpStatusCode.OK, listPeering.StatusCode);
                Assert.Equal(1, listPeering.Peerings.Count);

                // Verify Delete circuit
                var deleteCircuit = networkResourceProviderClient.ExpressRouteCircuits.Delete(resourceGroupName, circuitName);
                Assert.Equal(HttpStatusCode.OK, deleteCircuit.StatusCode);

                var listCircuit = networkResourceProviderClient.ExpressRouteCircuits.List(resourceGroupName);
                Assert.Equal(0, listCircuit.ExpressRouteCircuits.Count);
            }
        }
        /// <summary>
        /// The Put ExpressRouteCircuit operation creates/updates a ExpressRouteCircuit
        /// </summary>
        /// <param name='operations'>
        /// The operations group for this extension method.
        /// </param>
        /// <param name='resourceGroupName'>
        /// The name of the resource group.
        /// </param>
        /// <param name='circuitName'>
        /// The name of the circuit.
        /// </param>
        /// <param name='parameters'>
        /// Parameters supplied to the create/delete ExpressRouteCircuit operation
        /// </param>
        /// <param name='cancellationToken'>
        /// The cancellation token.
        /// </param>
        public static async Task <ExpressRouteCircuit> BeginCreateOrUpdateAsync(this IExpressRouteCircuitsOperations operations, string resourceGroupName, string circuitName, ExpressRouteCircuit parameters, CancellationToken cancellationToken = default(CancellationToken))
        {
            AzureOperationResponse <ExpressRouteCircuit> result = await operations.BeginCreateOrUpdateWithHttpMessagesAsync(resourceGroupName, circuitName, parameters, null, cancellationToken).ConfigureAwait(false);

            return(result.Body);
        }
 /// <summary>
 /// The Put ExpressRouteCircuit operation creates/updates a ExpressRouteCircuit
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='circuitName'>
 /// The name of the circuit.
 /// </param>
 /// <param name='parameters'>
 /// Parameters supplied to the create/delete ExpressRouteCircuit operation
 /// </param>
 public static ExpressRouteCircuit BeginCreateOrUpdate(this IExpressRouteCircuitsOperations operations, string resourceGroupName, string circuitName, ExpressRouteCircuit parameters)
 {
     return(Task.Factory.StartNew(s => ((IExpressRouteCircuitsOperations)s).BeginCreateOrUpdateAsync(resourceGroupName, circuitName, parameters), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }
 /// <summary>
 /// Creates or updates an express route circuit.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='circuitName'>
 /// The name of the circuit.
 /// </param>
 /// <param name='parameters'>
 /// Parameters supplied to the create or update express route circuit
 /// operation.
 /// </param>
 public static ExpressRouteCircuit BeginCreateOrUpdate(this IExpressRouteCircuitsOperations operations, string resourceGroupName, string circuitName, ExpressRouteCircuit parameters)
 {
     return(operations.BeginCreateOrUpdateAsync(resourceGroupName, circuitName, parameters).GetAwaiter().GetResult());
 }
 /// <summary>
 /// The Put ExpressRouteCircuit operation creates/updates a
 /// ExpressRouteCircuit
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.Network.IExpressRouteCircuitOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required. The name of the resource group.
 /// </param>
 /// <param name='circuitName'>
 /// Required. The name of the circuit.
 /// </param>
 /// <param name='parameters'>
 /// Required. Parameters supplied to the create/delete
 /// ExpressRouteCircuit operation
 /// </param>
 /// <returns>
 /// Response of a PUT ExpressRouteCircuit operation
 /// </returns>
 public static Task <ExpressRouteCircuitPutResponse> BeginCreateOrUpdatingAsync(this IExpressRouteCircuitOperations operations, string resourceGroupName, string circuitName, ExpressRouteCircuit parameters)
 {
     return(operations.BeginCreateOrUpdatingAsync(resourceGroupName, circuitName, parameters, CancellationToken.None));
 }
 /// <summary>
 /// The Put ExpressRouteCircuit operation creates/updates a
 /// ExpressRouteCircuit
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.Network.IExpressRouteCircuitOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required. The name of the resource group.
 /// </param>
 /// <param name='circuitName'>
 /// Required. The name of the ExpressRouteCircuit.
 /// </param>
 /// <param name='parameters'>
 /// Required. Parameters supplied to the create/update
 /// ExpressRouteCircuit operation
 /// </param>
 /// <returns>
 /// The response body contains the status of the specified asynchronous
 /// operation, indicating whether it has succeeded, is inprogress, or
 /// has failed. Note that this status is distinct from the HTTP status
 /// code returned for the Get Operation Status operation itself. If
 /// the asynchronous operation succeeded, the response body includes
 /// the HTTP status code for the successful request. If the
 /// asynchronous operation failed, the response body includes the HTTP
 /// status code for the failed request and error information regarding
 /// the failure.
 /// </returns>
 public static AzureAsyncOperationResponse CreateOrUpdate(this IExpressRouteCircuitOperations operations, string resourceGroupName, string circuitName, ExpressRouteCircuit parameters)
 {
     return(Task.Factory.StartNew((object s) =>
     {
         return ((IExpressRouteCircuitOperations)s).CreateOrUpdateAsync(resourceGroupName, circuitName, parameters);
     }
                                  , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }