diff --git a/src/ExpressRouteManagement/ExpressRouteManagement.csproj b/src/ExpressRouteManagement/ExpressRouteManagement.csproj
index e31c8622fdfa..faf98bb0d9dc 100644
--- a/src/ExpressRouteManagement/ExpressRouteManagement.csproj
+++ b/src/ExpressRouteManagement/ExpressRouteManagement.csproj
@@ -19,10 +19,16 @@
Code
+
+
+
+
+
+
@@ -31,16 +37,23 @@
+
+
+
+
+
+
+
@@ -52,6 +65,14 @@
+
+
+
+
+
+
+
+
@@ -74,6 +95,7 @@
+
@@ -89,9 +111,6 @@
-
-
-
@@ -105,4 +124,7 @@
+
+
+
\ No newline at end of file
diff --git a/src/ExpressRouteManagement/Generated/AuthorizedDedicatedCircuitOperations.cs b/src/ExpressRouteManagement/Generated/AuthorizedDedicatedCircuitOperations.cs
new file mode 100644
index 000000000000..bf494ac62cfe
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/AuthorizedDedicatedCircuitOperations.cs
@@ -0,0 +1,449 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using Microsoft.WindowsAzure;
+using Microsoft.WindowsAzure.Common;
+using Microsoft.WindowsAzure.Common.Internals;
+using Microsoft.WindowsAzure.Management.ExpressRoute;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute
+{
+ internal partial class AuthorizedDedicatedCircuitOperations : IServiceOperations, Microsoft.WindowsAzure.Management.ExpressRoute.IAuthorizedDedicatedCircuitOperations
+ {
+ ///
+ /// Initializes a new instance of the
+ /// AuthorizedDedicatedCircuitOperations class.
+ ///
+ ///
+ /// Reference to the service client.
+ ///
+ internal AuthorizedDedicatedCircuitOperations(ExpressRouteManagementClient client)
+ {
+ this._client = client;
+ }
+
+ private ExpressRouteManagementClient _client;
+
+ ///
+ /// Gets a reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.ExpressRouteManagementClient.
+ ///
+ public ExpressRouteManagementClient Client
+ {
+ get { return this._client; }
+ }
+
+ ///
+ /// The Get Dedicated Circuit operation retrieves the specified
+ /// authorized dedicated circuit.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// The Get Authorized Dedicated Circuit operation response.
+ ///
+ public async System.Threading.Tasks.Task GetAsync(string serviceKey, CancellationToken cancellationToken)
+ {
+ // Validate
+ if (serviceKey == null)
+ {
+ throw new ArgumentNullException("serviceKey");
+ }
+
+ // Tracing
+ bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled;
+ string invocationId = null;
+ if (shouldTrace)
+ {
+ invocationId = Tracing.NextInvocationId.ToString();
+ Dictionary tracingParameters = new Dictionary();
+ tracingParameters.Add("serviceKey", serviceKey);
+ Tracing.Enter(invocationId, this, "GetAsync", tracingParameters);
+ }
+
+ // Construct URL
+ string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/services/networking/authorizeddedicatedcircuits/" + serviceKey.Trim() + "?api-version=1.0";
+ string baseUrl = this.Client.BaseUri.AbsoluteUri;
+ // Trim '/' character from the end of baseUrl and beginning of url.
+ if (baseUrl[baseUrl.Length - 1] == '/')
+ {
+ baseUrl = baseUrl.Substring(0, baseUrl.Length - 1);
+ }
+ if (url[0] == '/')
+ {
+ url = url.Substring(1);
+ }
+ url = baseUrl + "/" + url;
+ url = url.Replace(" ", "%20");
+
+ // Create HTTP transport objects
+ HttpRequestMessage httpRequest = null;
+ try
+ {
+ httpRequest = new HttpRequestMessage();
+ httpRequest.Method = HttpMethod.Get;
+ httpRequest.RequestUri = new Uri(url);
+
+ // Set Headers
+ httpRequest.Headers.Add("x-ms-version", "2011-10-01");
+
+ // Set Credentials
+ cancellationToken.ThrowIfCancellationRequested();
+ await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+
+ // Send Request
+ HttpResponseMessage httpResponse = null;
+ try
+ {
+ if (shouldTrace)
+ {
+ Tracing.SendRequest(invocationId, httpRequest);
+ }
+ cancellationToken.ThrowIfCancellationRequested();
+ httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+ if (shouldTrace)
+ {
+ Tracing.ReceiveResponse(invocationId, httpResponse);
+ }
+ HttpStatusCode statusCode = httpResponse.StatusCode;
+ if (statusCode != HttpStatusCode.OK)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+ CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false));
+ if (shouldTrace)
+ {
+ Tracing.Error(invocationId, ex);
+ }
+ throw ex;
+ }
+
+ // Create Result
+ AuthorizedDedicatedCircuitGetResponse result = null;
+ // Deserialize Response
+ cancellationToken.ThrowIfCancellationRequested();
+ string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
+ result = new AuthorizedDedicatedCircuitGetResponse();
+ XDocument responseDoc = XDocument.Parse(responseContent);
+
+ XElement authorizedDedicatedCircuitElement = responseDoc.Element(XName.Get("AuthorizedDedicatedCircuit", "http://schemas.microsoft.com/windowsazure"));
+ if (authorizedDedicatedCircuitElement != null)
+ {
+ AzureAuthorizedDedicatedCircuit authorizedDedicatedCircuitInstance = new AzureAuthorizedDedicatedCircuit();
+ result.AuthorizedDedicatedCircuit = authorizedDedicatedCircuitInstance;
+
+ XElement bandwidthElement = authorizedDedicatedCircuitElement.Element(XName.Get("Bandwidth", "http://schemas.microsoft.com/windowsazure"));
+ if (bandwidthElement != null)
+ {
+ uint bandwidthInstance = uint.Parse(bandwidthElement.Value, CultureInfo.InvariantCulture);
+ authorizedDedicatedCircuitInstance.Bandwidth = bandwidthInstance;
+ }
+
+ XElement circuitNameElement = authorizedDedicatedCircuitElement.Element(XName.Get("CircuitName", "http://schemas.microsoft.com/windowsazure"));
+ if (circuitNameElement != null)
+ {
+ string circuitNameInstance = circuitNameElement.Value;
+ authorizedDedicatedCircuitInstance.CircuitName = circuitNameInstance;
+ }
+
+ XElement locationElement = authorizedDedicatedCircuitElement.Element(XName.Get("Location", "http://schemas.microsoft.com/windowsazure"));
+ if (locationElement != null)
+ {
+ string locationInstance = locationElement.Value;
+ authorizedDedicatedCircuitInstance.Location = locationInstance;
+ }
+
+ XElement maximumAllowedLinksElement = authorizedDedicatedCircuitElement.Element(XName.Get("MaximumAllowedLinks", "http://schemas.microsoft.com/windowsazure"));
+ if (maximumAllowedLinksElement != null)
+ {
+ int maximumAllowedLinksInstance = int.Parse(maximumAllowedLinksElement.Value, CultureInfo.InvariantCulture);
+ authorizedDedicatedCircuitInstance.MaximumAllowedLinks = maximumAllowedLinksInstance;
+ }
+
+ XElement serviceKeyElement = authorizedDedicatedCircuitElement.Element(XName.Get("ServiceKey", "http://schemas.microsoft.com/windowsazure"));
+ if (serviceKeyElement != null)
+ {
+ string serviceKeyInstance = serviceKeyElement.Value;
+ authorizedDedicatedCircuitInstance.ServiceKey = serviceKeyInstance;
+ }
+
+ XElement serviceProviderNameElement = authorizedDedicatedCircuitElement.Element(XName.Get("ServiceProviderName", "http://schemas.microsoft.com/windowsazure"));
+ if (serviceProviderNameElement != null)
+ {
+ string serviceProviderNameInstance = serviceProviderNameElement.Value;
+ authorizedDedicatedCircuitInstance.ServiceProviderName = serviceProviderNameInstance;
+ }
+
+ XElement serviceProviderProvisioningStateElement = authorizedDedicatedCircuitElement.Element(XName.Get("ServiceProviderProvisioningState", "http://schemas.microsoft.com/windowsazure"));
+ if (serviceProviderProvisioningStateElement != null)
+ {
+ ProviderProvisioningState serviceProviderProvisioningStateInstance = ((ProviderProvisioningState)Enum.Parse(typeof(ProviderProvisioningState), serviceProviderProvisioningStateElement.Value, true));
+ authorizedDedicatedCircuitInstance.ServiceProviderProvisioningState = serviceProviderProvisioningStateInstance;
+ }
+
+ XElement statusElement = authorizedDedicatedCircuitElement.Element(XName.Get("Status", "http://schemas.microsoft.com/windowsazure"));
+ if (statusElement != null)
+ {
+ DedicatedCircuitState statusInstance = ((DedicatedCircuitState)Enum.Parse(typeof(DedicatedCircuitState), statusElement.Value, true));
+ authorizedDedicatedCircuitInstance.Status = statusInstance;
+ }
+
+ XElement usedLinksElement = authorizedDedicatedCircuitElement.Element(XName.Get("UsedLinks", "http://schemas.microsoft.com/windowsazure"));
+ if (usedLinksElement != null)
+ {
+ int usedLinksInstance = int.Parse(usedLinksElement.Value, CultureInfo.InvariantCulture);
+ authorizedDedicatedCircuitInstance.UsedLinks = usedLinksInstance;
+ }
+ }
+
+ result.StatusCode = statusCode;
+ if (httpResponse.Headers.Contains("x-ms-request-id"))
+ {
+ result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault();
+ }
+
+ if (shouldTrace)
+ {
+ Tracing.Exit(invocationId, result);
+ }
+ return result;
+ }
+ finally
+ {
+ if (httpResponse != null)
+ {
+ httpResponse.Dispose();
+ }
+ }
+ }
+ finally
+ {
+ if (httpRequest != null)
+ {
+ httpRequest.Dispose();
+ }
+ }
+ }
+
+ ///
+ /// The List Dedicated Circuit operation retrieves a list of dedicated
+ /// circuits owned by the customer.
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// The List Authorized Dedicated Circuit operation response.
+ ///
+ public async System.Threading.Tasks.Task ListAsync(CancellationToken cancellationToken)
+ {
+ // Validate
+
+ // Tracing
+ bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled;
+ string invocationId = null;
+ if (shouldTrace)
+ {
+ invocationId = Tracing.NextInvocationId.ToString();
+ Dictionary tracingParameters = new Dictionary();
+ Tracing.Enter(invocationId, this, "ListAsync", tracingParameters);
+ }
+
+ // Construct URL
+ string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/services/networking/authorizeddedicatedcircuits?api-version=1.0";
+ string baseUrl = this.Client.BaseUri.AbsoluteUri;
+ // Trim '/' character from the end of baseUrl and beginning of url.
+ if (baseUrl[baseUrl.Length - 1] == '/')
+ {
+ baseUrl = baseUrl.Substring(0, baseUrl.Length - 1);
+ }
+ if (url[0] == '/')
+ {
+ url = url.Substring(1);
+ }
+ url = baseUrl + "/" + url;
+ url = url.Replace(" ", "%20");
+
+ // Create HTTP transport objects
+ HttpRequestMessage httpRequest = null;
+ try
+ {
+ httpRequest = new HttpRequestMessage();
+ httpRequest.Method = HttpMethod.Get;
+ httpRequest.RequestUri = new Uri(url);
+
+ // Set Headers
+ httpRequest.Headers.Add("x-ms-version", "2011-10-01");
+
+ // Set Credentials
+ cancellationToken.ThrowIfCancellationRequested();
+ await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+
+ // Send Request
+ HttpResponseMessage httpResponse = null;
+ try
+ {
+ if (shouldTrace)
+ {
+ Tracing.SendRequest(invocationId, httpRequest);
+ }
+ cancellationToken.ThrowIfCancellationRequested();
+ httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+ if (shouldTrace)
+ {
+ Tracing.ReceiveResponse(invocationId, httpResponse);
+ }
+ HttpStatusCode statusCode = httpResponse.StatusCode;
+ if (statusCode != HttpStatusCode.OK)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+ CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false));
+ if (shouldTrace)
+ {
+ Tracing.Error(invocationId, ex);
+ }
+ throw ex;
+ }
+
+ // Create Result
+ AuthorizedDedicatedCircuitListResponse result = null;
+ // Deserialize Response
+ cancellationToken.ThrowIfCancellationRequested();
+ string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
+ result = new AuthorizedDedicatedCircuitListResponse();
+ XDocument responseDoc = XDocument.Parse(responseContent);
+
+ XElement authorizedDedicatedCircuitsSequenceElement = responseDoc.Element(XName.Get("AuthorizedDedicatedCircuits", "http://schemas.microsoft.com/windowsazure"));
+ if (authorizedDedicatedCircuitsSequenceElement != null)
+ {
+ foreach (XElement authorizedDedicatedCircuitsElement in authorizedDedicatedCircuitsSequenceElement.Elements(XName.Get("AuthorizedDedicatedCircuit", "http://schemas.microsoft.com/windowsazure")))
+ {
+ AzureAuthorizedDedicatedCircuit authorizedDedicatedCircuitInstance = new AzureAuthorizedDedicatedCircuit();
+ result.AuthorizedDedicatedCircuits.Add(authorizedDedicatedCircuitInstance);
+
+ XElement bandwidthElement = authorizedDedicatedCircuitsElement.Element(XName.Get("Bandwidth", "http://schemas.microsoft.com/windowsazure"));
+ if (bandwidthElement != null)
+ {
+ uint bandwidthInstance = uint.Parse(bandwidthElement.Value, CultureInfo.InvariantCulture);
+ authorizedDedicatedCircuitInstance.Bandwidth = bandwidthInstance;
+ }
+
+ XElement circuitNameElement = authorizedDedicatedCircuitsElement.Element(XName.Get("CircuitName", "http://schemas.microsoft.com/windowsazure"));
+ if (circuitNameElement != null)
+ {
+ string circuitNameInstance = circuitNameElement.Value;
+ authorizedDedicatedCircuitInstance.CircuitName = circuitNameInstance;
+ }
+
+ XElement locationElement = authorizedDedicatedCircuitsElement.Element(XName.Get("Location", "http://schemas.microsoft.com/windowsazure"));
+ if (locationElement != null)
+ {
+ string locationInstance = locationElement.Value;
+ authorizedDedicatedCircuitInstance.Location = locationInstance;
+ }
+
+ XElement maximumAllowedLinksElement = authorizedDedicatedCircuitsElement.Element(XName.Get("MaximumAllowedLinks", "http://schemas.microsoft.com/windowsazure"));
+ if (maximumAllowedLinksElement != null)
+ {
+ int maximumAllowedLinksInstance = int.Parse(maximumAllowedLinksElement.Value, CultureInfo.InvariantCulture);
+ authorizedDedicatedCircuitInstance.MaximumAllowedLinks = maximumAllowedLinksInstance;
+ }
+
+ XElement serviceKeyElement = authorizedDedicatedCircuitsElement.Element(XName.Get("ServiceKey", "http://schemas.microsoft.com/windowsazure"));
+ if (serviceKeyElement != null)
+ {
+ string serviceKeyInstance = serviceKeyElement.Value;
+ authorizedDedicatedCircuitInstance.ServiceKey = serviceKeyInstance;
+ }
+
+ XElement serviceProviderNameElement = authorizedDedicatedCircuitsElement.Element(XName.Get("ServiceProviderName", "http://schemas.microsoft.com/windowsazure"));
+ if (serviceProviderNameElement != null)
+ {
+ string serviceProviderNameInstance = serviceProviderNameElement.Value;
+ authorizedDedicatedCircuitInstance.ServiceProviderName = serviceProviderNameInstance;
+ }
+
+ XElement serviceProviderProvisioningStateElement = authorizedDedicatedCircuitsElement.Element(XName.Get("ServiceProviderProvisioningState", "http://schemas.microsoft.com/windowsazure"));
+ if (serviceProviderProvisioningStateElement != null)
+ {
+ ProviderProvisioningState serviceProviderProvisioningStateInstance = ((ProviderProvisioningState)Enum.Parse(typeof(ProviderProvisioningState), serviceProviderProvisioningStateElement.Value, true));
+ authorizedDedicatedCircuitInstance.ServiceProviderProvisioningState = serviceProviderProvisioningStateInstance;
+ }
+
+ XElement statusElement = authorizedDedicatedCircuitsElement.Element(XName.Get("Status", "http://schemas.microsoft.com/windowsazure"));
+ if (statusElement != null)
+ {
+ DedicatedCircuitState statusInstance = ((DedicatedCircuitState)Enum.Parse(typeof(DedicatedCircuitState), statusElement.Value, true));
+ authorizedDedicatedCircuitInstance.Status = statusInstance;
+ }
+
+ XElement usedLinksElement = authorizedDedicatedCircuitsElement.Element(XName.Get("UsedLinks", "http://schemas.microsoft.com/windowsazure"));
+ if (usedLinksElement != null)
+ {
+ int usedLinksInstance = int.Parse(usedLinksElement.Value, CultureInfo.InvariantCulture);
+ authorizedDedicatedCircuitInstance.UsedLinks = usedLinksInstance;
+ }
+ }
+ }
+
+ result.StatusCode = statusCode;
+ if (httpResponse.Headers.Contains("x-ms-request-id"))
+ {
+ result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault();
+ }
+
+ if (shouldTrace)
+ {
+ Tracing.Exit(invocationId, result);
+ }
+ return result;
+ }
+ finally
+ {
+ if (httpResponse != null)
+ {
+ httpResponse.Dispose();
+ }
+ }
+ }
+ finally
+ {
+ if (httpRequest != null)
+ {
+ httpRequest.Dispose();
+ }
+ }
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/AuthorizedDedicatedCircuitOperationsExtensions.cs b/src/ExpressRouteManagement/Generated/AuthorizedDedicatedCircuitOperationsExtensions.cs
new file mode 100644
index 000000000000..949fd7cdc796
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/AuthorizedDedicatedCircuitOperationsExtensions.cs
@@ -0,0 +1,120 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.WindowsAzure.Management.ExpressRoute;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure
+{
+ ///
+ /// The Express Route API provides programmatic access to the functionality
+ /// needed by the customer to set up Dedicated Circuits and Dedicated
+ /// Circuit Links. The Express Route Customer API is a REST API. All API
+ /// operations are performed over SSL and mutually authenticated using
+ /// X.509 v3 certificates. (see
+ /// http://msdn.microsoft.com/en-us/library/windowsazure/ee460799.aspx for
+ /// more information)
+ ///
+ public static partial class AuthorizedDedicatedCircuitOperationsExtensions
+ {
+ ///
+ /// The Get Dedicated Circuit operation retrieves the specified
+ /// authorized dedicated circuit.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IAuthorizedDedicatedCircuitOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// The Get Authorized Dedicated Circuit operation response.
+ ///
+ public static AuthorizedDedicatedCircuitGetResponse Get(this IAuthorizedDedicatedCircuitOperations operations, string serviceKey)
+ {
+ return Task.Factory.StartNew((object s) =>
+ {
+ return ((IAuthorizedDedicatedCircuitOperations)s).GetAsync(serviceKey);
+ }
+ , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
+ }
+
+ ///
+ /// The Get Dedicated Circuit operation retrieves the specified
+ /// authorized dedicated circuit.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IAuthorizedDedicatedCircuitOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// The Get Authorized Dedicated Circuit operation response.
+ ///
+ public static Task GetAsync(this IAuthorizedDedicatedCircuitOperations operations, string serviceKey)
+ {
+ return operations.GetAsync(serviceKey, CancellationToken.None);
+ }
+
+ ///
+ /// The List Dedicated Circuit operation retrieves a list of dedicated
+ /// circuits owned by the customer.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IAuthorizedDedicatedCircuitOperations.
+ ///
+ ///
+ /// The List Authorized Dedicated Circuit operation response.
+ ///
+ public static AuthorizedDedicatedCircuitListResponse List(this IAuthorizedDedicatedCircuitOperations operations)
+ {
+ return Task.Factory.StartNew((object s) =>
+ {
+ return ((IAuthorizedDedicatedCircuitOperations)s).ListAsync();
+ }
+ , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
+ }
+
+ ///
+ /// The List Dedicated Circuit operation retrieves a list of dedicated
+ /// circuits owned by the customer.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IAuthorizedDedicatedCircuitOperations.
+ ///
+ ///
+ /// The List Authorized Dedicated Circuit operation response.
+ ///
+ public static Task ListAsync(this IAuthorizedDedicatedCircuitOperations operations)
+ {
+ return operations.ListAsync(CancellationToken.None);
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/DedicatedCircuitLinkAuthorizationLiveIdOperations.cs b/src/ExpressRouteManagement/Generated/DedicatedCircuitLinkAuthorizationLiveIdOperations.cs
new file mode 100644
index 000000000000..9eada642903f
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/DedicatedCircuitLinkAuthorizationLiveIdOperations.cs
@@ -0,0 +1,373 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Net.Http.Headers;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using Microsoft.WindowsAzure;
+using Microsoft.WindowsAzure.Common;
+using Microsoft.WindowsAzure.Common.Internals;
+using Microsoft.WindowsAzure.Management.ExpressRoute;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute
+{
+ internal partial class DedicatedCircuitLinkAuthorizationLiveIdOperations : IServiceOperations, Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationLiveIdOperations
+ {
+ ///
+ /// Initializes a new instance of the
+ /// DedicatedCircuitLinkAuthorizationLiveIdOperations class.
+ ///
+ ///
+ /// Reference to the service client.
+ ///
+ internal DedicatedCircuitLinkAuthorizationLiveIdOperations(ExpressRouteManagementClient client)
+ {
+ this._client = client;
+ }
+
+ private ExpressRouteManagementClient _client;
+
+ ///
+ /// Gets a reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.ExpressRouteManagementClient.
+ ///
+ public ExpressRouteManagementClient Client
+ {
+ get { return this._client; }
+ }
+
+ ///
+ /// Adds live Ids to the specified authorization
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Required. Parameters supplied to add new live Ids
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// A standard service response including an HTTP status code and
+ /// request ID.
+ ///
+ public async System.Threading.Tasks.Task NewAsync(string serviceKey, string authId, DedicatedCircuitLinkAuthorizationLiveIdNewParameters parameters, CancellationToken cancellationToken)
+ {
+ // Validate
+ if (serviceKey == null)
+ {
+ throw new ArgumentNullException("serviceKey");
+ }
+ if (authId == null)
+ {
+ throw new ArgumentNullException("authId");
+ }
+ if (parameters == null)
+ {
+ throw new ArgumentNullException("parameters");
+ }
+
+ // Tracing
+ bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled;
+ string invocationId = null;
+ if (shouldTrace)
+ {
+ invocationId = Tracing.NextInvocationId.ToString();
+ Dictionary tracingParameters = new Dictionary();
+ tracingParameters.Add("serviceKey", serviceKey);
+ tracingParameters.Add("authId", authId);
+ tracingParameters.Add("parameters", parameters);
+ Tracing.Enter(invocationId, this, "NewAsync", tracingParameters);
+ }
+
+ // Construct URL
+ string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/services/networking/dedicatedcircuits/" + serviceKey.Trim() + "/authorizations/" + authId.Trim() + "/liveids?api-version=1.0";
+ string baseUrl = this.Client.BaseUri.AbsoluteUri;
+ // Trim '/' character from the end of baseUrl and beginning of url.
+ if (baseUrl[baseUrl.Length - 1] == '/')
+ {
+ baseUrl = baseUrl.Substring(0, baseUrl.Length - 1);
+ }
+ if (url[0] == '/')
+ {
+ url = url.Substring(1);
+ }
+ url = baseUrl + "/" + url;
+ url = url.Replace(" ", "%20");
+
+ // Create HTTP transport objects
+ HttpRequestMessage httpRequest = null;
+ try
+ {
+ httpRequest = new HttpRequestMessage();
+ httpRequest.Method = HttpMethod.Post;
+ httpRequest.RequestUri = new Uri(url);
+
+ // Set Headers
+ httpRequest.Headers.Add("x-ms-version", "2011-10-01");
+
+ // Set Credentials
+ cancellationToken.ThrowIfCancellationRequested();
+ await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+
+ // Serialize Request
+ string requestContent = null;
+ XDocument requestDoc = new XDocument();
+
+ XElement dedicatedCircuitLinkAuthorizationLiveIdsElement = new XElement(XName.Get("DedicatedCircuitLinkAuthorizationLiveIds", "http://schemas.microsoft.com/windowsazure"));
+ requestDoc.Add(dedicatedCircuitLinkAuthorizationLiveIdsElement);
+
+ if (parameters.LiveIds != null)
+ {
+ XElement liveIdsElement = new XElement(XName.Get("LiveIds", "http://schemas.microsoft.com/windowsazure"));
+ liveIdsElement.Value = parameters.LiveIds;
+ dedicatedCircuitLinkAuthorizationLiveIdsElement.Add(liveIdsElement);
+ }
+
+ requestContent = requestDoc.ToString();
+ httpRequest.Content = new StringContent(requestContent, Encoding.UTF8);
+ httpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml");
+
+ // Send Request
+ HttpResponseMessage httpResponse = null;
+ try
+ {
+ if (shouldTrace)
+ {
+ Tracing.SendRequest(invocationId, httpRequest);
+ }
+ cancellationToken.ThrowIfCancellationRequested();
+ httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+ if (shouldTrace)
+ {
+ Tracing.ReceiveResponse(invocationId, httpResponse);
+ }
+ HttpStatusCode statusCode = httpResponse.StatusCode;
+ if (statusCode != HttpStatusCode.OK)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+ CloudException ex = CloudException.Create(httpRequest, requestContent, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false));
+ if (shouldTrace)
+ {
+ Tracing.Error(invocationId, ex);
+ }
+ throw ex;
+ }
+
+ // Create Result
+ OperationResponse result = null;
+ result = new OperationResponse();
+ result.StatusCode = statusCode;
+ if (httpResponse.Headers.Contains("x-ms-request-id"))
+ {
+ result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault();
+ }
+
+ if (shouldTrace)
+ {
+ Tracing.Exit(invocationId, result);
+ }
+ return result;
+ }
+ finally
+ {
+ if (httpResponse != null)
+ {
+ httpResponse.Dispose();
+ }
+ }
+ }
+ finally
+ {
+ if (httpRequest != null)
+ {
+ httpRequest.Dispose();
+ }
+ }
+ }
+
+ ///
+ /// Removes live Ids from the specified authorization
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Required. Parameters supplied to remove existing live Ids
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// A standard service response including an HTTP status code and
+ /// request ID.
+ ///
+ public async System.Threading.Tasks.Task RemoveAsync(string serviceKey, string authId, DedicatedCircuitLinkAuthorizationLiveIdRemoveParameters parameters, CancellationToken cancellationToken)
+ {
+ // Validate
+ if (serviceKey == null)
+ {
+ throw new ArgumentNullException("serviceKey");
+ }
+ if (authId == null)
+ {
+ throw new ArgumentNullException("authId");
+ }
+ if (parameters == null)
+ {
+ throw new ArgumentNullException("parameters");
+ }
+
+ // Tracing
+ bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled;
+ string invocationId = null;
+ if (shouldTrace)
+ {
+ invocationId = Tracing.NextInvocationId.ToString();
+ Dictionary tracingParameters = new Dictionary();
+ tracingParameters.Add("serviceKey", serviceKey);
+ tracingParameters.Add("authId", authId);
+ tracingParameters.Add("parameters", parameters);
+ Tracing.Enter(invocationId, this, "RemoveAsync", tracingParameters);
+ }
+
+ // Construct URL
+ string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/services/networking/dedicatedcircuits/" + serviceKey.Trim() + "/authorizations/" + authId.Trim() + "/liveids?api-version=1.0";
+ string baseUrl = this.Client.BaseUri.AbsoluteUri;
+ // Trim '/' character from the end of baseUrl and beginning of url.
+ if (baseUrl[baseUrl.Length - 1] == '/')
+ {
+ baseUrl = baseUrl.Substring(0, baseUrl.Length - 1);
+ }
+ if (url[0] == '/')
+ {
+ url = url.Substring(1);
+ }
+ url = baseUrl + "/" + url;
+ url = url.Replace(" ", "%20");
+
+ // Create HTTP transport objects
+ HttpRequestMessage httpRequest = null;
+ try
+ {
+ httpRequest = new HttpRequestMessage();
+ httpRequest.Method = HttpMethod.Delete;
+ httpRequest.RequestUri = new Uri(url);
+
+ // Set Headers
+ httpRequest.Headers.Add("x-ms-version", "2011-10-01");
+
+ // Set Credentials
+ cancellationToken.ThrowIfCancellationRequested();
+ await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+
+ // Serialize Request
+ string requestContent = null;
+ XDocument requestDoc = new XDocument();
+
+ XElement dedicatedCircuitLinkAuthorizationLiveIdsElement = new XElement(XName.Get("DedicatedCircuitLinkAuthorizationLiveIds", "http://schemas.microsoft.com/windowsazure"));
+ requestDoc.Add(dedicatedCircuitLinkAuthorizationLiveIdsElement);
+
+ if (parameters.LiveIds != null)
+ {
+ XElement liveIdsElement = new XElement(XName.Get("LiveIds", "http://schemas.microsoft.com/windowsazure"));
+ liveIdsElement.Value = parameters.LiveIds;
+ dedicatedCircuitLinkAuthorizationLiveIdsElement.Add(liveIdsElement);
+ }
+
+ requestContent = requestDoc.ToString();
+ httpRequest.Content = new StringContent(requestContent, Encoding.UTF8);
+ httpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml");
+
+ // Send Request
+ HttpResponseMessage httpResponse = null;
+ try
+ {
+ if (shouldTrace)
+ {
+ Tracing.SendRequest(invocationId, httpRequest);
+ }
+ cancellationToken.ThrowIfCancellationRequested();
+ httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+ if (shouldTrace)
+ {
+ Tracing.ReceiveResponse(invocationId, httpResponse);
+ }
+ HttpStatusCode statusCode = httpResponse.StatusCode;
+ if (statusCode != HttpStatusCode.OK)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+ CloudException ex = CloudException.Create(httpRequest, requestContent, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false));
+ if (shouldTrace)
+ {
+ Tracing.Error(invocationId, ex);
+ }
+ throw ex;
+ }
+
+ // Create Result
+ OperationResponse result = null;
+ result = new OperationResponse();
+ result.StatusCode = statusCode;
+ if (httpResponse.Headers.Contains("x-ms-request-id"))
+ {
+ result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault();
+ }
+
+ if (shouldTrace)
+ {
+ Tracing.Exit(invocationId, result);
+ }
+ return result;
+ }
+ finally
+ {
+ if (httpResponse != null)
+ {
+ httpResponse.Dispose();
+ }
+ }
+ }
+ finally
+ {
+ if (httpRequest != null)
+ {
+ httpRequest.Dispose();
+ }
+ }
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/DedicatedCircuitLinkAuthorizationLiveIdOperationsExtensions.cs b/src/ExpressRouteManagement/Generated/DedicatedCircuitLinkAuthorizationLiveIdOperationsExtensions.cs
new file mode 100644
index 000000000000..79de74a3b18c
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/DedicatedCircuitLinkAuthorizationLiveIdOperationsExtensions.cs
@@ -0,0 +1,151 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.WindowsAzure;
+using Microsoft.WindowsAzure.Management.ExpressRoute;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure
+{
+ ///
+ /// The Express Route API provides programmatic access to the functionality
+ /// needed by the customer to set up Dedicated Circuits and Dedicated
+ /// Circuit Links. The Express Route Customer API is a REST API. All API
+ /// operations are performed over SSL and mutually authenticated using
+ /// X.509 v3 certificates. (see
+ /// http://msdn.microsoft.com/en-us/library/windowsazure/ee460799.aspx for
+ /// more information)
+ ///
+ public static partial class DedicatedCircuitLinkAuthorizationLiveIdOperationsExtensions
+ {
+ ///
+ /// Adds live Ids to the specified authorization
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationLiveIdOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Required. Parameters supplied to add new live Ids
+ ///
+ ///
+ /// A standard service response including an HTTP status code and
+ /// request ID.
+ ///
+ public static OperationResponse New(this IDedicatedCircuitLinkAuthorizationLiveIdOperations operations, string serviceKey, string authId, DedicatedCircuitLinkAuthorizationLiveIdNewParameters parameters)
+ {
+ return Task.Factory.StartNew((object s) =>
+ {
+ return ((IDedicatedCircuitLinkAuthorizationLiveIdOperations)s).NewAsync(serviceKey, authId, parameters);
+ }
+ , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
+ }
+
+ ///
+ /// Adds live Ids to the specified authorization
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationLiveIdOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Required. Parameters supplied to add new live Ids
+ ///
+ ///
+ /// A standard service response including an HTTP status code and
+ /// request ID.
+ ///
+ public static Task NewAsync(this IDedicatedCircuitLinkAuthorizationLiveIdOperations operations, string serviceKey, string authId, DedicatedCircuitLinkAuthorizationLiveIdNewParameters parameters)
+ {
+ return operations.NewAsync(serviceKey, authId, parameters, CancellationToken.None);
+ }
+
+ ///
+ /// Removes live Ids from the specified authorization
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationLiveIdOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Required. Parameters supplied to remove existing live Ids
+ ///
+ ///
+ /// A standard service response including an HTTP status code and
+ /// request ID.
+ ///
+ public static OperationResponse Remove(this IDedicatedCircuitLinkAuthorizationLiveIdOperations operations, string serviceKey, string authId, DedicatedCircuitLinkAuthorizationLiveIdRemoveParameters parameters)
+ {
+ return Task.Factory.StartNew((object s) =>
+ {
+ return ((IDedicatedCircuitLinkAuthorizationLiveIdOperations)s).RemoveAsync(serviceKey, authId, parameters);
+ }
+ , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
+ }
+
+ ///
+ /// Removes live Ids from the specified authorization
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationLiveIdOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Required. Parameters supplied to remove existing live Ids
+ ///
+ ///
+ /// A standard service response including an HTTP status code and
+ /// request ID.
+ ///
+ public static Task RemoveAsync(this IDedicatedCircuitLinkAuthorizationLiveIdOperations operations, string serviceKey, string authId, DedicatedCircuitLinkAuthorizationLiveIdRemoveParameters parameters)
+ {
+ return operations.RemoveAsync(serviceKey, authId, parameters, CancellationToken.None);
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/DedicatedCircuitLinkAuthorizationOperations.cs b/src/ExpressRouteManagement/Generated/DedicatedCircuitLinkAuthorizationOperations.cs
new file mode 100644
index 000000000000..c2213564408d
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/DedicatedCircuitLinkAuthorizationOperations.cs
@@ -0,0 +1,1040 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Net.Http.Headers;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Xml.Linq;
+using Microsoft.WindowsAzure;
+using Microsoft.WindowsAzure.Common;
+using Microsoft.WindowsAzure.Common.Internals;
+using Microsoft.WindowsAzure.Management.ExpressRoute;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute
+{
+ internal partial class DedicatedCircuitLinkAuthorizationOperations : IServiceOperations, Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations
+ {
+ ///
+ /// Initializes a new instance of the
+ /// DedicatedCircuitLinkAuthorizationOperations class.
+ ///
+ ///
+ /// Reference to the service client.
+ ///
+ internal DedicatedCircuitLinkAuthorizationOperations(ExpressRouteManagementClient client)
+ {
+ this._client = client;
+ }
+
+ private ExpressRouteManagementClient _client;
+
+ ///
+ /// Gets a reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.ExpressRouteManagementClient.
+ ///
+ public ExpressRouteManagementClient Client
+ {
+ get { return this._client; }
+ }
+
+ ///
+ /// The Remove Dedicated Circuit Link Authorization operation deletes
+ /// an existing dedicated circuit link.
+ ///
+ ///
+ /// Required. Service key representing the dedicated circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// A standard service response including an HTTP status code and
+ /// request ID.
+ ///
+ public async System.Threading.Tasks.Task BeginRemoveAsync(string serviceKey, string authId, CancellationToken cancellationToken)
+ {
+ // Validate
+ if (serviceKey == null)
+ {
+ throw new ArgumentNullException("serviceKey");
+ }
+ if (authId == null)
+ {
+ throw new ArgumentNullException("authId");
+ }
+
+ // Tracing
+ bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled;
+ string invocationId = null;
+ if (shouldTrace)
+ {
+ invocationId = Tracing.NextInvocationId.ToString();
+ Dictionary tracingParameters = new Dictionary();
+ tracingParameters.Add("serviceKey", serviceKey);
+ tracingParameters.Add("authId", authId);
+ Tracing.Enter(invocationId, this, "BeginRemoveAsync", tracingParameters);
+ }
+
+ // Construct URL
+ string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/services/networking/dedicatedcircuits/" + serviceKey.Trim() + "/authorizations/" + authId.Trim() + "?api-version=1.0";
+ string baseUrl = this.Client.BaseUri.AbsoluteUri;
+ // Trim '/' character from the end of baseUrl and beginning of url.
+ if (baseUrl[baseUrl.Length - 1] == '/')
+ {
+ baseUrl = baseUrl.Substring(0, baseUrl.Length - 1);
+ }
+ if (url[0] == '/')
+ {
+ url = url.Substring(1);
+ }
+ url = baseUrl + "/" + url;
+ url = url.Replace(" ", "%20");
+
+ // Create HTTP transport objects
+ HttpRequestMessage httpRequest = null;
+ try
+ {
+ httpRequest = new HttpRequestMessage();
+ httpRequest.Method = HttpMethod.Delete;
+ httpRequest.RequestUri = new Uri(url);
+
+ // Set Headers
+ httpRequest.Headers.Add("x-ms-version", "2011-10-01");
+
+ // Set Credentials
+ cancellationToken.ThrowIfCancellationRequested();
+ await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+
+ // Send Request
+ HttpResponseMessage httpResponse = null;
+ try
+ {
+ if (shouldTrace)
+ {
+ Tracing.SendRequest(invocationId, httpRequest);
+ }
+ cancellationToken.ThrowIfCancellationRequested();
+ httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+ if (shouldTrace)
+ {
+ Tracing.ReceiveResponse(invocationId, httpResponse);
+ }
+ HttpStatusCode statusCode = httpResponse.StatusCode;
+ if (statusCode != HttpStatusCode.Accepted)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+ CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false));
+ if (shouldTrace)
+ {
+ Tracing.Error(invocationId, ex);
+ }
+ throw ex;
+ }
+
+ // Create Result
+ ExpressRouteOperationResponse result = null;
+ // Deserialize Response
+ cancellationToken.ThrowIfCancellationRequested();
+ string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
+ result = new ExpressRouteOperationResponse();
+ XDocument responseDoc = XDocument.Parse(responseContent);
+
+ XElement gatewayOperationAsyncResponseElement = responseDoc.Element(XName.Get("GatewayOperationAsyncResponse", "http://schemas.microsoft.com/windowsazure"));
+ if (gatewayOperationAsyncResponseElement != null)
+ {
+ XElement idElement = gatewayOperationAsyncResponseElement.Element(XName.Get("ID", "http://schemas.microsoft.com/windowsazure"));
+ if (idElement != null)
+ {
+ string idInstance = idElement.Value;
+ result.OperationId = idInstance;
+ }
+ }
+
+ result.StatusCode = statusCode;
+ if (httpResponse.Headers.Contains("x-ms-request-id"))
+ {
+ result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault();
+ }
+
+ if (shouldTrace)
+ {
+ Tracing.Exit(invocationId, result);
+ }
+ return result;
+ }
+ finally
+ {
+ if (httpResponse != null)
+ {
+ httpResponse.Dispose();
+ }
+ }
+ }
+ finally
+ {
+ if (httpRequest != null)
+ {
+ httpRequest.Dispose();
+ }
+ }
+ }
+
+ ///
+ /// Gets the link authorization for the specified dedicated circuit.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// Get link authorization operation response.
+ ///
+ public async System.Threading.Tasks.Task GetAsync(string serviceKey, string authId, CancellationToken cancellationToken)
+ {
+ // Validate
+ if (serviceKey == null)
+ {
+ throw new ArgumentNullException("serviceKey");
+ }
+ if (authId == null)
+ {
+ throw new ArgumentNullException("authId");
+ }
+
+ // Tracing
+ bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled;
+ string invocationId = null;
+ if (shouldTrace)
+ {
+ invocationId = Tracing.NextInvocationId.ToString();
+ Dictionary tracingParameters = new Dictionary();
+ tracingParameters.Add("serviceKey", serviceKey);
+ tracingParameters.Add("authId", authId);
+ Tracing.Enter(invocationId, this, "GetAsync", tracingParameters);
+ }
+
+ // Construct URL
+ string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/services/networking/dedicatedcircuits/" + serviceKey.Trim() + "/authorizations/" + authId.Trim() + "?api-version=1.0";
+ string baseUrl = this.Client.BaseUri.AbsoluteUri;
+ // Trim '/' character from the end of baseUrl and beginning of url.
+ if (baseUrl[baseUrl.Length - 1] == '/')
+ {
+ baseUrl = baseUrl.Substring(0, baseUrl.Length - 1);
+ }
+ if (url[0] == '/')
+ {
+ url = url.Substring(1);
+ }
+ url = baseUrl + "/" + url;
+ url = url.Replace(" ", "%20");
+
+ // Create HTTP transport objects
+ HttpRequestMessage httpRequest = null;
+ try
+ {
+ httpRequest = new HttpRequestMessage();
+ httpRequest.Method = HttpMethod.Get;
+ httpRequest.RequestUri = new Uri(url);
+
+ // Set Headers
+ httpRequest.Headers.Add("x-ms-version", "2011-10-01");
+
+ // Set Credentials
+ cancellationToken.ThrowIfCancellationRequested();
+ await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+
+ // Send Request
+ HttpResponseMessage httpResponse = null;
+ try
+ {
+ if (shouldTrace)
+ {
+ Tracing.SendRequest(invocationId, httpRequest);
+ }
+ cancellationToken.ThrowIfCancellationRequested();
+ httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+ if (shouldTrace)
+ {
+ Tracing.ReceiveResponse(invocationId, httpResponse);
+ }
+ HttpStatusCode statusCode = httpResponse.StatusCode;
+ if (statusCode != HttpStatusCode.OK)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+ CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false));
+ if (shouldTrace)
+ {
+ Tracing.Error(invocationId, ex);
+ }
+ throw ex;
+ }
+
+ // Create Result
+ DedicatedCircuitLinkAuthorizationGetResponse result = null;
+ // Deserialize Response
+ cancellationToken.ThrowIfCancellationRequested();
+ string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
+ result = new DedicatedCircuitLinkAuthorizationGetResponse();
+ XDocument responseDoc = XDocument.Parse(responseContent);
+
+ XElement dedicatedCircuitLinkAuthorizationElement = responseDoc.Element(XName.Get("DedicatedCircuitLinkAuthorization", "http://schemas.microsoft.com/windowsazure"));
+ if (dedicatedCircuitLinkAuthorizationElement != null)
+ {
+ AzureDedicatedCircuitLinkAuthorization dedicatedCircuitLinkAuthorizationInstance = new AzureDedicatedCircuitLinkAuthorization();
+ result.DedicatedCircuitLinkAuthorization = dedicatedCircuitLinkAuthorizationInstance;
+
+ XElement descriptionElement = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("Description", "http://schemas.microsoft.com/windowsazure"));
+ if (descriptionElement != null)
+ {
+ string descriptionInstance = descriptionElement.Value;
+ dedicatedCircuitLinkAuthorizationInstance.Description = descriptionInstance;
+ }
+
+ XElement limitElement = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("Limit", "http://schemas.microsoft.com/windowsazure"));
+ if (limitElement != null)
+ {
+ int limitInstance = int.Parse(limitElement.Value, CultureInfo.InvariantCulture);
+ dedicatedCircuitLinkAuthorizationInstance.Limit = limitInstance;
+ }
+
+ XElement linkAuthIdElement = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("LinkAuthId", "http://schemas.microsoft.com/windowsazure"));
+ if (linkAuthIdElement != null)
+ {
+ string linkAuthIdInstance = linkAuthIdElement.Value;
+ dedicatedCircuitLinkAuthorizationInstance.LinkAuthId = linkAuthIdInstance;
+ }
+
+ XElement liveIdsElement = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("LiveIds", "http://schemas.microsoft.com/windowsazure"));
+ if (liveIdsElement != null)
+ {
+ string liveIdsInstance = liveIdsElement.Value;
+ dedicatedCircuitLinkAuthorizationInstance.LiveIds = liveIdsInstance;
+ }
+
+ XElement usedElement = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("Used", "http://schemas.microsoft.com/windowsazure"));
+ if (usedElement != null)
+ {
+ int usedInstance = int.Parse(usedElement.Value, CultureInfo.InvariantCulture);
+ dedicatedCircuitLinkAuthorizationInstance.Used = usedInstance;
+ }
+ }
+
+ result.StatusCode = statusCode;
+ if (httpResponse.Headers.Contains("x-ms-request-id"))
+ {
+ result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault();
+ }
+
+ if (shouldTrace)
+ {
+ Tracing.Exit(invocationId, result);
+ }
+ return result;
+ }
+ finally
+ {
+ if (httpResponse != null)
+ {
+ httpResponse.Dispose();
+ }
+ }
+ }
+ finally
+ {
+ if (httpRequest != null)
+ {
+ httpRequest.Dispose();
+ }
+ }
+ }
+
+ ///
+ /// Lists the specified link authorization for the specified dedicated
+ /// circuit.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// List link authorization operation response.
+ ///
+ public async System.Threading.Tasks.Task ListAsync(string serviceKey, CancellationToken cancellationToken)
+ {
+ // Validate
+ if (serviceKey == null)
+ {
+ throw new ArgumentNullException("serviceKey");
+ }
+
+ // Tracing
+ bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled;
+ string invocationId = null;
+ if (shouldTrace)
+ {
+ invocationId = Tracing.NextInvocationId.ToString();
+ Dictionary tracingParameters = new Dictionary();
+ tracingParameters.Add("serviceKey", serviceKey);
+ Tracing.Enter(invocationId, this, "ListAsync", tracingParameters);
+ }
+
+ // Construct URL
+ string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/services/networking/dedicatedcircuits/" + serviceKey.Trim() + "/authorizations?api-version=1.0";
+ string baseUrl = this.Client.BaseUri.AbsoluteUri;
+ // Trim '/' character from the end of baseUrl and beginning of url.
+ if (baseUrl[baseUrl.Length - 1] == '/')
+ {
+ baseUrl = baseUrl.Substring(0, baseUrl.Length - 1);
+ }
+ if (url[0] == '/')
+ {
+ url = url.Substring(1);
+ }
+ url = baseUrl + "/" + url;
+ url = url.Replace(" ", "%20");
+
+ // Create HTTP transport objects
+ HttpRequestMessage httpRequest = null;
+ try
+ {
+ httpRequest = new HttpRequestMessage();
+ httpRequest.Method = HttpMethod.Get;
+ httpRequest.RequestUri = new Uri(url);
+
+ // Set Headers
+ httpRequest.Headers.Add("x-ms-version", "2011-10-01");
+
+ // Set Credentials
+ cancellationToken.ThrowIfCancellationRequested();
+ await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+
+ // Send Request
+ HttpResponseMessage httpResponse = null;
+ try
+ {
+ if (shouldTrace)
+ {
+ Tracing.SendRequest(invocationId, httpRequest);
+ }
+ cancellationToken.ThrowIfCancellationRequested();
+ httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+ if (shouldTrace)
+ {
+ Tracing.ReceiveResponse(invocationId, httpResponse);
+ }
+ HttpStatusCode statusCode = httpResponse.StatusCode;
+ if (statusCode != HttpStatusCode.OK)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+ CloudException ex = CloudException.Create(httpRequest, null, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false));
+ if (shouldTrace)
+ {
+ Tracing.Error(invocationId, ex);
+ }
+ throw ex;
+ }
+
+ // Create Result
+ DedicatedCircuitLinkAuthorizationListResponse result = null;
+ // Deserialize Response
+ cancellationToken.ThrowIfCancellationRequested();
+ string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
+ result = new DedicatedCircuitLinkAuthorizationListResponse();
+ XDocument responseDoc = XDocument.Parse(responseContent);
+
+ XElement dedicatedCircuitLinkAuthorizationsSequenceElement = responseDoc.Element(XName.Get("DedicatedCircuitLinkAuthorizations", "http://schemas.microsoft.com/windowsazure"));
+ if (dedicatedCircuitLinkAuthorizationsSequenceElement != null)
+ {
+ foreach (XElement dedicatedCircuitLinkAuthorizationsElement in dedicatedCircuitLinkAuthorizationsSequenceElement.Elements(XName.Get("DedicatedCircuitLinkAuthorization", "http://schemas.microsoft.com/windowsazure")))
+ {
+ AzureDedicatedCircuitLinkAuthorization dedicatedCircuitLinkAuthorizationInstance = new AzureDedicatedCircuitLinkAuthorization();
+ result.DedicatedCircuitLinkAuthorizations.Add(dedicatedCircuitLinkAuthorizationInstance);
+
+ XElement descriptionElement = dedicatedCircuitLinkAuthorizationsElement.Element(XName.Get("Description", "http://schemas.microsoft.com/windowsazure"));
+ if (descriptionElement != null)
+ {
+ string descriptionInstance = descriptionElement.Value;
+ dedicatedCircuitLinkAuthorizationInstance.Description = descriptionInstance;
+ }
+
+ XElement limitElement = dedicatedCircuitLinkAuthorizationsElement.Element(XName.Get("Limit", "http://schemas.microsoft.com/windowsazure"));
+ if (limitElement != null)
+ {
+ int limitInstance = int.Parse(limitElement.Value, CultureInfo.InvariantCulture);
+ dedicatedCircuitLinkAuthorizationInstance.Limit = limitInstance;
+ }
+
+ XElement linkAuthIdElement = dedicatedCircuitLinkAuthorizationsElement.Element(XName.Get("LinkAuthId", "http://schemas.microsoft.com/windowsazure"));
+ if (linkAuthIdElement != null)
+ {
+ string linkAuthIdInstance = linkAuthIdElement.Value;
+ dedicatedCircuitLinkAuthorizationInstance.LinkAuthId = linkAuthIdInstance;
+ }
+
+ XElement liveIdsElement = dedicatedCircuitLinkAuthorizationsElement.Element(XName.Get("LiveIds", "http://schemas.microsoft.com/windowsazure"));
+ if (liveIdsElement != null)
+ {
+ string liveIdsInstance = liveIdsElement.Value;
+ dedicatedCircuitLinkAuthorizationInstance.LiveIds = liveIdsInstance;
+ }
+
+ XElement usedElement = dedicatedCircuitLinkAuthorizationsElement.Element(XName.Get("Used", "http://schemas.microsoft.com/windowsazure"));
+ if (usedElement != null)
+ {
+ int usedInstance = int.Parse(usedElement.Value, CultureInfo.InvariantCulture);
+ dedicatedCircuitLinkAuthorizationInstance.Used = usedInstance;
+ }
+ }
+ }
+
+ result.StatusCode = statusCode;
+ if (httpResponse.Headers.Contains("x-ms-request-id"))
+ {
+ result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault();
+ }
+
+ if (shouldTrace)
+ {
+ Tracing.Exit(invocationId, result);
+ }
+ return result;
+ }
+ finally
+ {
+ if (httpResponse != null)
+ {
+ httpResponse.Dispose();
+ }
+ }
+ }
+ finally
+ {
+ if (httpRequest != null)
+ {
+ httpRequest.Dispose();
+ }
+ }
+ }
+
+ ///
+ /// Gets the specified link authorization for the specified dedicated
+ /// circuit.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. Parameters supplied to the new Dedicated Circuit link
+ /// authorization operation.
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// Get link authorization operation response.
+ ///
+ public async System.Threading.Tasks.Task NewAsync(string serviceKey, DedicatedCircuitLinkAuthorizationNewParameters parameters, CancellationToken cancellationToken)
+ {
+ // Validate
+ if (serviceKey == null)
+ {
+ throw new ArgumentNullException("serviceKey");
+ }
+ if (parameters == null)
+ {
+ throw new ArgumentNullException("parameters");
+ }
+
+ // Tracing
+ bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled;
+ string invocationId = null;
+ if (shouldTrace)
+ {
+ invocationId = Tracing.NextInvocationId.ToString();
+ Dictionary tracingParameters = new Dictionary();
+ tracingParameters.Add("serviceKey", serviceKey);
+ tracingParameters.Add("parameters", parameters);
+ Tracing.Enter(invocationId, this, "NewAsync", tracingParameters);
+ }
+
+ // Construct URL
+ string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/services/networking/dedicatedcircuits/" + serviceKey.Trim() + "/authorizations?api-version=1.0";
+ string baseUrl = this.Client.BaseUri.AbsoluteUri;
+ // Trim '/' character from the end of baseUrl and beginning of url.
+ if (baseUrl[baseUrl.Length - 1] == '/')
+ {
+ baseUrl = baseUrl.Substring(0, baseUrl.Length - 1);
+ }
+ if (url[0] == '/')
+ {
+ url = url.Substring(1);
+ }
+ url = baseUrl + "/" + url;
+ url = url.Replace(" ", "%20");
+
+ // Create HTTP transport objects
+ HttpRequestMessage httpRequest = null;
+ try
+ {
+ httpRequest = new HttpRequestMessage();
+ httpRequest.Method = HttpMethod.Post;
+ httpRequest.RequestUri = new Uri(url);
+
+ // Set Headers
+ httpRequest.Headers.Add("x-ms-version", "2011-10-01");
+
+ // Set Credentials
+ cancellationToken.ThrowIfCancellationRequested();
+ await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+
+ // Serialize Request
+ string requestContent = null;
+ XDocument requestDoc = new XDocument();
+
+ XElement createDedicatedCircuitLinkAuthorizationElement = new XElement(XName.Get("CreateDedicatedCircuitLinkAuthorization", "http://schemas.microsoft.com/windowsazure"));
+ requestDoc.Add(createDedicatedCircuitLinkAuthorizationElement);
+
+ if (parameters.Description != null)
+ {
+ XElement descriptionElement = new XElement(XName.Get("Description", "http://schemas.microsoft.com/windowsazure"));
+ descriptionElement.Value = parameters.Description;
+ createDedicatedCircuitLinkAuthorizationElement.Add(descriptionElement);
+ }
+
+ XElement limitElement = new XElement(XName.Get("Limit", "http://schemas.microsoft.com/windowsazure"));
+ limitElement.Value = parameters.Limit.ToString();
+ createDedicatedCircuitLinkAuthorizationElement.Add(limitElement);
+
+ if (parameters.LiveIds != null)
+ {
+ XElement liveIdsElement = new XElement(XName.Get("LiveIds", "http://schemas.microsoft.com/windowsazure"));
+ liveIdsElement.Value = parameters.LiveIds;
+ createDedicatedCircuitLinkAuthorizationElement.Add(liveIdsElement);
+ }
+
+ requestContent = requestDoc.ToString();
+ httpRequest.Content = new StringContent(requestContent, Encoding.UTF8);
+ httpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml");
+
+ // Send Request
+ HttpResponseMessage httpResponse = null;
+ try
+ {
+ if (shouldTrace)
+ {
+ Tracing.SendRequest(invocationId, httpRequest);
+ }
+ cancellationToken.ThrowIfCancellationRequested();
+ httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+ if (shouldTrace)
+ {
+ Tracing.ReceiveResponse(invocationId, httpResponse);
+ }
+ HttpStatusCode statusCode = httpResponse.StatusCode;
+ if (statusCode != HttpStatusCode.OK)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+ CloudException ex = CloudException.Create(httpRequest, requestContent, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false));
+ if (shouldTrace)
+ {
+ Tracing.Error(invocationId, ex);
+ }
+ throw ex;
+ }
+
+ // Create Result
+ DedicatedCircuitLinkAuthorizationNewResponse result = null;
+ // Deserialize Response
+ cancellationToken.ThrowIfCancellationRequested();
+ string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
+ result = new DedicatedCircuitLinkAuthorizationNewResponse();
+ XDocument responseDoc = XDocument.Parse(responseContent);
+
+ XElement dedicatedCircuitLinkAuthorizationElement = responseDoc.Element(XName.Get("DedicatedCircuitLinkAuthorization", "http://schemas.microsoft.com/windowsazure"));
+ if (dedicatedCircuitLinkAuthorizationElement != null)
+ {
+ AzureDedicatedCircuitLinkAuthorization dedicatedCircuitLinkAuthorizationInstance = new AzureDedicatedCircuitLinkAuthorization();
+ result.DedicatedCircuitLinkAuthorization = dedicatedCircuitLinkAuthorizationInstance;
+
+ XElement descriptionElement2 = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("Description", "http://schemas.microsoft.com/windowsazure"));
+ if (descriptionElement2 != null)
+ {
+ string descriptionInstance = descriptionElement2.Value;
+ dedicatedCircuitLinkAuthorizationInstance.Description = descriptionInstance;
+ }
+
+ XElement limitElement2 = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("Limit", "http://schemas.microsoft.com/windowsazure"));
+ if (limitElement2 != null)
+ {
+ int limitInstance = int.Parse(limitElement2.Value, CultureInfo.InvariantCulture);
+ dedicatedCircuitLinkAuthorizationInstance.Limit = limitInstance;
+ }
+
+ XElement linkAuthIdElement = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("LinkAuthId", "http://schemas.microsoft.com/windowsazure"));
+ if (linkAuthIdElement != null)
+ {
+ string linkAuthIdInstance = linkAuthIdElement.Value;
+ dedicatedCircuitLinkAuthorizationInstance.LinkAuthId = linkAuthIdInstance;
+ }
+
+ XElement liveIdsElement2 = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("LiveIds", "http://schemas.microsoft.com/windowsazure"));
+ if (liveIdsElement2 != null)
+ {
+ string liveIdsInstance = liveIdsElement2.Value;
+ dedicatedCircuitLinkAuthorizationInstance.LiveIds = liveIdsInstance;
+ }
+
+ XElement usedElement = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("Used", "http://schemas.microsoft.com/windowsazure"));
+ if (usedElement != null)
+ {
+ int usedInstance = int.Parse(usedElement.Value, CultureInfo.InvariantCulture);
+ dedicatedCircuitLinkAuthorizationInstance.Used = usedInstance;
+ }
+ }
+
+ result.StatusCode = statusCode;
+ if (httpResponse.Headers.Contains("x-ms-request-id"))
+ {
+ result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault();
+ }
+
+ if (shouldTrace)
+ {
+ Tracing.Exit(invocationId, result);
+ }
+ return result;
+ }
+ finally
+ {
+ if (httpResponse != null)
+ {
+ httpResponse.Dispose();
+ }
+ }
+ }
+ finally
+ {
+ if (httpRequest != null)
+ {
+ httpRequest.Dispose();
+ }
+ }
+ }
+
+ ///
+ /// The Remove Dedicated Circuit Link Authorization operation deletes
+ /// an existing dedicated circuit link.
+ ///
+ ///
+ /// Required. Service Key associated with the dedicated circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// 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 also includes error
+ /// information regarding the failure.
+ ///
+ public async System.Threading.Tasks.Task RemoveAsync(string serviceKey, string authId, CancellationToken cancellationToken)
+ {
+ ExpressRouteManagementClient client = this.Client;
+ bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled;
+ string invocationId = null;
+ if (shouldTrace)
+ {
+ invocationId = Tracing.NextInvocationId.ToString();
+ Dictionary tracingParameters = new Dictionary();
+ tracingParameters.Add("serviceKey", serviceKey);
+ tracingParameters.Add("authId", authId);
+ Tracing.Enter(invocationId, this, "RemoveAsync", tracingParameters);
+ }
+ try
+ {
+ if (shouldTrace)
+ {
+ client = this.Client.WithHandler(new ClientRequestTrackingHandler(invocationId));
+ }
+
+ cancellationToken.ThrowIfCancellationRequested();
+ ExpressRouteOperationResponse originalResponse = await client.DedicatedCircuitLinkAuthorizations.BeginRemoveAsync(serviceKey, authId, cancellationToken).ConfigureAwait(false);
+ cancellationToken.ThrowIfCancellationRequested();
+ ExpressRouteOperationStatusResponse result = await client.GetOperationStatusAsync(originalResponse.OperationId, cancellationToken).ConfigureAwait(false);
+ int delayInSeconds = 30;
+ while (result.Status == ExpressRouteOperationStatus.InProgress)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+ await TaskEx.Delay(delayInSeconds * 1000, cancellationToken).ConfigureAwait(false);
+ cancellationToken.ThrowIfCancellationRequested();
+ result = await client.GetOperationStatusAsync(originalResponse.OperationId, cancellationToken).ConfigureAwait(false);
+ delayInSeconds = 10;
+ }
+
+ if (shouldTrace)
+ {
+ Tracing.Exit(invocationId, result);
+ }
+
+ return result;
+ }
+ finally
+ {
+ if (client != null && shouldTrace)
+ {
+ client.Dispose();
+ }
+ }
+ }
+
+ ///
+ /// Updates the specified link authorization for the specified
+ /// dedicated circuit.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Required. Parameters supplied to the Update Dedicated Circuit link
+ /// authorization operation.
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// Update link authorization operation response.
+ ///
+ public async System.Threading.Tasks.Task UpdateAsync(string serviceKey, string authId, DedicatedCircuitLinkAuthorizationUpdateParameters parameters, CancellationToken cancellationToken)
+ {
+ // Validate
+ if (serviceKey == null)
+ {
+ throw new ArgumentNullException("serviceKey");
+ }
+ if (authId == null)
+ {
+ throw new ArgumentNullException("authId");
+ }
+ if (parameters == null)
+ {
+ throw new ArgumentNullException("parameters");
+ }
+
+ // Tracing
+ bool shouldTrace = CloudContext.Configuration.Tracing.IsEnabled;
+ string invocationId = null;
+ if (shouldTrace)
+ {
+ invocationId = Tracing.NextInvocationId.ToString();
+ Dictionary tracingParameters = new Dictionary();
+ tracingParameters.Add("serviceKey", serviceKey);
+ tracingParameters.Add("authId", authId);
+ tracingParameters.Add("parameters", parameters);
+ Tracing.Enter(invocationId, this, "UpdateAsync", tracingParameters);
+ }
+
+ // Construct URL
+ string url = "/" + (this.Client.Credentials.SubscriptionId != null ? this.Client.Credentials.SubscriptionId.Trim() : "") + "/services/networking/dedicatedcircuits/" + serviceKey.Trim() + "/authorizations/" + authId.Trim() + "?api-version=1.0";
+ string baseUrl = this.Client.BaseUri.AbsoluteUri;
+ // Trim '/' character from the end of baseUrl and beginning of url.
+ if (baseUrl[baseUrl.Length - 1] == '/')
+ {
+ baseUrl = baseUrl.Substring(0, baseUrl.Length - 1);
+ }
+ if (url[0] == '/')
+ {
+ url = url.Substring(1);
+ }
+ url = baseUrl + "/" + url;
+ url = url.Replace(" ", "%20");
+
+ // Create HTTP transport objects
+ HttpRequestMessage httpRequest = null;
+ try
+ {
+ httpRequest = new HttpRequestMessage();
+ httpRequest.Method = new HttpMethod("PATCH");
+ httpRequest.RequestUri = new Uri(url);
+
+ // Set Headers
+ httpRequest.Headers.Add("x-ms-version", "2011-10-01");
+
+ // Set Credentials
+ cancellationToken.ThrowIfCancellationRequested();
+ await this.Client.Credentials.ProcessHttpRequestAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+
+ // Serialize Request
+ string requestContent = null;
+ XDocument requestDoc = new XDocument();
+
+ XElement updateDedicatedCircuitLinkAuthorizationElement = new XElement(XName.Get("UpdateDedicatedCircuitLinkAuthorization", "http://schemas.microsoft.com/windowsazure"));
+ requestDoc.Add(updateDedicatedCircuitLinkAuthorizationElement);
+
+ if (parameters.Description != null)
+ {
+ XElement descriptionElement = new XElement(XName.Get("Description", "http://schemas.microsoft.com/windowsazure"));
+ descriptionElement.Value = parameters.Description;
+ updateDedicatedCircuitLinkAuthorizationElement.Add(descriptionElement);
+ }
+
+ XElement limitElement = new XElement(XName.Get("Limit", "http://schemas.microsoft.com/windowsazure"));
+ limitElement.Value = parameters.Limit.ToString();
+ updateDedicatedCircuitLinkAuthorizationElement.Add(limitElement);
+
+ requestContent = requestDoc.ToString();
+ httpRequest.Content = new StringContent(requestContent, Encoding.UTF8);
+ httpRequest.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/xml");
+
+ // Send Request
+ HttpResponseMessage httpResponse = null;
+ try
+ {
+ if (shouldTrace)
+ {
+ Tracing.SendRequest(invocationId, httpRequest);
+ }
+ cancellationToken.ThrowIfCancellationRequested();
+ httpResponse = await this.Client.HttpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false);
+ if (shouldTrace)
+ {
+ Tracing.ReceiveResponse(invocationId, httpResponse);
+ }
+ HttpStatusCode statusCode = httpResponse.StatusCode;
+ if (statusCode != HttpStatusCode.OK)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+ CloudException ex = CloudException.Create(httpRequest, requestContent, httpResponse, await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false));
+ if (shouldTrace)
+ {
+ Tracing.Error(invocationId, ex);
+ }
+ throw ex;
+ }
+
+ // Create Result
+ DedicatedCircuitLinkAuthorizationUpdateResponse result = null;
+ // Deserialize Response
+ cancellationToken.ThrowIfCancellationRequested();
+ string responseContent = await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false);
+ result = new DedicatedCircuitLinkAuthorizationUpdateResponse();
+ XDocument responseDoc = XDocument.Parse(responseContent);
+
+ XElement dedicatedCircuitLinkAuthorizationElement = responseDoc.Element(XName.Get("DedicatedCircuitLinkAuthorization", "http://schemas.microsoft.com/windowsazure"));
+ if (dedicatedCircuitLinkAuthorizationElement != null)
+ {
+ AzureDedicatedCircuitLinkAuthorization dedicatedCircuitLinkAuthorizationInstance = new AzureDedicatedCircuitLinkAuthorization();
+ result.DedicatedCircuitLinkAuthorization = dedicatedCircuitLinkAuthorizationInstance;
+
+ XElement descriptionElement2 = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("Description", "http://schemas.microsoft.com/windowsazure"));
+ if (descriptionElement2 != null)
+ {
+ string descriptionInstance = descriptionElement2.Value;
+ dedicatedCircuitLinkAuthorizationInstance.Description = descriptionInstance;
+ }
+
+ XElement limitElement2 = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("Limit", "http://schemas.microsoft.com/windowsazure"));
+ if (limitElement2 != null)
+ {
+ int limitInstance = int.Parse(limitElement2.Value, CultureInfo.InvariantCulture);
+ dedicatedCircuitLinkAuthorizationInstance.Limit = limitInstance;
+ }
+
+ XElement linkAuthIdElement = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("LinkAuthId", "http://schemas.microsoft.com/windowsazure"));
+ if (linkAuthIdElement != null)
+ {
+ string linkAuthIdInstance = linkAuthIdElement.Value;
+ dedicatedCircuitLinkAuthorizationInstance.LinkAuthId = linkAuthIdInstance;
+ }
+
+ XElement liveIdsElement = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("LiveIds", "http://schemas.microsoft.com/windowsazure"));
+ if (liveIdsElement != null)
+ {
+ string liveIdsInstance = liveIdsElement.Value;
+ dedicatedCircuitLinkAuthorizationInstance.LiveIds = liveIdsInstance;
+ }
+
+ XElement usedElement = dedicatedCircuitLinkAuthorizationElement.Element(XName.Get("Used", "http://schemas.microsoft.com/windowsazure"));
+ if (usedElement != null)
+ {
+ int usedInstance = int.Parse(usedElement.Value, CultureInfo.InvariantCulture);
+ dedicatedCircuitLinkAuthorizationInstance.Used = usedInstance;
+ }
+ }
+
+ result.StatusCode = statusCode;
+ if (httpResponse.Headers.Contains("x-ms-request-id"))
+ {
+ result.RequestId = httpResponse.Headers.GetValues("x-ms-request-id").FirstOrDefault();
+ }
+
+ if (shouldTrace)
+ {
+ Tracing.Exit(invocationId, result);
+ }
+ return result;
+ }
+ finally
+ {
+ if (httpResponse != null)
+ {
+ httpResponse.Dispose();
+ }
+ }
+ }
+ finally
+ {
+ if (httpRequest != null)
+ {
+ httpRequest.Dispose();
+ }
+ }
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/DedicatedCircuitLinkAuthorizationOperationsExtensions.cs b/src/ExpressRouteManagement/Generated/DedicatedCircuitLinkAuthorizationOperationsExtensions.cs
new file mode 100644
index 000000000000..514023b4d69e
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/DedicatedCircuitLinkAuthorizationOperationsExtensions.cs
@@ -0,0 +1,350 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.WindowsAzure.Management.ExpressRoute;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure
+{
+ ///
+ /// The Express Route API provides programmatic access to the functionality
+ /// needed by the customer to set up Dedicated Circuits and Dedicated
+ /// Circuit Links. The Express Route Customer API is a REST API. All API
+ /// operations are performed over SSL and mutually authenticated using
+ /// X.509 v3 certificates. (see
+ /// http://msdn.microsoft.com/en-us/library/windowsazure/ee460799.aspx for
+ /// more information)
+ ///
+ public static partial class DedicatedCircuitLinkAuthorizationOperationsExtensions
+ {
+ ///
+ /// The Remove Dedicated Circuit Link Authorization operation deletes
+ /// an existing dedicated circuit link.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations.
+ ///
+ ///
+ /// Required. Service key representing the dedicated circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// A standard service response including an HTTP status code and
+ /// request ID.
+ ///
+ public static ExpressRouteOperationResponse BeginRemove(this IDedicatedCircuitLinkAuthorizationOperations operations, string serviceKey, string authId)
+ {
+ return Task.Factory.StartNew((object s) =>
+ {
+ return ((IDedicatedCircuitLinkAuthorizationOperations)s).BeginRemoveAsync(serviceKey, authId);
+ }
+ , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
+ }
+
+ ///
+ /// The Remove Dedicated Circuit Link Authorization operation deletes
+ /// an existing dedicated circuit link.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations.
+ ///
+ ///
+ /// Required. Service key representing the dedicated circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// A standard service response including an HTTP status code and
+ /// request ID.
+ ///
+ public static Task BeginRemoveAsync(this IDedicatedCircuitLinkAuthorizationOperations operations, string serviceKey, string authId)
+ {
+ return operations.BeginRemoveAsync(serviceKey, authId, CancellationToken.None);
+ }
+
+ ///
+ /// Gets the link authorization for the specified dedicated circuit.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Get link authorization operation response.
+ ///
+ public static DedicatedCircuitLinkAuthorizationGetResponse Get(this IDedicatedCircuitLinkAuthorizationOperations operations, string serviceKey, string authId)
+ {
+ return Task.Factory.StartNew((object s) =>
+ {
+ return ((IDedicatedCircuitLinkAuthorizationOperations)s).GetAsync(serviceKey, authId);
+ }
+ , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
+ }
+
+ ///
+ /// Gets the link authorization for the specified dedicated circuit.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Get link authorization operation response.
+ ///
+ public static Task GetAsync(this IDedicatedCircuitLinkAuthorizationOperations operations, string serviceKey, string authId)
+ {
+ return operations.GetAsync(serviceKey, authId, CancellationToken.None);
+ }
+
+ ///
+ /// Lists the specified link authorization for the specified dedicated
+ /// circuit.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// List link authorization operation response.
+ ///
+ public static DedicatedCircuitLinkAuthorizationListResponse List(this IDedicatedCircuitLinkAuthorizationOperations operations, string serviceKey)
+ {
+ return Task.Factory.StartNew((object s) =>
+ {
+ return ((IDedicatedCircuitLinkAuthorizationOperations)s).ListAsync(serviceKey);
+ }
+ , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
+ }
+
+ ///
+ /// Lists the specified link authorization for the specified dedicated
+ /// circuit.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// List link authorization operation response.
+ ///
+ public static Task ListAsync(this IDedicatedCircuitLinkAuthorizationOperations operations, string serviceKey)
+ {
+ return operations.ListAsync(serviceKey, CancellationToken.None);
+ }
+
+ ///
+ /// Gets the specified link authorization for the specified dedicated
+ /// circuit.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. Parameters supplied to the new Dedicated Circuit link
+ /// authorization operation.
+ ///
+ ///
+ /// Get link authorization operation response.
+ ///
+ public static DedicatedCircuitLinkAuthorizationNewResponse New(this IDedicatedCircuitLinkAuthorizationOperations operations, string serviceKey, DedicatedCircuitLinkAuthorizationNewParameters parameters)
+ {
+ return Task.Factory.StartNew((object s) =>
+ {
+ return ((IDedicatedCircuitLinkAuthorizationOperations)s).NewAsync(serviceKey, parameters);
+ }
+ , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
+ }
+
+ ///
+ /// Gets the specified link authorization for the specified dedicated
+ /// circuit.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. Parameters supplied to the new Dedicated Circuit link
+ /// authorization operation.
+ ///
+ ///
+ /// Get link authorization operation response.
+ ///
+ public static Task NewAsync(this IDedicatedCircuitLinkAuthorizationOperations operations, string serviceKey, DedicatedCircuitLinkAuthorizationNewParameters parameters)
+ {
+ return operations.NewAsync(serviceKey, parameters, CancellationToken.None);
+ }
+
+ ///
+ /// The Remove Dedicated Circuit Link Authorization operation deletes
+ /// an existing dedicated circuit link.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations.
+ ///
+ ///
+ /// Required. Service Key associated with the dedicated circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// 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 also includes error
+ /// information regarding the failure.
+ ///
+ public static ExpressRouteOperationStatusResponse Remove(this IDedicatedCircuitLinkAuthorizationOperations operations, string serviceKey, string authId)
+ {
+ return Task.Factory.StartNew((object s) =>
+ {
+ return ((IDedicatedCircuitLinkAuthorizationOperations)s).RemoveAsync(serviceKey, authId);
+ }
+ , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
+ }
+
+ ///
+ /// The Remove Dedicated Circuit Link Authorization operation deletes
+ /// an existing dedicated circuit link.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations.
+ ///
+ ///
+ /// Required. Service Key associated with the dedicated circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// 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 also includes error
+ /// information regarding the failure.
+ ///
+ public static Task RemoveAsync(this IDedicatedCircuitLinkAuthorizationOperations operations, string serviceKey, string authId)
+ {
+ return operations.RemoveAsync(serviceKey, authId, CancellationToken.None);
+ }
+
+ ///
+ /// Updates the specified link authorization for the specified
+ /// dedicated circuit.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Required. Parameters supplied to the Update Dedicated Circuit link
+ /// authorization operation.
+ ///
+ ///
+ /// Update link authorization operation response.
+ ///
+ public static DedicatedCircuitLinkAuthorizationUpdateResponse Update(this IDedicatedCircuitLinkAuthorizationOperations operations, string serviceKey, string authId, DedicatedCircuitLinkAuthorizationUpdateParameters parameters)
+ {
+ return Task.Factory.StartNew((object s) =>
+ {
+ return ((IDedicatedCircuitLinkAuthorizationOperations)s).UpdateAsync(serviceKey, authId, parameters);
+ }
+ , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
+ }
+
+ ///
+ /// Updates the specified link authorization for the specified
+ /// dedicated circuit.
+ ///
+ ///
+ /// Reference to the
+ /// Microsoft.WindowsAzure.Management.ExpressRoute.IDedicatedCircuitLinkAuthorizationOperations.
+ ///
+ ///
+ /// Required. The service key representing the circuit.
+ ///
+ ///
+ /// Required. The GUID representing the authorization
+ ///
+ ///
+ /// Required. Parameters supplied to the Update Dedicated Circuit link
+ /// authorization operation.
+ ///
+ ///
+ /// Update link authorization operation response.
+ ///
+ public static Task UpdateAsync(this IDedicatedCircuitLinkAuthorizationOperations operations, string serviceKey, string authId, DedicatedCircuitLinkAuthorizationUpdateParameters parameters)
+ {
+ return operations.UpdateAsync(serviceKey, authId, parameters, CancellationToken.None);
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/ExpressRouteManagementClient.cs b/src/ExpressRouteManagement/Generated/ExpressRouteManagementClient.cs
index b85f6f40de28..46b57403d8f7 100644
--- a/src/ExpressRouteManagement/Generated/ExpressRouteManagementClient.cs
+++ b/src/ExpressRouteManagement/Generated/ExpressRouteManagementClient.cs
@@ -100,6 +100,13 @@ public int LongRunningOperationRetryTimeout
set { this._longRunningOperationRetryTimeout = value; }
}
+ private IAuthorizedDedicatedCircuitOperations _authorizedDedicatedCircuits;
+
+ public virtual IAuthorizedDedicatedCircuitOperations AuthorizedDedicatedCircuits
+ {
+ get { return this._authorizedDedicatedCircuits; }
+ }
+
private IBorderGatewayProtocolPeeringOperations _borderGatewayProtocolPeerings;
public virtual IBorderGatewayProtocolPeeringOperations BorderGatewayProtocolPeerings
@@ -114,6 +121,20 @@ public virtual ICrossConnectionOperations CrossConnections
get { return this._crossConnections; }
}
+ private IDedicatedCircuitLinkAuthorizationLiveIdOperations _dedicatedCircuitLinkAuthorizationLiveIds;
+
+ public virtual IDedicatedCircuitLinkAuthorizationLiveIdOperations DedicatedCircuitLinkAuthorizationLiveIds
+ {
+ get { return this._dedicatedCircuitLinkAuthorizationLiveIds; }
+ }
+
+ private IDedicatedCircuitLinkAuthorizationOperations _dedicatedCircuitLinkAuthorizations;
+
+ public virtual IDedicatedCircuitLinkAuthorizationOperations DedicatedCircuitLinkAuthorizations
+ {
+ get { return this._dedicatedCircuitLinkAuthorizations; }
+ }
+
private IDedicatedCircuitLinkOperations _dedicatedCircuitLinks;
public virtual IDedicatedCircuitLinkOperations DedicatedCircuitLinks
@@ -142,8 +163,11 @@ public virtual IDedicatedCircuitServiceProviderOperations DedicatedCircuitServic
private ExpressRouteManagementClient()
: base()
{
+ this._authorizedDedicatedCircuits = new AuthorizedDedicatedCircuitOperations(this);
this._borderGatewayProtocolPeerings = new BorderGatewayProtocolPeeringOperations(this);
this._crossConnections = new CrossConnectionOperations(this);
+ this._dedicatedCircuitLinkAuthorizationLiveIds = new DedicatedCircuitLinkAuthorizationLiveIdOperations(this);
+ this._dedicatedCircuitLinkAuthorizations = new DedicatedCircuitLinkAuthorizationOperations(this);
this._dedicatedCircuitLinks = new DedicatedCircuitLinkOperations(this);
this._dedicatedCircuits = new DedicatedCircuitOperations(this);
this._dedicatedCircuitServiceProviders = new DedicatedCircuitServiceProviderOperations(this);
@@ -215,8 +239,11 @@ public ExpressRouteManagementClient(SubscriptionCloudCredentials credentials)
private ExpressRouteManagementClient(HttpClient httpClient)
: base(httpClient)
{
+ this._authorizedDedicatedCircuits = new AuthorizedDedicatedCircuitOperations(this);
this._borderGatewayProtocolPeerings = new BorderGatewayProtocolPeeringOperations(this);
this._crossConnections = new CrossConnectionOperations(this);
+ this._dedicatedCircuitLinkAuthorizationLiveIds = new DedicatedCircuitLinkAuthorizationLiveIdOperations(this);
+ this._dedicatedCircuitLinkAuthorizations = new DedicatedCircuitLinkAuthorizationOperations(this);
this._dedicatedCircuitLinks = new DedicatedCircuitLinkOperations(this);
this._dedicatedCircuits = new DedicatedCircuitOperations(this);
this._dedicatedCircuitServiceProviders = new DedicatedCircuitServiceProviderOperations(this);
diff --git a/src/ExpressRouteManagement/Generated/IAuthorizedDedicatedCircuitOperations.cs b/src/ExpressRouteManagement/Generated/IAuthorizedDedicatedCircuitOperations.cs
new file mode 100644
index 000000000000..e2ee0f428d91
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/IAuthorizedDedicatedCircuitOperations.cs
@@ -0,0 +1,59 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute
+{
+ public partial interface IAuthorizedDedicatedCircuitOperations
+ {
+ ///
+ /// The Get Dedicated Circuit operation retrieves the specified
+ /// authorized dedicated circuit.
+ ///
+ ///
+ /// The service key representing the circuit.
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// The Get Authorized Dedicated Circuit operation response.
+ ///
+ Task GetAsync(string serviceKey, CancellationToken cancellationToken);
+
+ ///
+ /// The List Dedicated Circuit operation retrieves a list of dedicated
+ /// circuits owned by the customer.
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// The List Authorized Dedicated Circuit operation response.
+ ///
+ Task ListAsync(CancellationToken cancellationToken);
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/IDedicatedCircuitLinkAuthorizationLiveIdOperations.cs b/src/ExpressRouteManagement/Generated/IDedicatedCircuitLinkAuthorizationLiveIdOperations.cs
new file mode 100644
index 000000000000..6262d34c0eec
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/IDedicatedCircuitLinkAuthorizationLiveIdOperations.cs
@@ -0,0 +1,75 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.WindowsAzure;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute
+{
+ public partial interface IDedicatedCircuitLinkAuthorizationLiveIdOperations
+ {
+ ///
+ /// Adds live Ids to the specified authorization
+ ///
+ ///
+ /// The service key representing the circuit.
+ ///
+ ///
+ /// The GUID representing the authorization
+ ///
+ ///
+ /// Parameters supplied to add new live Ids
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// A standard service response including an HTTP status code and
+ /// request ID.
+ ///
+ Task NewAsync(string serviceKey, string authId, DedicatedCircuitLinkAuthorizationLiveIdNewParameters parameters, CancellationToken cancellationToken);
+
+ ///
+ /// Removes live Ids from the specified authorization
+ ///
+ ///
+ /// The service key representing the circuit.
+ ///
+ ///
+ /// The GUID representing the authorization
+ ///
+ ///
+ /// Parameters supplied to remove existing live Ids
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// A standard service response including an HTTP status code and
+ /// request ID.
+ ///
+ Task RemoveAsync(string serviceKey, string authId, DedicatedCircuitLinkAuthorizationLiveIdRemoveParameters parameters, CancellationToken cancellationToken);
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/IDedicatedCircuitLinkAuthorizationOperations.cs b/src/ExpressRouteManagement/Generated/IDedicatedCircuitLinkAuthorizationOperations.cs
new file mode 100644
index 000000000000..a1720c5861fe
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/IDedicatedCircuitLinkAuthorizationOperations.cs
@@ -0,0 +1,150 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute
+{
+ public partial interface IDedicatedCircuitLinkAuthorizationOperations
+ {
+ ///
+ /// The Remove Dedicated Circuit Link Authorization operation deletes
+ /// an existing dedicated circuit link.
+ ///
+ ///
+ /// Service key representing the dedicated circuit.
+ ///
+ ///
+ /// The GUID representing the authorization
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// A standard service response including an HTTP status code and
+ /// request ID.
+ ///
+ Task BeginRemoveAsync(string serviceKey, string authId, CancellationToken cancellationToken);
+
+ ///
+ /// Gets the link authorization for the specified dedicated circuit.
+ ///
+ ///
+ /// The service key representing the circuit.
+ ///
+ ///
+ /// The GUID representing the authorization
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// Get link authorization operation response.
+ ///
+ Task GetAsync(string serviceKey, string authId, CancellationToken cancellationToken);
+
+ ///
+ /// Lists the specified link authorization for the specified dedicated
+ /// circuit.
+ ///
+ ///
+ /// The service key representing the circuit.
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// List link authorization operation response.
+ ///
+ Task ListAsync(string serviceKey, CancellationToken cancellationToken);
+
+ ///
+ /// Gets the specified link authorization for the specified dedicated
+ /// circuit.
+ ///
+ ///
+ /// The service key representing the circuit.
+ ///
+ ///
+ /// Parameters supplied to the new Dedicated Circuit link authorization
+ /// operation.
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// Get link authorization operation response.
+ ///
+ Task NewAsync(string serviceKey, DedicatedCircuitLinkAuthorizationNewParameters parameters, CancellationToken cancellationToken);
+
+ ///
+ /// The Remove Dedicated Circuit Link Authorization operation deletes
+ /// an existing dedicated circuit link.
+ ///
+ ///
+ /// Service Key associated with the dedicated circuit.
+ ///
+ ///
+ /// The GUID representing the authorization
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// 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 also includes error
+ /// information regarding the failure.
+ ///
+ Task RemoveAsync(string serviceKey, string authId, CancellationToken cancellationToken);
+
+ ///
+ /// Updates the specified link authorization for the specified
+ /// dedicated circuit.
+ ///
+ ///
+ /// The service key representing the circuit.
+ ///
+ ///
+ /// The GUID representing the authorization
+ ///
+ ///
+ /// Parameters supplied to the Update Dedicated Circuit link
+ /// authorization operation.
+ ///
+ ///
+ /// Cancellation token.
+ ///
+ ///
+ /// Update link authorization operation response.
+ ///
+ Task UpdateAsync(string serviceKey, string authId, DedicatedCircuitLinkAuthorizationUpdateParameters parameters, CancellationToken cancellationToken);
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/IExpressRouteManagementClient.cs b/src/ExpressRouteManagement/Generated/IExpressRouteManagementClient.cs
index 29bb4c0abc3d..19ca4c1b92f7 100644
--- a/src/ExpressRouteManagement/Generated/IExpressRouteManagementClient.cs
+++ b/src/ExpressRouteManagement/Generated/IExpressRouteManagementClient.cs
@@ -82,6 +82,11 @@ int LongRunningOperationRetryTimeout
get; set;
}
+ IAuthorizedDedicatedCircuitOperations AuthorizedDedicatedCircuits
+ {
+ get;
+ }
+
IBorderGatewayProtocolPeeringOperations BorderGatewayProtocolPeerings
{
get;
@@ -92,6 +97,16 @@ ICrossConnectionOperations CrossConnections
get;
}
+ IDedicatedCircuitLinkAuthorizationLiveIdOperations DedicatedCircuitLinkAuthorizationLiveIds
+ {
+ get;
+ }
+
+ IDedicatedCircuitLinkAuthorizationOperations DedicatedCircuitLinkAuthorizations
+ {
+ get;
+ }
+
IDedicatedCircuitLinkOperations DedicatedCircuitLinks
{
get;
diff --git a/src/ExpressRouteManagement/Generated/Models/AuthorizedDedicatedCircuitGetResponse.cs b/src/ExpressRouteManagement/Generated/Models/AuthorizedDedicatedCircuitGetResponse.cs
new file mode 100644
index 000000000000..be38515e208e
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/Models/AuthorizedDedicatedCircuitGetResponse.cs
@@ -0,0 +1,53 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+using Microsoft.WindowsAzure;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute.Models
+{
+ ///
+ /// The Get Authorized Dedicated Circuit operation response.
+ ///
+ public partial class AuthorizedDedicatedCircuitGetResponse : OperationResponse
+ {
+ private AzureAuthorizedDedicatedCircuit _authorizedDedicatedCircuit;
+
+ ///
+ /// Optional. Details of the authorized dedicated circuit.
+ ///
+ public AzureAuthorizedDedicatedCircuit AuthorizedDedicatedCircuit
+ {
+ get { return this._authorizedDedicatedCircuit; }
+ set { this._authorizedDedicatedCircuit = value; }
+ }
+
+ ///
+ /// Initializes a new instance of the
+ /// AuthorizedDedicatedCircuitGetResponse class.
+ ///
+ public AuthorizedDedicatedCircuitGetResponse()
+ {
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/Models/AuthorizedDedicatedCircuitListResponse.cs b/src/ExpressRouteManagement/Generated/Models/AuthorizedDedicatedCircuitListResponse.cs
new file mode 100644
index 000000000000..7cd08f2a8d45
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/Models/AuthorizedDedicatedCircuitListResponse.cs
@@ -0,0 +1,71 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Microsoft.WindowsAzure;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute.Models
+{
+ ///
+ /// The List Authorized Dedicated Circuit operation response.
+ ///
+ public partial class AuthorizedDedicatedCircuitListResponse : OperationResponse, IEnumerable
+ {
+ private IList _authorizedDedicatedCircuits;
+
+ ///
+ /// Optional.
+ ///
+ public IList AuthorizedDedicatedCircuits
+ {
+ get { return this._authorizedDedicatedCircuits; }
+ set { this._authorizedDedicatedCircuits = value; }
+ }
+
+ ///
+ /// Initializes a new instance of the
+ /// AuthorizedDedicatedCircuitListResponse class.
+ ///
+ public AuthorizedDedicatedCircuitListResponse()
+ {
+ this.AuthorizedDedicatedCircuits = new List();
+ }
+
+ ///
+ /// Gets the sequence of AuthorizedDedicatedCircuits.
+ ///
+ public IEnumerator GetEnumerator()
+ {
+ return this.AuthorizedDedicatedCircuits.GetEnumerator();
+ }
+
+ ///
+ /// Gets the sequence of AuthorizedDedicatedCircuits.
+ ///
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
+ {
+ return this.GetEnumerator();
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/Models/AzureAuthorizedDedicatedCircuit.cs b/src/ExpressRouteManagement/Generated/Models/AzureAuthorizedDedicatedCircuit.cs
new file mode 100644
index 000000000000..5fb754233d90
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/Models/AzureAuthorizedDedicatedCircuit.cs
@@ -0,0 +1,143 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute.Models
+{
+ ///
+ /// Describes an authorized Dedicated Circuit.
+ ///
+ public partial class AzureAuthorizedDedicatedCircuit
+ {
+ private uint _bandwidth;
+
+ ///
+ /// Optional. Specifies the bandwidth that is assigned to the circuit.
+ ///
+ public uint Bandwidth
+ {
+ get { return this._bandwidth; }
+ set { this._bandwidth = value; }
+ }
+
+ private string _circuitName;
+
+ ///
+ /// Optional. Specifies the name of the circuit.
+ ///
+ public string CircuitName
+ {
+ get { return this._circuitName; }
+ set { this._circuitName = value; }
+ }
+
+ private string _location;
+
+ ///
+ /// Optional. Specifies the peering location of the circuit.
+ ///
+ public string Location
+ {
+ get { return this._location; }
+ set { this._location = value; }
+ }
+
+ private int _maximumAllowedLinks;
+
+ ///
+ /// Optional. Maximum number of allowed links on this circuit
+ ///
+ public int MaximumAllowedLinks
+ {
+ get { return this._maximumAllowedLinks; }
+ set { this._maximumAllowedLinks = value; }
+ }
+
+ private string _serviceKey;
+
+ ///
+ /// Optional. A value that uniquely identifies the circuit.
+ ///
+ public string ServiceKey
+ {
+ get { return this._serviceKey; }
+ set { this._serviceKey = value; }
+ }
+
+ private string _serviceProviderName;
+
+ ///
+ /// Optional. Specifies the name of the dedicated circuit service
+ /// provider.
+ ///
+ public string ServiceProviderName
+ {
+ get { return this._serviceProviderName; }
+ set { this._serviceProviderName = value; }
+ }
+
+ private ProviderProvisioningState _serviceProviderProvisioningState;
+
+ ///
+ /// Optional. Specifies the provisioning state of the circuit. Values
+ /// are NotProvisioned, Provisioning, Provisioned, or DeProvisioning.
+ ///
+ public ProviderProvisioningState ServiceProviderProvisioningState
+ {
+ get { return this._serviceProviderProvisioningState; }
+ set { this._serviceProviderProvisioningState = value; }
+ }
+
+ private DedicatedCircuitState _status;
+
+ ///
+ /// Optional. The current status of the circuit. Values are Disabled,
+ /// Disabliing, Enabled, Enabling.
+ ///
+ public DedicatedCircuitState Status
+ {
+ get { return this._status; }
+ set { this._status = value; }
+ }
+
+ private int _usedLinks;
+
+ ///
+ /// Optional. Current number of used links
+ ///
+ public int UsedLinks
+ {
+ get { return this._usedLinks; }
+ set { this._usedLinks = value; }
+ }
+
+ ///
+ /// Initializes a new instance of the AzureAuthorizedDedicatedCircuit
+ /// class.
+ ///
+ public AzureAuthorizedDedicatedCircuit()
+ {
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/Models/AzureDedicatedCircuitLinkAuthorization.cs b/src/ExpressRouteManagement/Generated/Models/AzureDedicatedCircuitLinkAuthorization.cs
new file mode 100644
index 000000000000..495a0b4bd187
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/Models/AzureDedicatedCircuitLinkAuthorization.cs
@@ -0,0 +1,97 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute.Models
+{
+ ///
+ /// Describes a link authorization.
+ ///
+ public partial class AzureDedicatedCircuitLinkAuthorization
+ {
+ private string _description;
+
+ ///
+ /// Optional. Specifies the description associated with this
+ /// authorization.
+ ///
+ public string Description
+ {
+ get { return this._description; }
+ set { this._description = value; }
+ }
+
+ private int _limit;
+
+ ///
+ /// Optional. Number of dedicated circuit links allowed amongst all
+ /// live Ids
+ ///
+ public int Limit
+ {
+ get { return this._limit; }
+ set { this._limit = value; }
+ }
+
+ private string _linkAuthId;
+
+ ///
+ /// Optional. A value that uniquely identifies an authorization
+ ///
+ public string LinkAuthId
+ {
+ get { return this._linkAuthId; }
+ set { this._linkAuthId = value; }
+ }
+
+ private string _liveIds;
+
+ ///
+ /// Optional. Specifies a comma separated list of live Ids
+ ///
+ public string LiveIds
+ {
+ get { return this._liveIds; }
+ set { this._liveIds = value; }
+ }
+
+ private int _used;
+
+ ///
+ /// Optional. Number of dedicated circuit links created so far
+ ///
+ public int Used
+ {
+ get { return this._used; }
+ set { this._used = value; }
+ }
+
+ ///
+ /// Initializes a new instance of the
+ /// AzureDedicatedCircuitLinkAuthorization class.
+ ///
+ public AzureDedicatedCircuitLinkAuthorization()
+ {
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationGetResponse.cs b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationGetResponse.cs
new file mode 100644
index 000000000000..4ffa6bdb60ba
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationGetResponse.cs
@@ -0,0 +1,53 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+using Microsoft.WindowsAzure;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute.Models
+{
+ ///
+ /// Get link authorization operation response.
+ ///
+ public partial class DedicatedCircuitLinkAuthorizationGetResponse : OperationResponse
+ {
+ private AzureDedicatedCircuitLinkAuthorization _dedicatedCircuitLinkAuthorization;
+
+ ///
+ /// Optional. Details of the requested link authorization.
+ ///
+ public AzureDedicatedCircuitLinkAuthorization DedicatedCircuitLinkAuthorization
+ {
+ get { return this._dedicatedCircuitLinkAuthorization; }
+ set { this._dedicatedCircuitLinkAuthorization = value; }
+ }
+
+ ///
+ /// Initializes a new instance of the
+ /// DedicatedCircuitLinkAuthorizationGetResponse class.
+ ///
+ public DedicatedCircuitLinkAuthorizationGetResponse()
+ {
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationListResponse.cs b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationListResponse.cs
new file mode 100644
index 000000000000..205a5f3420df
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationListResponse.cs
@@ -0,0 +1,71 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Microsoft.WindowsAzure;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute.Models
+{
+ ///
+ /// List link authorization operation response.
+ ///
+ public partial class DedicatedCircuitLinkAuthorizationListResponse : OperationResponse, IEnumerable
+ {
+ private IList _dedicatedCircuitLinkAuthorizations;
+
+ ///
+ /// Optional. Details of the collection of link authorizations.
+ ///
+ public IList DedicatedCircuitLinkAuthorizations
+ {
+ get { return this._dedicatedCircuitLinkAuthorizations; }
+ set { this._dedicatedCircuitLinkAuthorizations = value; }
+ }
+
+ ///
+ /// Initializes a new instance of the
+ /// DedicatedCircuitLinkAuthorizationListResponse class.
+ ///
+ public DedicatedCircuitLinkAuthorizationListResponse()
+ {
+ this.DedicatedCircuitLinkAuthorizations = new List();
+ }
+
+ ///
+ /// Gets the sequence of DedicatedCircuitLinkAuthorizations.
+ ///
+ public IEnumerator GetEnumerator()
+ {
+ return this.DedicatedCircuitLinkAuthorizations.GetEnumerator();
+ }
+
+ ///
+ /// Gets the sequence of DedicatedCircuitLinkAuthorizations.
+ ///
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
+ {
+ return this.GetEnumerator();
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationLiveIdNewParameters.cs b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationLiveIdNewParameters.cs
new file mode 100644
index 000000000000..a6266d697749
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationLiveIdNewParameters.cs
@@ -0,0 +1,51 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute.Models
+{
+ ///
+ /// The parameters to add more live Ids to an existing authorization
+ ///
+ public partial class DedicatedCircuitLinkAuthorizationLiveIdNewParameters
+ {
+ private string _liveIds;
+
+ ///
+ /// Optional. A comma separated list of live Ids
+ ///
+ public string LiveIds
+ {
+ get { return this._liveIds; }
+ set { this._liveIds = value; }
+ }
+
+ ///
+ /// Initializes a new instance of the
+ /// DedicatedCircuitLinkAuthorizationLiveIdNewParameters class.
+ ///
+ public DedicatedCircuitLinkAuthorizationLiveIdNewParameters()
+ {
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationLiveIdRemoveParameters.cs b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationLiveIdRemoveParameters.cs
new file mode 100644
index 000000000000..45b119eb39c3
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationLiveIdRemoveParameters.cs
@@ -0,0 +1,51 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute.Models
+{
+ ///
+ /// The parameters to remove existing live Ids from an authorization
+ ///
+ public partial class DedicatedCircuitLinkAuthorizationLiveIdRemoveParameters
+ {
+ private string _liveIds;
+
+ ///
+ /// Optional. A comma separated list of live Ids
+ ///
+ public string LiveIds
+ {
+ get { return this._liveIds; }
+ set { this._liveIds = value; }
+ }
+
+ ///
+ /// Initializes a new instance of the
+ /// DedicatedCircuitLinkAuthorizationLiveIdRemoveParameters class.
+ ///
+ public DedicatedCircuitLinkAuthorizationLiveIdRemoveParameters()
+ {
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationNewParameters.cs b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationNewParameters.cs
new file mode 100644
index 000000000000..58f15afb893b
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationNewParameters.cs
@@ -0,0 +1,75 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute.Models
+{
+ ///
+ /// The parameters to the New Dedicated Circuit Link Authorization request.
+ ///
+ public partial class DedicatedCircuitLinkAuthorizationNewParameters
+ {
+ private string _description;
+
+ ///
+ /// Optional. Specifies the description associated with this
+ /// authorization.
+ ///
+ public string Description
+ {
+ get { return this._description; }
+ set { this._description = value; }
+ }
+
+ private int _limit;
+
+ ///
+ /// Optional. Number of dedicated circuit links allowed amongst all
+ /// live Ids
+ ///
+ public int Limit
+ {
+ get { return this._limit; }
+ set { this._limit = value; }
+ }
+
+ private string _liveIds;
+
+ ///
+ /// Optional. Specifies a comma separated list of live Ids
+ ///
+ public string LiveIds
+ {
+ get { return this._liveIds; }
+ set { this._liveIds = value; }
+ }
+
+ ///
+ /// Initializes a new instance of the
+ /// DedicatedCircuitLinkAuthorizationNewParameters class.
+ ///
+ public DedicatedCircuitLinkAuthorizationNewParameters()
+ {
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationNewResponse.cs b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationNewResponse.cs
new file mode 100644
index 000000000000..b0226227aec9
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationNewResponse.cs
@@ -0,0 +1,53 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+using Microsoft.WindowsAzure;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute.Models
+{
+ ///
+ /// Get link authorization operation response.
+ ///
+ public partial class DedicatedCircuitLinkAuthorizationNewResponse : OperationResponse
+ {
+ private AzureDedicatedCircuitLinkAuthorization _dedicatedCircuitLinkAuthorization;
+
+ ///
+ /// Optional. Details of the requested link authorization.
+ ///
+ public AzureDedicatedCircuitLinkAuthorization DedicatedCircuitLinkAuthorization
+ {
+ get { return this._dedicatedCircuitLinkAuthorization; }
+ set { this._dedicatedCircuitLinkAuthorization = value; }
+ }
+
+ ///
+ /// Initializes a new instance of the
+ /// DedicatedCircuitLinkAuthorizationNewResponse class.
+ ///
+ public DedicatedCircuitLinkAuthorizationNewResponse()
+ {
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationUpdateParameters.cs b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationUpdateParameters.cs
new file mode 100644
index 000000000000..21403cfadc64
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationUpdateParameters.cs
@@ -0,0 +1,65 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute.Models
+{
+ ///
+ /// The parameters to the Update Dedicated Circuit Link Authorization
+ /// request.
+ ///
+ public partial class DedicatedCircuitLinkAuthorizationUpdateParameters
+ {
+ private string _description;
+
+ ///
+ /// Optional. Specifies the description associated with this
+ /// authorization.
+ ///
+ public string Description
+ {
+ get { return this._description; }
+ set { this._description = value; }
+ }
+
+ private int _limit;
+
+ ///
+ /// Optional. Number of dedicated circuit links allowed amongst all
+ /// live Ids
+ ///
+ public int Limit
+ {
+ get { return this._limit; }
+ set { this._limit = value; }
+ }
+
+ ///
+ /// Initializes a new instance of the
+ /// DedicatedCircuitLinkAuthorizationUpdateParameters class.
+ ///
+ public DedicatedCircuitLinkAuthorizationUpdateParameters()
+ {
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationUpdateResponse.cs b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationUpdateResponse.cs
new file mode 100644
index 000000000000..455a8bafb6ee
--- /dev/null
+++ b/src/ExpressRouteManagement/Generated/Models/DedicatedCircuitLinkAuthorizationUpdateResponse.cs
@@ -0,0 +1,53 @@
+//
+// Copyright (c) Microsoft and contributors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+// Warning: This code was generated by a tool.
+//
+// Changes to this file may cause incorrect behavior and will be lost if the
+// code is regenerated.
+
+using System;
+using System.Linq;
+using Microsoft.WindowsAzure;
+using Microsoft.WindowsAzure.Management.ExpressRoute.Models;
+
+namespace Microsoft.WindowsAzure.Management.ExpressRoute.Models
+{
+ ///
+ /// Update link authorization operation response.
+ ///
+ public partial class DedicatedCircuitLinkAuthorizationUpdateResponse : OperationResponse
+ {
+ private AzureDedicatedCircuitLinkAuthorization _dedicatedCircuitLinkAuthorization;
+
+ ///
+ /// Optional. Details of the updated link authorization.
+ ///
+ public AzureDedicatedCircuitLinkAuthorization DedicatedCircuitLinkAuthorization
+ {
+ get { return this._dedicatedCircuitLinkAuthorization; }
+ set { this._dedicatedCircuitLinkAuthorization = value; }
+ }
+
+ ///
+ /// Initializes a new instance of the
+ /// DedicatedCircuitLinkAuthorizationUpdateResponse class.
+ ///
+ public DedicatedCircuitLinkAuthorizationUpdateResponse()
+ {
+ }
+ }
+}
diff --git a/src/ExpressRouteManagement/Microsoft.WindowsAzure.Management.ExpressRoute.nuget.proj b/src/ExpressRouteManagement/Microsoft.WindowsAzure.Management.ExpressRoute.nuget.proj
index 768bffeca29f..ef19d28a554c 100644
--- a/src/ExpressRouteManagement/Microsoft.WindowsAzure.Management.ExpressRoute.nuget.proj
+++ b/src/ExpressRouteManagement/Microsoft.WindowsAzure.Management.ExpressRoute.nuget.proj
@@ -5,7 +5,7 @@
Microsoft.WindowsAzure.Management.ExpressRoute
-->
- 0.12.0-preview
+ 0.13.0-preview
$(MSBuildThisFileDirectory)
diff --git a/src/ExpressRouteManagement/Properties/AssemblyInfo.cs b/src/ExpressRouteManagement/Properties/AssemblyInfo.cs
index f718351dd7aa..e75e29e86093 100644
--- a/src/ExpressRouteManagement/Properties/AssemblyInfo.cs
+++ b/src/ExpressRouteManagement/Properties/AssemblyInfo.cs
@@ -20,7 +20,7 @@
[assembly: AssemblyDescription("Provides express route management capabilities to developers. Create, delete, list, retrieve dedicated circuits, bgp peerings, dedicated circuit links, and more.")]
[assembly: AssemblyVersion("0.9.0.0")]
-[assembly: AssemblyFileVersion("0.12.0.0")]
+[assembly: AssemblyFileVersion("0.13.0.0")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
diff --git a/src/ExpressRouteManagement/packages.config b/src/ExpressRouteManagement/packages.config
index 0570e71bb475..5f2eefc8514c 100644
--- a/src/ExpressRouteManagement/packages.config
+++ b/src/ExpressRouteManagement/packages.config
@@ -7,6 +7,6 @@
-
+
\ No newline at end of file