UNPKG

azure-cli

Version:

Microsoft Azure Cross Platform Command Line tool

1,195 lines (1,056 loc) 101 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 uuid = require('node-uuid'); var azureCommon = require('azure-common'); var Service = azureCommon.Service; var WebResource = azureCommon.WebResource; var OperationStatus = azureCommon.OperationStatus; var StorageManagementClient = ( /** @lends StorageManagementClient */ function() { /** * @class * The Storage Management Client. * Initializes a new instance of the StorageManagementClient 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 StorageManagementClient(credentials, baseUri, filters) { if (credentials === null || credentials === undefined) { throw new Error('credentials cannot be null.'); } StorageManagementClient['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 * [StorageAccountOperations](-StorageAccountOperations.html) object. * @type {object} */ this.storageAccounts = new StorageAccountOperations(this); } util.inherits(StorageManagementClient, Service); /** * The Get Create Operation Status operation returns the status of the * specified create operation. After calling the asynchronous Begin Create * operation, you can call Get Create Operation Status to determine whether * the operation has succeeded, failed, or is still in progress. * * @param {string} operationStatusLink The URL where the status of the * long-running create operation can be checked. * * @param {function} callback * * @returns {Stream} The response stream. */ StorageManagementClient.prototype.getCreateOperationStatus = 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 if (uuid() !== null && uuid() !== undefined) { httpRequest.headers['x-ms-client-request-id'] = uuid(); } // 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 && statusCode !== 500) { var error = new Error(body); error.statusCode = response.statusCode; return callback(error); } // Create Result var result = null; // Deserialize Response if (statusCode === 200 || statusCode === 202 || statusCode === 500) { var responseContent = body; result = {}; var responseDoc = null; if (responseContent) { responseDoc = JSON.parse(responseContent); } if (responseDoc !== null && responseDoc !== undefined) { var storageAccountInstance = { tags: {} }; result.storageAccount = storageAccountInstance; var idValue = responseDoc['id']; if (idValue !== null && idValue !== undefined) { var idInstance = idValue; storageAccountInstance.id = idInstance; } var nameValue = responseDoc['name']; if (nameValue !== null && nameValue !== undefined) { var nameInstance = nameValue; storageAccountInstance.name = nameInstance; } var typeValue = responseDoc['type']; if (typeValue !== null && typeValue !== undefined) { var typeInstance = typeValue; storageAccountInstance.type = typeInstance; } var locationValue = responseDoc['location']; if (locationValue !== null && locationValue !== undefined) { var locationInstance = locationValue; storageAccountInstance.location = locationInstance; } var tagsSequenceElement = responseDoc['tags']; if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) { for (var property in tagsSequenceElement) { var tagsKey = property; var tagsValue = tagsSequenceElement[property]; storageAccountInstance.tags[tagsKey] = tagsValue; } } var propertiesValue = responseDoc['properties']; if (propertiesValue !== null && propertiesValue !== undefined) { var provisioningStateValue = propertiesValue['provisioningState']; if (provisioningStateValue !== null && provisioningStateValue !== undefined) { var provisioningStateInstance = provisioningStateValue; storageAccountInstance.provisioningState = provisioningStateInstance; } var accountTypeValue = propertiesValue['accountType']; if (accountTypeValue !== null && accountTypeValue !== undefined) { var accountTypeInstance = accountTypeValue; storageAccountInstance.accountType = accountTypeInstance; } var primaryEndpointsValue = propertiesValue['primaryEndpoints']; if (primaryEndpointsValue !== null && primaryEndpointsValue !== undefined) { var primaryEndpointsInstance = {}; storageAccountInstance.primaryEndpoints = primaryEndpointsInstance; var blobValue = primaryEndpointsValue['blob']; if (blobValue !== null && blobValue !== undefined) { var blobInstance = blobValue; primaryEndpointsInstance.blob = blobInstance; } var queueValue = primaryEndpointsValue['queue']; if (queueValue !== null && queueValue !== undefined) { var queueInstance = queueValue; primaryEndpointsInstance.queue = queueInstance; } var tableValue = primaryEndpointsValue['table']; if (tableValue !== null && tableValue !== undefined) { var tableInstance = tableValue; primaryEndpointsInstance.table = tableInstance; } } var primaryLocationValue = propertiesValue['primaryLocation']; if (primaryLocationValue !== null && primaryLocationValue !== undefined) { var primaryLocationInstance = primaryLocationValue; storageAccountInstance.primaryLocation = primaryLocationInstance; } var statusOfPrimaryValue = propertiesValue['statusOfPrimary']; if (statusOfPrimaryValue !== null && statusOfPrimaryValue !== undefined) { var statusOfPrimaryInstance = statusOfPrimaryValue; storageAccountInstance.statusOfPrimary = statusOfPrimaryInstance; } var lastGeoFailoverTimeValue = propertiesValue['lastGeoFailoverTime']; if (lastGeoFailoverTimeValue !== null && lastGeoFailoverTimeValue !== undefined) { var lastGeoFailoverTimeInstance = lastGeoFailoverTimeValue; storageAccountInstance.lastGeoFailoverTime = lastGeoFailoverTimeInstance; } var secondaryLocationValue = propertiesValue['secondaryLocation']; if (secondaryLocationValue !== null && secondaryLocationValue !== undefined) { var secondaryLocationInstance = secondaryLocationValue; storageAccountInstance.secondaryLocation = secondaryLocationInstance; } var statusOfSecondaryValue = propertiesValue['statusOfSecondary']; if (statusOfSecondaryValue !== null && statusOfSecondaryValue !== undefined) { var statusOfSecondaryInstance = statusOfSecondaryValue; storageAccountInstance.statusOfSecondary = statusOfSecondaryInstance; } var creationTimeValue = propertiesValue['creationTime']; if (creationTimeValue !== null && creationTimeValue !== undefined) { var creationTimeInstance = creationTimeValue; storageAccountInstance.creationTime = creationTimeInstance; } var customDomainValue = propertiesValue['customDomain']; if (customDomainValue !== null && customDomainValue !== undefined) { var customDomainInstance = {}; storageAccountInstance.customDomain = customDomainInstance; var nameValue2 = customDomainValue['name']; if (nameValue2 !== null && nameValue2 !== undefined) { var nameInstance2 = nameValue2; customDomainInstance.name = nameInstance2; } var useSubDomainValue = customDomainValue['useSubDomain']; if (useSubDomainValue !== null && useSubDomainValue !== undefined) { var useSubDomainInstance = useSubDomainValue; customDomainInstance.useSubDomain = useSubDomainInstance; } } var secondaryEndpointsValue = propertiesValue['secondaryEndpoints']; if (secondaryEndpointsValue !== null && secondaryEndpointsValue !== undefined) { var secondaryEndpointsInstance = {}; storageAccountInstance.secondaryEndpoints = secondaryEndpointsInstance; var blobValue2 = secondaryEndpointsValue['blob']; if (blobValue2 !== null && blobValue2 !== undefined) { var blobInstance2 = blobValue2; secondaryEndpointsInstance.blob = blobInstance2; } var queueValue2 = secondaryEndpointsValue['queue']; if (queueValue2 !== null && queueValue2 !== undefined) { var queueInstance2 = queueValue2; secondaryEndpointsInstance.queue = queueInstance2; } var tableValue2 = secondaryEndpointsValue['table']; if (tableValue2 !== null && tableValue2 !== undefined) { var tableInstance2 = tableValue2; secondaryEndpointsInstance.table = tableInstance2; } } } } } result.statusCode = statusCode; result.retryAfter = parseInt(response.headers['retryafter'], 10); result.requestId = response.headers['x-ms-request-id']; if (statusCode === 409) { result.status = OperationStatus.Failed; } if (statusCode === 500) { result.status = OperationStatus.InProgress; } if (statusCode === 202) { result.status = OperationStatus.InProgress; } if (statusCode === 200) { result.status = OperationStatus.Succeeded; } return callback(null, result); }); }; return StorageManagementClient; })(); exports.StorageManagementClient = StorageManagementClient; var StorageAccountOperations = ( /** @lends StorageAccountOperations */ function() { /** * @class * Operations for managing storage accounts. * __NOTE__: An instance of this class is automatically created for an * instance of the [StorageManagementClient] {@link * StorageManagementClient~StorageManagementClient}. * See [storageAccounts] {@link * StorageManagementClient~StorageManagementClient#storageAccounts}. * Initializes a new instance of the StorageAccountOperations class. * @constructor * * @param {StorageManagementClient} client Reference to the service client. */ function StorageAccountOperations(client) { this.client = client; } /** * Asynchronously creates a new storage account with the specified * parameters. Existing accounts cannot be updated with this API and should * instead use the Update Storage Account API. If an account is already * created and subsequent PUT request is issued with exact same set of * properties, then HTTP 200 would be returned. * * @param {string} resourceGroupName The name of the resource group within * the user’s subscription. * * @param {string} accountName The name of the storage account within the * specified resource group. Storage account names must be between 3 and 24 * characters in length and use numbers and lower-case letters only. * * @param {StorageAccountCreateParameters} parameters The parameters to * provide for the created account. * * @param {AccountType} parameters.accountType Gets or sets the account type. * * @param {string} parameters.location Gets or sets the location of the * resource. This will be one of the supported and registered Azure Geo * Regions (e.g. West US, East US, Southeast Asia, etc.). The geo region of * a resource cannot be changed once it is created. * * @param {object} [parameters.tags] Gets or sets a list of key value pairs * that describe the resource. These tags can be used in viewing and * grouping this resource (across resource groups). A maximum of 15 tags can * be provided for a resource. Each tag must have a key no greater than 128 * characters and value no greater than 256 characters. * * @param {function} callback * * @returns {Stream} The response stream. */ StorageAccountOperations.prototype.beginCreate = function(resourceGroupName, accountName, 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 (accountName === null || accountName === undefined) { return callback(new Error('accountName cannot be null.')); } if (accountName.length < 3) { return callback(new Error('accountName is outside the valid range.')); } if (accountName.length > 24) { return callback(new Error('accountName is outside the valid range.')); } for (var loweredIndex1 = 0; loweredIndex1 < accountName.length; loweredIndex1 = loweredIndex1 + 1) { var accountNameChar = accountName[loweredIndex1]; if (accountNameChar === accountNameChar.toLowerCase() === false && isNaN(parseInt(accountNameChar, 10)) === false === false) { return callback(new Error('accountName is outside the valid range.')); } } if (parameters === null || parameters === undefined) { return callback(new Error('parameters cannot be null.')); } if (parameters.accountType === null || parameters.accountType === undefined) { return callback(new Error('parameters.accountType 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/Microsoft.Storage/storageAccounts/'; url2 = url2 + encodeURIComponent(accountName); 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'; if (uuid() !== null && uuid() !== undefined) { httpRequest.headers['x-ms-client-request-id'] = uuid(); } // Serialize Request var requestContent = null; var requestDoc = null; var storageAccountCreateParametersJsonValue = {}; requestDoc = storageAccountCreateParametersJsonValue; storageAccountCreateParametersJsonValue['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; } storageAccountCreateParametersJsonValue['tags'] = tagsDictionary; } var propertiesValue = {}; storageAccountCreateParametersJsonValue['properties'] = propertiesValue; propertiesValue['accountType'] = parameters.accountType !== null && parameters.accountType !== undefined ? parameters.accountType.toString() : 'StandardLRS'; 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 && 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 storageAccountInstance = { tags: {} }; result.storageAccount = storageAccountInstance; var idValue = responseDoc['id']; if (idValue !== null && idValue !== undefined) { var idInstance = idValue; storageAccountInstance.id = idInstance; } var nameValue = responseDoc['name']; if (nameValue !== null && nameValue !== undefined) { var nameInstance = nameValue; storageAccountInstance.name = nameInstance; } var typeValue = responseDoc['type']; if (typeValue !== null && typeValue !== undefined) { var typeInstance = typeValue; storageAccountInstance.type = typeInstance; } var locationValue = responseDoc['location']; if (locationValue !== null && locationValue !== undefined) { var locationInstance = locationValue; storageAccountInstance.location = locationInstance; } var tagsSequenceElement = responseDoc['tags']; if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) { for (var property in tagsSequenceElement) { var tagsKey2 = property; var tagsValue2 = tagsSequenceElement[property]; storageAccountInstance.tags[tagsKey2] = tagsValue2; } } var propertiesValue2 = responseDoc['properties']; if (propertiesValue2 !== null && propertiesValue2 !== undefined) { var provisioningStateValue = propertiesValue2['provisioningState']; if (provisioningStateValue !== null && provisioningStateValue !== undefined) { var provisioningStateInstance = provisioningStateValue; storageAccountInstance.provisioningState = provisioningStateInstance; } var accountTypeValue = propertiesValue2['accountType']; if (accountTypeValue !== null && accountTypeValue !== undefined) { var accountTypeInstance = accountTypeValue; storageAccountInstance.accountType = accountTypeInstance; } var primaryEndpointsValue = propertiesValue2['primaryEndpoints']; if (primaryEndpointsValue !== null && primaryEndpointsValue !== undefined) { var primaryEndpointsInstance = {}; storageAccountInstance.primaryEndpoints = primaryEndpointsInstance; var blobValue = primaryEndpointsValue['blob']; if (blobValue !== null && blobValue !== undefined) { var blobInstance = blobValue; primaryEndpointsInstance.blob = blobInstance; } var queueValue = primaryEndpointsValue['queue']; if (queueValue !== null && queueValue !== undefined) { var queueInstance = queueValue; primaryEndpointsInstance.queue = queueInstance; } var tableValue = primaryEndpointsValue['table']; if (tableValue !== null && tableValue !== undefined) { var tableInstance = tableValue; primaryEndpointsInstance.table = tableInstance; } } var primaryLocationValue = propertiesValue2['primaryLocation']; if (primaryLocationValue !== null && primaryLocationValue !== undefined) { var primaryLocationInstance = primaryLocationValue; storageAccountInstance.primaryLocation = primaryLocationInstance; } var statusOfPrimaryValue = propertiesValue2['statusOfPrimary']; if (statusOfPrimaryValue !== null && statusOfPrimaryValue !== undefined) { var statusOfPrimaryInstance = statusOfPrimaryValue; storageAccountInstance.statusOfPrimary = statusOfPrimaryInstance; } var lastGeoFailoverTimeValue = propertiesValue2['lastGeoFailoverTime']; if (lastGeoFailoverTimeValue !== null && lastGeoFailoverTimeValue !== undefined) { var lastGeoFailoverTimeInstance = lastGeoFailoverTimeValue; storageAccountInstance.lastGeoFailoverTime = lastGeoFailoverTimeInstance; } var secondaryLocationValue = propertiesValue2['secondaryLocation']; if (secondaryLocationValue !== null && secondaryLocationValue !== undefined) { var secondaryLocationInstance = secondaryLocationValue; storageAccountInstance.secondaryLocation = secondaryLocationInstance; } var statusOfSecondaryValue = propertiesValue2['statusOfSecondary']; if (statusOfSecondaryValue !== null && statusOfSecondaryValue !== undefined) { var statusOfSecondaryInstance = statusOfSecondaryValue; storageAccountInstance.statusOfSecondary = statusOfSecondaryInstance; } var creationTimeValue = propertiesValue2['creationTime']; if (creationTimeValue !== null && creationTimeValue !== undefined) { var creationTimeInstance = creationTimeValue; storageAccountInstance.creationTime = creationTimeInstance; } var customDomainValue = propertiesValue2['customDomain']; if (customDomainValue !== null && customDomainValue !== undefined) { var customDomainInstance = {}; storageAccountInstance.customDomain = customDomainInstance; var nameValue2 = customDomainValue['name']; if (nameValue2 !== null && nameValue2 !== undefined) { var nameInstance2 = nameValue2; customDomainInstance.name = nameInstance2; } var useSubDomainValue = customDomainValue['useSubDomain']; if (useSubDomainValue !== null && useSubDomainValue !== undefined) { var useSubDomainInstance = useSubDomainValue; customDomainInstance.useSubDomain = useSubDomainInstance; } } var secondaryEndpointsValue = propertiesValue2['secondaryEndpoints']; if (secondaryEndpointsValue !== null && secondaryEndpointsValue !== undefined) { var secondaryEndpointsInstance = {}; storageAccountInstance.secondaryEndpoints = secondaryEndpointsInstance; var blobValue2 = secondaryEndpointsValue['blob']; if (blobValue2 !== null && blobValue2 !== undefined) { var blobInstance2 = blobValue2; secondaryEndpointsInstance.blob = blobInstance2; } var queueValue2 = secondaryEndpointsValue['queue']; if (queueValue2 !== null && queueValue2 !== undefined) { var queueInstance2 = queueValue2; secondaryEndpointsInstance.queue = queueInstance2; } var tableValue2 = secondaryEndpointsValue['table']; if (tableValue2 !== null && tableValue2 !== undefined) { var tableInstance2 = tableValue2; secondaryEndpointsInstance.table = tableInstance2; } } } } } result.statusCode = statusCode; result.operationStatusLink = response.headers['location']; result.retryAfter = parseInt(response.headers['retryafter'], 10); result.requestId = response.headers['x-ms-request-id']; if (statusCode === 409 || statusCode === 400) { result.status = OperationStatus.Failed; } if (statusCode === 200) { result.status = OperationStatus.Succeeded; } return callback(null, result); }); }; /** * Checks that account name is valid and is not in use. * * @param {string} accountName The name of the storage account within the * specified resource group. Storage account names must be between 3 and 24 * characters in length and use numbers and lower-case letters only. * * @param {function} callback * * @returns {Stream} The response stream. */ StorageAccountOperations.prototype.checkNameAvailability = function(accountName, callback) { if (callback === null || callback === undefined) { throw new Error('callback cannot be null.'); } // Validate if (accountName === null || accountName === undefined) { return callback(new Error('accountName 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 + '/providers/Microsoft.Storage/checkNameAvailability'; 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 = 'POST'; httpRequest.headers = {}; httpRequest.url = url2; // Set Headers httpRequest.headers['Content-Type'] = 'application/json'; if (uuid() !== null && uuid() !== undefined) { httpRequest.headers['x-ms-client-request-id'] = uuid(); } // Serialize Request var requestContent = null; var requestDoc = null; var storageAccountCheckNameAvailabilityParametersValue = {}; requestDoc = storageAccountCheckNameAvailabilityParametersValue; storageAccountCheckNameAvailabilityParametersValue['name'] = accountName; storageAccountCheckNameAvailabilityParametersValue['type'] = 'Microsoft.Storage/storageAccounts'; 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 nameAvailableValue = responseDoc['nameAvailable']; if (nameAvailableValue !== null && nameAvailableValue !== undefined) { var nameAvailableInstance = nameAvailableValue; result.nameAvailable = nameAvailableInstance; } var reasonValue = responseDoc['reason']; if (reasonValue !== null && reasonValue !== undefined) { var reasonInstance = reasonValue; result.reason = reasonInstance; } var messageValue = responseDoc['message']; if (messageValue !== null && messageValue !== undefined) { var messageInstance = messageValue; result.message = messageInstance; } } } result.statusCode = statusCode; result.requestId = response.headers['x-ms-request-id']; return callback(null, result); }); }; /** * Asynchronously creates a new storage account with the specified * parameters. Existing accounts cannot be updated with this API and should * instead use the Update Storage Account API. If an account is already * created and subsequent create request is issued with exact same set of * properties, the request succeeds.The max number of storage accounts that * can be created per subscription is limited to 20. * * @param {string} resourceGroupName The name of the resource group within * the user’s subscription. * * @param {string} accountName The name of the storage account within the * specified resource group. Storage account names must be between 3 and 24 * characters in length and use numbers and lower-case letters only. * * @param {StorageAccountCreateParameters} parameters The parameters to * provide for the created account. * * @param {AccountType} parameters.accountType Gets or sets the account type. * * @param {string} parameters.location Gets or sets the location of the * resource. This will be one of the supported and registered Azure Geo * Regions (e.g. West US, East US, Southeast Asia, etc.). The geo region of * a resource cannot be changed once it is created. * * @param {object} [parameters.tags] Gets or sets a list of key value pairs * that describe the resource. These tags can be used in viewing and * grouping this resource (across resource groups). A maximum of 15 tags can * be provided for a resource. Each tag must have a key no greater than 128 * characters and value no greater than 256 characters. * * @param {function} callback * * @returns {Stream} The response stream. */ StorageAccountOperations.prototype.create = function(resourceGroupName, accountName, parameters, callback) { if (callback === null || callback === undefined) { throw new Error('callback cannot be null.'); } var client2 = this.client; return client2.storageAccounts.beginCreate(resourceGroupName, accountName, parameters, function (err, result) { if (err !== null && err !== undefined) { return callback(err); } if (result.status === 'Succeeded') { return callback(null, result); } var delayInSeconds = result.retryAfter; if (delayInSeconds === 0) { delayInSeconds = 25; } if (client2.longRunningOperationInitialTimeout >= 0) { delayInSeconds = client2.longRunningOperationInitialTimeout; } var pollOperation = function () { setTimeout(function () { return client2.getCreateOperationStatus(result.operationStatusLink, function (err2, result2) { if (err2 !== null && err2 !== undefined) { return callback(err2); } else { if (result2.status !== 'InProgress') { return callback(null, result2); } else { delayInSeconds = result2.retryAfter; if (delayInSeconds === 0) { delayInSeconds = 25; } if (client2.longRunningOperationRetryTimeout >= 0) { delayInSeconds = client2.longRunningOperationRetryTimeout; } pollOperation(); } } }); }, delayInSeconds * 1000); }; pollOperation(); }); }; /** * Deletes a storage account in Microsoft Azure. * * @param {string} resourceGroupName The name of the resource group within * the user’s subscription. * * @param {string} accountName The name of the storage account within the * specified resource group. Storage account names must be between 3 and 24 * characters in length and use numbers and lower-case letters only. * * @param {function} callback * * @returns {Stream} The response stream. */ StorageAccountOperations.prototype.deleteMethod = function(resourceGroupName, accountName, 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 (accountName === null || accountName === undefined) { return callback(new Error('accountName cannot be null.')); } if (accountName.length < 3) { return callback(new Error('accountName is outside the valid range.')); } if (accountName.length > 24) { return callback(new Error('accountName is outside the valid range.')); } for (var loweredIndex1 = 0; loweredIndex1 < accountName.length; loweredIndex1 = loweredIndex1 + 1) { var accountNameChar = accountName[loweredIndex1]; if (accountNameChar === accountNameChar.toLowerCase() === false && isNaN(parseInt(accountNameChar, 10)) === false === false) { return callback(new Error('accountName is outside the valid range.')); } } // 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/Microsoft.Storage/storageAccounts/'; url2 = url2 + encodeURIComponent(accountName); 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 if (uuid() !== null && uuid() !== undefined) { httpRequest.headers['x-ms-client-request-id'] = uuid(); } // 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 && statusCode !== 204) { 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); }); }; /** * Returns the properties for the specified storage account including but not * limited to name, account type, location, and account status. The ListKeys * operation should be used to retrieve storage keys. * * @param {string} resourceGroupName The name of the resource group within * the user’s subscription. * * @param {string} accountName The name of the storage account within the * specified resource group. Storage account names must be between 3 and 24 * characters in length and use numbers and lower-case letters only. * * @param {function} callback * * @returns {Stream} The response stream. */ StorageAccountOperations.prototype.getProperties = function(resourceGroupName, accountName, 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 (accountName === null || accountName === undefined) { return callback(new Error('accountName cannot be null.')); } if (accountName.length < 3) { return callback(new Error('accountName is outside the valid range.')); } if (accountName.length > 24) { return callback(new Error('accountName is outside the valid range.')); } for (var loweredIndex1 = 0; loweredIndex1 < accountName.length; loweredIndex1 = loweredIndex1 + 1) { var accountNameChar = accountName[loweredIndex1]; if (accountNameChar === accountNameChar.toLowerCase() === false && isNaN(parseInt(accountNameChar, 10)) === false === false) { return callback(new Error('accountName is outside the valid range.')); } } // 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/Microsoft.Storage/storageAccounts/'; url2 = url2 + encodeURIComponent(accountName); 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 if (uuid() !== null && uuid() !== undefined) { httpRequest.headers['x-ms-client-request-id'] = uuid(); } // 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 storageAccountInstance = { tags: {} }; result.storageAccount = storageAccountInstance; var idValue = responseDoc['id']; if (idValue !== null && idValue !== undefined) { var idInstance = idValue; storageAccountInstance.id = idInstance; } var nameValue = responseDoc['name']; if (nameValue !== null && nameValue !== undefined) { var nameInstance = nameValue; storageAccountInstance.name = nameInstance; } var typeValue = responseDoc['type']; if (typeValue !== null && typeValue !== undefined) { var typeInstance = typeValue; storageAccountInstance.type = typeInstance; } var locationValue = responseDoc['location']; if (locationValue !== null && locationValue !== undefined) { var locationInstance = locationValue; storageAccountInstance.location = locationInstance; } var tagsSequenceElement = responseDoc['tags']; if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) { for (var property in tagsSequenceElement) { var tagsKey = property; var tagsValue = tagsSequenceElement[property]; storageAccountInstance.tags[tagsKey] = tagsValue; } } var propertiesValue = responseDoc['properties']; if (propertiesValue !== null && propertiesValue !== undefined) { var provisioningStateValue = propertiesValue['provisioningState']; if (provisioningStateValue !== null && provisioningStateValue !== undefined) { var provisioningStateInstance = provisioningStateValue; storageAccountInstance.provisioningState = provisioningStateInstance; } var accountTypeValue = propertiesValue['accountType']; if (accountTypeValue !== null && accountTypeValue !== undefined) { var accountTypeInstance = accountTypeValue; storageAccountInstance.accountType = accountTypeInstance; } var primaryEndpointsValue = propertiesValue['primaryEndpoints']; if (primaryEndpointsValue !== null && primaryEndpointsValue !== undefined) { var primaryEndpointsInstance = {}; storageAccountInstance.primaryEndpoints = primaryEndpointsInstance; var blobValue = primaryEndpointsValue['blob']; if (blobValue !== null && blobValue !== undefined) { var blobInstance = blobValue; primaryEndpointsInstance.blob = blobInstance; } var queueValue = primaryEndpointsValue['queue']; if (queueValue !== null && queueValue !== undefined) { var queueInstance = queueValue; primaryEndpointsInstance.queue = queueInstance; } var tableValue = primaryEndpointsValue['table']; if (tableValue !== null && tableValue !== undefined) { var tableInstance = tableValue; primaryEndpointsInstance.table = tableInstance; } } var primaryLocationValue = propertiesValue['primaryLocation']; if (primaryLocationValue !== null && primaryLocationValue !== undefined) { var primaryLocationInstance = primaryLocationValue; storageAccountInstance.primaryLocation = primaryLocationInstance; } var statusOfPrimaryValue = propertiesValue['statusOfPrimary']; if (statusOfPrimaryValue !== null && statusOfPrimaryValue !== undefined) { var statusOfPrimaryInstance = statusOfPrimaryValue; storageAccountInstance.statusOfPrimary = statusOfPrimaryInstance; } var lastGeoFailoverTimeValue = propertiesValue['lastGeoFailoverTime']; if (lastGeoFailoverTimeValue !== null && lastGeoFailoverTimeValue !== undefined) { var lastGeoFailoverTimeInstance = lastGeoFailoverTimeValue; storageAccountInstance.lastGeoFailoverTime = lastGeoFailoverTimeInstance; } var secondaryLocationValue = propertiesValue['secondaryLocation']; if (secondaryLocationValue !== null && secondaryLocationValue !== undefined) { var secondaryLocationInstance = secondaryLocationValue; storageAccountInstance.secondaryLocation = secondaryLocationInstance; } var statusOfSecondaryValue = propertiesValue['statusOfSecondary']; if (statusOfSecondaryValue !== null && statusOfSecondaryValue !== undefined) { var statusOfSecondaryInstance = statusOfSecondaryValue; storageAccountInstance.statusOfSecondary = statusOfSecondaryInstance; } var creationTimeValue = propertiesValue['creationTime']; if (creationTimeValue !== null && creationTimeValue !== undefined) { var creationTimeInstance = creationTimeValue; storageAccountInstance.creationTime = creationTimeInstance; } var customDomainValue = propertiesValue['customDomain']; if (customDomainValue !== null && customDomainValue !== undefined) { var customDomainInstance = {}; storageAccountInstance.customDomain = customDomainInstance; var nameValue2 = cus