UNPKG

azure-cli

Version:

Microsoft Azure Cross Platform Command Line tool

1,230 lines (1,083 loc) 642 kB
/* jshint latedef:false */ /* jshint forin:false */ /* jshint noempty:false */ // // 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. 'use strict'; var util = require('util'); var _ = require('underscore'); var azureCommon = require('azure-common'); var Service = azureCommon.Service; var WebResource = azureCommon.WebResource; var ComputeManagementClient = ( /** @lends ComputeManagementClient */ function() { /** * @class * The Compute Management Client. * Initializes a new instance of the ComputeManagementClient class. * @constructor * * @param {SubscriptionCloudCredentials} credentials Gets subscription * credentials which uniquely identify Microsoft Azure subscription. The * subscription ID forms part of the URI for every service call. * * @param {string} [credentials.subscriptionId] * * @param {string} [baseUri] Gets the URI used as the base for all cloud * service requests. * * @param {Array} filters */ function ComputeManagementClient(credentials, baseUri, filters) { if (credentials === null || credentials === undefined) { throw new Error('credentials cannot be null.'); } ComputeManagementClient['super_'].call(this, credentials, filters); this.credentials = credentials; this.baseUri = baseUri; if (this.baseUri === null || this.baseUri === undefined) { this.baseUri = 'https://management.azure.com'; } if (this.apiVersion === null || this.apiVersion === undefined) { this.apiVersion = '2015-05-01-preview'; } if (this.longRunningOperationInitialTimeout === null || this.longRunningOperationInitialTimeout === undefined) { this.longRunningOperationInitialTimeout = -1; } if (this.longRunningOperationRetryTimeout === null || this.longRunningOperationRetryTimeout === undefined) { this.longRunningOperationRetryTimeout = -1; } /** * Provides an instance of the * [AvailabilitySetOperations](-AvailabilitySetOperations.html) object. * @type {object} */ this.availabilitySets = new AvailabilitySetOperations(this); /** * Provides an instance of the [UsageOperations](-UsageOperations.html) * object. * @type {object} */ this.usage = new UsageOperations(this); /** * Provides an instance of the * [VirtualMachineExtensionImageOperations](-VirtualMachineExtensionImageOperations.html) * object. * @type {object} */ this.virtualMachineExtensionImages = new VirtualMachineExtensionImageOperations(this); /** * Provides an instance of the * [VirtualMachineExtensionOperations](-VirtualMachineExtensionOperations.html) * object. * @type {object} */ this.virtualMachineExtensions = new VirtualMachineExtensionOperations(this); /** * Provides an instance of the * [VirtualMachineImageOperations](-VirtualMachineImageOperations.html) * object. * @type {object} */ this.virtualMachineImages = new VirtualMachineImageOperations(this); /** * Provides an instance of the * [VirtualMachineOperations](-VirtualMachineOperations.html) object. * @type {object} */ this.virtualMachines = new VirtualMachineOperations(this); /** * Provides an instance of the * [VirtualMachineSizeOperations](-VirtualMachineSizeOperations.html) * object. * @type {object} */ this.virtualMachineSizes = new VirtualMachineSizeOperations(this); } util.inherits(ComputeManagementClient, Service); /** * The Get Operation Status operation returns the status of the specified * operation. After calling an asynchronous operation, you can call * GetLongRunningOperationStatus to determine whether the operation has * succeeded, failed, or is still in progress. * * @param {string} operationStatusLink Location value returned by the Begin * operation. * * @param {function} callback * * @returns {Stream} The response stream. */ ComputeManagementClient.prototype.getLongRunningOperationStatus = function(operationStatusLink, callback) { if (callback === null || callback === undefined) { throw new Error('callback cannot be null.'); } // Validate if (operationStatusLink === null || operationStatusLink === undefined) { return callback(new Error('operationStatusLink cannot be null.')); } // Tracing // Construct URL var url2 = ''; url2 = url2 + operationStatusLink; url2 = url2.replace(' ', '%20'); // Create HTTP transport objects var httpRequest = new WebResource(); httpRequest.method = 'GET'; httpRequest.headers = {}; httpRequest.url = url2; // Set Headers // Send Request return this.pipeline(httpRequest, function (err, response, body) { if (err !== null && err !== undefined) { return callback(err); } var statusCode = response.statusCode; if (statusCode !== 200 && statusCode !== 202) { var error = new Error(body); error.statusCode = response.statusCode; return callback(error); } // Create Result var result = null; // Deserialize Response if (statusCode === 200 || statusCode === 202) { var responseContent = body; result = {}; var responseDoc = null; if (responseContent) { responseDoc = JSON.parse(responseContent); } if (responseDoc !== null && responseDoc !== undefined) { var operationIdValue = responseDoc['operationId']; if (operationIdValue !== null && operationIdValue !== undefined) { var operationIdInstance = operationIdValue; result.trackingOperationId = operationIdInstance; } var statusValue = responseDoc['status']; if (statusValue !== null && statusValue !== undefined) { var statusInstance = statusValue; result.status = statusInstance; } var startTimeValue = responseDoc['startTime']; if (startTimeValue !== null && startTimeValue !== undefined) { var startTimeInstance = startTimeValue; result.startTime = startTimeInstance; } var endTimeValue = responseDoc['endTime']; if (endTimeValue !== null && endTimeValue !== undefined) { var endTimeInstance = endTimeValue; result.endTime = endTimeInstance; } var propertiesValue = responseDoc['properties']; if (propertiesValue !== null && propertiesValue !== undefined) { var outputValue = propertiesValue['output']; if (outputValue !== null && outputValue !== undefined) { var outputInstance = outputValue; result.output = outputInstance; } } var errorValue = responseDoc['error']; if (errorValue !== null && errorValue !== undefined) { var errorInstance = { details: [] }; result.error = errorInstance; var detailsArray = errorValue['details']; if (detailsArray !== null && detailsArray !== undefined) { for (var loweredIndex1 = 0; loweredIndex1 < detailsArray.length; loweredIndex1 = loweredIndex1 + 1) { var detailsValue = detailsArray[loweredIndex1]; var apiErrorBaseInstance = {}; errorInstance.details.push(apiErrorBaseInstance); var codeValue = detailsValue['code']; if (codeValue !== null && codeValue !== undefined) { var codeInstance = codeValue; apiErrorBaseInstance.code = codeInstance; } var targetValue = detailsValue['target']; if (targetValue !== null && targetValue !== undefined) { var targetInstance = targetValue; apiErrorBaseInstance.target = targetInstance; } var messageValue = detailsValue['message']; if (messageValue !== null && messageValue !== undefined) { var messageInstance = messageValue; apiErrorBaseInstance.message = messageInstance; } } } var innererrorValue = errorValue['innererror']; if (innererrorValue !== null && innererrorValue !== undefined) { var innererrorInstance = {}; errorInstance.innerError = innererrorInstance; var exceptiontypeValue = innererrorValue['exceptiontype']; if (exceptiontypeValue !== null && exceptiontypeValue !== undefined) { var exceptiontypeInstance = exceptiontypeValue; innererrorInstance.exceptionType = exceptiontypeInstance; } var errordetailValue = innererrorValue['errordetail']; if (errordetailValue !== null && errordetailValue !== undefined) { var errordetailInstance = errordetailValue; innererrorInstance.errorDetail = errordetailInstance; } } var codeValue2 = errorValue['code']; if (codeValue2 !== null && codeValue2 !== undefined) { var codeInstance2 = codeValue2; errorInstance.code = codeInstance2; } var targetValue2 = errorValue['target']; if (targetValue2 !== null && targetValue2 !== undefined) { var targetInstance2 = targetValue2; errorInstance.target = targetInstance2; } var messageValue2 = errorValue['message']; if (messageValue2 !== null && messageValue2 !== undefined) { var messageInstance2 = messageValue2; errorInstance.message = messageInstance2; } } } } result.statusCode = statusCode; result.requestId = response.headers['x-ms-request-id']; return callback(null, result); }); }; return ComputeManagementClient; })(); exports.ComputeManagementClient = ComputeManagementClient; var AvailabilitySetOperations = ( /** @lends AvailabilitySetOperations */ function() { /** * @class * Operations for managing the availability sets in compute management. * __NOTE__: An instance of this class is automatically created for an * instance of the [ComputeManagementClient] {@link * ComputeManagementClient~ComputeManagementClient}. * See [availabilitySets] {@link * ComputeManagementClient~ComputeManagementClient#availabilitySets}. * Initializes a new instance of the AvailabilitySetOperations class. * @constructor * * @param {ComputeManagementClient} client Reference to the service client. */ function AvailabilitySetOperations(client) { this.client = client; } /** * The operation to create the availability set. * * @param {string} resourceGroupName The name of the resource group. * * @param {AvailabilitySet} parameters Parameters supplied to the Create * Availability Set operation. * * @param {number} [parameters.platformUpdateDomainCount] Gets or sets Update * Domain count. * * @param {number} [parameters.platformFaultDomainCount] Gets or sets Fault * Domain count. * * @param {array} [parameters.virtualMachinesReferences] Gets or sets a list * containing reference to all Virtual Machines created under this * Availability Set. * * @param {array} [parameters.statuses] Gets or sets the resource status * information. * * @param {string} [parameters.id] Gets or sets the ID of the resource. * * @param {string} [parameters.name] Gets or sets the name of the resource. * * @param {string} [parameters.type] Gets or sets the type of the resource. * * @param {string} parameters.location Gets or sets the location of the * resource. * * @param {object} [parameters.tags] Gets or sets the tags attached to the * resource. * * @param {function} callback * * @returns {Stream} The response stream. */ AvailabilitySetOperations.prototype.createOrUpdate = function(resourceGroupName, parameters, callback) { if (callback === null || callback === undefined) { throw new Error('callback cannot be null.'); } // Validate if (resourceGroupName === null || resourceGroupName === undefined) { return callback(new Error('resourceGroupName cannot be null.')); } if (parameters === null || parameters === undefined) { return callback(new Error('parameters cannot be null.')); } if (parameters.location === null || parameters.location === undefined) { return callback(new Error('parameters.location cannot be null.')); } // Tracing // Construct URL var url2 = ''; url2 = url2 + '/subscriptions/'; if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) { url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId); } url2 = url2 + '/resourceGroups/'; url2 = url2 + encodeURIComponent(resourceGroupName); url2 = url2 + '/providers/'; url2 = url2 + 'Microsoft.Compute'; url2 = url2 + '/availabilitySets/'; if (parameters.name !== null && parameters.name !== undefined) { url2 = url2 + encodeURIComponent(parameters.name); } var queryParameters = []; queryParameters.push('api-version=2015-05-01-preview'); if (queryParameters.length > 0) { url2 = url2 + '?' + queryParameters.join('&'); } var baseUrl = this.client.baseUri; // Trim '/' character from the end of baseUrl and beginning of url. if (baseUrl[baseUrl.length - 1] === '/') { baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0); } if (url2[0] === '/') { url2 = url2.substring(1); } url2 = baseUrl + '/' + url2; url2 = url2.replace(' ', '%20'); // Create HTTP transport objects var httpRequest = new WebResource(); httpRequest.method = 'PUT'; httpRequest.headers = {}; httpRequest.url = url2; // Set Headers httpRequest.headers['Content-Type'] = 'application/json'; // Serialize Request var requestContent = null; var requestDoc = null; var availabilitySetJsonValue = {}; requestDoc = availabilitySetJsonValue; var propertiesValue = {}; availabilitySetJsonValue['properties'] = propertiesValue; if (parameters.platformUpdateDomainCount !== null && parameters.platformUpdateDomainCount !== undefined) { propertiesValue['platformUpdateDomainCount'] = parameters.platformUpdateDomainCount; } if (parameters.platformFaultDomainCount !== null && parameters.platformFaultDomainCount !== undefined) { propertiesValue['platformFaultDomainCount'] = parameters.platformFaultDomainCount; } if (parameters.virtualMachinesReferences !== null && parameters.virtualMachinesReferences !== undefined) { var virtualMachinesArray = []; for (var loweredIndex1 = 0; loweredIndex1 < parameters.virtualMachinesReferences.length; loweredIndex1 = loweredIndex1 + 1) { var virtualMachinesItem = parameters.virtualMachinesReferences[loweredIndex1]; var virtualMachineReferenceValue = {}; virtualMachinesArray.push(virtualMachineReferenceValue); if (virtualMachinesItem.referenceUri !== null && virtualMachinesItem.referenceUri !== undefined) { virtualMachineReferenceValue['id'] = virtualMachinesItem.referenceUri; } } propertiesValue['virtualMachines'] = virtualMachinesArray; } if (parameters.statuses !== null && parameters.statuses !== undefined) { var statusesArray = []; for (var loweredIndex2 = 0; loweredIndex2 < parameters.statuses.length; loweredIndex2 = loweredIndex2 + 1) { var statusesItem = parameters.statuses[loweredIndex2]; var instanceViewStatusValue = {}; statusesArray.push(instanceViewStatusValue); if (statusesItem.code !== null && statusesItem.code !== undefined) { instanceViewStatusValue['code'] = statusesItem.code; } if (statusesItem.level !== null && statusesItem.level !== undefined) { instanceViewStatusValue['level'] = statusesItem.level; } if (statusesItem.displayStatus !== null && statusesItem.displayStatus !== undefined) { instanceViewStatusValue['displayStatus'] = statusesItem.displayStatus; } if (statusesItem.message !== null && statusesItem.message !== undefined) { instanceViewStatusValue['message'] = statusesItem.message; } if (statusesItem.time !== null && statusesItem.time !== undefined) { instanceViewStatusValue['time'] = statusesItem.time; } } propertiesValue['statuses'] = statusesArray; } if (parameters.id !== null && parameters.id !== undefined) { availabilitySetJsonValue['id'] = parameters.id; } if (parameters.name !== null && parameters.name !== undefined) { availabilitySetJsonValue['name'] = parameters.name; } if (parameters.type !== null && parameters.type !== undefined) { availabilitySetJsonValue['type'] = parameters.type; } availabilitySetJsonValue['location'] = parameters.location; if (parameters.tags !== null && parameters.tags !== undefined) { var tagsDictionary = {}; for (var tagsKey in parameters.tags) { var tagsValue = parameters.tags[tagsKey]; tagsDictionary[tagsKey] = tagsValue; } availabilitySetJsonValue['tags'] = tagsDictionary; } requestContent = JSON.stringify(requestDoc); httpRequest.body = requestContent; httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8'); // Send Request return this.client.pipeline(httpRequest, function (err, response, body) { if (err !== null && err !== undefined) { return callback(err); } var statusCode = response.statusCode; if (statusCode !== 200) { var error = new Error(body); error.statusCode = response.statusCode; return callback(error); } // Create Result var result = null; // Deserialize Response if (statusCode === 200) { var responseContent = body; result = {}; var responseDoc = null; if (responseContent) { responseDoc = JSON.parse(responseContent); } if (responseDoc !== null && responseDoc !== undefined) { var availabilitySetInstance = { statuses: [], tags: {}, virtualMachinesReferences: [] }; result.availabilitySet = availabilitySetInstance; var propertiesValue2 = responseDoc['properties']; if (propertiesValue2 !== null && propertiesValue2 !== undefined) { var platformUpdateDomainCountValue = propertiesValue2['platformUpdateDomainCount']; if (platformUpdateDomainCountValue !== null && platformUpdateDomainCountValue !== undefined) { var platformUpdateDomainCountInstance = platformUpdateDomainCountValue; availabilitySetInstance.platformUpdateDomainCount = platformUpdateDomainCountInstance; } var platformFaultDomainCountValue = propertiesValue2['platformFaultDomainCount']; if (platformFaultDomainCountValue !== null && platformFaultDomainCountValue !== undefined) { var platformFaultDomainCountInstance = platformFaultDomainCountValue; availabilitySetInstance.platformFaultDomainCount = platformFaultDomainCountInstance; } var virtualMachinesArray2 = propertiesValue2['virtualMachines']; if (virtualMachinesArray2 !== null && virtualMachinesArray2 !== undefined) { for (var loweredIndex3 = 0; loweredIndex3 < virtualMachinesArray2.length; loweredIndex3 = loweredIndex3 + 1) { var virtualMachinesValue = virtualMachinesArray2[loweredIndex3]; var virtualMachineReferenceInstance = {}; availabilitySetInstance.virtualMachinesReferences.push(virtualMachineReferenceInstance); var idValue = virtualMachinesValue['id']; if (idValue !== null && idValue !== undefined) { var idInstance = idValue; virtualMachineReferenceInstance.referenceUri = idInstance; } } } var statusesArray2 = propertiesValue2['statuses']; if (statusesArray2 !== null && statusesArray2 !== undefined) { for (var loweredIndex4 = 0; loweredIndex4 < statusesArray2.length; loweredIndex4 = loweredIndex4 + 1) { var statusesValue = statusesArray2[loweredIndex4]; var instanceViewStatusInstance = {}; availabilitySetInstance.statuses.push(instanceViewStatusInstance); var codeValue = statusesValue['code']; if (codeValue !== null && codeValue !== undefined) { var codeInstance = codeValue; instanceViewStatusInstance.code = codeInstance; } var levelValue = statusesValue['level']; if (levelValue !== null && levelValue !== undefined) { var levelInstance = levelValue; instanceViewStatusInstance.level = levelInstance; } var displayStatusValue = statusesValue['displayStatus']; if (displayStatusValue !== null && displayStatusValue !== undefined) { var displayStatusInstance = displayStatusValue; instanceViewStatusInstance.displayStatus = displayStatusInstance; } var messageValue = statusesValue['message']; if (messageValue !== null && messageValue !== undefined) { var messageInstance = messageValue; instanceViewStatusInstance.message = messageInstance; } var timeValue = statusesValue['time']; if (timeValue !== null && timeValue !== undefined) { var timeInstance = timeValue; instanceViewStatusInstance.time = timeInstance; } } } } var idValue2 = responseDoc['id']; if (idValue2 !== null && idValue2 !== undefined) { var idInstance2 = idValue2; availabilitySetInstance.id = idInstance2; } var nameValue = responseDoc['name']; if (nameValue !== null && nameValue !== undefined) { var nameInstance = nameValue; availabilitySetInstance.name = nameInstance; } var typeValue = responseDoc['type']; if (typeValue !== null && typeValue !== undefined) { var typeInstance = typeValue; availabilitySetInstance.type = typeInstance; } var locationValue = responseDoc['location']; if (locationValue !== null && locationValue !== undefined) { var locationInstance = locationValue; availabilitySetInstance.location = locationInstance; } var tagsSequenceElement = responseDoc['tags']; if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) { for (var property in tagsSequenceElement) { var tagsKey2 = property; var tagsValue2 = tagsSequenceElement[property]; availabilitySetInstance.tags[tagsKey2] = tagsValue2; } } } } result.statusCode = statusCode; result.requestId = response.headers['x-ms-request-id']; return callback(null, result); }); }; /** * The operation to delete the availability set. * * @param {string} resourceGroupName The name of the resource group. * * @param {string} availabilitySetName The name of the availability set. * * @param {function} callback * * @returns {Stream} The response stream. */ AvailabilitySetOperations.prototype.deleteMethod = function(resourceGroupName, availabilitySetName, callback) { if (callback === null || callback === undefined) { throw new Error('callback cannot be null.'); } // Validate if (resourceGroupName === null || resourceGroupName === undefined) { return callback(new Error('resourceGroupName cannot be null.')); } if (availabilitySetName === null || availabilitySetName === undefined) { return callback(new Error('availabilitySetName cannot be null.')); } // Tracing // Construct URL var url2 = ''; url2 = url2 + '/subscriptions/'; if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) { url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId); } url2 = url2 + '/resourceGroups/'; url2 = url2 + encodeURIComponent(resourceGroupName); url2 = url2 + '/providers/'; url2 = url2 + 'Microsoft.Compute'; url2 = url2 + '/availabilitySets/'; url2 = url2 + encodeURIComponent(availabilitySetName); var queryParameters = []; queryParameters.push('api-version=2015-05-01-preview'); if (queryParameters.length > 0) { url2 = url2 + '?' + queryParameters.join('&'); } var baseUrl = this.client.baseUri; // Trim '/' character from the end of baseUrl and beginning of url. if (baseUrl[baseUrl.length - 1] === '/') { baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0); } if (url2[0] === '/') { url2 = url2.substring(1); } url2 = baseUrl + '/' + url2; url2 = url2.replace(' ', '%20'); // Create HTTP transport objects var httpRequest = new WebResource(); httpRequest.method = 'DELETE'; httpRequest.headers = {}; httpRequest.url = url2; // Set Headers httpRequest.headers['Content-Type'] = 'application/json'; // Send Request return this.client.pipeline(httpRequest, function (err, response, body) { if (err !== null && err !== undefined) { return callback(err); } var statusCode = response.statusCode; if (statusCode !== 200) { var error = new Error(body); error.statusCode = response.statusCode; return callback(error); } // Create Result var result = null; // Deserialize Response result = {}; result.statusCode = statusCode; result.requestId = response.headers['x-ms-request-id']; return callback(null, result); }); }; /** * The operation to get the availability set. * * @param {string} resourceGroupName The name of the resource group. * * @param {string} availabilitySetName The name of the availability set. * * @param {function} callback * * @returns {Stream} The response stream. */ AvailabilitySetOperations.prototype.get = function(resourceGroupName, availabilitySetName, callback) { if (callback === null || callback === undefined) { throw new Error('callback cannot be null.'); } // Validate if (resourceGroupName === null || resourceGroupName === undefined) { return callback(new Error('resourceGroupName cannot be null.')); } if (availabilitySetName === null || availabilitySetName === undefined) { return callback(new Error('availabilitySetName cannot be null.')); } // Tracing // Construct URL var url2 = ''; url2 = url2 + '/subscriptions/'; if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) { url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId); } url2 = url2 + '/resourceGroups/'; url2 = url2 + encodeURIComponent(resourceGroupName); url2 = url2 + '/providers/'; url2 = url2 + 'Microsoft.Compute'; url2 = url2 + '/availabilitySets/'; url2 = url2 + encodeURIComponent(availabilitySetName); var queryParameters = []; queryParameters.push('api-version=2015-05-01-preview'); if (queryParameters.length > 0) { url2 = url2 + '?' + queryParameters.join('&'); } var baseUrl = this.client.baseUri; // Trim '/' character from the end of baseUrl and beginning of url. if (baseUrl[baseUrl.length - 1] === '/') { baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0); } if (url2[0] === '/') { url2 = url2.substring(1); } url2 = baseUrl + '/' + url2; url2 = url2.replace(' ', '%20'); // Create HTTP transport objects var httpRequest = new WebResource(); httpRequest.method = 'GET'; httpRequest.headers = {}; httpRequest.url = url2; // Set Headers httpRequest.headers['Content-Type'] = 'application/json'; // Send Request return this.client.pipeline(httpRequest, function (err, response, body) { if (err !== null && err !== undefined) { return callback(err); } var statusCode = response.statusCode; if (statusCode !== 200) { var error = new Error(body); error.statusCode = response.statusCode; return callback(error); } // Create Result var result = null; // Deserialize Response if (statusCode === 200) { var responseContent = body; result = {}; var responseDoc = null; if (responseContent) { responseDoc = JSON.parse(responseContent); } if (responseDoc !== null && responseDoc !== undefined) { var availabilitySetInstance = { statuses: [], tags: {}, virtualMachinesReferences: [] }; result.availabilitySet = availabilitySetInstance; var propertiesValue = responseDoc['properties']; if (propertiesValue !== null && propertiesValue !== undefined) { var platformUpdateDomainCountValue = propertiesValue['platformUpdateDomainCount']; if (platformUpdateDomainCountValue !== null && platformUpdateDomainCountValue !== undefined) { var platformUpdateDomainCountInstance = platformUpdateDomainCountValue; availabilitySetInstance.platformUpdateDomainCount = platformUpdateDomainCountInstance; } var platformFaultDomainCountValue = propertiesValue['platformFaultDomainCount']; if (platformFaultDomainCountValue !== null && platformFaultDomainCountValue !== undefined) { var platformFaultDomainCountInstance = platformFaultDomainCountValue; availabilitySetInstance.platformFaultDomainCount = platformFaultDomainCountInstance; } var virtualMachinesArray = propertiesValue['virtualMachines']; if (virtualMachinesArray !== null && virtualMachinesArray !== undefined) { for (var loweredIndex1 = 0; loweredIndex1 < virtualMachinesArray.length; loweredIndex1 = loweredIndex1 + 1) { var virtualMachinesValue = virtualMachinesArray[loweredIndex1]; var virtualMachineReferenceInstance = {}; availabilitySetInstance.virtualMachinesReferences.push(virtualMachineReferenceInstance); var idValue = virtualMachinesValue['id']; if (idValue !== null && idValue !== undefined) { var idInstance = idValue; virtualMachineReferenceInstance.referenceUri = idInstance; } } } var statusesArray = propertiesValue['statuses']; if (statusesArray !== null && statusesArray !== undefined) { for (var loweredIndex2 = 0; loweredIndex2 < statusesArray.length; loweredIndex2 = loweredIndex2 + 1) { var statusesValue = statusesArray[loweredIndex2]; var instanceViewStatusInstance = {}; availabilitySetInstance.statuses.push(instanceViewStatusInstance); var codeValue = statusesValue['code']; if (codeValue !== null && codeValue !== undefined) { var codeInstance = codeValue; instanceViewStatusInstance.code = codeInstance; } var levelValue = statusesValue['level']; if (levelValue !== null && levelValue !== undefined) { var levelInstance = levelValue; instanceViewStatusInstance.level = levelInstance; } var displayStatusValue = statusesValue['displayStatus']; if (displayStatusValue !== null && displayStatusValue !== undefined) { var displayStatusInstance = displayStatusValue; instanceViewStatusInstance.displayStatus = displayStatusInstance; } var messageValue = statusesValue['message']; if (messageValue !== null && messageValue !== undefined) { var messageInstance = messageValue; instanceViewStatusInstance.message = messageInstance; } var timeValue = statusesValue['time']; if (timeValue !== null && timeValue !== undefined) { var timeInstance = timeValue; instanceViewStatusInstance.time = timeInstance; } } } } var idValue2 = responseDoc['id']; if (idValue2 !== null && idValue2 !== undefined) { var idInstance2 = idValue2; availabilitySetInstance.id = idInstance2; } var nameValue = responseDoc['name']; if (nameValue !== null && nameValue !== undefined) { var nameInstance = nameValue; availabilitySetInstance.name = nameInstance; } var typeValue = responseDoc['type']; if (typeValue !== null && typeValue !== undefined) { var typeInstance = typeValue; availabilitySetInstance.type = typeInstance; } var locationValue = responseDoc['location']; if (locationValue !== null && locationValue !== undefined) { var locationInstance = locationValue; availabilitySetInstance.location = locationInstance; } var tagsSequenceElement = responseDoc['tags']; if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) { for (var property in tagsSequenceElement) { var tagsKey = property; var tagsValue = tagsSequenceElement[property]; availabilitySetInstance.tags[tagsKey] = tagsValue; } } } } result.statusCode = statusCode; result.requestId = response.headers['x-ms-request-id']; return callback(null, result); }); }; /** * The operation to list the availability sets. * * @param {string} resourceGroupName The name of the resource group. * * @param {function} callback * * @returns {Stream} The response stream. */ AvailabilitySetOperations.prototype.list = function(resourceGroupName, callback) { if (callback === null || callback === undefined) { throw new Error('callback cannot be null.'); } // Validate if (resourceGroupName === null || resourceGroupName === undefined) { return callback(new Error('resourceGroupName cannot be null.')); } // Tracing // Construct URL var url2 = ''; url2 = url2 + '/subscriptions/'; if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) { url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId); } url2 = url2 + '/resourceGroups/'; url2 = url2 + encodeURIComponent(resourceGroupName); url2 = url2 + '/providers/'; url2 = url2 + 'Microsoft.Compute'; url2 = url2 + '/availabilitySets'; var queryParameters = []; queryParameters.push('api-version=2015-05-01-preview'); if (queryParameters.length > 0) { url2 = url2 + '?' + queryParameters.join('&'); } var baseUrl = this.client.baseUri; // Trim '/' character from the end of baseUrl and beginning of url. if (baseUrl[baseUrl.length - 1] === '/') { baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0); } if (url2[0] === '/') { url2 = url2.substring(1); } url2 = baseUrl + '/' + url2; url2 = url2.replace(' ', '%20'); // Create HTTP transport objects var httpRequest = new WebResource(); httpRequest.method = 'GET'; httpRequest.headers = {}; httpRequest.url = url2; // Set Headers httpRequest.headers['Content-Type'] = 'application/json'; // Send Request return this.client.pipeline(httpRequest, function (err, response, body) { if (err !== null && err !== undefined) { return callback(err); } var statusCode = response.statusCode; if (statusCode !== 200) { var error = new Error(body); error.statusCode = response.statusCode; return callback(error); } // Create Result var result = null; // Deserialize Response if (statusCode === 200) { var responseContent = body; result = { availabilitySets: [] }; var responseDoc = null; if (responseContent) { responseDoc = JSON.parse(responseContent); } if (responseDoc !== null && responseDoc !== undefined) { var valueArray = responseDoc['value']; if (valueArray !== null && valueArray !== undefined) { for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) { var valueValue = valueArray[loweredIndex1]; var availabilitySetJsonInstance = { statuses: [], tags: {}, virtualMachinesReferences: [] }; result.availabilitySets.push(availabilitySetJsonInstance); var propertiesValue = valueValue['properties']; if (propertiesValue !== null && propertiesValue !== undefined) { var platformUpdateDomainCountValue = propertiesValue['platformUpdateDomainCount']; if (platformUpdateDomainCountValue !== null && platformUpdateDomainCountValue !== undefined) { var platformUpdateDomainCountInstance = platformUpdateDomainCountValue; availabilitySetJsonInstance.platformUpdateDomainCount = platformUpdateDomainCountInstance; } var platformFaultDomainCountValue = propertiesValue['platformFaultDomainCount']; if (platformFaultDomainCountValue !== null && platformFaultDomainCountValue !== undefined) { var platformFaultDomainCountInstance = platformFaultDomainCountValue; availabilitySetJsonInstance.platformFaultDomainCount = platformFaultDomainCountInstance; } var virtualMachinesArray = propertiesValue['virtualMachines']; if (virtualMachinesArray !== null && virtualMachinesArray !== undefined) { for (var loweredIndex2 = 0; loweredIndex2 < virtualMachinesArray.length; loweredIndex2 = loweredIndex2 + 1) { var virtualMachinesValue = virtualMachinesArray[loweredIndex2]; var virtualMachineReferenceInstance = {}; availabilitySetJsonInstance.virtualMachinesReferences.push(virtualMachineReferenceInstance); var idValue = virtualMachinesValue['id']; if (idValue !== null && idValue !== undefined) { var idInstance = idValue; virtualMachineReferenceInstance.referenceUri = idInstance; } } } var statusesArray = propertiesValue['statuses']; if (statusesArray !== null && statusesArray !== undefined) { for (var loweredIndex3 = 0; loweredIndex3 < statusesArray.length; loweredIndex3 = loweredIndex3 + 1) { var statusesValue = statusesArray[loweredIndex3]; var instanceViewStatusInstance = {}; availabilitySetJsonInstance.statuses.push(instanceViewStatusInstance); var codeValue = statusesValue['code']; if (codeValue !== null && codeValue !== undefined) { var codeInstance = codeValue; instanceViewStatusInstance.code = codeInstance; } var levelValue = statusesValue['level']; if (levelValue !== null && levelValue !== undefined) { var levelInstance = levelValue; instanceViewStatusInstance.level = levelInstance; } var displayStatusValue = statusesValue['displayStatus']; if (displayStatusValue !== null && displayStatusValue !== undefined) { var displayStatusInstance = displayStatusValue; instanceViewStatusInstance.displayStatus = displayStatusInstance; } var messageValue = statusesValue['message']; if (messageValue !== null && messageValue !== undefined) { var messageInstance = messageValue; instanceViewStatusInstance.message = messageInstance; } var timeValue = statusesValue['time']; if (timeValue !== null && timeValue !== undefined) { var timeInstance = timeValue; instanceViewStatusInstance.time = timeInstance; } } } } var idValue2 = valueValue['id']; if (idValue2 !== null && idValue2 !== undefined) { var idInstance2 = idValue2; availabilitySetJsonInstance.id = idInstance2; } var nameValue = valueValue['name']; if (nameValue !== null && nameValue !== undefined) { var nameInstance = nameValue; availabilitySetJsonInstance.name = nameInstance; } var typeValue = valueValue['type']; if (typeValue !== null && typeValue !== undefined) { var typeInstance = typeValue; availabilitySetJsonInstance.type = typeInstance; } var locationValue = valueValue['location']; if (locationValue !== null && locationValue !== undefined) { var locationInstance = locationValue; availabilitySetJsonInstance.location = locationInstance; } var tagsSequenceElement = valueValue['tags']; if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) { for (var property in tagsSequenceElement) { var tagsKey = property; var tagsValue = tagsSequenceElement[property]; availabilitySetJsonInstance.tags[tagsKey] = tagsValue; } } } } } } result.statusCode = statusCode; result.requestId = response.headers['x-ms-request-id']; return callback(null, result); }); }; /** * Lists virtual-machine-sizes available to be used for an availability set. * * @param {string} resourceGroupName The name of the resource group. * * @param {string} availabilitySetName The name of the availability set. * * @param {function} callback * * @returns {Stream} The response stream. */ AvailabilitySetOperations.prototype.listAvailableSizes = function(resourceGroupName, availabilitySetName, callback) { if (callback === null || callback === undefined) { throw new Error('callback cannot be null.'); } // Validate if (resourceGroupName === null || resourceGroupName === undefined) { return callback(new Error('resourceGroupName cannot be null.')); } if (availabilitySetName === null || availabilitySetName === undefined) { return callback(new Error('availabilitySetName cannot be null.')); } // Tracing // Construct URL var url2 = ''; url2 = url2 + '/subscriptions/'; if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) { url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId); } url2 = url2 + '/resourceGroups/'; url2 = url2 + encodeURIComponent(resourceGroupName); url2 = url2 + '/providers/'; url2 = url2 + 'Microsoft.Compute'; url2 = url2 + '/availabilitySets/'; url2 = url2 + encodeURIComponent(availabilitySetName); url2 = url2 + '/vmSizes'; var queryParameters = []; queryParameters.push('api-version=2015-05-01-preview'); if (queryParameters.length > 0) { url2 = url2 + '?' + queryParameters.join('&'); } var baseUrl = this.client.baseUri; // Trim '/' character from the end of baseUrl and beginning of url. if (baseUrl[baseUrl.length - 1] === '/') { baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0); } if (url2[0] === '/') { url2 = url2.substring(1); } url2 = baseUrl + '/' + url2; url2 = url2.replace(' ', '%20'); // Create HTTP transport objects var httpRequest = new WebResource(); httpRequest.method = 'GET'; httpRequest.headers = {}; httpRequest.url = url2; // Set Headers httpRequest.headers['Content-Type'] = 'application/json'; // Send Request return this.client.pipeline(httpRequest, function (err, response, body) { if (err !== null && err !== undefined) { return callback(err); } var statusCode = response.statusCode; if (statusCode !== 200) { var error = new Error(body); error.statusCode = response.statusCode; return callback(error); } // Create Result var result = null; // Deserialize Response if (statusCode === 200) { var responseContent = body; result = { virtualMachineSizes: [] }; var responseDoc = null; if (responseContent) { responseDoc = JSON.parse(responseContent); } if (responseDoc !== null && responseDoc !== undefined) { var valueArray = responseDoc['value']; if (valueArray !== null && valueArray !== undefined) { for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) { var valueValue = valueArray[loweredIndex1]; var virtualMachineSizeInstance = {}; result.virtualMachineSizes.push(virtualMachineSizeInstance); var nameValue = valueValue['name']; if (nameValue !== null && nameValue !== undefined) { var nameInstance = nameValue; virtualMachineSizeInstance.name = nameInstance; } var numberOfCoresValue = valueValue['numberOfCores']; if (numberOfCoresValue !== null && numberOfCoresValue !== undefined) { var numberOfCoresInstance = numberOfCoresValue; virtualMachineSizeInstance.numberOfCores = numberOfCoresInstance; } var osDiskSizeInMBValue = valueValue['osDiskSizeInMB']; if (osDiskSizeInMBValue !== null && osDiskSizeInMBValue !== undefined) { var osDiskSizeInMBInstance = osDiskSizeInMBValue; virtualMachineSizeInstance.oSDiskSizeInMB = osDiskSizeInM