How to use url2 method in wpt

Best JavaScript code snippet using wpt

webSiteManagementClient.js

Source:webSiteManagementClient.js Github

copy

Full Screen

1/* jshint latedef:false */2/* jshint forin:false */3/* jshint noempty:false */45// 6// Copyright (c) Microsoft and contributors. All rights reserved.7// 8// Licensed under the Apache License, Version 2.0 (the "License");9// you may not use this file except in compliance with the License.10// You may obtain a copy of the License at11// http://www.apache.org/licenses/LICENSE-2.012// 13// Unless required by applicable law or agreed to in writing, software14// distributed under the License is distributed on an "AS IS" BASIS,15// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.16// 17// See the License for the specific language governing permissions and18// limitations under the License.19// 2021// Warning: This code was generated by a tool.22// 23// Changes to this file may cause incorrect behavior and will be lost if the24// code is regenerated.2526'use strict';2728var util = require('util');29var _ = require('underscore');30var azureCommon = require('azure-common');31var xml = azureCommon.xml2js;32var js2xml = azureCommon.js2xml;33var Service = azureCommon.Service;34var WebResource = azureCommon.WebResource;3536var WebSiteManagementClient = ( /** @lends WebSiteManagementClient */ function() {37 /**38 * @class39 * The Windows Azure Web Sites management API provides a RESTful set of web40 * services that interact with Windows Azure Web Sites service to manage41 * your web sites. The API has entities that capture the relationship42 * between an end user and the Windows Azure Web Sites service. (see43 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166981.aspx for44 * more information)45 * Initializes a new instance of the WebSiteManagementClient class.46 * @constructor47 * 48 * @param {SubscriptionCloudCredentials} credentials Gets subscription49 * credentials which uniquely identify Microsoft Azure subscription. The50 * subscription ID forms part of the URI for every service call.51 * 52 * @param {string} [credentials.subscriptionId]53 * 54 * @param {string} [baseUri] Gets the URI used as the base for all cloud55 * service requests.56 * 57 * @param {Array} filters58 */59 function WebSiteManagementClient(credentials, baseUri, filters) {60 if (credentials === null || credentials === undefined) {61 throw new Error('credentials cannot be null.');62 }63 64 WebSiteManagementClient['super_'].call(this, credentials, filters);65 66 this.credentials = credentials;67 this.baseUri = baseUri;68 if (this.baseUri === null || this.baseUri === undefined) {69 this.baseUri = 'https://management.azure.com';70 }71 if (this.apiVersion === null || this.apiVersion === undefined) {72 this.apiVersion = '2014-06-01';73 }74 if (this.longRunningOperationInitialTimeout === null || this.longRunningOperationInitialTimeout === undefined) {75 this.longRunningOperationInitialTimeout = -1;76 }77 if (this.longRunningOperationRetryTimeout === null || this.longRunningOperationRetryTimeout === undefined) {78 this.longRunningOperationRetryTimeout = -1;79 }80 /**81 * Provides an instance of the82 * [SourceControlOperations](-SourceControlOperations.html) object.83 * @type {object}84 */85 this.sourceControls = new SourceControlOperations(this);86 /**87 * Provides an instance of the88 * [WebHostingPlanOperations](-WebHostingPlanOperations.html) object.89 * @type {object}90 */91 this.webHostingPlans = new WebHostingPlanOperations(this);92 /**93 * Provides an instance of the [WebSiteOperations](-WebSiteOperations.html)94 * object.95 * @type {object}96 */97 this.webSites = new WebSiteOperations(this);98 }99 100 util.inherits(WebSiteManagementClient, Service);101 102 103 return WebSiteManagementClient;104})();105exports.WebSiteManagementClient = WebSiteManagementClient;106107var SourceControlOperations = ( /** @lends SourceControlOperations */ function() {108 /**109 * @class110 * User source controls operations111 * __NOTE__: An instance of this class is automatically created for an112 * instance of the [WebSiteManagementClient] {@link113 * WebSiteManagementClient~WebSiteManagementClient}.114 * See [sourceControls] {@link115 * WebSiteManagementClient~WebSiteManagementClient#sourceControls}.116 * Initializes a new instance of the SourceControlOperations class.117 * @constructor118 * 119 * @param {WebSiteManagementClient} client Reference to the service client.120 */121 function SourceControlOperations(client) {122 this.client = client;123 }124 125 /**126 * Get user source control127 * 128 * @param {string} name The name of the source control (GitHub, Bitbucket,129 * CodePlex or Dropbox)130 * 131 * @param {function} callback132 * 133 * @returns {Stream} The response stream.134 */135 SourceControlOperations.prototype.get = function(name, callback) {136 if (callback === null || callback === undefined) {137 throw new Error('callback cannot be null.');138 }139 // Validate140 if (name === null || name === undefined) {141 return callback(new Error('name cannot be null.'));142 }143 144 // Tracing145 146 // Construct URL147 var url2 = '';148 url2 = url2 + '/providers/';149 url2 = url2 + 'Microsoft.Web';150 url2 = url2 + '/SourceControls/';151 url2 = url2 + encodeURIComponent(name);152 var queryParameters = [];153 queryParameters.push('api-version=2014-06-01');154 if (queryParameters.length > 0) {155 url2 = url2 + '?' + queryParameters.join('&');156 }157 var baseUrl = this.client.baseUri;158 // Trim '/' character from the end of baseUrl and beginning of url.159 if (baseUrl[baseUrl.length - 1] === '/') {160 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);161 }162 if (url2[0] === '/') {163 url2 = url2.substring(1);164 }165 url2 = baseUrl + '/' + url2;166 url2 = url2.replace(' ', '%20');167 168 // Create HTTP transport objects169 var httpRequest = new WebResource();170 httpRequest.method = 'GET';171 httpRequest.headers = {};172 httpRequest.url = url2;173 174 // Set Headers175 176 // Send Request177 return this.client.pipeline(httpRequest, function (err, response, body) {178 if (err !== null && err !== undefined) {179 return callback(err);180 }181 var statusCode = response.statusCode;182 if (statusCode !== 200) {183 var error = new Error(body);184 error.statusCode = response.statusCode;185 return callback(error);186 }187 188 // Create Result189 var result = null;190 // Deserialize Response191 if (statusCode === 200) {192 var responseContent = body;193 result = {};194 var responseDoc = null;195 if (responseContent) {196 responseDoc = JSON.parse(responseContent);197 }198 199 if (responseDoc !== null && responseDoc !== undefined) {200 var sourceControlInstance = { tags: {} };201 result.sourceControl = sourceControlInstance;202 203 var propertiesValue = responseDoc['properties'];204 if (propertiesValue !== null && propertiesValue !== undefined) {205 var propertiesInstance = {};206 sourceControlInstance.properties = propertiesInstance;207 208 var tokenValue = propertiesValue['token'];209 if (tokenValue !== null && tokenValue !== undefined) {210 var tokenInstance = tokenValue;211 propertiesInstance.token = tokenInstance;212 }213 214 var tokenSecretValue = propertiesValue['tokenSecret'];215 if (tokenSecretValue !== null && tokenSecretValue !== undefined) {216 var tokenSecretInstance = tokenSecretValue;217 propertiesInstance.tokenSecret = tokenSecretInstance;218 }219 }220 221 var idValue = responseDoc['id'];222 if (idValue !== null && idValue !== undefined) {223 var idInstance = idValue;224 sourceControlInstance.id = idInstance;225 }226 227 var nameValue = responseDoc['name'];228 if (nameValue !== null && nameValue !== undefined) {229 var nameInstance = nameValue;230 sourceControlInstance.name = nameInstance;231 }232 233 var locationValue = responseDoc['location'];234 if (locationValue !== null && locationValue !== undefined) {235 var locationInstance = locationValue;236 sourceControlInstance.location = locationInstance;237 }238 239 var tagsSequenceElement = responseDoc['tags'];240 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {241 for (var property in tagsSequenceElement) {242 var tagsKey = property;243 var tagsValue = tagsSequenceElement[property];244 sourceControlInstance.tags[tagsKey] = tagsValue;245 }246 }247 248 var typeValue = responseDoc['type'];249 if (typeValue !== null && typeValue !== undefined) {250 var typeInstance = typeValue;251 sourceControlInstance.type = typeInstance;252 }253 }254 255 }256 result.statusCode = statusCode;257 result.requestId = response.headers['x-ms-request-id'];258 259 return callback(null, result);260 });261 };262 263 /**264 * List source controls for user.265 * 266 * @param {function} callback267 * 268 * @returns {Stream} The response stream.269 */270 SourceControlOperations.prototype.list = function(callback) {271 if (callback === null || callback === undefined) {272 throw new Error('callback cannot be null.');273 }274 // Validate275 276 // Tracing277 278 // Construct URL279 var url2 = '';280 url2 = url2 + '/providers/';281 url2 = url2 + 'Microsoft.Web';282 url2 = url2 + '/SourceControls';283 var queryParameters = [];284 queryParameters.push('api-version=2014-06-01');285 if (queryParameters.length > 0) {286 url2 = url2 + '?' + queryParameters.join('&');287 }288 var baseUrl = this.client.baseUri;289 // Trim '/' character from the end of baseUrl and beginning of url.290 if (baseUrl[baseUrl.length - 1] === '/') {291 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);292 }293 if (url2[0] === '/') {294 url2 = url2.substring(1);295 }296 url2 = baseUrl + '/' + url2;297 url2 = url2.replace(' ', '%20');298 299 // Create HTTP transport objects300 var httpRequest = new WebResource();301 httpRequest.method = 'GET';302 httpRequest.headers = {};303 httpRequest.url = url2;304 305 // Set Headers306 307 // Send Request308 return this.client.pipeline(httpRequest, function (err, response, body) {309 if (err !== null && err !== undefined) {310 return callback(err);311 }312 var statusCode = response.statusCode;313 if (statusCode !== 200) {314 var error = new Error(body);315 error.statusCode = response.statusCode;316 return callback(error);317 }318 319 // Create Result320 var result = null;321 // Deserialize Response322 if (statusCode === 200) {323 var responseContent = body;324 result = { sourceControls: [] };325 var responseDoc = null;326 if (responseContent) {327 responseDoc = JSON.parse(responseContent);328 }329 330 if (responseDoc !== null && responseDoc !== undefined) {331 var valueArray = responseDoc['value'];332 if (valueArray !== null && valueArray !== undefined) {333 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {334 var valueValue = valueArray[loweredIndex1];335 var propertiesInstance = { tags: {} };336 result.sourceControls.push(propertiesInstance);337 338 var propertiesValue = valueValue['properties'];339 if (propertiesValue !== null && propertiesValue !== undefined) {340 var propertiesInstance2 = {};341 propertiesInstance.properties = propertiesInstance2;342 343 var tokenValue = propertiesValue['token'];344 if (tokenValue !== null && tokenValue !== undefined) {345 var tokenInstance = tokenValue;346 propertiesInstance2.token = tokenInstance;347 }348 349 var tokenSecretValue = propertiesValue['tokenSecret'];350 if (tokenSecretValue !== null && tokenSecretValue !== undefined) {351 var tokenSecretInstance = tokenSecretValue;352 propertiesInstance2.tokenSecret = tokenSecretInstance;353 }354 }355 356 var idValue = valueValue['id'];357 if (idValue !== null && idValue !== undefined) {358 var idInstance = idValue;359 propertiesInstance.id = idInstance;360 }361 362 var nameValue = valueValue['name'];363 if (nameValue !== null && nameValue !== undefined) {364 var nameInstance = nameValue;365 propertiesInstance.name = nameInstance;366 }367 368 var locationValue = valueValue['location'];369 if (locationValue !== null && locationValue !== undefined) {370 var locationInstance = locationValue;371 propertiesInstance.location = locationInstance;372 }373 374 var tagsSequenceElement = valueValue['tags'];375 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {376 for (var property in tagsSequenceElement) {377 var tagsKey = property;378 var tagsValue = tagsSequenceElement[property];379 propertiesInstance.tags[tagsKey] = tagsValue;380 }381 }382 383 var typeValue = valueValue['type'];384 if (typeValue !== null && typeValue !== undefined) {385 var typeInstance = typeValue;386 propertiesInstance.type = typeInstance;387 }388 }389 }390 }391 392 }393 result.statusCode = statusCode;394 result.requestId = response.headers['x-ms-request-id'];395 396 return callback(null, result);397 });398 };399 400 /**401 * Update source control for user.402 * 403 * @param {string} name The name of the source control (can be: GitHub,404 * Bitbucket, CodePlex, Dropbox)405 * 406 * @param {SourceControlUpdateParameters} parameters Parameters supplied to407 * the Update Source Control operation.408 * 409 * @param {SourceControlProperties} parameters.properties Gets or sets the410 * properties of the source control.411 * 412 * @param {string} [parameters.properties.token] Gets or sets the token.413 * 414 * @param {string} [parameters.properties.tokenSecret] Gets or sets the token415 * secret.416 * 417 * @param {function} callback418 * 419 * @returns {Stream} The response stream.420 */421 SourceControlOperations.prototype.update = function(name, parameters, callback) {422 if (callback === null || callback === undefined) {423 throw new Error('callback cannot be null.');424 }425 // Validate426 if (name === null || name === undefined) {427 return callback(new Error('name cannot be null.'));428 }429 if (parameters === null || parameters === undefined) {430 return callback(new Error('parameters cannot be null.'));431 }432 if (parameters.properties === null || parameters.properties === undefined) {433 return callback(new Error('parameters.properties cannot be null.'));434 }435 436 // Tracing437 438 // Construct URL439 var url2 = '';440 url2 = url2 + '/providers/';441 url2 = url2 + 'Microsoft.Web';442 url2 = url2 + '/SourceControls/';443 url2 = url2 + encodeURIComponent(name);444 var queryParameters = [];445 queryParameters.push('api-version=2014-06-01');446 if (queryParameters.length > 0) {447 url2 = url2 + '?' + queryParameters.join('&');448 }449 var baseUrl = this.client.baseUri;450 // Trim '/' character from the end of baseUrl and beginning of url.451 if (baseUrl[baseUrl.length - 1] === '/') {452 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);453 }454 if (url2[0] === '/') {455 url2 = url2.substring(1);456 }457 url2 = baseUrl + '/' + url2;458 url2 = url2.replace(' ', '%20');459 460 // Create HTTP transport objects461 var httpRequest = new WebResource();462 httpRequest.method = 'PUT';463 httpRequest.headers = {};464 httpRequest.url = url2;465 466 // Set Headers467 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';468 469 // Serialize Request470 var requestContent = null;471 var requestDoc = null;472 473 var sourceControlUpdateParametersValue = {};474 requestDoc = sourceControlUpdateParametersValue;475 476 var propertiesValue = {};477 sourceControlUpdateParametersValue['properties'] = propertiesValue;478 479 if (parameters.properties.token !== null && parameters.properties.token !== undefined) {480 propertiesValue['token'] = parameters.properties.token;481 }482 483 if (parameters.properties.tokenSecret !== null && parameters.properties.tokenSecret !== undefined) {484 propertiesValue['tokenSecret'] = parameters.properties.tokenSecret;485 }486 487 requestContent = JSON.stringify(requestDoc);488 httpRequest.body = requestContent;489 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');490 // Send Request491 return this.client.pipeline(httpRequest, function (err, response, body) {492 if (err !== null && err !== undefined) {493 return callback(err);494 }495 var statusCode = response.statusCode;496 if (statusCode !== 200) {497 var error = new Error(body);498 error.statusCode = response.statusCode;499 return callback(error);500 }501 502 // Create Result503 var result = null;504 // Deserialize Response505 if (statusCode === 200) {506 var responseContent = body;507 result = {};508 var responseDoc = null;509 if (responseContent) {510 responseDoc = JSON.parse(responseContent);511 }512 513 var sourceControlValue = responseDoc['SourceControl'];514 if (sourceControlValue !== null && sourceControlValue !== undefined) {515 var sourceControlInstance = {};516 517 var sourceControlInstance2 = { tags: {} };518 result.sourceControl = sourceControlInstance2;519 520 var propertiesValue2 = sourceControlValue['properties'];521 if (propertiesValue2 !== null && propertiesValue2 !== undefined) {522 var propertiesInstance = {};523 sourceControlInstance2.properties = propertiesInstance;524 525 var tokenValue = propertiesValue2['token'];526 if (tokenValue !== null && tokenValue !== undefined) {527 var tokenInstance = tokenValue;528 propertiesInstance.token = tokenInstance;529 }530 531 var tokenSecretValue = propertiesValue2['tokenSecret'];532 if (tokenSecretValue !== null && tokenSecretValue !== undefined) {533 var tokenSecretInstance = tokenSecretValue;534 propertiesInstance.tokenSecret = tokenSecretInstance;535 }536 }537 538 var idValue = sourceControlValue['id'];539 if (idValue !== null && idValue !== undefined) {540 var idInstance = idValue;541 sourceControlInstance2.id = idInstance;542 }543 544 var nameValue = sourceControlValue['name'];545 if (nameValue !== null && nameValue !== undefined) {546 var nameInstance = nameValue;547 sourceControlInstance2.name = nameInstance;548 }549 550 var locationValue = sourceControlValue['location'];551 if (locationValue !== null && locationValue !== undefined) {552 var locationInstance = locationValue;553 sourceControlInstance2.location = locationInstance;554 }555 556 var tagsSequenceElement = sourceControlValue['tags'];557 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {558 for (var property in tagsSequenceElement) {559 var tagsKey = property;560 var tagsValue = tagsSequenceElement[property];561 sourceControlInstance2.tags[tagsKey] = tagsValue;562 }563 }564 565 var typeValue = sourceControlValue['type'];566 if (typeValue !== null && typeValue !== undefined) {567 var typeInstance = typeValue;568 sourceControlInstance2.type = typeInstance;569 }570 }571 572 }573 result.statusCode = statusCode;574 result.requestId = response.headers['x-ms-request-id'];575 576 return callback(null, result);577 });578 };579 580 return SourceControlOperations;581})();582583var WebHostingPlanOperations = ( /** @lends WebHostingPlanOperations */ function() {584 /**585 * @class586 * Operations for managing the Web Hosting Plans in a resource group. Web587 * hosting plans (WHPs) represent a set of features and capacity that you588 * can share across your web sites. Web hosting plans support the 4 Azure589 * Web Sites pricing tiers (Free, Shared, Basic, and Standard) where each590 * tier has its own capabilities and capacity. Sites in the same591 * subscription, resource group, and geographic location can share a web592 * hosting plan. All the sites sharing a web hosting plan can leverage all593 * the capabilities and features defined by the web hosting plan tier. All594 * web sites associated with a given web hosting plan run on the resources595 * defined by the web hosting plan. (see596 * http://azure.microsoft.com/en-us/documentation/articles/azure-web-sites-web-hosting-plans-in-depth-overview/597 * for more information)598 * __NOTE__: An instance of this class is automatically created for an599 * instance of the [WebSiteManagementClient] {@link600 * WebSiteManagementClient~WebSiteManagementClient}.601 * See [webHostingPlans] {@link602 * WebSiteManagementClient~WebSiteManagementClient#webHostingPlans}.603 * Initializes a new instance of the WebHostingPlanOperations class.604 * @constructor605 * 606 * @param {WebSiteManagementClient} client Reference to the service client.607 */608 function WebHostingPlanOperations(client) {609 this.client = client;610 }611 612 /**613 * Creates a new Web Hosting Plan or updates an existing one. (see614 * http://azure.microsoft.com/en-us/documentation/articles/azure-web-sites-web-hosting-plans-in-depth-overview/615 * for more information)616 * 617 * @param {string} resourceGroupName The name of the resource group.618 * 619 * @param {WebHostingPlanCreateOrUpdateParameters} parameters Parameters620 * supplied to the Create Server Farm operation.621 * 622 * @param {WebHostingPlan} parameters.webHostingPlan Gets or sets information623 * about a Web Hosting Plan being created of updated.624 * 625 * @param {WebHostingPlanProperties} [parameters.webHostingPlan.properties]626 * Represents the properties of the Web Hosting Plan.627 * 628 * @param {SkuOptions} [parameters.webHostingPlan.properties.sku] The Web629 * Hosting Plan SKU.630 * 631 * @param {number} [parameters.webHostingPlan.properties.numberOfWorkers] The632 * instance count, which is the number of virtual machines dedicated to the633 * Web Hosting Plan. Supported values are positive integers.634 * 635 * @param {WorkerSizeOptions}636 * [parameters.webHostingPlan.properties.workerSize] The instance size.637 * Possible values are Small, Medium, or Large.638 * 639 * @param {string} [parameters.webHostingPlan.properties.adminSiteName] The640 * admin site. The admin site is used to deploy site extensions or contents641 * shared by all site in the plan.642 * 643 * @param {string} [parameters.webHostingPlan.id] Gets the ID of the resource.644 * 645 * @param {string} [parameters.webHostingPlan.name] The name of the resource.646 * 647 * @param {string} parameters.webHostingPlan.location Gets or sets the648 * location of the resource.649 * 650 * @param {object} [parameters.webHostingPlan.tags] Gets or sets the tags651 * attached to the resource.652 * 653 * @param {string} [parameters.webHostingPlan.type] The type of the resource654 * 655 * @param {function} callback656 * 657 * @returns {Stream} The response stream.658 */659 WebHostingPlanOperations.prototype.createOrUpdate = function(resourceGroupName, parameters, callback) {660 if (callback === null || callback === undefined) {661 throw new Error('callback cannot be null.');662 }663 // Validate664 if (resourceGroupName === null || resourceGroupName === undefined) {665 return callback(new Error('resourceGroupName cannot be null.'));666 }667 if (parameters === null || parameters === undefined) {668 return callback(new Error('parameters cannot be null.'));669 }670 if (parameters.webHostingPlan === null || parameters.webHostingPlan === undefined) {671 return callback(new Error('parameters.webHostingPlan cannot be null.'));672 }673 if (parameters.webHostingPlan.location === null || parameters.webHostingPlan.location === undefined) {674 return callback(new Error('parameters.webHostingPlan.location cannot be null.'));675 }676 677 // Tracing678 679 // Construct URL680 var url2 = '';681 url2 = url2 + '/subscriptions/';682 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {683 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);684 }685 url2 = url2 + '/resourceGroups/';686 url2 = url2 + encodeURIComponent(resourceGroupName);687 url2 = url2 + '/providers/';688 url2 = url2 + 'Microsoft.Web';689 url2 = url2 + '/serverFarms/';690 if (parameters.webHostingPlan.name !== null && parameters.webHostingPlan.name !== undefined) {691 url2 = url2 + encodeURIComponent(parameters.webHostingPlan.name);692 }693 var queryParameters = [];694 queryParameters.push('api-version=2014-06-01');695 if (queryParameters.length > 0) {696 url2 = url2 + '?' + queryParameters.join('&');697 }698 var baseUrl = this.client.baseUri;699 // Trim '/' character from the end of baseUrl and beginning of url.700 if (baseUrl[baseUrl.length - 1] === '/') {701 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);702 }703 if (url2[0] === '/') {704 url2 = url2.substring(1);705 }706 url2 = baseUrl + '/' + url2;707 url2 = url2.replace(' ', '%20');708 709 // Create HTTP transport objects710 var httpRequest = new WebResource();711 httpRequest.method = 'PUT';712 httpRequest.headers = {};713 httpRequest.url = url2;714 715 // Set Headers716 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';717 718 // Serialize Request719 var requestContent = null;720 var requestDoc = null;721 722 var webHostingPlanCreateOrUpdateParametersValue = {};723 requestDoc = webHostingPlanCreateOrUpdateParametersValue;724 725 if (parameters.webHostingPlan.properties !== null && parameters.webHostingPlan.properties !== undefined) {726 var propertiesValue = {};727 webHostingPlanCreateOrUpdateParametersValue['properties'] = propertiesValue;728 729 if (parameters.webHostingPlan.properties.sku !== null && parameters.webHostingPlan.properties.sku !== undefined) {730 propertiesValue['sku'] = parameters.webHostingPlan.properties.sku !== null && parameters.webHostingPlan.properties.sku !== undefined ? parameters.webHostingPlan.properties.sku.toString() : 'Free';731 }732 733 if (parameters.webHostingPlan.properties.numberOfWorkers !== null && parameters.webHostingPlan.properties.numberOfWorkers !== undefined) {734 propertiesValue['numberOfWorkers'] = parameters.webHostingPlan.properties.numberOfWorkers;735 }736 737 if (parameters.webHostingPlan.properties.workerSize !== null && parameters.webHostingPlan.properties.workerSize !== undefined) {738 propertiesValue['workerSize'] = parameters.webHostingPlan.properties.workerSize !== null && parameters.webHostingPlan.properties.workerSize !== undefined ? parameters.webHostingPlan.properties.workerSize.toString() : 'Small';739 }740 741 if (parameters.webHostingPlan.properties.adminSiteName !== null && parameters.webHostingPlan.properties.adminSiteName !== undefined) {742 propertiesValue['adminSiteName'] = parameters.webHostingPlan.properties.adminSiteName;743 }744 }745 746 if (parameters.webHostingPlan.id !== null && parameters.webHostingPlan.id !== undefined) {747 webHostingPlanCreateOrUpdateParametersValue['id'] = parameters.webHostingPlan.id;748 }749 750 if (parameters.webHostingPlan.name !== null && parameters.webHostingPlan.name !== undefined) {751 webHostingPlanCreateOrUpdateParametersValue['name'] = parameters.webHostingPlan.name;752 }753 754 webHostingPlanCreateOrUpdateParametersValue['location'] = parameters.webHostingPlan.location;755 756 if (parameters.webHostingPlan.tags !== null && parameters.webHostingPlan.tags !== undefined) {757 var tagsDictionary = {};758 for (var tagsKey in parameters.webHostingPlan.tags) {759 var tagsValue = parameters.webHostingPlan.tags[tagsKey];760 tagsDictionary[tagsKey] = tagsValue;761 }762 webHostingPlanCreateOrUpdateParametersValue['tags'] = tagsDictionary;763 }764 765 if (parameters.webHostingPlan.type !== null && parameters.webHostingPlan.type !== undefined) {766 webHostingPlanCreateOrUpdateParametersValue['type'] = parameters.webHostingPlan.type;767 }768 769 requestContent = JSON.stringify(requestDoc);770 httpRequest.body = requestContent;771 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');772 // Send Request773 return this.client.pipeline(httpRequest, function (err, response, body) {774 if (err !== null && err !== undefined) {775 return callback(err);776 }777 var statusCode = response.statusCode;778 if (statusCode !== 200) {779 var error = new Error(body);780 error.statusCode = response.statusCode;781 return callback(error);782 }783 784 // Create Result785 var result = null;786 // Deserialize Response787 if (statusCode === 200) {788 var responseContent = body;789 result = {};790 var responseDoc = null;791 if (responseContent) {792 responseDoc = JSON.parse(responseContent);793 }794 795 var serverFarmValue = responseDoc['ServerFarm'];796 if (serverFarmValue !== null && serverFarmValue !== undefined) {797 var serverFarmInstance = {};798 799 var webHostingPlanInstance = { tags: {} };800 result.webHostingPlan = webHostingPlanInstance;801 802 var propertiesValue2 = serverFarmValue['properties'];803 if (propertiesValue2 !== null && propertiesValue2 !== undefined) {804 var propertiesInstance = {};805 webHostingPlanInstance.properties = propertiesInstance;806 807 var skuValue = propertiesValue2['sku'];808 if (skuValue !== null && skuValue !== undefined) {809 var skuInstance = skuValue;810 propertiesInstance.sku = skuInstance;811 }812 813 var numberOfWorkersValue = propertiesValue2['numberOfWorkers'];814 if (numberOfWorkersValue !== null && numberOfWorkersValue !== undefined) {815 var numberOfWorkersInstance = numberOfWorkersValue;816 propertiesInstance.numberOfWorkers = numberOfWorkersInstance;817 }818 819 var workerSizeValue = propertiesValue2['workerSize'];820 if (workerSizeValue !== null && workerSizeValue !== undefined) {821 var workerSizeInstance = workerSizeValue;822 propertiesInstance.workerSize = workerSizeInstance;823 }824 825 var adminSiteNameValue = propertiesValue2['adminSiteName'];826 if (adminSiteNameValue !== null && adminSiteNameValue !== undefined) {827 var adminSiteNameInstance = adminSiteNameValue;828 propertiesInstance.adminSiteName = adminSiteNameInstance;829 }830 }831 832 var idValue = serverFarmValue['id'];833 if (idValue !== null && idValue !== undefined) {834 var idInstance = idValue;835 webHostingPlanInstance.id = idInstance;836 }837 838 var nameValue = serverFarmValue['name'];839 if (nameValue !== null && nameValue !== undefined) {840 var nameInstance = nameValue;841 webHostingPlanInstance.name = nameInstance;842 }843 844 var locationValue = serverFarmValue['location'];845 if (locationValue !== null && locationValue !== undefined) {846 var locationInstance = locationValue;847 webHostingPlanInstance.location = locationInstance;848 }849 850 var tagsSequenceElement = serverFarmValue['tags'];851 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {852 for (var property in tagsSequenceElement) {853 var tagsKey2 = property;854 var tagsValue2 = tagsSequenceElement[property];855 webHostingPlanInstance.tags[tagsKey2] = tagsValue2;856 }857 }858 859 var typeValue = serverFarmValue['type'];860 if (typeValue !== null && typeValue !== undefined) {861 var typeInstance = typeValue;862 webHostingPlanInstance.type = typeInstance;863 }864 }865 866 }867 result.statusCode = statusCode;868 result.requestId = response.headers['x-ms-request-id'];869 870 return callback(null, result);871 });872 };873 874 /**875 * Deletes a Web Hosting Plan (see876 * http://azure.microsoft.com/en-us/documentation/articles/azure-web-sites-web-hosting-plans-in-depth-overview/877 * for more information)878 * 879 * @param {string} resourceGroupName The name of the resource group.880 * 881 * @param {string} webHostingPlanName The name of the Web Hosting Plan to882 * delete.883 * 884 * @param {function} callback885 * 886 * @returns {Stream} The response stream.887 */888 WebHostingPlanOperations.prototype.deleteMethod = function(resourceGroupName, webHostingPlanName, callback) {889 if (callback === null || callback === undefined) {890 throw new Error('callback cannot be null.');891 }892 // Validate893 if (resourceGroupName === null || resourceGroupName === undefined) {894 return callback(new Error('resourceGroupName cannot be null.'));895 }896 if (webHostingPlanName === null || webHostingPlanName === undefined) {897 return callback(new Error('webHostingPlanName cannot be null.'));898 }899 900 // Tracing901 902 // Construct URL903 var url2 = '';904 url2 = url2 + '/subscriptions/';905 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {906 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);907 }908 url2 = url2 + '/resourceGroups/';909 url2 = url2 + encodeURIComponent(resourceGroupName);910 url2 = url2 + '/providers/';911 url2 = url2 + 'Microsoft.Web';912 url2 = url2 + '/serverFarms/';913 url2 = url2 + encodeURIComponent(webHostingPlanName);914 var queryParameters = [];915 queryParameters.push('api-version=2014-06-01');916 if (queryParameters.length > 0) {917 url2 = url2 + '?' + queryParameters.join('&');918 }919 var baseUrl = this.client.baseUri;920 // Trim '/' character from the end of baseUrl and beginning of url.921 if (baseUrl[baseUrl.length - 1] === '/') {922 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);923 }924 if (url2[0] === '/') {925 url2 = url2.substring(1);926 }927 url2 = baseUrl + '/' + url2;928 url2 = url2.replace(' ', '%20');929 930 // Create HTTP transport objects931 var httpRequest = new WebResource();932 httpRequest.method = 'DELETE';933 httpRequest.headers = {};934 httpRequest.url = url2;935 936 // Set Headers937 938 // Send Request939 return this.client.pipeline(httpRequest, function (err, response, body) {940 if (err !== null && err !== undefined) {941 return callback(err);942 }943 var statusCode = response.statusCode;944 if (statusCode !== 200) {945 var error = new Error(body);946 error.statusCode = response.statusCode;947 return callback(error);948 }949 950 // Create Result951 var result = null;952 // Deserialize Response953 result = {};954 result.statusCode = statusCode;955 result.requestId = response.headers['x-ms-request-id'];956 957 return callback(null, result);958 });959 };960 961 /**962 * Gets details of an existing Web Hosting Plan (see963 * http://azure.microsoft.com/en-us/documentation/articles/azure-web-sites-web-hosting-plans-in-depth-overview/964 * for more information)965 * 966 * @param {string} resourceGroupName The name of the resource group.967 * 968 * @param {string} webHostingPlanName The name of the Web Hosting Plan.969 * 970 * @param {function} callback971 * 972 * @returns {Stream} The response stream.973 */974 WebHostingPlanOperations.prototype.get = function(resourceGroupName, webHostingPlanName, callback) {975 if (callback === null || callback === undefined) {976 throw new Error('callback cannot be null.');977 }978 // Validate979 if (resourceGroupName === null || resourceGroupName === undefined) {980 return callback(new Error('resourceGroupName cannot be null.'));981 }982 if (webHostingPlanName === null || webHostingPlanName === undefined) {983 return callback(new Error('webHostingPlanName cannot be null.'));984 }985 986 // Tracing987 988 // Construct URL989 var url2 = '';990 url2 = url2 + '/subscriptions/';991 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {992 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);993 }994 url2 = url2 + '/resourceGroups/';995 url2 = url2 + encodeURIComponent(resourceGroupName);996 url2 = url2 + '/providers/';997 url2 = url2 + 'Microsoft.Web';998 url2 = url2 + '/serverFarms/';999 url2 = url2 + encodeURIComponent(webHostingPlanName);1000 var queryParameters = [];1001 queryParameters.push('api-version=2014-06-01');1002 if (queryParameters.length > 0) {1003 url2 = url2 + '?' + queryParameters.join('&');1004 }1005 var baseUrl = this.client.baseUri;1006 // Trim '/' character from the end of baseUrl and beginning of url.1007 if (baseUrl[baseUrl.length - 1] === '/') {1008 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);1009 }1010 if (url2[0] === '/') {1011 url2 = url2.substring(1);1012 }1013 url2 = baseUrl + '/' + url2;1014 url2 = url2.replace(' ', '%20');1015 1016 // Create HTTP transport objects1017 var httpRequest = new WebResource();1018 httpRequest.method = 'GET';1019 httpRequest.headers = {};1020 httpRequest.url = url2;1021 1022 // Set Headers1023 1024 // Send Request1025 return this.client.pipeline(httpRequest, function (err, response, body) {1026 if (err !== null && err !== undefined) {1027 return callback(err);1028 }1029 var statusCode = response.statusCode;1030 if (statusCode !== 200) {1031 var error = new Error(body);1032 error.statusCode = response.statusCode;1033 return callback(error);1034 }1035 1036 // Create Result1037 var result = null;1038 // Deserialize Response1039 if (statusCode === 200) {1040 var responseContent = body;1041 result = {};1042 var responseDoc = null;1043 if (responseContent) {1044 responseDoc = JSON.parse(responseContent);1045 }1046 1047 if (responseDoc !== null && responseDoc !== undefined) {1048 var webHostingPlanInstance = { tags: {} };1049 result.webHostingPlan = webHostingPlanInstance;1050 1051 var propertiesValue = responseDoc['properties'];1052 if (propertiesValue !== null && propertiesValue !== undefined) {1053 var propertiesInstance = {};1054 webHostingPlanInstance.properties = propertiesInstance;1055 1056 var skuValue = propertiesValue['sku'];1057 if (skuValue !== null && skuValue !== undefined) {1058 var skuInstance = skuValue;1059 propertiesInstance.sku = skuInstance;1060 }1061 1062 var numberOfWorkersValue = propertiesValue['numberOfWorkers'];1063 if (numberOfWorkersValue !== null && numberOfWorkersValue !== undefined) {1064 var numberOfWorkersInstance = numberOfWorkersValue;1065 propertiesInstance.numberOfWorkers = numberOfWorkersInstance;1066 }1067 1068 var workerSizeValue = propertiesValue['workerSize'];1069 if (workerSizeValue !== null && workerSizeValue !== undefined) {1070 var workerSizeInstance = workerSizeValue;1071 propertiesInstance.workerSize = workerSizeInstance;1072 }1073 1074 var adminSiteNameValue = propertiesValue['adminSiteName'];1075 if (adminSiteNameValue !== null && adminSiteNameValue !== undefined) {1076 var adminSiteNameInstance = adminSiteNameValue;1077 propertiesInstance.adminSiteName = adminSiteNameInstance;1078 }1079 }1080 1081 var idValue = responseDoc['id'];1082 if (idValue !== null && idValue !== undefined) {1083 var idInstance = idValue;1084 webHostingPlanInstance.id = idInstance;1085 }1086 1087 var nameValue = responseDoc['name'];1088 if (nameValue !== null && nameValue !== undefined) {1089 var nameInstance = nameValue;1090 webHostingPlanInstance.name = nameInstance;1091 }1092 1093 var locationValue = responseDoc['location'];1094 if (locationValue !== null && locationValue !== undefined) {1095 var locationInstance = locationValue;1096 webHostingPlanInstance.location = locationInstance;1097 }1098 1099 var tagsSequenceElement = responseDoc['tags'];1100 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {1101 for (var property in tagsSequenceElement) {1102 var tagsKey = property;1103 var tagsValue = tagsSequenceElement[property];1104 webHostingPlanInstance.tags[tagsKey] = tagsValue;1105 }1106 }1107 1108 var typeValue = responseDoc['type'];1109 if (typeValue !== null && typeValue !== undefined) {1110 var typeInstance = typeValue;1111 webHostingPlanInstance.type = typeInstance;1112 }1113 }1114 1115 }1116 result.statusCode = statusCode;1117 result.requestId = response.headers['x-ms-request-id'];1118 1119 return callback(null, result);1120 });1121 };1122 1123 /**1124 * You can retrieve historical usage metrics for a site by issuing an HTTP1125 * GET request. (see1126 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166964.aspx for1127 * more information)1128 * 1129 * @param {string} resourceGroupName The name of the resource group.1130 * 1131 * @param {string} webHostingPlanName The name of the web hosting plan.1132 * 1133 * @param {WebHostingPlanGetHistoricalUsageMetricsParameters} parameters1134 * Parameters supplied to the Get Historical Usage Metrics Web hosting plan1135 * operation.1136 * 1137 * @param {array} [parameters.metricNames] Specifies a comma-separated list1138 * of the names of the metrics to return. If the names parameter is not1139 * specified, then all available metrics are returned.1140 * 1141 * @param {date} [parameters.startTime] The starting time of the metrics to1142 * return. If this parameter is not specified, the beginning of the current1143 * hour is used.1144 * 1145 * @param {date} [parameters.endTime] The ending time of the metrics to1146 * return. If this parameter is not specified, the current time is used.1147 * 1148 * @param {string} [parameters.timeGrain] The grain at which the metrics are1149 * returned. Supported values are PT1M (minute), PT1H (hour), P1D (day).1150 * 1151 * @param {boolean} [parameters.includeInstanceBreakdown] Flag which1152 * specifies if the metrics for each machine instance should be included.1153 * For sites that run on more than one machine this could be useful to1154 * identify a bad machine.1155 * 1156 * @param {function} callback1157 * 1158 * @returns {Stream} The response stream.1159 */1160 WebHostingPlanOperations.prototype.getHistoricalUsageMetrics = function(resourceGroupName, webHostingPlanName, parameters, callback) {1161 if (callback === null || callback === undefined) {1162 throw new Error('callback cannot be null.');1163 }1164 // Validate1165 if (resourceGroupName === null || resourceGroupName === undefined) {1166 return callback(new Error('resourceGroupName cannot be null.'));1167 }1168 if (webHostingPlanName === null || webHostingPlanName === undefined) {1169 return callback(new Error('webHostingPlanName cannot be null.'));1170 }1171 if (parameters === null || parameters === undefined) {1172 return callback(new Error('parameters cannot be null.'));1173 }1174 1175 // Tracing1176 1177 // Construct URL1178 var url2 = '';1179 url2 = url2 + '/subscriptions/';1180 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {1181 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);1182 }1183 url2 = url2 + '/resourceGroups/';1184 url2 = url2 + encodeURIComponent(resourceGroupName);1185 url2 = url2 + '/providers/';1186 url2 = url2 + 'Microsoft.Web';1187 url2 = url2 + '/serverFarms/';1188 url2 = url2 + encodeURIComponent(webHostingPlanName);1189 url2 = url2 + '/metrics';1190 var queryParameters = [];1191 queryParameters.push('api-version=2014-06-01');1192 if (parameters.metricNames !== null && parameters.metricNames !== undefined && parameters.metricNames.length > 0) {1193 queryParameters.push('names=' + encodeURIComponent(parameters.metricNames.join(',')));1194 }1195 if (parameters.startTime !== null && parameters.startTime !== undefined) {1196 queryParameters.push('StartTime=' + encodeURIComponent(parameters.startTime.toISOString()));1197 }1198 if (parameters.endTime !== null && parameters.endTime !== undefined) {1199 queryParameters.push('EndTime=' + encodeURIComponent(parameters.endTime.toISOString()));1200 }1201 if (parameters.timeGrain !== null && parameters.timeGrain !== undefined) {1202 queryParameters.push('timeGrain=' + encodeURIComponent(parameters.timeGrain));1203 }1204 if (parameters.includeInstanceBreakdown !== null && parameters.includeInstanceBreakdown !== undefined) {1205 queryParameters.push('details=' + encodeURIComponent(parameters.includeInstanceBreakdown.toString()));1206 }1207 if (queryParameters.length > 0) {1208 url2 = url2 + '?' + queryParameters.join('&');1209 }1210 var baseUrl = this.client.baseUri;1211 // Trim '/' character from the end of baseUrl and beginning of url.1212 if (baseUrl[baseUrl.length - 1] === '/') {1213 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);1214 }1215 if (url2[0] === '/') {1216 url2 = url2.substring(1);1217 }1218 url2 = baseUrl + '/' + url2;1219 url2 = url2.replace(' ', '%20');1220 1221 // Create HTTP transport objects1222 var httpRequest = new WebResource();1223 httpRequest.method = 'GET';1224 httpRequest.headers = {};1225 httpRequest.url = url2;1226 1227 // Set Headers1228 httpRequest.headers['x-ms-version'] = '2014-06-01';1229 1230 // Send Request1231 return this.client.pipeline(httpRequest, function (err, response, body) {1232 if (err !== null && err !== undefined) {1233 return callback(err);1234 }1235 var statusCode = response.statusCode;1236 if (statusCode !== 200) {1237 var error = new Error(body);1238 error.statusCode = response.statusCode;1239 return callback(error);1240 }1241 1242 // Create Result1243 var result = null;1244 // Deserialize Response1245 if (statusCode === 200) {1246 var responseContent = body;1247 result = { usageMetrics: [] };1248 var responseDoc = null;1249 if (responseContent) {1250 responseDoc = JSON.parse(responseContent);1251 }1252 1253 if (responseDoc !== null && responseDoc !== undefined) {1254 var propertiesArray = responseDoc['properties'];1255 if (propertiesArray !== null && propertiesArray !== undefined) {1256 for (var loweredIndex1 = 0; loweredIndex1 < propertiesArray.length; loweredIndex1 = loweredIndex1 + 1) {1257 var propertiesValue = propertiesArray[loweredIndex1];1258 var historicalUsageMetricInstance = {};1259 result.usageMetrics.push(historicalUsageMetricInstance);1260 1261 var codeValue = propertiesValue['code'];1262 if (codeValue !== null && codeValue !== undefined) {1263 var codeInstance = codeValue;1264 historicalUsageMetricInstance.code = codeInstance;1265 }1266 1267 var dataValue = propertiesValue['data'];1268 if (dataValue !== null && dataValue !== undefined) {1269 var dataInstance = { values: [] };1270 historicalUsageMetricInstance.data = dataInstance;1271 1272 var displayNameValue = dataValue['displayName'];1273 if (displayNameValue !== null && displayNameValue !== undefined) {1274 var displayNameInstance = displayNameValue;1275 dataInstance.displayName = displayNameInstance;1276 }1277 1278 var endTimeValue = dataValue['EndTime'];1279 if (endTimeValue !== null && endTimeValue !== undefined) {1280 var endTimeInstance = endTimeValue;1281 dataInstance.endTime = endTimeInstance;1282 }1283 1284 var nameValue = dataValue['name'];1285 if (nameValue !== null && nameValue !== undefined) {1286 var nameInstance = nameValue;1287 dataInstance.name = nameInstance;1288 }1289 1290 var primaryAggregationTypeValue = dataValue['primaryAggregationType'];1291 if (primaryAggregationTypeValue !== null && primaryAggregationTypeValue !== undefined) {1292 var primaryAggregationTypeInstance = primaryAggregationTypeValue;1293 dataInstance.primaryAggregationType = primaryAggregationTypeInstance;1294 }1295 1296 var startTimeValue = dataValue['startTime'];1297 if (startTimeValue !== null && startTimeValue !== undefined) {1298 var startTimeInstance = startTimeValue;1299 dataInstance.startTime = startTimeInstance;1300 }1301 1302 var timeGrainValue = dataValue['timeGrain'];1303 if (timeGrainValue !== null && timeGrainValue !== undefined) {1304 var timeGrainInstance = timeGrainValue;1305 dataInstance.timeGrain = timeGrainInstance;1306 }1307 1308 var unitValue = dataValue['unit'];1309 if (unitValue !== null && unitValue !== undefined) {1310 var unitInstance = unitValue;1311 dataInstance.unit = unitInstance;1312 }1313 1314 var valuesArray = dataValue['values'];1315 if (valuesArray !== null && valuesArray !== undefined) {1316 for (var loweredIndex2 = 0; loweredIndex2 < valuesArray.length; loweredIndex2 = loweredIndex2 + 1) {1317 var valuesValue = valuesArray[loweredIndex2];1318 var metricSampleInstance = {};1319 dataInstance.values.push(metricSampleInstance);1320 1321 var countValue = valuesValue['count'];1322 if (countValue !== null && countValue !== undefined) {1323 var countInstance = countValue;1324 metricSampleInstance.count = countInstance;1325 }1326 1327 var maximumValue = valuesValue['maximum'];1328 if (maximumValue !== null && maximumValue !== undefined) {1329 var maximumInstance = maximumValue;1330 metricSampleInstance.maximum = maximumInstance;1331 }1332 1333 var minimumValue = valuesValue['minimum'];1334 if (minimumValue !== null && minimumValue !== undefined) {1335 var minimumInstance = minimumValue;1336 metricSampleInstance.minimum = minimumInstance;1337 }1338 1339 var timeCreatedValue = valuesValue['timeCreated'];1340 if (timeCreatedValue !== null && timeCreatedValue !== undefined) {1341 var timeCreatedInstance = timeCreatedValue;1342 metricSampleInstance.timeCreated = timeCreatedInstance;1343 }1344 1345 var totalValue = valuesValue['total'];1346 if (totalValue !== null && totalValue !== undefined) {1347 var totalInstance = totalValue;1348 metricSampleInstance.total = totalInstance;1349 }1350 1351 var instanceNameValue = valuesValue['instanceName'];1352 if (instanceNameValue !== null && instanceNameValue !== undefined) {1353 var instanceNameInstance = instanceNameValue;1354 metricSampleInstance.instanceName = instanceNameInstance;1355 }1356 }1357 }1358 }1359 1360 var messageValue = propertiesValue['message'];1361 if (messageValue !== null && messageValue !== undefined) {1362 var messageInstance = messageValue;1363 historicalUsageMetricInstance.message = messageInstance;1364 }1365 }1366 }1367 }1368 1369 }1370 result.statusCode = statusCode;1371 result.requestId = response.headers['x-ms-request-id'];1372 1373 return callback(null, result);1374 });1375 };1376 1377 /**1378 * Gets all Web Hosting Plans in a current subscription and Resource Group.1379 * (see http://msdn.microsoft.com/en-us/library/windowsazure/dn194277.aspx1380 * for more information)1381 * 1382 * @param {string} resourceGroupName The name of the resource group.1383 * 1384 * @param {function} callback1385 * 1386 * @returns {Stream} The response stream.1387 */1388 WebHostingPlanOperations.prototype.list = function(resourceGroupName, callback) {1389 if (callback === null || callback === undefined) {1390 throw new Error('callback cannot be null.');1391 }1392 // Validate1393 if (resourceGroupName === null || resourceGroupName === undefined) {1394 return callback(new Error('resourceGroupName cannot be null.'));1395 }1396 1397 // Tracing1398 1399 // Construct URL1400 var url2 = '';1401 url2 = url2 + '/subscriptions/';1402 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {1403 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);1404 }1405 url2 = url2 + '/resourceGroups/';1406 url2 = url2 + encodeURIComponent(resourceGroupName);1407 url2 = url2 + '/providers/';1408 url2 = url2 + 'Microsoft.Web';1409 url2 = url2 + '/serverFarms';1410 var queryParameters = [];1411 queryParameters.push('api-version=2014-06-01');1412 if (queryParameters.length > 0) {1413 url2 = url2 + '?' + queryParameters.join('&');1414 }1415 var baseUrl = this.client.baseUri;1416 // Trim '/' character from the end of baseUrl and beginning of url.1417 if (baseUrl[baseUrl.length - 1] === '/') {1418 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);1419 }1420 if (url2[0] === '/') {1421 url2 = url2.substring(1);1422 }1423 url2 = baseUrl + '/' + url2;1424 url2 = url2.replace(' ', '%20');1425 1426 // Create HTTP transport objects1427 var httpRequest = new WebResource();1428 httpRequest.method = 'GET';1429 httpRequest.headers = {};1430 httpRequest.url = url2;1431 1432 // Set Headers1433 1434 // Send Request1435 return this.client.pipeline(httpRequest, function (err, response, body) {1436 if (err !== null && err !== undefined) {1437 return callback(err);1438 }1439 var statusCode = response.statusCode;1440 if (statusCode !== 200) {1441 var error = new Error(body);1442 error.statusCode = response.statusCode;1443 return callback(error);1444 }1445 1446 // Create Result1447 var result = null;1448 // Deserialize Response1449 if (statusCode === 200) {1450 var responseContent = body;1451 result = { webHostingPlans: [] };1452 var responseDoc = null;1453 if (responseContent) {1454 responseDoc = JSON.parse(responseContent);1455 }1456 1457 if (responseDoc !== null && responseDoc !== undefined) {1458 var valueArray = responseDoc['value'];1459 if (valueArray !== null && valueArray !== undefined) {1460 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {1461 var valueValue = valueArray[loweredIndex1];1462 var webHostingPlanInstance = { tags: {} };1463 result.webHostingPlans.push(webHostingPlanInstance);1464 1465 var propertiesValue = valueValue['properties'];1466 if (propertiesValue !== null && propertiesValue !== undefined) {1467 var propertiesInstance = {};1468 webHostingPlanInstance.properties = propertiesInstance;1469 1470 var skuValue = propertiesValue['sku'];1471 if (skuValue !== null && skuValue !== undefined) {1472 var skuInstance = skuValue;1473 propertiesInstance.sku = skuInstance;1474 }1475 1476 var numberOfWorkersValue = propertiesValue['numberOfWorkers'];1477 if (numberOfWorkersValue !== null && numberOfWorkersValue !== undefined) {1478 var numberOfWorkersInstance = numberOfWorkersValue;1479 propertiesInstance.numberOfWorkers = numberOfWorkersInstance;1480 }1481 1482 var workerSizeValue = propertiesValue['workerSize'];1483 if (workerSizeValue !== null && workerSizeValue !== undefined) {1484 var workerSizeInstance = workerSizeValue;1485 propertiesInstance.workerSize = workerSizeInstance;1486 }1487 1488 var adminSiteNameValue = propertiesValue['adminSiteName'];1489 if (adminSiteNameValue !== null && adminSiteNameValue !== undefined) {1490 var adminSiteNameInstance = adminSiteNameValue;1491 propertiesInstance.adminSiteName = adminSiteNameInstance;1492 }1493 }1494 1495 var idValue = valueValue['id'];1496 if (idValue !== null && idValue !== undefined) {1497 var idInstance = idValue;1498 webHostingPlanInstance.id = idInstance;1499 }1500 1501 var nameValue = valueValue['name'];1502 if (nameValue !== null && nameValue !== undefined) {1503 var nameInstance = nameValue;1504 webHostingPlanInstance.name = nameInstance;1505 }1506 1507 var locationValue = valueValue['location'];1508 if (locationValue !== null && locationValue !== undefined) {1509 var locationInstance = locationValue;1510 webHostingPlanInstance.location = locationInstance;1511 }1512 1513 var tagsSequenceElement = valueValue['tags'];1514 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {1515 for (var property in tagsSequenceElement) {1516 var tagsKey = property;1517 var tagsValue = tagsSequenceElement[property];1518 webHostingPlanInstance.tags[tagsKey] = tagsValue;1519 }1520 }1521 1522 var typeValue = valueValue['type'];1523 if (typeValue !== null && typeValue !== undefined) {1524 var typeInstance = typeValue;1525 webHostingPlanInstance.type = typeInstance;1526 }1527 }1528 }1529 }1530 1531 }1532 result.statusCode = statusCode;1533 result.requestId = response.headers['x-ms-request-id'];1534 1535 return callback(null, result);1536 });1537 };1538 1539 return WebHostingPlanOperations;1540})();15411542var WebSiteOperations = ( /** @lends WebSiteOperations */ function() {1543 /**1544 * @class1545 * Operations for managing the web sites in a web space.1546 * __NOTE__: An instance of this class is automatically created for an1547 * instance of the [WebSiteManagementClient] {@link1548 * WebSiteManagementClient~WebSiteManagementClient}.1549 * See [webSites] {@link1550 * WebSiteManagementClient~WebSiteManagementClient#webSites}.1551 * Initializes a new instance of the WebSiteOperations class.1552 * @constructor1553 * 1554 * @param {WebSiteManagementClient} client Reference to the service client.1555 */1556 function WebSiteOperations(client) {1557 this.client = client;1558 }1559 1560 /**1561 * Backups a site on-demand.1562 * 1563 * @param {string} resourceGroupName The name of the web space.1564 * 1565 * @param {string} webSiteName The name of the web site.1566 * 1567 * @param {string} [slotName] The name of the slot.1568 * 1569 * @param {BackupRequestEnvelope} backupRequestEnvelope A backup1570 * specification.1571 * 1572 * @param {BackupRequest} [backupRequestEnvelope.request] TODO.1573 * 1574 * @param {BackupSchedule} [backupRequestEnvelope.request.backupSchedule] The1575 * backup schedule structure - valid only when setting up a schedule. Should1576 * be Null for on-demand backups.1577 * 1578 * @param {number}1579 * [backupRequestEnvelope.request.backupSchedule.frequencyInterval] The1580 * frequency of backups.1581 * 1582 * @param {FrequencyUnit}1583 * [backupRequestEnvelope.request.backupSchedule.frequencyUnit] Units for1584 * FrequencyInterval - e.g. Day or Hour1585 * 1586 * @param {boolean}1587 * [backupRequestEnvelope.request.backupSchedule.keepAtLeastOneBackup]1588 * Retention policy deletes backups after predefined number of days. If this1589 * is true, there will be always at least one backup left. regardless of the1590 * policy. If false, all backups can be deleted.1591 * 1592 * @param {date}1593 * [backupRequestEnvelope.request.backupSchedule.lastExecutionTime] The last1594 * time when this schedule started a backup, Null if didn't start anything1595 * yet.1596 * 1597 * @param {number}1598 * [backupRequestEnvelope.request.backupSchedule.retentionPeriodInDays]1599 * Backups older N days (N defined by this value) will be automatically1600 * deleted.1601 * 1602 * @param {date} [backupRequestEnvelope.request.backupSchedule.startTime]1603 * When this schedule should start backing up the site. Null means1604 * immediately.1605 * 1606 * @param {IEnumerable} [backupRequestEnvelope.request.databases] Database1607 * settings for backup.1608 * 1609 * @param {boolean} [backupRequestEnvelope.request.enabled] Valid only for a1610 * backup schedule (can be Null for on-demand backups). True if enabled;1611 * false if disabled (no backups will be performed).1612 * 1613 * @param {string} [backupRequestEnvelope.request.name] The name of this1614 * backup - will be used for generating a blob name.1615 * 1616 * @param {string} [backupRequestEnvelope.request.storageAccountUrl] SAS URL1617 * for a container in a storage account. E.g.1618 * https://NAME.blob.core.windows.net/CONTAINERNAME/?sv=2012-02-12&st=2013-12-05T19%3A30%3A45Z&se=2017-12-04T19%3A30%3A45Z&sr=c&sp=rwdl&sig=abcdefABCDEFabcdef01234567891619 * 1620 * @param {string} [backupRequestEnvelope.id] Gets the ID of the resource.1621 * 1622 * @param {string} [backupRequestEnvelope.name] The name of the resource.1623 * 1624 * @param {string} backupRequestEnvelope.location Gets or sets the location1625 * of the resource.1626 * 1627 * @param {object} [backupRequestEnvelope.tags] Gets or sets the tags1628 * attached to the resource.1629 * 1630 * @param {string} [backupRequestEnvelope.type] The type of the resource1631 * 1632 * @param {function} callback1633 * 1634 * @returns {Stream} The response stream.1635 */1636 WebSiteOperations.prototype.backup = function(resourceGroupName, webSiteName, slotName, backupRequestEnvelope, callback) {1637 if (callback === null || callback === undefined) {1638 throw new Error('callback cannot be null.');1639 }1640 // Validate1641 if (resourceGroupName === null || resourceGroupName === undefined) {1642 return callback(new Error('resourceGroupName cannot be null.'));1643 }1644 if (webSiteName === null || webSiteName === undefined) {1645 return callback(new Error('webSiteName cannot be null.'));1646 }1647 if (backupRequestEnvelope === null || backupRequestEnvelope === undefined) {1648 return callback(new Error('backupRequestEnvelope cannot be null.'));1649 }1650 if (backupRequestEnvelope.location === null || backupRequestEnvelope.location === undefined) {1651 return callback(new Error('backupRequestEnvelope.location cannot be null.'));1652 }1653 1654 // Tracing1655 1656 // Construct URL1657 var url2 = '';1658 url2 = url2 + '/subscriptions/';1659 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {1660 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);1661 }1662 url2 = url2 + '/resourceGroups/';1663 url2 = url2 + encodeURIComponent(resourceGroupName);1664 url2 = url2 + '/providers/';1665 url2 = url2 + 'Microsoft.Web';1666 url2 = url2 + '/';1667 url2 = url2 + 'sites';1668 url2 = url2 + '/';1669 url2 = url2 + encodeURIComponent(webSiteName);1670 if (slotName !== null && slotName !== undefined) {1671 url2 = url2 + '/slots/' + encodeURIComponent(slotName);1672 }1673 url2 = url2 + '/backup';1674 var queryParameters = [];1675 queryParameters.push('api-version=2014-06-01');1676 if (queryParameters.length > 0) {1677 url2 = url2 + '?' + queryParameters.join('&');1678 }1679 var baseUrl = this.client.baseUri;1680 // Trim '/' character from the end of baseUrl and beginning of url.1681 if (baseUrl[baseUrl.length - 1] === '/') {1682 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);1683 }1684 if (url2[0] === '/') {1685 url2 = url2.substring(1);1686 }1687 url2 = baseUrl + '/' + url2;1688 url2 = url2.replace(' ', '%20');1689 1690 // Create HTTP transport objects1691 var httpRequest = new WebResource();1692 httpRequest.method = 'PUT';1693 httpRequest.headers = {};1694 httpRequest.url = url2;1695 1696 // Set Headers1697 httpRequest.headers['Content-Type'] = 'application/json';1698 httpRequest.headers['x-ms-version'] = '2014-06-01';1699 1700 // Serialize Request1701 var requestContent = null;1702 var requestDoc = null;1703 1704 var backupRequestEnvelopeValue = {};1705 requestDoc = backupRequestEnvelopeValue;1706 1707 if (backupRequestEnvelope.request !== null && backupRequestEnvelope.request !== undefined) {1708 var propertiesValue = {};1709 backupRequestEnvelopeValue['properties'] = propertiesValue;1710 1711 if (backupRequestEnvelope.request.backupSchedule !== null && backupRequestEnvelope.request.backupSchedule !== undefined) {1712 var backupScheduleValue = {};1713 propertiesValue['backupSchedule'] = backupScheduleValue;1714 1715 if (backupRequestEnvelope.request.backupSchedule.frequencyInterval !== null && backupRequestEnvelope.request.backupSchedule.frequencyInterval !== undefined) {1716 backupScheduleValue['frequencyInterval'] = backupRequestEnvelope.request.backupSchedule.frequencyInterval;1717 }1718 1719 if (backupRequestEnvelope.request.backupSchedule.frequencyUnit !== null && backupRequestEnvelope.request.backupSchedule.frequencyUnit !== undefined) {1720 backupScheduleValue['frequencyUnit'] = backupRequestEnvelope.request.backupSchedule.frequencyUnit !== null && backupRequestEnvelope.request.backupSchedule.frequencyUnit !== undefined ? backupRequestEnvelope.request.backupSchedule.frequencyUnit.toString() : 'Day';1721 }1722 1723 if (backupRequestEnvelope.request.backupSchedule.keepAtLeastOneBackup !== null && backupRequestEnvelope.request.backupSchedule.keepAtLeastOneBackup !== undefined) {1724 backupScheduleValue['keepAtLeastOneBackup'] = backupRequestEnvelope.request.backupSchedule.keepAtLeastOneBackup;1725 }1726 1727 if (backupRequestEnvelope.request.backupSchedule.lastExecutionTime !== null && backupRequestEnvelope.request.backupSchedule.lastExecutionTime !== undefined) {1728 backupScheduleValue['lastExecutionTime'] = backupRequestEnvelope.request.backupSchedule.lastExecutionTime;1729 }1730 1731 if (backupRequestEnvelope.request.backupSchedule.retentionPeriodInDays !== null && backupRequestEnvelope.request.backupSchedule.retentionPeriodInDays !== undefined) {1732 backupScheduleValue['retentionPeriodInDays'] = backupRequestEnvelope.request.backupSchedule.retentionPeriodInDays;1733 }1734 1735 if (backupRequestEnvelope.request.backupSchedule.startTime !== null && backupRequestEnvelope.request.backupSchedule.startTime !== undefined) {1736 backupScheduleValue['startTime'] = backupRequestEnvelope.request.backupSchedule.startTime;1737 }1738 }1739 1740 if (backupRequestEnvelope.request.databases !== null && backupRequestEnvelope.request.databases !== undefined) {1741 var databasesArray = [];1742 for (var loweredIndex1 = 0; loweredIndex1 < backupRequestEnvelope.request.databases.length; loweredIndex1 = loweredIndex1 + 1) {1743 var databasesItem = backupRequestEnvelope.request.databases[loweredIndex1];1744 var databaseBackupSettingValue = {};1745 databasesArray.push(databaseBackupSettingValue);1746 1747 if (databasesItem.connectionString !== null && databasesItem.connectionString !== undefined) {1748 databaseBackupSettingValue['connectionString'] = databasesItem.connectionString;1749 }1750 1751 if (databasesItem.connectionStringName !== null && databasesItem.connectionStringName !== undefined) {1752 databaseBackupSettingValue['connectionStringName'] = databasesItem.connectionStringName;1753 }1754 1755 if (databasesItem.databaseType !== null && databasesItem.databaseType !== undefined) {1756 databaseBackupSettingValue['databaseType'] = databasesItem.databaseType;1757 }1758 1759 if (databasesItem.name !== null && databasesItem.name !== undefined) {1760 databaseBackupSettingValue['name'] = databasesItem.name;1761 }1762 }1763 propertiesValue['databases'] = databasesArray;1764 }1765 1766 if (backupRequestEnvelope.request.enabled !== null && backupRequestEnvelope.request.enabled !== undefined) {1767 propertiesValue['enabled'] = backupRequestEnvelope.request.enabled;1768 }1769 1770 if (backupRequestEnvelope.request.name !== null && backupRequestEnvelope.request.name !== undefined) {1771 propertiesValue['name'] = backupRequestEnvelope.request.name;1772 }1773 1774 if (backupRequestEnvelope.request.storageAccountUrl !== null && backupRequestEnvelope.request.storageAccountUrl !== undefined) {1775 propertiesValue['storageAccountUrl'] = backupRequestEnvelope.request.storageAccountUrl;1776 }1777 }1778 1779 if (backupRequestEnvelope.id !== null && backupRequestEnvelope.id !== undefined) {1780 backupRequestEnvelopeValue['id'] = backupRequestEnvelope.id;1781 }1782 1783 if (backupRequestEnvelope.name !== null && backupRequestEnvelope.name !== undefined) {1784 backupRequestEnvelopeValue['name'] = backupRequestEnvelope.name;1785 }1786 1787 backupRequestEnvelopeValue['location'] = backupRequestEnvelope.location;1788 1789 if (backupRequestEnvelope.tags !== null && backupRequestEnvelope.tags !== undefined) {1790 var tagsDictionary = {};1791 for (var tagsKey in backupRequestEnvelope.tags) {1792 var tagsValue = backupRequestEnvelope.tags[tagsKey];1793 tagsDictionary[tagsKey] = tagsValue;1794 }1795 backupRequestEnvelopeValue['tags'] = tagsDictionary;1796 }1797 1798 if (backupRequestEnvelope.type !== null && backupRequestEnvelope.type !== undefined) {1799 backupRequestEnvelopeValue['type'] = backupRequestEnvelope.type;1800 }1801 1802 requestContent = JSON.stringify(requestDoc);1803 httpRequest.body = requestContent;1804 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');1805 // Send Request1806 return this.client.pipeline(httpRequest, function (err, response, body) {1807 if (err !== null && err !== undefined) {1808 return callback(err);1809 }1810 var statusCode = response.statusCode;1811 if (statusCode !== 200) {1812 var error = new Error(body);1813 error.statusCode = response.statusCode;1814 return callback(error);1815 }1816 1817 // Create Result1818 var result = null;1819 // Deserialize Response1820 if (statusCode === 200) {1821 var responseContent = body;1822 result = {};1823 var responseDoc = null;1824 if (responseContent) {1825 responseDoc = JSON.parse(responseContent);1826 }1827 1828 if (responseDoc !== null && responseDoc !== undefined) {1829 var backupItemInstance = { tags: {} };1830 result.backupItem = backupItemInstance;1831 1832 var propertiesValue2 = responseDoc['properties'];1833 if (propertiesValue2 !== null && propertiesValue2 !== undefined) {1834 var propertiesInstance = { databases: [] };1835 backupItemInstance.properties = propertiesInstance;1836 1837 var storageAccountUrlValue = propertiesValue2['storageAccountUrl'];1838 if (storageAccountUrlValue !== null && storageAccountUrlValue !== undefined) {1839 var storageAccountUrlInstance = storageAccountUrlValue;1840 propertiesInstance.storageAccountUrl = storageAccountUrlInstance;1841 }1842 1843 var blobNameValue = propertiesValue2['blobName'];1844 if (blobNameValue !== null && blobNameValue !== undefined) {1845 var blobNameInstance = blobNameValue;1846 propertiesInstance.blobName = blobNameInstance;1847 }1848 1849 var nameValue = propertiesValue2['name'];1850 if (nameValue !== null && nameValue !== undefined) {1851 var nameInstance = nameValue;1852 propertiesInstance.name = nameInstance;1853 }1854 1855 var statusValue = propertiesValue2['status'];1856 if (statusValue !== null && statusValue !== undefined) {1857 var statusInstance = statusValue;1858 propertiesInstance.status = statusInstance;1859 }1860 1861 var sizeInBytesValue = propertiesValue2['sizeInBytes'];1862 if (sizeInBytesValue !== null && sizeInBytesValue !== undefined) {1863 var sizeInBytesInstance = sizeInBytesValue;1864 propertiesInstance.sizeInBytes = sizeInBytesInstance;1865 }1866 1867 var createdValue = propertiesValue2['created'];1868 if (createdValue !== null && createdValue !== undefined) {1869 var createdInstance = createdValue;1870 propertiesInstance.created = createdInstance;1871 }1872 1873 var logValue = propertiesValue2['log'];1874 if (logValue !== null && logValue !== undefined) {1875 var logInstance = logValue;1876 propertiesInstance.log = logInstance;1877 }1878 1879 var databasesArray2 = propertiesValue2['databases'];1880 if (databasesArray2 !== null && databasesArray2 !== undefined) {1881 for (var loweredIndex2 = 0; loweredIndex2 < databasesArray2.length; loweredIndex2 = loweredIndex2 + 1) {1882 var databasesValue = databasesArray2[loweredIndex2];1883 var databaseBackupSettingInstance = {};1884 propertiesInstance.databases.push(databaseBackupSettingInstance);1885 1886 var connectionStringValue = databasesValue['connectionString'];1887 if (connectionStringValue !== null && connectionStringValue !== undefined) {1888 var connectionStringInstance = connectionStringValue;1889 databaseBackupSettingInstance.connectionString = connectionStringInstance;1890 }1891 1892 var connectionStringNameValue = databasesValue['connectionStringName'];1893 if (connectionStringNameValue !== null && connectionStringNameValue !== undefined) {1894 var connectionStringNameInstance = connectionStringNameValue;1895 databaseBackupSettingInstance.connectionStringName = connectionStringNameInstance;1896 }1897 1898 var databaseTypeValue = databasesValue['databaseType'];1899 if (databaseTypeValue !== null && databaseTypeValue !== undefined) {1900 var databaseTypeInstance = databaseTypeValue;1901 databaseBackupSettingInstance.databaseType = databaseTypeInstance;1902 }1903 1904 var nameValue2 = databasesValue['name'];1905 if (nameValue2 !== null && nameValue2 !== undefined) {1906 var nameInstance2 = nameValue2;1907 databaseBackupSettingInstance.name = nameInstance2;1908 }1909 }1910 }1911 1912 var scheduledValue = propertiesValue2['scheduled'];1913 if (scheduledValue !== null && scheduledValue !== undefined) {1914 var scheduledInstance = scheduledValue;1915 propertiesInstance.scheduled = scheduledInstance;1916 }1917 1918 var lastRestoreTimeStampValue = propertiesValue2['lastRestoreTimeStamp'];1919 if (lastRestoreTimeStampValue !== null && lastRestoreTimeStampValue !== undefined) {1920 var lastRestoreTimeStampInstance = lastRestoreTimeStampValue;1921 propertiesInstance.lastRestoreTimeStamp = lastRestoreTimeStampInstance;1922 }1923 1924 var finishedTimeStampValue = propertiesValue2['finishedTimeStamp'];1925 if (finishedTimeStampValue !== null && finishedTimeStampValue !== undefined) {1926 var finishedTimeStampInstance = finishedTimeStampValue;1927 propertiesInstance.finishedTimeStamp = finishedTimeStampInstance;1928 }1929 1930 var correlationIdValue = propertiesValue2['correlationId'];1931 if (correlationIdValue !== null && correlationIdValue !== undefined) {1932 var correlationIdInstance = correlationIdValue;1933 propertiesInstance.correlationId = correlationIdInstance;1934 }1935 }1936 1937 var idValue = responseDoc['id'];1938 if (idValue !== null && idValue !== undefined) {1939 var idInstance = idValue;1940 backupItemInstance.id = idInstance;1941 }1942 1943 var nameValue3 = responseDoc['name'];1944 if (nameValue3 !== null && nameValue3 !== undefined) {1945 var nameInstance3 = nameValue3;1946 backupItemInstance.name = nameInstance3;1947 }1948 1949 var locationValue = responseDoc['location'];1950 if (locationValue !== null && locationValue !== undefined) {1951 var locationInstance = locationValue;1952 backupItemInstance.location = locationInstance;1953 }1954 1955 var tagsSequenceElement = responseDoc['tags'];1956 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {1957 for (var property in tagsSequenceElement) {1958 var tagsKey2 = property;1959 var tagsValue2 = tagsSequenceElement[property];1960 backupItemInstance.tags[tagsKey2] = tagsValue2;1961 }1962 }1963 1964 var typeValue = responseDoc['type'];1965 if (typeValue !== null && typeValue !== undefined) {1966 var typeInstance = typeValue;1967 backupItemInstance.type = typeInstance;1968 }1969 }1970 1971 }1972 result.statusCode = statusCode;1973 result.requestId = response.headers['x-ms-request-id'];1974 1975 return callback(null, result);1976 });1977 };1978 1979 /**1980 * You can clone a web site by using a PUT request that includes the name of1981 * the web site and other information in the request body. (see1982 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166986.aspx for1983 * more information)1984 * 1985 * @param {string} resourceGroupName The name of the resource group.1986 * 1987 * @param {string} webSiteName The name of the web site.1988 * 1989 * @param {string} [slotName] The name of the slot.1990 * 1991 * @param {WebSiteCloneParameters} parameters Parameters supplied to the1992 * clone Web Site operation.1993 * 1994 * @param {WebSiteCloneBase} parameters.webSiteClone Gets or sets information1995 * about the website being cloned.1996 * 1997 * @param {WebSiteCloneBaseProperties} [parameters.webSiteClone.properties]1998 * Represents the properties of the website.1999 * 2000 * @param {string} [parameters.webSiteClone.properties.serverFarm] The name2001 * of the Server Farm (Web Hosting Plan) associated with this website.2002 * 2003 * @param {CloningInfo} [parameters.webSiteClone.properties.cloningInfo] The2004 * per site limits.2005 * 2006 * @param {Guid}2007 * [parameters.webSiteClone.properties.cloningInfo.correlationId]2008 * Correlation Id. Used for bulk cloning operations2009 * 2010 * @param {boolean}2011 * [parameters.webSiteClone.properties.cloningInfo.overwrite] Overwrite2012 * target site2013 * 2014 * @param {boolean}2015 * [parameters.webSiteClone.properties.cloningInfo.cloneCustomHostNames]2016 * Clone custom hostnames2017 * 2018 * @param {SourceWebSite}2019 * [parameters.webSiteClone.properties.cloningInfo.source] Source website to2020 * clone2021 * 2022 * @param {string}2023 * [parameters.webSiteClone.properties.cloningInfo.source.name] Name of2024 * source site2025 * 2026 * @param {string}2027 * [parameters.webSiteClone.properties.cloningInfo.source.location] Locatio2028 * (georegion) of source site2029 * 2030 * @param {string}2031 * [parameters.webSiteClone.properties.cloningInfo.source.resourceGroupName]2032 * Name of resource group of source site2033 * 2034 * @param {string}2035 * [parameters.webSiteClone.properties.cloningInfo.source.subscriptionId]2036 * Subscription Id of source site2037 * 2038 * @param {string}2039 * [parameters.webSiteClone.properties.cloningInfo.source.slot] Name of slot2040 * of source site2041 * 2042 * @param {string}2043 * [parameters.webSiteClone.properties.cloningInfo.hostingEnvironment]2044 * Hosting environment2045 * 2046 * @param {string} [parameters.webSiteClone.id] Gets the ID of the resource.2047 * 2048 * @param {string} [parameters.webSiteClone.name] The name of the resource.2049 * 2050 * @param {string} parameters.webSiteClone.location Gets or sets the location2051 * of the resource.2052 * 2053 * @param {object} [parameters.webSiteClone.tags] Gets or sets the tags2054 * attached to the resource.2055 * 2056 * @param {string} [parameters.webSiteClone.type] The type of the resource2057 * 2058 * @param {function} callback2059 * 2060 * @returns {Stream} The response stream.2061 */2062 WebSiteOperations.prototype.clone = function(resourceGroupName, webSiteName, slotName, parameters, callback) {2063 if (callback === null || callback === undefined) {2064 throw new Error('callback cannot be null.');2065 }2066 // Validate2067 if (resourceGroupName === null || resourceGroupName === undefined) {2068 return callback(new Error('resourceGroupName cannot be null.'));2069 }2070 if (webSiteName === null || webSiteName === undefined) {2071 return callback(new Error('webSiteName cannot be null.'));2072 }2073 if (parameters === null || parameters === undefined) {2074 return callback(new Error('parameters cannot be null.'));2075 }2076 if (parameters.webSiteClone === null || parameters.webSiteClone === undefined) {2077 return callback(new Error('parameters.webSiteClone cannot be null.'));2078 }2079 if (parameters.webSiteClone.location === null || parameters.webSiteClone.location === undefined) {2080 return callback(new Error('parameters.webSiteClone.location cannot be null.'));2081 }2082 2083 // Tracing2084 2085 // Construct URL2086 var url2 = '';2087 url2 = url2 + '/subscriptions/';2088 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {2089 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);2090 }2091 url2 = url2 + '/resourceGroups/';2092 url2 = url2 + encodeURIComponent(resourceGroupName);2093 url2 = url2 + '/providers/';2094 url2 = url2 + 'Microsoft.Web';2095 url2 = url2 + '/';2096 url2 = url2 + 'sites';2097 url2 = url2 + '/';2098 url2 = url2 + encodeURIComponent(webSiteName);2099 if (slotName !== null && slotName !== undefined) {2100 url2 = url2 + '/slots/' + encodeURIComponent(slotName);2101 }2102 var queryParameters = [];2103 queryParameters.push('api-version=2014-06-01');2104 if (queryParameters.length > 0) {2105 url2 = url2 + '?' + queryParameters.join('&');2106 }2107 var baseUrl = this.client.baseUri;2108 // Trim '/' character from the end of baseUrl and beginning of url.2109 if (baseUrl[baseUrl.length - 1] === '/') {2110 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2111 }2112 if (url2[0] === '/') {2113 url2 = url2.substring(1);2114 }2115 url2 = baseUrl + '/' + url2;2116 url2 = url2.replace(' ', '%20');2117 2118 // Create HTTP transport objects2119 var httpRequest = new WebResource();2120 httpRequest.method = 'PUT';2121 httpRequest.headers = {};2122 httpRequest.url = url2;2123 2124 // Set Headers2125 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';2126 2127 // Serialize Request2128 var requestContent = null;2129 var requestDoc = null;2130 2131 var webSiteCloneParametersValue = {};2132 requestDoc = webSiteCloneParametersValue;2133 2134 if (parameters.webSiteClone.properties !== null && parameters.webSiteClone.properties !== undefined) {2135 var propertiesValue = {};2136 webSiteCloneParametersValue['properties'] = propertiesValue;2137 2138 if (parameters.webSiteClone.properties.serverFarm !== null && parameters.webSiteClone.properties.serverFarm !== undefined) {2139 propertiesValue['ServerFarm'] = parameters.webSiteClone.properties.serverFarm;2140 }2141 2142 if (parameters.webSiteClone.properties.cloningInfo !== null && parameters.webSiteClone.properties.cloningInfo !== undefined) {2143 var cloningInfoValue = {};2144 propertiesValue['cloningInfo'] = cloningInfoValue;2145 2146 if (parameters.webSiteClone.properties.cloningInfo.correlationId !== null && parameters.webSiteClone.properties.cloningInfo.correlationId !== undefined) {2147 cloningInfoValue['CorrelationId'] = parameters.webSiteClone.properties.cloningInfo.correlationId;2148 }2149 2150 if (parameters.webSiteClone.properties.cloningInfo.overwrite !== null && parameters.webSiteClone.properties.cloningInfo.overwrite !== undefined) {2151 cloningInfoValue['Overwrite'] = parameters.webSiteClone.properties.cloningInfo.overwrite;2152 }2153 2154 if (parameters.webSiteClone.properties.cloningInfo.cloneCustomHostNames !== null && parameters.webSiteClone.properties.cloningInfo.cloneCustomHostNames !== undefined) {2155 cloningInfoValue['CloneCustomHostNames'] = parameters.webSiteClone.properties.cloningInfo.cloneCustomHostNames;2156 }2157 2158 if (parameters.webSiteClone.properties.cloningInfo.source !== null && parameters.webSiteClone.properties.cloningInfo.source !== undefined) {2159 var sourceValue = {};2160 cloningInfoValue['Source'] = sourceValue;2161 2162 if (parameters.webSiteClone.properties.cloningInfo.source.name !== null && parameters.webSiteClone.properties.cloningInfo.source.name !== undefined) {2163 sourceValue['Name'] = parameters.webSiteClone.properties.cloningInfo.source.name;2164 }2165 2166 if (parameters.webSiteClone.properties.cloningInfo.source.location !== null && parameters.webSiteClone.properties.cloningInfo.source.location !== undefined) {2167 sourceValue['Location'] = parameters.webSiteClone.properties.cloningInfo.source.location;2168 }2169 2170 if (parameters.webSiteClone.properties.cloningInfo.source.resourceGroupName !== null && parameters.webSiteClone.properties.cloningInfo.source.resourceGroupName !== undefined) {2171 sourceValue['ResourceGroupName'] = parameters.webSiteClone.properties.cloningInfo.source.resourceGroupName;2172 }2173 2174 if (parameters.webSiteClone.properties.cloningInfo.source.subscriptionId !== null && parameters.webSiteClone.properties.cloningInfo.source.subscriptionId !== undefined) {2175 sourceValue['SubscriptionId'] = parameters.webSiteClone.properties.cloningInfo.source.subscriptionId;2176 }2177 2178 if (parameters.webSiteClone.properties.cloningInfo.source.slot !== null && parameters.webSiteClone.properties.cloningInfo.source.slot !== undefined) {2179 sourceValue['Slot'] = parameters.webSiteClone.properties.cloningInfo.source.slot;2180 }2181 }2182 2183 if (parameters.webSiteClone.properties.cloningInfo.hostingEnvironment !== null && parameters.webSiteClone.properties.cloningInfo.hostingEnvironment !== undefined) {2184 cloningInfoValue['HostingEnvironment'] = parameters.webSiteClone.properties.cloningInfo.hostingEnvironment;2185 }2186 }2187 }2188 2189 if (parameters.webSiteClone.id !== null && parameters.webSiteClone.id !== undefined) {2190 webSiteCloneParametersValue['id'] = parameters.webSiteClone.id;2191 }2192 2193 if (parameters.webSiteClone.name !== null && parameters.webSiteClone.name !== undefined) {2194 webSiteCloneParametersValue['name'] = parameters.webSiteClone.name;2195 }2196 2197 webSiteCloneParametersValue['location'] = parameters.webSiteClone.location;2198 2199 if (parameters.webSiteClone.tags !== null && parameters.webSiteClone.tags !== undefined) {2200 var tagsDictionary = {};2201 for (var tagsKey in parameters.webSiteClone.tags) {2202 var tagsValue = parameters.webSiteClone.tags[tagsKey];2203 tagsDictionary[tagsKey] = tagsValue;2204 }2205 webSiteCloneParametersValue['tags'] = tagsDictionary;2206 }2207 2208 if (parameters.webSiteClone.type !== null && parameters.webSiteClone.type !== undefined) {2209 webSiteCloneParametersValue['type'] = parameters.webSiteClone.type;2210 }2211 2212 requestContent = JSON.stringify(requestDoc);2213 httpRequest.body = requestContent;2214 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');2215 // Send Request2216 return this.client.pipeline(httpRequest, function (err, response, body) {2217 if (err !== null && err !== undefined) {2218 return callback(err);2219 }2220 var statusCode = response.statusCode;2221 if (statusCode !== 202) {2222 var error = new Error(body);2223 error.statusCode = response.statusCode;2224 return callback(error);2225 }2226 2227 // Create Result2228 var result = null;2229 // Deserialize Response2230 if (statusCode === 202) {2231 var responseContent = body;2232 result = {};2233 var responseDoc = null;2234 if (responseContent) {2235 responseDoc = JSON.parse(responseContent);2236 }2237 2238 if (responseDoc !== null && responseDoc !== undefined) {2239 var locationValue = responseDoc['location'];2240 if (locationValue !== null && locationValue !== undefined) {2241 var locationInstance = locationValue;2242 result.location = locationInstance;2243 }2244 2245 var retryAfterValue = responseDoc['retry-after'];2246 if (retryAfterValue !== null && retryAfterValue !== undefined) {2247 var retryAfterInstance = retryAfterValue;2248 result.retryAfter = retryAfterInstance;2249 }2250 }2251 2252 }2253 result.statusCode = statusCode;2254 result.location = response.headers['location'];2255 result.retryAfter = response.headers['retry-after'];2256 result.requestId = response.headers['x-ms-request-id'];2257 2258 return callback(null, result);2259 });2260 };2261 2262 /**2263 * You can create a web site by using a POST request that includes the name2264 * of the web site and other information in the request body. (see2265 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166986.aspx for2266 * more information)2267 * 2268 * @param {string} resourceGroupName The name of the resource group.2269 * 2270 * @param {string} webSiteName The name of the web site.2271 * 2272 * @param {string} [slotName] The name of the slot.2273 * 2274 * @param {WebSiteCreateOrUpdateParameters} parameters Parameters supplied to2275 * the Create Web Site operation.2276 * 2277 * @param {WebSiteBase} parameters.webSite Gets or sets information about a2278 * website being created of updated.2279 * 2280 * @param {WebSiteBaseProperties} [parameters.webSite.properties] Represents2281 * the properties of the website.2282 * 2283 * @param {string} [parameters.webSite.properties.serverFarm] The name of the2284 * Server Farm (Web Hosting Plan) associated with this website.2285 * 2286 * @param {string} [parameters.webSite.id] Gets the ID of the resource.2287 * 2288 * @param {string} [parameters.webSite.name] The name of the resource.2289 * 2290 * @param {string} parameters.webSite.location Gets or sets the location of2291 * the resource.2292 * 2293 * @param {object} [parameters.webSite.tags] Gets or sets the tags attached2294 * to the resource.2295 * 2296 * @param {string} [parameters.webSite.type] The type of the resource2297 * 2298 * @param {function} callback2299 * 2300 * @returns {Stream} The response stream.2301 */2302 WebSiteOperations.prototype.createOrUpdate = function(resourceGroupName, webSiteName, slotName, parameters, callback) {2303 if (callback === null || callback === undefined) {2304 throw new Error('callback cannot be null.');2305 }2306 // Validate2307 if (resourceGroupName === null || resourceGroupName === undefined) {2308 return callback(new Error('resourceGroupName cannot be null.'));2309 }2310 if (webSiteName === null || webSiteName === undefined) {2311 return callback(new Error('webSiteName cannot be null.'));2312 }2313 if (parameters === null || parameters === undefined) {2314 return callback(new Error('parameters cannot be null.'));2315 }2316 if (parameters.webSite === null || parameters.webSite === undefined) {2317 return callback(new Error('parameters.webSite cannot be null.'));2318 }2319 if (parameters.webSite.location === null || parameters.webSite.location === undefined) {2320 return callback(new Error('parameters.webSite.location cannot be null.'));2321 }2322 if (parameters.webSite.properties !== null && parameters.webSite.properties !== undefined) {2323 if (parameters.webSite.properties.serverFarm === null || parameters.webSite.properties.serverFarm === undefined) {2324 return callback(new Error('parameters.webSite.properties.serverFarm cannot be null.'));2325 }2326 }2327 2328 // Tracing2329 2330 // Construct URL2331 var url2 = '';2332 url2 = url2 + '/subscriptions/';2333 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {2334 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);2335 }2336 url2 = url2 + '/resourceGroups/';2337 url2 = url2 + encodeURIComponent(resourceGroupName);2338 url2 = url2 + '/providers/';2339 url2 = url2 + 'Microsoft.Web';2340 url2 = url2 + '/';2341 url2 = url2 + 'sites';2342 url2 = url2 + '/';2343 url2 = url2 + encodeURIComponent(webSiteName);2344 if (slotName !== null && slotName !== undefined) {2345 url2 = url2 + '/slots/' + encodeURIComponent(slotName);2346 }2347 var queryParameters = [];2348 queryParameters.push('api-version=2014-06-01');2349 if (queryParameters.length > 0) {2350 url2 = url2 + '?' + queryParameters.join('&');2351 }2352 var baseUrl = this.client.baseUri;2353 // Trim '/' character from the end of baseUrl and beginning of url.2354 if (baseUrl[baseUrl.length - 1] === '/') {2355 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2356 }2357 if (url2[0] === '/') {2358 url2 = url2.substring(1);2359 }2360 url2 = baseUrl + '/' + url2;2361 url2 = url2.replace(' ', '%20');2362 2363 // Create HTTP transport objects2364 var httpRequest = new WebResource();2365 httpRequest.method = 'PUT';2366 httpRequest.headers = {};2367 httpRequest.url = url2;2368 2369 // Set Headers2370 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';2371 2372 // Serialize Request2373 var requestContent = null;2374 var requestDoc = null;2375 2376 var webSiteCreateOrUpdateParametersValue = {};2377 requestDoc = webSiteCreateOrUpdateParametersValue;2378 2379 if (parameters.webSite.properties !== null && parameters.webSite.properties !== undefined) {2380 var propertiesValue = {};2381 webSiteCreateOrUpdateParametersValue['properties'] = propertiesValue;2382 2383 propertiesValue['ServerFarm'] = parameters.webSite.properties.serverFarm;2384 }2385 2386 if (parameters.webSite.id !== null && parameters.webSite.id !== undefined) {2387 webSiteCreateOrUpdateParametersValue['id'] = parameters.webSite.id;2388 }2389 2390 if (parameters.webSite.name !== null && parameters.webSite.name !== undefined) {2391 webSiteCreateOrUpdateParametersValue['name'] = parameters.webSite.name;2392 }2393 2394 webSiteCreateOrUpdateParametersValue['location'] = parameters.webSite.location;2395 2396 if (parameters.webSite.tags !== null && parameters.webSite.tags !== undefined) {2397 var tagsDictionary = {};2398 for (var tagsKey in parameters.webSite.tags) {2399 var tagsValue = parameters.webSite.tags[tagsKey];2400 tagsDictionary[tagsKey] = tagsValue;2401 }2402 webSiteCreateOrUpdateParametersValue['tags'] = tagsDictionary;2403 }2404 2405 if (parameters.webSite.type !== null && parameters.webSite.type !== undefined) {2406 webSiteCreateOrUpdateParametersValue['type'] = parameters.webSite.type;2407 }2408 2409 requestContent = JSON.stringify(requestDoc);2410 httpRequest.body = requestContent;2411 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');2412 // Send Request2413 return this.client.pipeline(httpRequest, function (err, response, body) {2414 if (err !== null && err !== undefined) {2415 return callback(err);2416 }2417 var statusCode = response.statusCode;2418 if (statusCode !== 200) {2419 var error = new Error(body);2420 error.statusCode = response.statusCode;2421 return callback(error);2422 }2423 2424 // Create Result2425 var result = null;2426 // Deserialize Response2427 if (statusCode === 200) {2428 var responseContent = body;2429 result = {};2430 var responseDoc = null;2431 if (responseContent) {2432 responseDoc = JSON.parse(responseContent);2433 }2434 2435 if (responseDoc !== null && responseDoc !== undefined) {2436 }2437 2438 }2439 result.statusCode = statusCode;2440 result.requestId = response.headers['x-ms-request-id'];2441 2442 return callback(null, result);2443 });2444 };2445 2446 /**2447 * A web site repository is essentially a GIT repository that you can use to2448 * manage your web site content. By using GIT source control tools, you can2449 * push or pull version controlled changes to your site. You can create a2450 * repository for your web site by issuing an HTTP POST request, or retrieve2451 * information about the repository by using HTTP GET. (see2452 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166967.aspx for2453 * more information)2454 * 2455 * @param {string} resourceGroupName The name of the resource group.2456 * 2457 * @param {string} webSiteName The name of the web site.2458 * 2459 * @param {string} [slotName] The name of the slot.2460 * 2461 * @param {function} callback2462 * 2463 * @returns {Stream} The response stream.2464 */2465 WebSiteOperations.prototype.createRepository = function(resourceGroupName, webSiteName, slotName, callback) {2466 if (callback === null || callback === undefined) {2467 throw new Error('callback cannot be null.');2468 }2469 // Validate2470 if (resourceGroupName === null || resourceGroupName === undefined) {2471 return callback(new Error('resourceGroupName cannot be null.'));2472 }2473 if (webSiteName === null || webSiteName === undefined) {2474 return callback(new Error('webSiteName cannot be null.'));2475 }2476 2477 // Tracing2478 2479 // Construct URL2480 var url2 = '';2481 url2 = url2 + '/subscriptions/';2482 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {2483 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);2484 }2485 url2 = url2 + '/resourceGroups/';2486 url2 = url2 + encodeURIComponent(resourceGroupName);2487 url2 = url2 + '/providers/';2488 url2 = url2 + 'Microsoft.Web';2489 url2 = url2 + '/';2490 url2 = url2 + 'sites';2491 url2 = url2 + '/';2492 url2 = url2 + encodeURIComponent(webSiteName);2493 if (slotName !== null && slotName !== undefined) {2494 url2 = url2 + '/slots/' + encodeURIComponent(slotName);2495 }2496 url2 = url2 + '/repository';2497 var queryParameters = [];2498 queryParameters.push('api-version=2014-06-01');2499 if (queryParameters.length > 0) {2500 url2 = url2 + '?' + queryParameters.join('&');2501 }2502 var baseUrl = this.client.baseUri;2503 // Trim '/' character from the end of baseUrl and beginning of url.2504 if (baseUrl[baseUrl.length - 1] === '/') {2505 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2506 }2507 if (url2[0] === '/') {2508 url2 = url2.substring(1);2509 }2510 url2 = baseUrl + '/' + url2;2511 url2 = url2.replace(' ', '%20');2512 2513 // Create HTTP transport objects2514 var httpRequest = new WebResource();2515 httpRequest.method = 'POST';2516 httpRequest.headers = {};2517 httpRequest.url = url2;2518 2519 // Set Headers2520 httpRequest.headers['Content-Length'] = '0';2521 2522 // Send Request2523 return this.client.pipeline(httpRequest, function (err, response, body) {2524 if (err !== null && err !== undefined) {2525 return callback(err);2526 }2527 var statusCode = response.statusCode;2528 if (statusCode !== 200) {2529 var error = new Error(body);2530 error.statusCode = response.statusCode;2531 return callback(error);2532 }2533 2534 // Create Result2535 var result = null;2536 // Deserialize Response2537 result = {};2538 result.statusCode = statusCode;2539 result.requestId = response.headers['x-ms-request-id'];2540 2541 return callback(null, result);2542 });2543 };2544 2545 /**2546 * Deletes the web site.2547 * 2548 * @param {string} resourceGroupName The name of the resource group..2549 * 2550 * @param {string} webSiteName The name of the Web Site resource.2551 * 2552 * @param {string} [slotName] The name of the slot.2553 * 2554 * @param {WebSiteDeleteParameters} parameters The parameters to delete a web2555 * site.2556 * 2557 * @param {boolean} parameters.deleteEmptyServerFarm If the site being2558 * deleted is the last web site in a server farm, you can delete the server2559 * farm.2560 * 2561 * @param {boolean} parameters.deleteMetrics Delete the metrics for the web2562 * site.2563 * 2564 * @param {boolean} parameters.deleteAllSlots Delete all slots for the web2565 * site.2566 * 2567 * @param {function} callback2568 * 2569 * @returns {Stream} The response stream.2570 */2571 WebSiteOperations.prototype.deleteMethod = function(resourceGroupName, webSiteName, slotName, parameters, callback) {2572 if (callback === null || callback === undefined) {2573 throw new Error('callback cannot be null.');2574 }2575 // Validate2576 if (resourceGroupName === null || resourceGroupName === undefined) {2577 return callback(new Error('resourceGroupName cannot be null.'));2578 }2579 if (webSiteName === null || webSiteName === undefined) {2580 return callback(new Error('webSiteName cannot be null.'));2581 }2582 if (parameters === null || parameters === undefined) {2583 return callback(new Error('parameters cannot be null.'));2584 }2585 if (parameters.deleteAllSlots === null || parameters.deleteAllSlots === undefined) {2586 return callback(new Error('parameters.deleteAllSlots cannot be null.'));2587 }2588 if (parameters.deleteEmptyServerFarm === null || parameters.deleteEmptyServerFarm === undefined) {2589 return callback(new Error('parameters.deleteEmptyServerFarm cannot be null.'));2590 }2591 if (parameters.deleteMetrics === null || parameters.deleteMetrics === undefined) {2592 return callback(new Error('parameters.deleteMetrics cannot be null.'));2593 }2594 2595 // Tracing2596 2597 // Construct URL2598 var url2 = '';2599 url2 = url2 + '/subscriptions/';2600 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {2601 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);2602 }2603 url2 = url2 + '/resourceGroups/';2604 url2 = url2 + encodeURIComponent(resourceGroupName);2605 url2 = url2 + '/providers/';2606 url2 = url2 + 'Microsoft.Web';2607 url2 = url2 + '/';2608 url2 = url2 + 'sites';2609 url2 = url2 + '/';2610 url2 = url2 + encodeURIComponent(webSiteName);2611 if (slotName !== null && slotName !== undefined) {2612 url2 = url2 + '/slots/' + encodeURIComponent(slotName);2613 }2614 var queryParameters = [];2615 queryParameters.push('api-version=2014-06-01');2616 queryParameters.push('deleteEmptyServerFarm=' + encodeURIComponent(parameters.deleteEmptyServerFarm.toString()));2617 queryParameters.push('deleteMetrics=' + encodeURIComponent(parameters.deleteMetrics.toString()));2618 queryParameters.push('deleteAllSlots=' + encodeURIComponent(parameters.deleteAllSlots.toString()));2619 if (queryParameters.length > 0) {2620 url2 = url2 + '?' + queryParameters.join('&');2621 }2622 var baseUrl = this.client.baseUri;2623 // Trim '/' character from the end of baseUrl and beginning of url.2624 if (baseUrl[baseUrl.length - 1] === '/') {2625 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2626 }2627 if (url2[0] === '/') {2628 url2 = url2.substring(1);2629 }2630 url2 = baseUrl + '/' + url2;2631 url2 = url2.replace(' ', '%20');2632 2633 // Create HTTP transport objects2634 var httpRequest = new WebResource();2635 httpRequest.method = 'DELETE';2636 httpRequest.headers = {};2637 httpRequest.url = url2;2638 2639 // Set Headers2640 2641 // Send Request2642 return this.client.pipeline(httpRequest, function (err, response, body) {2643 if (err !== null && err !== undefined) {2644 return callback(err);2645 }2646 var statusCode = response.statusCode;2647 if (statusCode !== 200) {2648 var error = new Error(body);2649 error.statusCode = response.statusCode;2650 return callback(error);2651 }2652 2653 // Create Result2654 var result = null;2655 // Deserialize Response2656 result = {};2657 result.statusCode = statusCode;2658 result.requestId = response.headers['x-ms-request-id'];2659 2660 return callback(null, result);2661 });2662 };2663 2664 /**2665 * A web site repository is essentially a GIT repository that you can use to2666 * manage your web site content. By using GIT source control tools, you can2667 * push or pull version controlled changes to your site. You can create a2668 * repository for your web site by issuing an HTTP POST request, or retrieve2669 * information about the repository by using HTTP GET. (see2670 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166967.aspx for2671 * more information)2672 * 2673 * @param {string} resourceGroupName The name of the resource group.2674 * 2675 * @param {string} webSiteName The name of the web site.2676 * 2677 * @param {string} [slotName] The name of the slot.2678 * 2679 * @param {function} callback2680 * 2681 * @returns {Stream} The response stream.2682 */2683 WebSiteOperations.prototype.deleteRepository = function(resourceGroupName, webSiteName, slotName, callback) {2684 if (callback === null || callback === undefined) {2685 throw new Error('callback cannot be null.');2686 }2687 // Validate2688 if (resourceGroupName === null || resourceGroupName === undefined) {2689 return callback(new Error('resourceGroupName cannot be null.'));2690 }2691 if (webSiteName === null || webSiteName === undefined) {2692 return callback(new Error('webSiteName cannot be null.'));2693 }2694 2695 // Tracing2696 2697 // Construct URL2698 var url2 = '';2699 url2 = url2 + '/subscriptions/';2700 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {2701 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);2702 }2703 url2 = url2 + '/resourceGroups/';2704 url2 = url2 + encodeURIComponent(resourceGroupName);2705 url2 = url2 + '/providers/';2706 url2 = url2 + 'Microsoft.Web';2707 url2 = url2 + '/';2708 url2 = url2 + 'sites';2709 url2 = url2 + '/';2710 url2 = url2 + encodeURIComponent(webSiteName);2711 if (slotName !== null && slotName !== undefined) {2712 url2 = url2 + '/slots/' + encodeURIComponent(slotName);2713 }2714 url2 = url2 + '/repository';2715 var queryParameters = [];2716 queryParameters.push('api-version=2014-06-01');2717 if (queryParameters.length > 0) {2718 url2 = url2 + '?' + queryParameters.join('&');2719 }2720 var baseUrl = this.client.baseUri;2721 // Trim '/' character from the end of baseUrl and beginning of url.2722 if (baseUrl[baseUrl.length - 1] === '/') {2723 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2724 }2725 if (url2[0] === '/') {2726 url2 = url2.substring(1);2727 }2728 url2 = baseUrl + '/' + url2;2729 url2 = url2.replace(' ', '%20');2730 2731 // Create HTTP transport objects2732 var httpRequest = new WebResource();2733 httpRequest.method = 'DELETE';2734 httpRequest.headers = {};2735 httpRequest.url = url2;2736 2737 // Set Headers2738 2739 // Send Request2740 return this.client.pipeline(httpRequest, function (err, response, body) {2741 if (err !== null && err !== undefined) {2742 return callback(err);2743 }2744 var statusCode = response.statusCode;2745 if (statusCode !== 200) {2746 var error = new Error(body);2747 error.statusCode = response.statusCode;2748 return callback(error);2749 }2750 2751 // Create Result2752 var result = null;2753 // Deserialize Response2754 if (statusCode === 200) {2755 var responseContent = body;2756 result = {};2757 var responseDoc = null;2758 if (responseContent) {2759 responseDoc = JSON.parse(responseContent);2760 }2761 2762 if (responseDoc !== null && responseDoc !== undefined) {2763 var uriValue = responseDoc['uri'];2764 if (uriValue !== null && uriValue !== undefined) {2765 var uriInstance = uriValue;2766 result.uri = uriInstance;2767 }2768 }2769 2770 }2771 result.statusCode = statusCode;2772 result.requestId = response.headers['x-ms-request-id'];2773 2774 return callback(null, result);2775 });2776 };2777 2778 /**2779 * Unlink source control from website2780 * 2781 * @param {string} resourceGroupName The name of the resource group.2782 * 2783 * @param {string} webSiteName The name of the web site.2784 * 2785 * @param {string} [slotName] The name of the slot.2786 * 2787 * @param {string} repoUrl The repository url.2788 * 2789 * @param {function} callback2790 * 2791 * @returns {Stream} The response stream.2792 */2793 WebSiteOperations.prototype.deleteSiteSourceControl = function(resourceGroupName, webSiteName, slotName, repoUrl, callback) {2794 if (callback === null || callback === undefined) {2795 throw new Error('callback cannot be null.');2796 }2797 // Validate2798 if (resourceGroupName === null || resourceGroupName === undefined) {2799 return callback(new Error('resourceGroupName cannot be null.'));2800 }2801 if (webSiteName === null || webSiteName === undefined) {2802 return callback(new Error('webSiteName cannot be null.'));2803 }2804 if (repoUrl === null || repoUrl === undefined) {2805 return callback(new Error('repoUrl cannot be null.'));2806 }2807 2808 // Tracing2809 2810 // Construct URL2811 var url2 = '';2812 url2 = url2 + '/subscriptions/';2813 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {2814 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);2815 }2816 url2 = url2 + '/resourceGroups/';2817 url2 = url2 + encodeURIComponent(resourceGroupName);2818 url2 = url2 + '/providers/';2819 url2 = url2 + 'Microsoft.Web';2820 url2 = url2 + '/';2821 url2 = url2 + 'sites';2822 url2 = url2 + '/';2823 url2 = url2 + encodeURIComponent(webSiteName);2824 if (slotName !== null && slotName !== undefined) {2825 url2 = url2 + '/slots/' + encodeURIComponent(slotName);2826 }2827 url2 = url2 + '/sourcecontrols/web';2828 var queryParameters = [];2829 queryParameters.push('api-version=2014-06-01');2830 if (queryParameters.length > 0) {2831 url2 = url2 + '?' + queryParameters.join('&');2832 }2833 var baseUrl = this.client.baseUri;2834 // Trim '/' character from the end of baseUrl and beginning of url.2835 if (baseUrl[baseUrl.length - 1] === '/') {2836 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2837 }2838 if (url2[0] === '/') {2839 url2 = url2.substring(1);2840 }2841 url2 = baseUrl + '/' + url2;2842 url2 = url2.replace(' ', '%20');2843 2844 // Create HTTP transport objects2845 var httpRequest = new WebResource();2846 httpRequest.method = 'DELETE';2847 httpRequest.headers = {};2848 httpRequest.url = url2;2849 2850 // Set Headers2851 2852 // Send Request2853 return this.client.pipeline(httpRequest, function (err, response, body) {2854 if (err !== null && err !== undefined) {2855 return callback(err);2856 }2857 var statusCode = response.statusCode;2858 if (statusCode !== 200) {2859 var error = new Error(body);2860 error.statusCode = response.statusCode;2861 return callback(error);2862 }2863 2864 // Create Result2865 var result = null;2866 // Deserialize Response2867 result = {};2868 result.statusCode = statusCode;2869 result.requestId = response.headers['x-ms-request-id'];2870 2871 return callback(null, result);2872 });2873 };2874 2875 /**2876 * Scans a backup in a storage account and returns database information etc.2877 * Should be called before calling Restore to discover what parameters are2878 * needed for the restore operation. KNOWN BUG: This has to be called2879 * against an exisingsite, otherwise will hit an error about non-existing2880 * resource.2881 * 2882 * @param {string} resourceGroupName The name of the web space.2883 * 2884 * @param {string} webSiteName The name of the web site.2885 * 2886 * @param {string} [slotName] The name of the slot.2887 * 2888 * @param {RestoreRequestEnvelope} restoreRequestEnvelope A restore request.2889 * 2890 * @param {RestoreRequest} [restoreRequestEnvelope.request] TODO.2891 * 2892 * @param {boolean} [restoreRequestEnvelope.request.adjustConnectionStrings]2893 * If the restore operation also restores a database along with the website2894 * and the database is on a different server than when the original site h2895 * 2896 * @param {string} [restoreRequestEnvelope.request.blobName] The blob name2897 * where the backup is stored. E.g. mysite1_20140203.zip2898 * 2899 * @param {IEnumerable} [restoreRequestEnvelope.request.databases] Database2900 * settings for backup.2901 * 2902 * @param {boolean}2903 * [restoreRequestEnvelope.request.ignoreConflictingHostNames] When2904 * restoring a site, custom domains might conflict with other site in the2905 * same datacenter. If this value is true, such hostnames will be ignored2906 * during restore. If this is false, the restore operation will fail on such2907 * conflict.2908 * 2909 * @param {boolean} [restoreRequestEnvelope.request.overwrite] True if the2910 * restore operation will be used for overwrite an existing site; false2911 * otherwise.2912 * 2913 * @param {string} [restoreRequestEnvelope.request.storageAccountUrl] SAS URL2914 * for a container in a storage account. E.g.2915 * https://NAME.blob.core.windows.net/CONTAINERNAME/?sv=2012-02-12&st=2013-12-05T19%3A30%3A45Z&se=2017-12-04T19%3A30%3A45Z&sr=c&sp=rwdl&sig=abcdefABCDEFabcdef01234567892916 * 2917 * @param {string} [restoreRequestEnvelope.id] Gets the ID of the resource.2918 * 2919 * @param {string} [restoreRequestEnvelope.name] The name of the resource.2920 * 2921 * @param {string} restoreRequestEnvelope.location Gets or sets the location2922 * of the resource.2923 * 2924 * @param {object} [restoreRequestEnvelope.tags] Gets or sets the tags2925 * attached to the resource.2926 * 2927 * @param {string} [restoreRequestEnvelope.type] The type of the resource2928 * 2929 * @param {function} callback2930 * 2931 * @returns {Stream} The response stream.2932 */2933 WebSiteOperations.prototype.discover = function(resourceGroupName, webSiteName, slotName, restoreRequestEnvelope, callback) {2934 if (callback === null || callback === undefined) {2935 throw new Error('callback cannot be null.');2936 }2937 // Validate2938 if (resourceGroupName === null || resourceGroupName === undefined) {2939 return callback(new Error('resourceGroupName cannot be null.'));2940 }2941 if (webSiteName === null || webSiteName === undefined) {2942 return callback(new Error('webSiteName cannot be null.'));2943 }2944 if (restoreRequestEnvelope === null || restoreRequestEnvelope === undefined) {2945 return callback(new Error('restoreRequestEnvelope cannot be null.'));2946 }2947 if (restoreRequestEnvelope.location === null || restoreRequestEnvelope.location === undefined) {2948 return callback(new Error('restoreRequestEnvelope.location cannot be null.'));2949 }2950 2951 // Tracing2952 2953 // Construct URL2954 var url2 = '';2955 url2 = url2 + '/subscriptions/';2956 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {2957 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);2958 }2959 url2 = url2 + '/resourceGroups/';2960 url2 = url2 + encodeURIComponent(resourceGroupName);2961 url2 = url2 + '/providers/';2962 url2 = url2 + 'Microsoft.Web';2963 url2 = url2 + '/';2964 url2 = url2 + 'sites';2965 url2 = url2 + '/';2966 url2 = url2 + encodeURIComponent(webSiteName);2967 if (slotName !== null && slotName !== undefined) {2968 url2 = url2 + '/slots/' + encodeURIComponent(slotName);2969 }2970 url2 = url2 + '/restore/discover';2971 var queryParameters = [];2972 queryParameters.push('api-version=2014-06-01');2973 if (queryParameters.length > 0) {2974 url2 = url2 + '?' + queryParameters.join('&');2975 }2976 var baseUrl = this.client.baseUri;2977 // Trim '/' character from the end of baseUrl and beginning of url.2978 if (baseUrl[baseUrl.length - 1] === '/') {2979 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2980 }2981 if (url2[0] === '/') {2982 url2 = url2.substring(1);2983 }2984 url2 = baseUrl + '/' + url2;2985 url2 = url2.replace(' ', '%20');2986 2987 // Create HTTP transport objects2988 var httpRequest = new WebResource();2989 httpRequest.method = 'PUT';2990 httpRequest.headers = {};2991 httpRequest.url = url2;2992 2993 // Set Headers2994 httpRequest.headers['Content-Type'] = 'application/json';2995 httpRequest.headers['x-ms-version'] = '2014-06-01';2996 2997 // Serialize Request2998 var requestContent = null;2999 var requestDoc = null;3000 3001 var restoreRequestEnvelopeValue = {};3002 requestDoc = restoreRequestEnvelopeValue;3003 3004 if (restoreRequestEnvelope.request !== null && restoreRequestEnvelope.request !== undefined) {3005 var propertiesValue = {};3006 restoreRequestEnvelopeValue['properties'] = propertiesValue;3007 3008 if (restoreRequestEnvelope.request.adjustConnectionStrings !== null && restoreRequestEnvelope.request.adjustConnectionStrings !== undefined) {3009 propertiesValue['AdjustConnectionStrings'] = restoreRequestEnvelope.request.adjustConnectionStrings;3010 }3011 3012 if (restoreRequestEnvelope.request.blobName !== null && restoreRequestEnvelope.request.blobName !== undefined) {3013 propertiesValue['BlobName'] = restoreRequestEnvelope.request.blobName;3014 }3015 3016 if (restoreRequestEnvelope.request.databases !== null && restoreRequestEnvelope.request.databases !== undefined) {3017 var databasesArray = [];3018 for (var loweredIndex1 = 0; loweredIndex1 < restoreRequestEnvelope.request.databases.length; loweredIndex1 = loweredIndex1 + 1) {3019 var databasesItem = restoreRequestEnvelope.request.databases[loweredIndex1];3020 var databaseBackupSettingValue = {};3021 databasesArray.push(databaseBackupSettingValue);3022 3023 if (databasesItem.connectionString !== null && databasesItem.connectionString !== undefined) {3024 databaseBackupSettingValue['connectionString'] = databasesItem.connectionString;3025 }3026 3027 if (databasesItem.connectionStringName !== null && databasesItem.connectionStringName !== undefined) {3028 databaseBackupSettingValue['connectionStringName'] = databasesItem.connectionStringName;3029 }3030 3031 if (databasesItem.databaseType !== null && databasesItem.databaseType !== undefined) {3032 databaseBackupSettingValue['databaseType'] = databasesItem.databaseType;3033 }3034 3035 if (databasesItem.name !== null && databasesItem.name !== undefined) {3036 databaseBackupSettingValue['name'] = databasesItem.name;3037 }3038 }3039 propertiesValue['Databases'] = databasesArray;3040 }3041 3042 if (restoreRequestEnvelope.request.ignoreConflictingHostNames !== null && restoreRequestEnvelope.request.ignoreConflictingHostNames !== undefined) {3043 propertiesValue['IgnoreConflictingHostNames'] = restoreRequestEnvelope.request.ignoreConflictingHostNames;3044 }3045 3046 if (restoreRequestEnvelope.request.overwrite !== null && restoreRequestEnvelope.request.overwrite !== undefined) {3047 propertiesValue['Overwrite'] = restoreRequestEnvelope.request.overwrite;3048 }3049 3050 if (restoreRequestEnvelope.request.storageAccountUrl !== null && restoreRequestEnvelope.request.storageAccountUrl !== undefined) {3051 propertiesValue['StorageAccountUrl'] = restoreRequestEnvelope.request.storageAccountUrl;3052 }3053 }3054 3055 if (restoreRequestEnvelope.id !== null && restoreRequestEnvelope.id !== undefined) {3056 restoreRequestEnvelopeValue['id'] = restoreRequestEnvelope.id;3057 }3058 3059 if (restoreRequestEnvelope.name !== null && restoreRequestEnvelope.name !== undefined) {3060 restoreRequestEnvelopeValue['name'] = restoreRequestEnvelope.name;3061 }3062 3063 restoreRequestEnvelopeValue['location'] = restoreRequestEnvelope.location;3064 3065 if (restoreRequestEnvelope.tags !== null && restoreRequestEnvelope.tags !== undefined) {3066 var tagsDictionary = {};3067 for (var tagsKey in restoreRequestEnvelope.tags) {3068 var tagsValue = restoreRequestEnvelope.tags[tagsKey];3069 tagsDictionary[tagsKey] = tagsValue;3070 }3071 restoreRequestEnvelopeValue['tags'] = tagsDictionary;3072 }3073 3074 if (restoreRequestEnvelope.type !== null && restoreRequestEnvelope.type !== undefined) {3075 restoreRequestEnvelopeValue['type'] = restoreRequestEnvelope.type;3076 }3077 3078 requestContent = JSON.stringify(requestDoc);3079 httpRequest.body = requestContent;3080 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');3081 // Send Request3082 return this.client.pipeline(httpRequest, function (err, response, body) {3083 if (err !== null && err !== undefined) {3084 return callback(err);3085 }3086 var statusCode = response.statusCode;3087 if (statusCode !== 200) {3088 var error = new Error(body);3089 error.statusCode = response.statusCode;3090 return callback(error);3091 }3092 3093 // Create Result3094 var result = null;3095 // Deserialize Response3096 if (statusCode === 200) {3097 var responseContent = body;3098 result = {};3099 var responseDoc = null;3100 if (responseContent) {3101 responseDoc = JSON.parse(responseContent);3102 }3103 3104 if (responseDoc !== null && responseDoc !== undefined) {3105 var envelopeInstance = { tags: {} };3106 result.envelope = envelopeInstance;3107 3108 var propertiesValue2 = responseDoc['properties'];3109 if (propertiesValue2 !== null && propertiesValue2 !== undefined) {3110 var propertiesInstance = { databases: [] };3111 envelopeInstance.properties = propertiesInstance;3112 3113 var storageAccountUrlValue = propertiesValue2['storageAccountUrl'];3114 if (storageAccountUrlValue !== null && storageAccountUrlValue !== undefined) {3115 var storageAccountUrlInstance = storageAccountUrlValue;3116 propertiesInstance.storageAccountUrl = storageAccountUrlInstance;3117 }3118 3119 var blobNameValue = propertiesValue2['blobName'];3120 if (blobNameValue !== null && blobNameValue !== undefined) {3121 var blobNameInstance = blobNameValue;3122 propertiesInstance.blobName = blobNameInstance;3123 }3124 3125 var overwriteValue = propertiesValue2['overwrite'];3126 if (overwriteValue !== null && overwriteValue !== undefined) {3127 var overwriteInstance = overwriteValue;3128 propertiesInstance.overwrite = overwriteInstance;3129 }3130 3131 var databasesArray2 = propertiesValue2['databases'];3132 if (databasesArray2 !== null && databasesArray2 !== undefined) {3133 for (var loweredIndex2 = 0; loweredIndex2 < databasesArray2.length; loweredIndex2 = loweredIndex2 + 1) {3134 var databasesValue = databasesArray2[loweredIndex2];3135 var databaseBackupSettingInstance = {};3136 propertiesInstance.databases.push(databaseBackupSettingInstance);3137 3138 var connectionStringValue = databasesValue['connectionString'];3139 if (connectionStringValue !== null && connectionStringValue !== undefined) {3140 var connectionStringInstance = connectionStringValue;3141 databaseBackupSettingInstance.connectionString = connectionStringInstance;3142 }3143 3144 var connectionStringNameValue = databasesValue['connectionStringName'];3145 if (connectionStringNameValue !== null && connectionStringNameValue !== undefined) {3146 var connectionStringNameInstance = connectionStringNameValue;3147 databaseBackupSettingInstance.connectionStringName = connectionStringNameInstance;3148 }3149 3150 var databaseTypeValue = databasesValue['databaseType'];3151 if (databaseTypeValue !== null && databaseTypeValue !== undefined) {3152 var databaseTypeInstance = databaseTypeValue;3153 databaseBackupSettingInstance.databaseType = databaseTypeInstance;3154 }3155 3156 var nameValue = databasesValue['name'];3157 if (nameValue !== null && nameValue !== undefined) {3158 var nameInstance = nameValue;3159 databaseBackupSettingInstance.name = nameInstance;3160 }3161 }3162 }3163 3164 var ignoreConflictingHostNamesValue = propertiesValue2['ignoreConflictingHostNames'];3165 if (ignoreConflictingHostNamesValue !== null && ignoreConflictingHostNamesValue !== undefined) {3166 var ignoreConflictingHostNamesInstance = ignoreConflictingHostNamesValue;3167 propertiesInstance.ignoreConflictingHostNames = ignoreConflictingHostNamesInstance;3168 }3169 3170 var adjustConnectionStringsValue = propertiesValue2['adjustConnectionStrings'];3171 if (adjustConnectionStringsValue !== null && adjustConnectionStringsValue !== undefined) {3172 var adjustConnectionStringsInstance = adjustConnectionStringsValue;3173 propertiesInstance.adjustConnectionStrings = adjustConnectionStringsInstance;3174 }3175 }3176 3177 var idValue = responseDoc['id'];3178 if (idValue !== null && idValue !== undefined) {3179 var idInstance = idValue;3180 envelopeInstance.id = idInstance;3181 }3182 3183 var nameValue2 = responseDoc['name'];3184 if (nameValue2 !== null && nameValue2 !== undefined) {3185 var nameInstance2 = nameValue2;3186 envelopeInstance.name = nameInstance2;3187 }3188 3189 var locationValue = responseDoc['location'];3190 if (locationValue !== null && locationValue !== undefined) {3191 var locationInstance = locationValue;3192 envelopeInstance.location = locationInstance;3193 }3194 3195 var tagsSequenceElement = responseDoc['tags'];3196 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {3197 for (var property in tagsSequenceElement) {3198 var tagsKey2 = property;3199 var tagsValue2 = tagsSequenceElement[property];3200 envelopeInstance.tags[tagsKey2] = tagsValue2;3201 }3202 }3203 3204 var typeValue = responseDoc['type'];3205 if (typeValue !== null && typeValue !== undefined) {3206 var typeInstance = typeValue;3207 envelopeInstance.type = typeInstance;3208 }3209 }3210 3211 }3212 result.statusCode = statusCode;3213 result.requestId = response.headers['x-ms-request-id'];3214 3215 return callback(null, result);3216 });3217 };3218 3219 /**3220 * You can generate a new random password for publishing a site by issuing an3221 * HTTP POST request. Tip: If you want to verify that the publish password3222 * has changed, call HTTP GET on /publishxml before calling /newpassword. In3223 * the publish XML, note the hash value in the userPWD attribute. After3224 * calling /newpassword, call /publishxml again. You can then compare the3225 * new value of userPWD in the Publish XML with the one you noted earlier.3226 * (see http://msdn.microsoft.com/en-us/library/windowsazure/dn236428.aspx3227 * for more information)3228 * 3229 * @param {string} resourceGroupName The name of the resource group.3230 * 3231 * @param {string} webSiteName The name of the web site.3232 * 3233 * @param {string} [slotName] The name of the slot.3234 * 3235 * @param {function} callback3236 * 3237 * @returns {Stream} The response stream.3238 */3239 WebSiteOperations.prototype.generatePassword = function(resourceGroupName, webSiteName, slotName, callback) {3240 if (callback === null || callback === undefined) {3241 throw new Error('callback cannot be null.');3242 }3243 // Validate3244 if (resourceGroupName === null || resourceGroupName === undefined) {3245 return callback(new Error('resourceGroupName cannot be null.'));3246 }3247 if (webSiteName === null || webSiteName === undefined) {3248 return callback(new Error('webSiteName cannot be null.'));3249 }3250 3251 // Tracing3252 3253 // Construct URL3254 var url2 = '';3255 url2 = url2 + '/subscriptions/';3256 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {3257 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);3258 }3259 url2 = url2 + '/resourceGroups/';3260 url2 = url2 + encodeURIComponent(resourceGroupName);3261 url2 = url2 + '/providers/';3262 url2 = url2 + 'Microsoft.Web';3263 url2 = url2 + '/';3264 url2 = url2 + 'sites';3265 url2 = url2 + '/';3266 url2 = url2 + encodeURIComponent(webSiteName);3267 if (slotName !== null && slotName !== undefined) {3268 url2 = url2 + '/slots/' + encodeURIComponent(slotName);3269 }3270 url2 = url2 + '/newPassword';3271 var queryParameters = [];3272 queryParameters.push('api-version=2014-06-01');3273 if (queryParameters.length > 0) {3274 url2 = url2 + '?' + queryParameters.join('&');3275 }3276 var baseUrl = this.client.baseUri;3277 // Trim '/' character from the end of baseUrl and beginning of url.3278 if (baseUrl[baseUrl.length - 1] === '/') {3279 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);3280 }3281 if (url2[0] === '/') {3282 url2 = url2.substring(1);3283 }3284 url2 = baseUrl + '/' + url2;3285 url2 = url2.replace(' ', '%20');3286 3287 // Create HTTP transport objects3288 var httpRequest = new WebResource();3289 httpRequest.method = 'POST';3290 httpRequest.headers = {};3291 httpRequest.url = url2;3292 3293 // Set Headers3294 httpRequest.headers['Content-Length'] = '0';3295 3296 // Send Request3297 return this.client.pipeline(httpRequest, function (err, response, body) {3298 if (err !== null && err !== undefined) {3299 return callback(err);3300 }3301 var statusCode = response.statusCode;3302 if (statusCode !== 200) {3303 var error = new Error(body);3304 error.statusCode = response.statusCode;3305 return callback(error);3306 }3307 3308 // Create Result3309 var result = null;3310 // Deserialize Response3311 result = {};3312 result.statusCode = statusCode;3313 result.requestId = response.headers['x-ms-request-id'];3314 3315 return callback(null, result);3316 });3317 };3318 3319 /**3320 * You can retrieve details for a web site by issuing an HTTP GET request.3321 * (see http://msdn.microsoft.com/en-us/library/windowsazure/dn167007.aspx3322 * for more information)3323 * 3324 * @param {string} resourceGroupName The name of the resource group.3325 * 3326 * @param {string} webSiteName The name of the web site.3327 * 3328 * @param {string} [slotName] The name of the slot.3329 * 3330 * @param {WebSiteGetParameters} [parametersOrCallback] Additional parameters.3331 * 3332 * @param {array} [parametersOrCallback.propertiesToInclude] Specifies a list3333 * of the names of any addtional parameters to return.3334 * 3335 * @param {function} callback3336 * 3337 * @returns {Stream} The response stream.3338 */3339 WebSiteOperations.prototype.get = function(resourceGroupName, webSiteName, slotName, parametersOrCallback, callback) {3340 var parameters = parametersOrCallback;3341 if (_.isFunction(parameters)) {3342 callback = parameters;3343 parameters = null;3344 }3345 if (callback === null || callback === undefined) {3346 throw new Error('callback cannot be null.');3347 }3348 // Validate3349 if (resourceGroupName === null || resourceGroupName === undefined) {3350 return callback(new Error('resourceGroupName cannot be null.'));3351 }3352 if (webSiteName === null || webSiteName === undefined) {3353 return callback(new Error('webSiteName cannot be null.'));3354 }3355 3356 // Tracing3357 3358 // Construct URL3359 var url2 = '';3360 url2 = url2 + '/subscriptions/';3361 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {3362 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);3363 }3364 url2 = url2 + '/resourceGroups/';3365 url2 = url2 + encodeURIComponent(resourceGroupName);3366 url2 = url2 + '/providers/';3367 url2 = url2 + 'Microsoft.Web';3368 url2 = url2 + '/';3369 url2 = url2 + 'sites';3370 url2 = url2 + '/';3371 url2 = url2 + encodeURIComponent(webSiteName);3372 if (slotName !== null && slotName !== undefined) {3373 url2 = url2 + '/slots/' + encodeURIComponent(slotName);3374 }3375 var queryParameters = [];3376 queryParameters.push('api-version=2014-06-01');3377 if (parameters !== null && parameters !== undefined && parameters.propertiesToInclude !== null && parameters.propertiesToInclude !== undefined && parameters.propertiesToInclude.length > 0) {3378 queryParameters.push('propertiesToInclude=' + encodeURIComponent(parameters.propertiesToInclude.join(',')));3379 }3380 if (queryParameters.length > 0) {3381 url2 = url2 + '?' + queryParameters.join('&');3382 }3383 var baseUrl = this.client.baseUri;3384 // Trim '/' character from the end of baseUrl and beginning of url.3385 if (baseUrl[baseUrl.length - 1] === '/') {3386 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);3387 }3388 if (url2[0] === '/') {3389 url2 = url2.substring(1);3390 }3391 url2 = baseUrl + '/' + url2;3392 url2 = url2.replace(' ', '%20');3393 3394 // Create HTTP transport objects3395 var httpRequest = new WebResource();3396 httpRequest.method = 'GET';3397 httpRequest.headers = {};3398 httpRequest.url = url2;3399 3400 // Set Headers3401 3402 // Send Request3403 return this.client.pipeline(httpRequest, function (err, response, body) {3404 if (err !== null && err !== undefined) {3405 return callback(err);3406 }3407 var statusCode = response.statusCode;3408 if (statusCode !== 200) {3409 var error = new Error(body);3410 error.statusCode = response.statusCode;3411 return callback(error);3412 }3413 3414 // Create Result3415 var result = null;3416 // Deserialize Response3417 if (statusCode === 200) {3418 var responseContent = body;3419 result = {};3420 var responseDoc = null;3421 if (responseContent) {3422 responseDoc = JSON.parse(responseContent);3423 }3424 3425 if (responseDoc !== null && responseDoc !== undefined) {3426 var webSiteInstance = { tags: {} };3427 result.webSite = webSiteInstance;3428 3429 var propertiesValue = responseDoc['properties'];3430 if (propertiesValue !== null && propertiesValue !== undefined) {3431 var propertiesInstance = { enabledHostNames: [], hostNames: [], hostNameSslStates: [], trafficManagerHostNames: [] };3432 webSiteInstance.properties = propertiesInstance;3433 3434 var adminEnabledValue = propertiesValue['adminEnabled'];3435 if (adminEnabledValue !== null && adminEnabledValue !== undefined) {3436 var adminEnabledInstance = adminEnabledValue;3437 propertiesInstance.adminEnabled = adminEnabledInstance;3438 }3439 3440 var availabilityStateValue = propertiesValue['availabilityState'];3441 if (availabilityStateValue !== null && availabilityStateValue !== undefined) {3442 var availabilityStateInstance = availabilityStateValue;3443 propertiesInstance.availabilityState = availabilityStateInstance;3444 }3445 3446 var enabledValue = propertiesValue['enabled'];3447 if (enabledValue !== null && enabledValue !== undefined) {3448 var enabledInstance = enabledValue;3449 propertiesInstance.enabled = enabledInstance;3450 }3451 3452 var enabledHostNamesArray = propertiesValue['enabledHostNames'];3453 if (enabledHostNamesArray !== null && enabledHostNamesArray !== undefined) {3454 for (var loweredIndex1 = 0; loweredIndex1 < enabledHostNamesArray.length; loweredIndex1 = loweredIndex1 + 1) {3455 var enabledHostNamesValue = enabledHostNamesArray[loweredIndex1];3456 propertiesInstance.enabledHostNames.push(enabledHostNamesValue);3457 }3458 }3459 3460 var hostNameSslStatesArray = propertiesValue['hostNameSslStates'];3461 if (hostNameSslStatesArray !== null && hostNameSslStatesArray !== undefined) {3462 for (var loweredIndex2 = 0; loweredIndex2 < hostNameSslStatesArray.length; loweredIndex2 = loweredIndex2 + 1) {3463 var hostNameSslStatesValue = hostNameSslStatesArray[loweredIndex2];3464 var webSiteHostNameSslStateInstance = {};3465 propertiesInstance.hostNameSslStates.push(webSiteHostNameSslStateInstance);3466 3467 var nameValue = hostNameSslStatesValue['name'];3468 if (nameValue !== null && nameValue !== undefined) {3469 var nameInstance = nameValue;3470 webSiteHostNameSslStateInstance.name = nameInstance;3471 }3472 3473 var sslStateValue = hostNameSslStatesValue['sslState'];3474 if (sslStateValue !== null && sslStateValue !== undefined) {3475 var sslStateInstance = sslStateValue;3476 webSiteHostNameSslStateInstance.sslState = sslStateInstance;3477 }3478 3479 var thumbprintValue = hostNameSslStatesValue['thumbprint'];3480 if (thumbprintValue !== null && thumbprintValue !== undefined) {3481 var thumbprintInstance = thumbprintValue;3482 webSiteHostNameSslStateInstance.thumbprint = thumbprintInstance;3483 }3484 3485 var virtualIPValue = hostNameSslStatesValue['virtualIP'];3486 if (virtualIPValue !== null && virtualIPValue !== undefined) {3487 var virtualIPInstance = virtualIPValue;3488 webSiteHostNameSslStateInstance.virtualIP = virtualIPInstance;3489 }3490 3491 var ipBasedSslResultValue = hostNameSslStatesValue['ipBasedSslResult'];3492 if (ipBasedSslResultValue !== null && ipBasedSslResultValue !== undefined) {3493 var ipBasedSslResultInstance = ipBasedSslResultValue;3494 webSiteHostNameSslStateInstance.ipBasedSslResult = ipBasedSslResultInstance;3495 }3496 3497 var toUpdateValue = hostNameSslStatesValue['toUpdate'];3498 if (toUpdateValue !== null && toUpdateValue !== undefined) {3499 var toUpdateInstance = toUpdateValue;3500 webSiteHostNameSslStateInstance.toUpdate = toUpdateInstance;3501 }3502 3503 var toUpdateIpBasedSslValue = hostNameSslStatesValue['toUpdateIpBasedSsl'];3504 if (toUpdateIpBasedSslValue !== null && toUpdateIpBasedSslValue !== undefined) {3505 var toUpdateIpBasedSslInstance = toUpdateIpBasedSslValue;3506 webSiteHostNameSslStateInstance.toUpdateIpBasedSsl = toUpdateIpBasedSslInstance;3507 }3508 }3509 }3510 3511 var hostNamesArray = propertiesValue['hostNames'];3512 if (hostNamesArray !== null && hostNamesArray !== undefined) {3513 for (var loweredIndex3 = 0; loweredIndex3 < hostNamesArray.length; loweredIndex3 = loweredIndex3 + 1) {3514 var hostNamesValue = hostNamesArray[loweredIndex3];3515 propertiesInstance.hostNames.push(hostNamesValue);3516 }3517 }3518 3519 var lastModifiedTimeUtcValue = propertiesValue['lastModifiedTimeUtc'];3520 if (lastModifiedTimeUtcValue !== null && lastModifiedTimeUtcValue !== undefined) {3521 var lastModifiedTimeUtcInstance = lastModifiedTimeUtcValue;3522 propertiesInstance.lastModifiedTimeUtc = lastModifiedTimeUtcInstance;3523 }3524 3525 var repositorySiteNameValue = propertiesValue['repositorySiteName'];3526 if (repositorySiteNameValue !== null && repositorySiteNameValue !== undefined) {3527 var repositorySiteNameInstance = repositorySiteNameValue;3528 propertiesInstance.repositorySiteName = repositorySiteNameInstance;3529 }3530 3531 var runtimeAvailabilityStateValue = propertiesValue['runtimeAvailabilityState'];3532 if (runtimeAvailabilityStateValue !== null && runtimeAvailabilityStateValue !== undefined) {3533 var runtimeAvailabilityStateInstance = runtimeAvailabilityStateValue;3534 propertiesInstance.runtimeAvailabilityState = runtimeAvailabilityStateInstance;3535 }3536 3537 var trafficManagerHostNamesArray = propertiesValue['trafficManagerHostNames'];3538 if (trafficManagerHostNamesArray !== null && trafficManagerHostNamesArray !== undefined) {3539 for (var loweredIndex4 = 0; loweredIndex4 < trafficManagerHostNamesArray.length; loweredIndex4 = loweredIndex4 + 1) {3540 var trafficManagerHostNamesValue = trafficManagerHostNamesArray[loweredIndex4];3541 propertiesInstance.trafficManagerHostNames.push(trafficManagerHostNamesValue);3542 }3543 }3544 3545 var selfLinkValue = propertiesValue['selfLink'];3546 if (selfLinkValue !== null && selfLinkValue !== undefined) {3547 var selfLinkInstance = selfLinkValue;3548 propertiesInstance.uri = selfLinkInstance;3549 }3550 3551 var serverFarmValue = propertiesValue['serverFarm'];3552 if (serverFarmValue !== null && serverFarmValue !== undefined) {3553 var serverFarmInstance = serverFarmValue;3554 propertiesInstance.serverFarm = serverFarmInstance;3555 }3556 3557 var skuValue = propertiesValue['sku'];3558 if (skuValue !== null && skuValue !== undefined) {3559 var skuInstance = skuValue;3560 propertiesInstance.sku = skuInstance;3561 }3562 3563 var sitePropertiesValue = propertiesValue['siteProperties'];3564 if (sitePropertiesValue !== null && sitePropertiesValue !== undefined) {3565 var sitePropertiesInstance = { appSettings: {}, metadata: {}, properties: {} };3566 propertiesInstance.properties = sitePropertiesInstance;3567 3568 var appSettingsSequenceElement = sitePropertiesValue['appSettings'];3569 if (appSettingsSequenceElement !== null && appSettingsSequenceElement !== undefined) {3570 for (var property in appSettingsSequenceElement) {3571 var appSettingsKey = property;3572 var appSettingsValue = appSettingsSequenceElement[property];3573 sitePropertiesInstance.appSettings[appSettingsKey] = appSettingsValue;3574 }3575 }3576 3577 var metadataSequenceElement = sitePropertiesValue['metadata'];3578 if (metadataSequenceElement !== null && metadataSequenceElement !== undefined) {3579 for (var property2 in metadataSequenceElement) {3580 var metadataKey = property2;3581 var metadataValue = metadataSequenceElement[property2];3582 sitePropertiesInstance.metadata[metadataKey] = metadataValue;3583 }3584 }3585 3586 var propertiesSequenceElement = sitePropertiesValue['properties'];3587 if (propertiesSequenceElement !== null && propertiesSequenceElement !== undefined) {3588 for (var property3 in propertiesSequenceElement) {3589 var propertiesKey = property3;3590 var propertiesValue2 = propertiesSequenceElement[property3];3591 sitePropertiesInstance.properties[propertiesKey] = propertiesValue2;3592 }3593 }3594 }3595 3596 var stateValue = propertiesValue['state'];3597 if (stateValue !== null && stateValue !== undefined) {3598 var stateInstance = stateValue;3599 propertiesInstance.state = stateInstance;3600 }3601 3602 var usageStateValue = propertiesValue['usageState'];3603 if (usageStateValue !== null && usageStateValue !== undefined) {3604 var usageStateInstance = usageStateValue;3605 propertiesInstance.usageState = usageStateInstance;3606 }3607 3608 var webSpaceValue = propertiesValue['webSpace'];3609 if (webSpaceValue !== null && webSpaceValue !== undefined) {3610 var webSpaceInstance = webSpaceValue;3611 propertiesInstance.webSpace = webSpaceInstance;3612 }3613 3614 var provisioningStateValue = propertiesValue['provisioningState'];3615 if (provisioningStateValue !== null && provisioningStateValue !== undefined) {3616 var provisioningStateInstance = provisioningStateValue;3617 propertiesInstance.provisioningState = provisioningStateInstance;3618 }3619 }3620 3621 var idValue = responseDoc['id'];3622 if (idValue !== null && idValue !== undefined) {3623 var idInstance = idValue;3624 webSiteInstance.id = idInstance;3625 }3626 3627 var nameValue2 = responseDoc['name'];3628 if (nameValue2 !== null && nameValue2 !== undefined) {3629 var nameInstance2 = nameValue2;3630 webSiteInstance.name = nameInstance2;3631 }3632 3633 var locationValue = responseDoc['location'];3634 if (locationValue !== null && locationValue !== undefined) {3635 var locationInstance = locationValue;3636 webSiteInstance.location = locationInstance;3637 }3638 3639 var tagsSequenceElement = responseDoc['tags'];3640 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {3641 for (var property4 in tagsSequenceElement) {3642 var tagsKey = property4;3643 var tagsValue = tagsSequenceElement[property4];3644 webSiteInstance.tags[tagsKey] = tagsValue;3645 }3646 }3647 3648 var typeValue = responseDoc['type'];3649 if (typeValue !== null && typeValue !== undefined) {3650 var typeInstance = typeValue;3651 webSiteInstance.type = typeInstance;3652 }3653 }3654 3655 }3656 result.statusCode = statusCode;3657 result.requestId = response.headers['x-ms-request-id'];3658 3659 return callback(null, result);3660 });3661 };3662 3663 /**3664 * Restart the web site.3665 * 3666 * @param {string} resourceGroupName The name of the resource group3667 * 3668 * @param {string} webSiteName Name of website3669 * 3670 * @param {string} [slotName] The name of the slot of the website3671 * 3672 * @param {function} callback3673 * 3674 * @returns {Stream} The response stream.3675 */3676 WebSiteOperations.prototype.getAppSettings = function(resourceGroupName, webSiteName, slotName, callback) {3677 if (callback === null || callback === undefined) {3678 throw new Error('callback cannot be null.');3679 }3680 // Validate3681 if (resourceGroupName === null || resourceGroupName === undefined) {3682 return callback(new Error('resourceGroupName cannot be null.'));3683 }3684 if (webSiteName === null || webSiteName === undefined) {3685 return callback(new Error('webSiteName cannot be null.'));3686 }3687 3688 // Tracing3689 3690 // Construct URL3691 var url2 = '';3692 url2 = url2 + '/subscriptions/';3693 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {3694 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);3695 }3696 url2 = url2 + '/resourceGroups/';3697 url2 = url2 + encodeURIComponent(resourceGroupName);3698 url2 = url2 + '/providers/';3699 url2 = url2 + 'Microsoft.Web';3700 url2 = url2 + '/';3701 url2 = url2 + 'sites';3702 url2 = url2 + '/';3703 url2 = url2 + encodeURIComponent(webSiteName);3704 if (slotName !== null && slotName !== undefined) {3705 url2 = url2 + '/slots/' + encodeURIComponent(slotName);3706 }3707 url2 = url2 + '/config/appsettings/list';3708 var queryParameters = [];3709 queryParameters.push('api-version=2014-06-01');3710 if (queryParameters.length > 0) {3711 url2 = url2 + '?' + queryParameters.join('&');3712 }3713 var baseUrl = this.client.baseUri;3714 // Trim '/' character from the end of baseUrl and beginning of url.3715 if (baseUrl[baseUrl.length - 1] === '/') {3716 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);3717 }3718 if (url2[0] === '/') {3719 url2 = url2.substring(1);3720 }3721 url2 = baseUrl + '/' + url2;3722 url2 = url2.replace(' ', '%20');3723 3724 // Create HTTP transport objects3725 var httpRequest = new WebResource();3726 httpRequest.method = 'POST';3727 httpRequest.headers = {};3728 httpRequest.url = url2;3729 3730 // Set Headers3731 httpRequest.headers['Content-Length'] = '0';3732 3733 // Send Request3734 return this.client.pipeline(httpRequest, function (err, response, body) {3735 if (err !== null && err !== undefined) {3736 return callback(err);3737 }3738 var statusCode = response.statusCode;3739 if (statusCode !== 200) {3740 var error = new Error(body);3741 error.statusCode = response.statusCode;3742 return callback(error);3743 }3744 3745 // Create Result3746 var result = null;3747 // Deserialize Response3748 if (statusCode === 200) {3749 var responseContent = body;3750 result = {};3751 var responseDoc = null;3752 if (responseContent) {3753 responseDoc = JSON.parse(responseContent);3754 }3755 3756 if (responseDoc !== null && responseDoc !== undefined) {3757 var resourceInstance = { properties: [], tags: {} };3758 result.resource = resourceInstance;3759 3760 var propertiesArray = responseDoc['properties'];3761 if (propertiesArray !== null && propertiesArray !== undefined) {3762 for (var loweredIndex1 = 0; loweredIndex1 < propertiesArray.length; loweredIndex1 = loweredIndex1 + 1) {3763 var propertiesValue = propertiesArray[loweredIndex1];3764 var nameValuePairInstance = {};3765 resourceInstance.properties.push(nameValuePairInstance);3766 3767 var nameValue = propertiesValue['name'];3768 if (nameValue !== null && nameValue !== undefined) {3769 var nameInstance = nameValue;3770 nameValuePairInstance.name = nameInstance;3771 }3772 3773 var valueValue = propertiesValue['value'];3774 if (valueValue !== null && valueValue !== undefined) {3775 var valueInstance = valueValue;3776 nameValuePairInstance.value = valueInstance;3777 }3778 }3779 }3780 3781 var idValue = responseDoc['id'];3782 if (idValue !== null && idValue !== undefined) {3783 var idInstance = idValue;3784 resourceInstance.id = idInstance;3785 }3786 3787 var nameValue2 = responseDoc['name'];3788 if (nameValue2 !== null && nameValue2 !== undefined) {3789 var nameInstance2 = nameValue2;3790 resourceInstance.name = nameInstance2;3791 }3792 3793 var locationValue = responseDoc['location'];3794 if (locationValue !== null && locationValue !== undefined) {3795 var locationInstance = locationValue;3796 resourceInstance.location = locationInstance;3797 }3798 3799 var tagsSequenceElement = responseDoc['tags'];3800 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {3801 for (var property in tagsSequenceElement) {3802 var tagsKey = property;3803 var tagsValue = tagsSequenceElement[property];3804 resourceInstance.tags[tagsKey] = tagsValue;3805 }3806 }3807 3808 var typeValue = responseDoc['type'];3809 if (typeValue !== null && typeValue !== undefined) {3810 var typeInstance = typeValue;3811 resourceInstance.type = typeInstance;3812 }3813 }3814 3815 }3816 result.statusCode = statusCode;3817 result.requestId = response.headers['x-ms-request-id'];3818 3819 return callback(null, result);3820 });3821 };3822 3823 /**3824 * Gets a schedule configuration for site backups.3825 * 3826 * @param {string} resourceGroupName The name of the web space.3827 * 3828 * @param {string} webSiteName The name of the web site.3829 * 3830 * @param {string} [slotName] The name of the slot.3831 * 3832 * @param {function} callback3833 * 3834 * @returns {Stream} The response stream.3835 */3836 WebSiteOperations.prototype.getBackupConfiguration = function(resourceGroupName, webSiteName, slotName, callback) {3837 if (callback === null || callback === undefined) {3838 throw new Error('callback cannot be null.');3839 }3840 // Validate3841 if (resourceGroupName === null || resourceGroupName === undefined) {3842 return callback(new Error('resourceGroupName cannot be null.'));3843 }3844 if (webSiteName === null || webSiteName === undefined) {3845 return callback(new Error('webSiteName cannot be null.'));3846 }3847 3848 // Tracing3849 3850 // Construct URL3851 var url2 = '';3852 url2 = url2 + '/subscriptions/';3853 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {3854 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);3855 }3856 url2 = url2 + '/resourceGroups/';3857 url2 = url2 + encodeURIComponent(resourceGroupName);3858 url2 = url2 + '/providers/';3859 url2 = url2 + 'Microsoft.Web';3860 url2 = url2 + '/';3861 url2 = url2 + 'sites';3862 url2 = url2 + '/';3863 url2 = url2 + encodeURIComponent(webSiteName);3864 if (slotName !== null && slotName !== undefined) {3865 url2 = url2 + '/slots/' + encodeURIComponent(slotName);3866 }3867 url2 = url2 + '/backup/config';3868 var queryParameters = [];3869 queryParameters.push('api-version=2014-06-01');3870 if (queryParameters.length > 0) {3871 url2 = url2 + '?' + queryParameters.join('&');3872 }3873 var baseUrl = this.client.baseUri;3874 // Trim '/' character from the end of baseUrl and beginning of url.3875 if (baseUrl[baseUrl.length - 1] === '/') {3876 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);3877 }3878 if (url2[0] === '/') {3879 url2 = url2.substring(1);3880 }3881 url2 = baseUrl + '/' + url2;3882 url2 = url2.replace(' ', '%20');3883 3884 // Create HTTP transport objects3885 var httpRequest = new WebResource();3886 httpRequest.method = 'GET';3887 httpRequest.headers = {};3888 httpRequest.url = url2;3889 3890 // Set Headers3891 httpRequest.headers['x-ms-version'] = '2014-06-01';3892 3893 // Send Request3894 return this.client.pipeline(httpRequest, function (err, response, body) {3895 if (err !== null && err !== undefined) {3896 return callback(err);3897 }3898 var statusCode = response.statusCode;3899 if (statusCode !== 200) {3900 var error = new Error(body);3901 error.statusCode = response.statusCode;3902 return callback(error);3903 }3904 3905 // Create Result3906 var result = null;3907 // Deserialize Response3908 if (statusCode === 200) {3909 var responseContent = body;3910 result = {};3911 var responseDoc = null;3912 if (responseContent) {3913 responseDoc = JSON.parse(responseContent);3914 }3915 3916 if (responseDoc !== null && responseDoc !== undefined) {3917 var backupScheduleInstance = { tags: {} };3918 result.backupSchedule = backupScheduleInstance;3919 3920 var propertiesValue = responseDoc['properties'];3921 if (propertiesValue !== null && propertiesValue !== undefined) {3922 var propertiesInstance = { databases: [] };3923 backupScheduleInstance.properties = propertiesInstance;3924 3925 var enabledValue = propertiesValue['enabled'];3926 if (enabledValue !== null && enabledValue !== undefined) {3927 var enabledInstance = enabledValue;3928 propertiesInstance.enabled = enabledInstance;3929 }3930 3931 var nameValue = propertiesValue['name'];3932 if (nameValue !== null && nameValue !== undefined) {3933 var nameInstance = nameValue;3934 propertiesInstance.name = nameInstance;3935 }3936 3937 var storageAccountUrlValue = propertiesValue['storageAccountUrl'];3938 if (storageAccountUrlValue !== null && storageAccountUrlValue !== undefined) {3939 var storageAccountUrlInstance = storageAccountUrlValue;3940 propertiesInstance.storageAccountUrl = storageAccountUrlInstance;3941 }3942 3943 var backupScheduleValue = propertiesValue['backupSchedule'];3944 if (backupScheduleValue !== null && backupScheduleValue !== undefined) {3945 var backupScheduleInstance2 = {};3946 propertiesInstance.backupSchedule = backupScheduleInstance2;3947 3948 var frequencyIntervalValue = backupScheduleValue['frequencyInterval'];3949 if (frequencyIntervalValue !== null && frequencyIntervalValue !== undefined) {3950 var frequencyIntervalInstance = frequencyIntervalValue;3951 backupScheduleInstance2.frequencyInterval = frequencyIntervalInstance;3952 }3953 3954 var frequencyUnitValue = backupScheduleValue['frequencyUnit'];3955 if (frequencyUnitValue !== null && frequencyUnitValue !== undefined) {3956 var frequencyUnitInstance = frequencyUnitValue;3957 backupScheduleInstance2.frequencyUnit = frequencyUnitInstance;3958 }3959 3960 var keepAtLeastOneBackupValue = backupScheduleValue['keepAtLeastOneBackup'];3961 if (keepAtLeastOneBackupValue !== null && keepAtLeastOneBackupValue !== undefined) {3962 var keepAtLeastOneBackupInstance = keepAtLeastOneBackupValue;3963 backupScheduleInstance2.keepAtLeastOneBackup = keepAtLeastOneBackupInstance;3964 }3965 3966 var lastExecutionTimeValue = backupScheduleValue['lastExecutionTime'];3967 if (lastExecutionTimeValue !== null && lastExecutionTimeValue !== undefined) {3968 var lastExecutionTimeInstance = lastExecutionTimeValue;3969 backupScheduleInstance2.lastExecutionTime = lastExecutionTimeInstance;3970 }3971 3972 var retentionPeriodInDaysValue = backupScheduleValue['retentionPeriodInDays'];3973 if (retentionPeriodInDaysValue !== null && retentionPeriodInDaysValue !== undefined) {3974 var retentionPeriodInDaysInstance = retentionPeriodInDaysValue;3975 backupScheduleInstance2.retentionPeriodInDays = retentionPeriodInDaysInstance;3976 }3977 3978 var startTimeValue = backupScheduleValue['startTime'];3979 if (startTimeValue !== null && startTimeValue !== undefined) {3980 var startTimeInstance = startTimeValue;3981 backupScheduleInstance2.startTime = startTimeInstance;3982 }3983 }3984 3985 var databasesArray = propertiesValue['databases'];3986 if (databasesArray !== null && databasesArray !== undefined) {3987 for (var loweredIndex1 = 0; loweredIndex1 < databasesArray.length; loweredIndex1 = loweredIndex1 + 1) {3988 var databasesValue = databasesArray[loweredIndex1];3989 var databaseBackupSettingInstance = {};3990 propertiesInstance.databases.push(databaseBackupSettingInstance);3991 3992 var connectionStringValue = databasesValue['connectionString'];3993 if (connectionStringValue !== null && connectionStringValue !== undefined) {3994 var connectionStringInstance = connectionStringValue;3995 databaseBackupSettingInstance.connectionString = connectionStringInstance;3996 }3997 3998 var connectionStringNameValue = databasesValue['connectionStringName'];3999 if (connectionStringNameValue !== null && connectionStringNameValue !== undefined) {4000 var connectionStringNameInstance = connectionStringNameValue;4001 databaseBackupSettingInstance.connectionStringName = connectionStringNameInstance;4002 }4003 4004 var databaseTypeValue = databasesValue['databaseType'];4005 if (databaseTypeValue !== null && databaseTypeValue !== undefined) {4006 var databaseTypeInstance = databaseTypeValue;4007 databaseBackupSettingInstance.databaseType = databaseTypeInstance;4008 }4009 4010 var nameValue2 = databasesValue['name'];4011 if (nameValue2 !== null && nameValue2 !== undefined) {4012 var nameInstance2 = nameValue2;4013 databaseBackupSettingInstance.name = nameInstance2;4014 }4015 }4016 }4017 }4018 4019 var idValue = responseDoc['id'];4020 if (idValue !== null && idValue !== undefined) {4021 var idInstance = idValue;4022 backupScheduleInstance.id = idInstance;4023 }4024 4025 var nameValue3 = responseDoc['name'];4026 if (nameValue3 !== null && nameValue3 !== undefined) {4027 var nameInstance3 = nameValue3;4028 backupScheduleInstance.name = nameInstance3;4029 }4030 4031 var locationValue = responseDoc['location'];4032 if (locationValue !== null && locationValue !== undefined) {4033 var locationInstance = locationValue;4034 backupScheduleInstance.location = locationInstance;4035 }4036 4037 var tagsSequenceElement = responseDoc['tags'];4038 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {4039 for (var property in tagsSequenceElement) {4040 var tagsKey = property;4041 var tagsValue = tagsSequenceElement[property];4042 backupScheduleInstance.tags[tagsKey] = tagsValue;4043 }4044 }4045 4046 var typeValue = responseDoc['type'];4047 if (typeValue !== null && typeValue !== undefined) {4048 var typeInstance = typeValue;4049 backupScheduleInstance.type = typeInstance;4050 }4051 }4052 4053 }4054 result.statusCode = statusCode;4055 result.requestId = response.headers['x-ms-request-id'];4056 4057 return callback(null, result);4058 });4059 };4060 4061 /**4062 * You can retrieve the config settings for a web site by issuing an HTTP GET4063 * request, or update them by using HTTP PUT with a request body that4064 * contains the settings to be updated. (see4065 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166985.aspx for4066 * more information)4067 * 4068 * @param {string} resourceGroupName The name of the resource group.4069 * 4070 * @param {string} webSiteName The name of the web site.4071 * 4072 * @param {string} [slotName] The name of the slot.4073 * 4074 * @param {WebSiteGetConfigurationParameters} [parametersOrCallback]4075 * Additional parameters.4076 * 4077 * @param {array} [parametersOrCallback.propertiesToInclude] Specifies a list4078 * of the names of any addtional parameters to return.4079 * 4080 * @param {function} callback4081 * 4082 * @returns {Stream} The response stream.4083 */4084 WebSiteOperations.prototype.getConfiguration = function(resourceGroupName, webSiteName, slotName, parametersOrCallback, callback) {4085 var parameters = parametersOrCallback;4086 if (_.isFunction(parameters)) {4087 callback = parameters;4088 parameters = null;4089 }4090 if (callback === null || callback === undefined) {4091 throw new Error('callback cannot be null.');4092 }4093 // Validate4094 if (resourceGroupName === null || resourceGroupName === undefined) {4095 return callback(new Error('resourceGroupName cannot be null.'));4096 }4097 if (webSiteName === null || webSiteName === undefined) {4098 return callback(new Error('webSiteName cannot be null.'));4099 }4100 4101 // Tracing4102 4103 // Construct URL4104 var url2 = '';4105 url2 = url2 + '/subscriptions/';4106 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {4107 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);4108 }4109 url2 = url2 + '/resourceGroups/';4110 url2 = url2 + encodeURIComponent(resourceGroupName);4111 url2 = url2 + '/providers/';4112 url2 = url2 + 'Microsoft.Web';4113 url2 = url2 + '/';4114 url2 = url2 + 'sites';4115 url2 = url2 + '/';4116 url2 = url2 + encodeURIComponent(webSiteName);4117 if (slotName !== null && slotName !== undefined) {4118 url2 = url2 + '/slots/' + encodeURIComponent(slotName);4119 }4120 url2 = url2 + '/config/web';4121 var queryParameters = [];4122 queryParameters.push('api-version=2014-06-01');4123 if (parameters !== null && parameters !== undefined && parameters.propertiesToInclude !== null && parameters.propertiesToInclude !== undefined && parameters.propertiesToInclude.length > 0) {4124 queryParameters.push('propertiesToInclude=' + encodeURIComponent(parameters.propertiesToInclude.join(',')));4125 }4126 if (queryParameters.length > 0) {4127 url2 = url2 + '?' + queryParameters.join('&');4128 }4129 var baseUrl = this.client.baseUri;4130 // Trim '/' character from the end of baseUrl and beginning of url.4131 if (baseUrl[baseUrl.length - 1] === '/') {4132 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);4133 }4134 if (url2[0] === '/') {4135 url2 = url2.substring(1);4136 }4137 url2 = baseUrl + '/' + url2;4138 url2 = url2.replace(' ', '%20');4139 4140 // Create HTTP transport objects4141 var httpRequest = new WebResource();4142 httpRequest.method = 'GET';4143 httpRequest.headers = {};4144 httpRequest.url = url2;4145 4146 // Set Headers4147 4148 // Send Request4149 return this.client.pipeline(httpRequest, function (err, response, body) {4150 if (err !== null && err !== undefined) {4151 return callback(err);4152 }4153 var statusCode = response.statusCode;4154 if (statusCode !== 200) {4155 var error = new Error(body);4156 error.statusCode = response.statusCode;4157 return callback(error);4158 }4159 4160 // Create Result4161 var result = null;4162 // Deserialize Response4163 if (statusCode === 200) {4164 var responseContent = body;4165 result = {};4166 var responseDoc = null;4167 if (responseContent) {4168 responseDoc = JSON.parse(responseContent);4169 }4170 4171 if (responseDoc !== null && responseDoc !== undefined) {4172 var resourceInstance = { tags: {} };4173 result.resource = resourceInstance;4174 4175 var propertiesValue = responseDoc['properties'];4176 if (propertiesValue !== null && propertiesValue !== undefined) {4177 var propertiesInstance = { appSettings: {}, connectionStrings: [], defaultDocuments: [], handlerMappings: [], metadata: {} };4178 resourceInstance.properties = propertiesInstance;4179 4180 var appSettingsSequenceElement = propertiesValue['appSettings'];4181 if (appSettingsSequenceElement !== null && appSettingsSequenceElement !== undefined) {4182 for (var property in appSettingsSequenceElement) {4183 var appSettingsKey = property;4184 var appSettingsValue = appSettingsSequenceElement[property];4185 propertiesInstance.appSettings[appSettingsKey] = appSettingsValue;4186 }4187 }4188 4189 var connectionStringsArray = propertiesValue['connectionStrings'];4190 if (connectionStringsArray !== null && connectionStringsArray !== undefined) {4191 for (var loweredIndex1 = 0; loweredIndex1 < connectionStringsArray.length; loweredIndex1 = loweredIndex1 + 1) {4192 var connectionStringsValue = connectionStringsArray[loweredIndex1];4193 var connStringInfoInstance = {};4194 propertiesInstance.connectionStrings.push(connStringInfoInstance);4195 4196 var connectionStringValue = connectionStringsValue['connectionString'];4197 if (connectionStringValue !== null && connectionStringValue !== undefined) {4198 var connectionStringInstance = connectionStringValue;4199 connStringInfoInstance.connectionString = connectionStringInstance;4200 }4201 4202 var nameValue = connectionStringsValue['name'];4203 if (nameValue !== null && nameValue !== undefined) {4204 var nameInstance = nameValue;4205 connStringInfoInstance.name = nameInstance;4206 }4207 4208 var typeValue = connectionStringsValue['type'];4209 if (typeValue !== null && typeValue !== undefined) {4210 var typeInstance = typeValue;4211 connStringInfoInstance.type = typeInstance;4212 }4213 }4214 }4215 4216 var defaultDocumentsArray = propertiesValue['defaultDocuments'];4217 if (defaultDocumentsArray !== null && defaultDocumentsArray !== undefined) {4218 for (var loweredIndex2 = 0; loweredIndex2 < defaultDocumentsArray.length; loweredIndex2 = loweredIndex2 + 1) {4219 var defaultDocumentsValue = defaultDocumentsArray[loweredIndex2];4220 propertiesInstance.defaultDocuments.push(defaultDocumentsValue);4221 }4222 }4223 4224 var detailedErrorLoggingEnabledValue = propertiesValue['detailedErrorLoggingEnabled'];4225 if (detailedErrorLoggingEnabledValue !== null && detailedErrorLoggingEnabledValue !== undefined) {4226 var detailedErrorLoggingEnabledInstance = detailedErrorLoggingEnabledValue;4227 propertiesInstance.detailedErrorLoggingEnabled = detailedErrorLoggingEnabledInstance;4228 }4229 4230 var documentRootValue = propertiesValue['documentRoot'];4231 if (documentRootValue !== null && documentRootValue !== undefined) {4232 var documentRootInstance = documentRootValue;4233 propertiesInstance.documentRoot = documentRootInstance;4234 }4235 4236 var handlerMappingsArray = propertiesValue['handlerMappings'];4237 if (handlerMappingsArray !== null && handlerMappingsArray !== undefined) {4238 for (var loweredIndex3 = 0; loweredIndex3 < handlerMappingsArray.length; loweredIndex3 = loweredIndex3 + 1) {4239 var handlerMappingsValue = handlerMappingsArray[loweredIndex3];4240 var handlerMappingInstance = {};4241 propertiesInstance.handlerMappings.push(handlerMappingInstance);4242 4243 var argumentsValue = handlerMappingsValue['arguments'];4244 if (argumentsValue !== null && argumentsValue !== undefined) {4245 var argumentsInstance = argumentsValue;4246 handlerMappingInstance.arguments = argumentsInstance;4247 }4248 4249 var extensionValue = handlerMappingsValue['extension'];4250 if (extensionValue !== null && extensionValue !== undefined) {4251 var extensionInstance = extensionValue;4252 handlerMappingInstance.extension = extensionInstance;4253 }4254 4255 var scriptProcessorValue = handlerMappingsValue['scriptProcessor'];4256 if (scriptProcessorValue !== null && scriptProcessorValue !== undefined) {4257 var scriptProcessorInstance = scriptProcessorValue;4258 handlerMappingInstance.scriptProcessor = scriptProcessorInstance;4259 }4260 }4261 }4262 4263 var httpLoggingEnabledValue = propertiesValue['httpLoggingEnabled'];4264 if (httpLoggingEnabledValue !== null && httpLoggingEnabledValue !== undefined) {4265 var httpLoggingEnabledInstance = httpLoggingEnabledValue;4266 propertiesInstance.httpLoggingEnabled = httpLoggingEnabledInstance;4267 }4268 4269 var logsDirectorySizeLimitValue = propertiesValue['logsDirectorySizeLimit'];4270 if (logsDirectorySizeLimitValue !== null && logsDirectorySizeLimitValue !== undefined) {4271 var logsDirectorySizeLimitInstance = logsDirectorySizeLimitValue;4272 propertiesInstance.logsDirectorySizeLimit = logsDirectorySizeLimitInstance;4273 }4274 4275 var managedPipelineModeValue = propertiesValue['managedPipelineMode'];4276 if (managedPipelineModeValue !== null && managedPipelineModeValue !== undefined) {4277 var managedPipelineModeInstance = managedPipelineModeValue;4278 propertiesInstance.managedPipelineMode = managedPipelineModeInstance;4279 }4280 4281 var metadataSequenceElement = propertiesValue['metadata'];4282 if (metadataSequenceElement !== null && metadataSequenceElement !== undefined) {4283 for (var property2 in metadataSequenceElement) {4284 var metadataKey = property2;4285 var metadataValue = metadataSequenceElement[property2];4286 propertiesInstance.metadata[metadataKey] = metadataValue;4287 }4288 }4289 4290 var netFrameworkVersionValue = propertiesValue['netFrameworkVersion'];4291 if (netFrameworkVersionValue !== null && netFrameworkVersionValue !== undefined) {4292 var netFrameworkVersionInstance = netFrameworkVersionValue;4293 propertiesInstance.netFrameworkVersion = netFrameworkVersionInstance;4294 }4295 4296 var numberOfWorkersValue = propertiesValue['numberOfWorkers'];4297 if (numberOfWorkersValue !== null && numberOfWorkersValue !== undefined) {4298 var numberOfWorkersInstance = numberOfWorkersValue;4299 propertiesInstance.numberOfWorkers = numberOfWorkersInstance;4300 }4301 4302 var phpVersionValue = propertiesValue['phpVersion'];4303 if (phpVersionValue !== null && phpVersionValue !== undefined) {4304 var phpVersionInstance = phpVersionValue;4305 propertiesInstance.phpVersion = phpVersionInstance;4306 }4307 4308 var pythonVersionValue = propertiesValue['pythonVersion'];4309 if (pythonVersionValue !== null && pythonVersionValue !== undefined) {4310 var pythonVersionInstance = pythonVersionValue;4311 propertiesInstance.pythonVersion = pythonVersionInstance;4312 }4313 4314 var publishingPasswordValue = propertiesValue['publishingPassword'];4315 if (publishingPasswordValue !== null && publishingPasswordValue !== undefined) {4316 var publishingPasswordInstance = publishingPasswordValue;4317 propertiesInstance.publishingPassword = publishingPasswordInstance;4318 }4319 4320 var publishingUsernameValue = propertiesValue['publishingUsername'];4321 if (publishingUsernameValue !== null && publishingUsernameValue !== undefined) {4322 var publishingUsernameInstance = publishingUsernameValue;4323 propertiesInstance.publishingUserName = publishingUsernameInstance;4324 }4325 4326 var remoteDebuggingEnabledValue = propertiesValue['RemoteDebuggingEnabled'];4327 if (remoteDebuggingEnabledValue !== null && remoteDebuggingEnabledValue !== undefined) {4328 var remoteDebuggingEnabledInstance = remoteDebuggingEnabledValue;4329 propertiesInstance.remoteDebuggingEnabled = remoteDebuggingEnabledInstance;4330 }4331 4332 var remoteDebuggingVersionValue = propertiesValue['remoteDebuggingVersion'];4333 if (remoteDebuggingVersionValue !== null && remoteDebuggingVersionValue !== undefined) {4334 var remoteDebuggingVersionInstance = remoteDebuggingVersionValue;4335 propertiesInstance.remoteDebuggingVersion = remoteDebuggingVersionInstance;4336 }4337 4338 var requestTracingEnabledValue = propertiesValue['requestTracingEnabled'];4339 if (requestTracingEnabledValue !== null && requestTracingEnabledValue !== undefined) {4340 var requestTracingEnabledInstance = requestTracingEnabledValue;4341 propertiesInstance.requestTracingEnabled = requestTracingEnabledInstance;4342 }4343 4344 var requestTracingExpirationTimeValue = propertiesValue['requestTracingExpirationTime'];4345 if (requestTracingExpirationTimeValue !== null && requestTracingExpirationTimeValue !== undefined) {4346 var requestTracingExpirationTimeInstance = requestTracingExpirationTimeValue;4347 propertiesInstance.requestTracingExpirationTime = requestTracingExpirationTimeInstance;4348 }4349 4350 var scmTypeValue = propertiesValue['scmType'];4351 if (scmTypeValue !== null && scmTypeValue !== undefined) {4352 var scmTypeInstance = scmTypeValue;4353 propertiesInstance.scmType = scmTypeInstance;4354 }4355 4356 var autoSwapSlotNameValue = propertiesValue['autoSwapSlotName'];4357 if (autoSwapSlotNameValue !== null && autoSwapSlotNameValue !== undefined) {4358 var autoSwapSlotNameInstance = autoSwapSlotNameValue;4359 propertiesInstance.autoSwapSlotName = autoSwapSlotNameInstance;4360 }4361 4362 var use32BitWorkerProcessValue = propertiesValue['use32BitWorkerProcess'];4363 if (use32BitWorkerProcessValue !== null && use32BitWorkerProcessValue !== undefined) {4364 var use32BitWorkerProcessInstance = use32BitWorkerProcessValue;4365 propertiesInstance.use32BitWorkerProcess = use32BitWorkerProcessInstance;4366 }4367 4368 var webSocketsEnabledValue = propertiesValue['webSocketsEnabled'];4369 if (webSocketsEnabledValue !== null && webSocketsEnabledValue !== undefined) {4370 var webSocketsEnabledInstance = webSocketsEnabledValue;4371 propertiesInstance.webSocketsEnabled = webSocketsEnabledInstance;4372 }4373 4374 var limitsValue = propertiesValue['limits'];4375 if (limitsValue !== null && limitsValue !== undefined) {4376 var limitsInstance = {};4377 propertiesInstance.limits = limitsInstance;4378 4379 var maxPercentageCpuValue = limitsValue['maxPercentageCpu'];4380 if (maxPercentageCpuValue !== null && maxPercentageCpuValue !== undefined) {4381 var maxPercentageCpuInstance = maxPercentageCpuValue;4382 limitsInstance.maxPercentageCpu = maxPercentageCpuInstance;4383 }4384 4385 var maxMemoryInMbValue = limitsValue['maxMemoryInMb'];4386 if (maxMemoryInMbValue !== null && maxMemoryInMbValue !== undefined) {4387 var maxMemoryInMbInstance = maxMemoryInMbValue;4388 limitsInstance.maxMemoryInMb = maxMemoryInMbInstance;4389 }4390 4391 var maxDiskSizeInMbValue = limitsValue['maxDiskSizeInMb'];4392 if (maxDiskSizeInMbValue !== null && maxDiskSizeInMbValue !== undefined) {4393 var maxDiskSizeInMbInstance = maxDiskSizeInMbValue;4394 limitsInstance.maxDiskSizeInMb = maxDiskSizeInMbInstance;4395 }4396 }4397 }4398 4399 var idValue = responseDoc['id'];4400 if (idValue !== null && idValue !== undefined) {4401 var idInstance = idValue;4402 resourceInstance.id = idInstance;4403 }4404 4405 var nameValue2 = responseDoc['name'];4406 if (nameValue2 !== null && nameValue2 !== undefined) {4407 var nameInstance2 = nameValue2;4408 resourceInstance.name = nameInstance2;4409 }4410 4411 var locationValue = responseDoc['location'];4412 if (locationValue !== null && locationValue !== undefined) {4413 var locationInstance = locationValue;4414 resourceInstance.location = locationInstance;4415 }4416 4417 var tagsSequenceElement = responseDoc['tags'];4418 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {4419 for (var property3 in tagsSequenceElement) {4420 var tagsKey = property3;4421 var tagsValue = tagsSequenceElement[property3];4422 resourceInstance.tags[tagsKey] = tagsValue;4423 }4424 }4425 4426 var typeValue2 = responseDoc['type'];4427 if (typeValue2 !== null && typeValue2 !== undefined) {4428 var typeInstance2 = typeValue2;4429 resourceInstance.type = typeInstance2;4430 }4431 }4432 4433 }4434 result.statusCode = statusCode;4435 result.requestId = response.headers['x-ms-request-id'];4436 4437 return callback(null, result);4438 });4439 };4440 4441 /**4442 * Restart the web site.4443 * 4444 * @param {string} resourceGroupName The name of the resource group4445 * 4446 * @param {string} webSiteName Name of website4447 * 4448 * @param {string} [slotName] The name of the slot of the web site4449 * 4450 * @param {function} callback4451 * 4452 * @returns {Stream} The response stream.4453 */4454 WebSiteOperations.prototype.getConnectionStrings = function(resourceGroupName, webSiteName, slotName, callback) {4455 if (callback === null || callback === undefined) {4456 throw new Error('callback cannot be null.');4457 }4458 // Validate4459 if (resourceGroupName === null || resourceGroupName === undefined) {4460 return callback(new Error('resourceGroupName cannot be null.'));4461 }4462 if (webSiteName === null || webSiteName === undefined) {4463 return callback(new Error('webSiteName cannot be null.'));4464 }4465 4466 // Tracing4467 4468 // Construct URL4469 var url2 = '';4470 url2 = url2 + '/subscriptions/';4471 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {4472 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);4473 }4474 url2 = url2 + '/resourceGroups/';4475 url2 = url2 + encodeURIComponent(resourceGroupName);4476 url2 = url2 + '/providers/';4477 url2 = url2 + 'Microsoft.Web';4478 url2 = url2 + '/';4479 url2 = url2 + 'sites';4480 url2 = url2 + '/';4481 url2 = url2 + encodeURIComponent(webSiteName);4482 if (slotName !== null && slotName !== undefined) {4483 url2 = url2 + '/slots/' + encodeURIComponent(slotName);4484 }4485 url2 = url2 + '/config/connectionstrings/list';4486 var queryParameters = [];4487 queryParameters.push('api-version=2014-06-01');4488 if (queryParameters.length > 0) {4489 url2 = url2 + '?' + queryParameters.join('&');4490 }4491 var baseUrl = this.client.baseUri;4492 // Trim '/' character from the end of baseUrl and beginning of url.4493 if (baseUrl[baseUrl.length - 1] === '/') {4494 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);4495 }4496 if (url2[0] === '/') {4497 url2 = url2.substring(1);4498 }4499 url2 = baseUrl + '/' + url2;4500 url2 = url2.replace(' ', '%20');4501 4502 // Create HTTP transport objects4503 var httpRequest = new WebResource();4504 httpRequest.method = 'POST';4505 httpRequest.headers = {};4506 httpRequest.url = url2;4507 4508 // Set Headers4509 httpRequest.headers['Content-Length'] = '0';4510 4511 // Send Request4512 return this.client.pipeline(httpRequest, function (err, response, body) {4513 if (err !== null && err !== undefined) {4514 return callback(err);4515 }4516 var statusCode = response.statusCode;4517 if (statusCode !== 200) {4518 var error = new Error(body);4519 error.statusCode = response.statusCode;4520 return callback(error);4521 }4522 4523 // Create Result4524 var result = null;4525 // Deserialize Response4526 if (statusCode === 200) {4527 var responseContent = body;4528 result = {};4529 var responseDoc = null;4530 if (responseContent) {4531 responseDoc = JSON.parse(responseContent);4532 }4533 4534 if (responseDoc !== null && responseDoc !== undefined) {4535 var resourceInstance = { properties: [], tags: {} };4536 result.resource = resourceInstance;4537 4538 var propertiesArray = responseDoc['properties'];4539 if (propertiesArray !== null && propertiesArray !== undefined) {4540 for (var loweredIndex1 = 0; loweredIndex1 < propertiesArray.length; loweredIndex1 = loweredIndex1 + 1) {4541 var propertiesValue = propertiesArray[loweredIndex1];4542 var connStringInfoInstance = {};4543 resourceInstance.properties.push(connStringInfoInstance);4544 4545 var connectionStringValue = propertiesValue['connectionString'];4546 if (connectionStringValue !== null && connectionStringValue !== undefined) {4547 var connectionStringInstance = connectionStringValue;4548 connStringInfoInstance.connectionString = connectionStringInstance;4549 }4550 4551 var nameValue = propertiesValue['name'];4552 if (nameValue !== null && nameValue !== undefined) {4553 var nameInstance = nameValue;4554 connStringInfoInstance.name = nameInstance;4555 }4556 4557 var typeValue = propertiesValue['type'];4558 if (typeValue !== null && typeValue !== undefined) {4559 var typeInstance = typeValue;4560 connStringInfoInstance.type = typeInstance;4561 }4562 }4563 }4564 4565 var idValue = responseDoc['id'];4566 if (idValue !== null && idValue !== undefined) {4567 var idInstance = idValue;4568 resourceInstance.id = idInstance;4569 }4570 4571 var nameValue2 = responseDoc['name'];4572 if (nameValue2 !== null && nameValue2 !== undefined) {4573 var nameInstance2 = nameValue2;4574 resourceInstance.name = nameInstance2;4575 }4576 4577 var locationValue = responseDoc['location'];4578 if (locationValue !== null && locationValue !== undefined) {4579 var locationInstance = locationValue;4580 resourceInstance.location = locationInstance;4581 }4582 4583 var tagsSequenceElement = responseDoc['tags'];4584 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {4585 for (var property in tagsSequenceElement) {4586 var tagsKey = property;4587 var tagsValue = tagsSequenceElement[property];4588 resourceInstance.tags[tagsKey] = tagsValue;4589 }4590 }4591 4592 var typeValue2 = responseDoc['type'];4593 if (typeValue2 !== null && typeValue2 !== undefined) {4594 var typeInstance2 = typeValue2;4595 resourceInstance.type = typeInstance2;4596 }4597 }4598 4599 }4600 result.statusCode = statusCode;4601 result.requestId = response.headers['x-ms-request-id'];4602 4603 return callback(null, result);4604 });4605 };4606 4607 /**4608 * You can retrieve historical usage metrics for a site by issuing an HTTP4609 * GET request. (see4610 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166964.aspx for4611 * more information)4612 * 4613 * @param {string} resourceGroupName The name of the resource group.4614 * 4615 * @param {string} webSiteName The name of the web site.4616 * 4617 * @param {string} [slotName] The name of the slot.4618 * 4619 * @param {WebSiteGetHistoricalUsageMetricsParameters} parameters The Get Web4620 * Site Historical Usage Metrics parameters.4621 * 4622 * @param {array} [parameters.metricNames] Specifies a comma-separated list4623 * of the names of the metrics to return. If the names parameter is not4624 * specified, then all available metrics are returned.4625 * 4626 * @param {date} [parameters.startTime] The starting time of the metrics to4627 * return. If this parameter is not specified, the beginning of the current4628 * hour is used.4629 * 4630 * @param {date} [parameters.endTime] The ending time of the metrics to4631 * return. If this parameter is not specified, the current time is used.4632 * 4633 * @param {string} [parameters.timeGrain] The grain at which the metrics are4634 * returned. Supported values are PT1M (minute), PT1H (hour), P1D (day).4635 * 4636 * @param {boolean} [parameters.includeInstanceBreakdown] Flag which4637 * specifies if the metrics for each machine instance should be included.4638 * For sites that run on more than one machine this could be useful to4639 * identify a bad machine.4640 * 4641 * @param {boolean} [parameters.slotView] Flag which specifies if the metrics4642 * returned should reflect slot swaps. Let's take for example following4643 * case: if production slot has hostname www.contos.com and take traffic for4644 * 12 hours and later is swapped with staging slot. Getting metrics with4645 * SlotView=false will reflect the swap - e.g. there will be a increase on4646 * the staging slot metrics after it goes to production.If SlotView=true is4647 * used it will show the metrics for the www.contoso.com regardless which4648 * slot was serving at the moment.4649 * 4650 * @param {function} callback4651 * 4652 * @returns {Stream} The response stream.4653 */4654 WebSiteOperations.prototype.getHistoricalUsageMetrics = function(resourceGroupName, webSiteName, slotName, parameters, callback) {4655 if (callback === null || callback === undefined) {4656 throw new Error('callback cannot be null.');4657 }4658 // Validate4659 if (resourceGroupName === null || resourceGroupName === undefined) {4660 return callback(new Error('resourceGroupName cannot be null.'));4661 }4662 if (webSiteName === null || webSiteName === undefined) {4663 return callback(new Error('webSiteName cannot be null.'));4664 }4665 if (parameters === null || parameters === undefined) {4666 return callback(new Error('parameters cannot be null.'));4667 }4668 4669 // Tracing4670 4671 // Construct URL4672 var url2 = '';4673 url2 = url2 + '/subscriptions/';4674 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {4675 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);4676 }4677 url2 = url2 + '/resourceGroups/';4678 url2 = url2 + encodeURIComponent(resourceGroupName);4679 url2 = url2 + '/providers/';4680 url2 = url2 + 'Microsoft.Web';4681 url2 = url2 + '/';4682 url2 = url2 + 'sites';4683 url2 = url2 + '/';4684 url2 = url2 + encodeURIComponent(webSiteName);4685 if (slotName !== null && slotName !== undefined) {4686 url2 = url2 + '/slots/' + encodeURIComponent(slotName);4687 }4688 url2 = url2 + '/metrics';4689 var queryParameters = [];4690 queryParameters.push('api-version=2014-06-01');4691 if (parameters.metricNames !== null && parameters.metricNames !== undefined && parameters.metricNames.length > 0) {4692 queryParameters.push('names=' + encodeURIComponent(parameters.metricNames.join(',')));4693 }4694 if (parameters.startTime !== null && parameters.startTime !== undefined) {4695 queryParameters.push('StartTime=' + encodeURIComponent(parameters.startTime.toISOString()));4696 }4697 if (parameters.endTime !== null && parameters.endTime !== undefined) {4698 queryParameters.push('EndTime=' + encodeURIComponent(parameters.endTime.toISOString()));4699 }4700 if (parameters.timeGrain !== null && parameters.timeGrain !== undefined) {4701 queryParameters.push('timeGrain=' + encodeURIComponent(parameters.timeGrain));4702 }4703 if (parameters.includeInstanceBreakdown !== null && parameters.includeInstanceBreakdown !== undefined) {4704 queryParameters.push('details=' + encodeURIComponent(parameters.includeInstanceBreakdown.toString()));4705 }4706 if (parameters.slotView !== null && parameters.slotView !== undefined) {4707 queryParameters.push('slotView=' + encodeURIComponent(parameters.slotView.toString()));4708 }4709 if (queryParameters.length > 0) {4710 url2 = url2 + '?' + queryParameters.join('&');4711 }4712 var baseUrl = this.client.baseUri;4713 // Trim '/' character from the end of baseUrl and beginning of url.4714 if (baseUrl[baseUrl.length - 1] === '/') {4715 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);4716 }4717 if (url2[0] === '/') {4718 url2 = url2.substring(1);4719 }4720 url2 = baseUrl + '/' + url2;4721 url2 = url2.replace(' ', '%20');4722 4723 // Create HTTP transport objects4724 var httpRequest = new WebResource();4725 httpRequest.method = 'GET';4726 httpRequest.headers = {};4727 httpRequest.url = url2;4728 4729 // Set Headers4730 4731 // Send Request4732 return this.client.pipeline(httpRequest, function (err, response, body) {4733 if (err !== null && err !== undefined) {4734 return callback(err);4735 }4736 var statusCode = response.statusCode;4737 if (statusCode !== 200) {4738 var error = new Error(body);4739 error.statusCode = response.statusCode;4740 return callback(error);4741 }4742 4743 // Create Result4744 var result = null;4745 // Deserialize Response4746 if (statusCode === 200) {4747 var responseContent = body;4748 result = { usageMetrics: [] };4749 var responseDoc = null;4750 if (responseContent) {4751 responseDoc = JSON.parse(responseContent);4752 }4753 4754 if (responseDoc !== null && responseDoc !== undefined) {4755 var propertiesArray = responseDoc['properties'];4756 if (propertiesArray !== null && propertiesArray !== undefined) {4757 for (var loweredIndex1 = 0; loweredIndex1 < propertiesArray.length; loweredIndex1 = loweredIndex1 + 1) {4758 var propertiesValue = propertiesArray[loweredIndex1];4759 var historicalUsageMetricInstance = {};4760 result.usageMetrics.push(historicalUsageMetricInstance);4761 4762 var codeValue = propertiesValue['code'];4763 if (codeValue !== null && codeValue !== undefined) {4764 var codeInstance = codeValue;4765 historicalUsageMetricInstance.code = codeInstance;4766 }4767 4768 var dataValue = propertiesValue['data'];4769 if (dataValue !== null && dataValue !== undefined) {4770 var dataInstance = { values: [] };4771 historicalUsageMetricInstance.data = dataInstance;4772 4773 var displayNameValue = dataValue['displayName'];4774 if (displayNameValue !== null && displayNameValue !== undefined) {4775 var displayNameInstance = displayNameValue;4776 dataInstance.displayName = displayNameInstance;4777 }4778 4779 var endTimeValue = dataValue['EndTime'];4780 if (endTimeValue !== null && endTimeValue !== undefined) {4781 var endTimeInstance = endTimeValue;4782 dataInstance.endTime = endTimeInstance;4783 }4784 4785 var nameValue = dataValue['name'];4786 if (nameValue !== null && nameValue !== undefined) {4787 var nameInstance = nameValue;4788 dataInstance.name = nameInstance;4789 }4790 4791 var primaryAggregationTypeValue = dataValue['primaryAggregationType'];4792 if (primaryAggregationTypeValue !== null && primaryAggregationTypeValue !== undefined) {4793 var primaryAggregationTypeInstance = primaryAggregationTypeValue;4794 dataInstance.primaryAggregationType = primaryAggregationTypeInstance;4795 }4796 4797 var startTimeValue = dataValue['startTime'];4798 if (startTimeValue !== null && startTimeValue !== undefined) {4799 var startTimeInstance = startTimeValue;4800 dataInstance.startTime = startTimeInstance;4801 }4802 4803 var timeGrainValue = dataValue['timeGrain'];4804 if (timeGrainValue !== null && timeGrainValue !== undefined) {4805 var timeGrainInstance = timeGrainValue;4806 dataInstance.timeGrain = timeGrainInstance;4807 }4808 4809 var unitValue = dataValue['unit'];4810 if (unitValue !== null && unitValue !== undefined) {4811 var unitInstance = unitValue;4812 dataInstance.unit = unitInstance;4813 }4814 4815 var valuesArray = dataValue['values'];4816 if (valuesArray !== null && valuesArray !== undefined) {4817 for (var loweredIndex2 = 0; loweredIndex2 < valuesArray.length; loweredIndex2 = loweredIndex2 + 1) {4818 var valuesValue = valuesArray[loweredIndex2];4819 var metricSampleInstance = {};4820 dataInstance.values.push(metricSampleInstance);4821 4822 var countValue = valuesValue['count'];4823 if (countValue !== null && countValue !== undefined) {4824 var countInstance = countValue;4825 metricSampleInstance.count = countInstance;4826 }4827 4828 var maximumValue = valuesValue['maximum'];4829 if (maximumValue !== null && maximumValue !== undefined) {4830 var maximumInstance = maximumValue;4831 metricSampleInstance.maximum = maximumInstance;4832 }4833 4834 var minimumValue = valuesValue['minimum'];4835 if (minimumValue !== null && minimumValue !== undefined) {4836 var minimumInstance = minimumValue;4837 metricSampleInstance.minimum = minimumInstance;4838 }4839 4840 var timeCreatedValue = valuesValue['timeCreated'];4841 if (timeCreatedValue !== null && timeCreatedValue !== undefined) {4842 var timeCreatedInstance = timeCreatedValue;4843 metricSampleInstance.timeCreated = timeCreatedInstance;4844 }4845 4846 var totalValue = valuesValue['total'];4847 if (totalValue !== null && totalValue !== undefined) {4848 var totalInstance = totalValue;4849 metricSampleInstance.total = totalInstance;4850 }4851 4852 var instanceNameValue = valuesValue['instanceName'];4853 if (instanceNameValue !== null && instanceNameValue !== undefined) {4854 var instanceNameInstance = instanceNameValue;4855 metricSampleInstance.instanceName = instanceNameInstance;4856 }4857 }4858 }4859 }4860 4861 var messageValue = propertiesValue['message'];4862 if (messageValue !== null && messageValue !== undefined) {4863 var messageInstance = messageValue;4864 historicalUsageMetricInstance.message = messageInstance;4865 }4866 }4867 }4868 }4869 4870 }4871 result.statusCode = statusCode;4872 result.requestId = response.headers['x-ms-request-id'];4873 4874 return callback(null, result);4875 });4876 };4877 4878 /**4879 * Restart the web site.4880 * 4881 * @param {string} resourceGroupName The name of the resource group4882 * 4883 * @param {string} webSiteName Name of website4884 * 4885 * @param {string} [slotName] The name of the slot of the web site4886 * 4887 * @param {function} callback4888 * 4889 * @returns {Stream} The response stream.4890 */4891 WebSiteOperations.prototype.getMetadata = function(resourceGroupName, webSiteName, slotName, callback) {4892 if (callback === null || callback === undefined) {4893 throw new Error('callback cannot be null.');4894 }4895 // Validate4896 if (resourceGroupName === null || resourceGroupName === undefined) {4897 return callback(new Error('resourceGroupName cannot be null.'));4898 }4899 if (webSiteName === null || webSiteName === undefined) {4900 return callback(new Error('webSiteName cannot be null.'));4901 }4902 4903 // Tracing4904 4905 // Construct URL4906 var url2 = '';4907 url2 = url2 + '/subscriptions/';4908 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {4909 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);4910 }4911 url2 = url2 + '/resourceGroups/';4912 url2 = url2 + encodeURIComponent(resourceGroupName);4913 url2 = url2 + '/providers/';4914 url2 = url2 + 'Microsoft.Web';4915 url2 = url2 + '/';4916 url2 = url2 + 'sites';4917 url2 = url2 + '/';4918 url2 = url2 + encodeURIComponent(webSiteName);4919 if (slotName !== null && slotName !== undefined) {4920 url2 = url2 + '/slots/' + encodeURIComponent(slotName);4921 }4922 url2 = url2 + '/config/metadata/list';4923 var queryParameters = [];4924 queryParameters.push('api-version=2014-06-01');4925 if (queryParameters.length > 0) {4926 url2 = url2 + '?' + queryParameters.join('&');4927 }4928 var baseUrl = this.client.baseUri;4929 // Trim '/' character from the end of baseUrl and beginning of url.4930 if (baseUrl[baseUrl.length - 1] === '/') {4931 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);4932 }4933 if (url2[0] === '/') {4934 url2 = url2.substring(1);4935 }4936 url2 = baseUrl + '/' + url2;4937 url2 = url2.replace(' ', '%20');4938 4939 // Create HTTP transport objects4940 var httpRequest = new WebResource();4941 httpRequest.method = 'POST';4942 httpRequest.headers = {};4943 httpRequest.url = url2;4944 4945 // Set Headers4946 httpRequest.headers['Content-Length'] = '0';4947 4948 // Send Request4949 return this.client.pipeline(httpRequest, function (err, response, body) {4950 if (err !== null && err !== undefined) {4951 return callback(err);4952 }4953 var statusCode = response.statusCode;4954 if (statusCode !== 200) {4955 var error = new Error(body);4956 error.statusCode = response.statusCode;4957 return callback(error);4958 }4959 4960 // Create Result4961 var result = null;4962 // Deserialize Response4963 if (statusCode === 200) {4964 var responseContent = body;4965 result = {};4966 var responseDoc = null;4967 if (responseContent) {4968 responseDoc = JSON.parse(responseContent);4969 }4970 4971 if (responseDoc !== null && responseDoc !== undefined) {4972 var resourceInstance = { properties: [], tags: {} };4973 result.resource = resourceInstance;4974 4975 var propertiesArray = responseDoc['properties'];4976 if (propertiesArray !== null && propertiesArray !== undefined) {4977 for (var loweredIndex1 = 0; loweredIndex1 < propertiesArray.length; loweredIndex1 = loweredIndex1 + 1) {4978 var propertiesValue = propertiesArray[loweredIndex1];4979 var nameValuePairInstance = {};4980 resourceInstance.properties.push(nameValuePairInstance);4981 4982 var nameValue = propertiesValue['name'];4983 if (nameValue !== null && nameValue !== undefined) {4984 var nameInstance = nameValue;4985 nameValuePairInstance.name = nameInstance;4986 }4987 4988 var valueValue = propertiesValue['value'];4989 if (valueValue !== null && valueValue !== undefined) {4990 var valueInstance = valueValue;4991 nameValuePairInstance.value = valueInstance;4992 }4993 }4994 }4995 4996 var idValue = responseDoc['id'];4997 if (idValue !== null && idValue !== undefined) {4998 var idInstance = idValue;4999 resourceInstance.id = idInstance;5000 }5001 5002 var nameValue2 = responseDoc['name'];5003 if (nameValue2 !== null && nameValue2 !== undefined) {5004 var nameInstance2 = nameValue2;5005 resourceInstance.name = nameInstance2;5006 }5007 5008 var locationValue = responseDoc['location'];5009 if (locationValue !== null && locationValue !== undefined) {5010 var locationInstance = locationValue;5011 resourceInstance.location = locationInstance;5012 }5013 5014 var tagsSequenceElement = responseDoc['tags'];5015 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {5016 for (var property in tagsSequenceElement) {5017 var tagsKey = property;5018 var tagsValue = tagsSequenceElement[property];5019 resourceInstance.tags[tagsKey] = tagsValue;5020 }5021 }5022 5023 var typeValue = responseDoc['type'];5024 if (typeValue !== null && typeValue !== undefined) {5025 var typeInstance = typeValue;5026 resourceInstance.type = typeInstance;5027 }5028 }5029 5030 }5031 result.statusCode = statusCode;5032 result.requestId = response.headers['x-ms-request-id'];5033 5034 return callback(null, result);5035 });5036 };5037 5038 /**5039 * You can retrieve details for a web site by issuing an HTTP GET request.5040 * (see http://msdn.microsoft.com/en-us/library/windowsazure/dn167007.aspx5041 * for more information)5042 * 5043 * @param {string} resourceGroupName The name of the resource group.5044 * 5045 * @param {string} webSiteName The name of the web site.5046 * 5047 * @param {string} [slotName] The name of the slot.5048 * 5049 * @param {Guid} [operationId] Additional parameters.5050 * 5051 * @param {function} callback5052 * 5053 * @returns {Stream} The response stream.5054 */5055 WebSiteOperations.prototype.getOperation = function(resourceGroupName, webSiteName, slotName, operationId, callback) {5056 if (callback === null || callback === undefined) {5057 throw new Error('callback cannot be null.');5058 }5059 // Validate5060 if (resourceGroupName === null || resourceGroupName === undefined) {5061 return callback(new Error('resourceGroupName cannot be null.'));5062 }5063 if (webSiteName === null || webSiteName === undefined) {5064 return callback(new Error('webSiteName cannot be null.'));5065 }5066 5067 // Tracing5068 5069 // Construct URL5070 var url2 = '';5071 url2 = url2 + '/subscriptions/';5072 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {5073 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);5074 }5075 url2 = url2 + '/resourceGroups/';5076 url2 = url2 + encodeURIComponent(resourceGroupName);5077 url2 = url2 + '/providers/';5078 url2 = url2 + 'Microsoft.Web';5079 url2 = url2 + '/';5080 url2 = url2 + 'sites';5081 url2 = url2 + '/';5082 url2 = url2 + encodeURIComponent(webSiteName);5083 if (slotName !== null && slotName !== undefined) {5084 url2 = url2 + '/slots/' + encodeURIComponent(slotName);5085 }5086 url2 = url2 + '/operations/';5087 if (operationId !== null && operationId !== undefined) {5088 url2 = url2 + encodeURIComponent(operationId);5089 }5090 var queryParameters = [];5091 queryParameters.push('api-version=2014-06-01');5092 if (queryParameters.length > 0) {5093 url2 = url2 + '?' + queryParameters.join('&');5094 }5095 var baseUrl = this.client.baseUri;5096 // Trim '/' character from the end of baseUrl and beginning of url.5097 if (baseUrl[baseUrl.length - 1] === '/') {5098 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);5099 }5100 if (url2[0] === '/') {5101 url2 = url2.substring(1);5102 }5103 url2 = baseUrl + '/' + url2;5104 url2 = url2.replace(' ', '%20');5105 5106 // Create HTTP transport objects5107 var httpRequest = new WebResource();5108 httpRequest.method = 'GET';5109 httpRequest.headers = {};5110 httpRequest.url = url2;5111 5112 // Set Headers5113 5114 // Send Request5115 return this.client.pipeline(httpRequest, function (err, response, body) {5116 if (err !== null && err !== undefined) {5117 return callback(err);5118 }5119 var statusCode = response.statusCode;5120 if (statusCode !== 200 && statusCode !== 201 && statusCode !== 202) {5121 var error = new Error(body);5122 error.statusCode = response.statusCode;5123 return callback(error);5124 }5125 5126 // Create Result5127 var result = null;5128 // Deserialize Response5129 if (statusCode === 200 || statusCode === 201 || statusCode === 202) {5130 var responseContent = body;5131 result = {};5132 var responseDoc = null;5133 if (responseContent) {5134 responseDoc = JSON.parse(responseContent);5135 }5136 5137 if (responseDoc !== null && responseDoc !== undefined) {5138 var locationValue = responseDoc['location'];5139 if (locationValue !== null && locationValue !== undefined) {5140 var locationInstance = locationValue;5141 result.location = locationInstance;5142 }5143 5144 var retryAfterValue = responseDoc['retry-after'];5145 if (retryAfterValue !== null && retryAfterValue !== undefined) {5146 var retryAfterInstance = retryAfterValue;5147 result.retryAfter = retryAfterInstance;5148 }5149 }5150 5151 }5152 result.statusCode = statusCode;5153 result.location = response.headers['location'];5154 result.retryAfter = response.headers['retry-after'];5155 result.requestId = response.headers['x-ms-request-id'];5156 5157 return callback(null, result);5158 });5159 };5160 5161 /**5162 * Get publishing credentials for the web site.5163 * 5164 * @param {string} resourceGroupName The name of the resource group.5165 * 5166 * @param {string} webSiteName Name of website5167 * 5168 * @param {string} [slotName] The name of the slot of the web site.5169 * 5170 * @param {function} callback5171 * 5172 * @returns {Stream} The response stream.5173 */5174 WebSiteOperations.prototype.getPublishingCredentials = function(resourceGroupName, webSiteName, slotName, callback) {5175 if (callback === null || callback === undefined) {5176 throw new Error('callback cannot be null.');5177 }5178 // Validate5179 if (resourceGroupName === null || resourceGroupName === undefined) {5180 return callback(new Error('resourceGroupName cannot be null.'));5181 }5182 if (webSiteName === null || webSiteName === undefined) {5183 return callback(new Error('webSiteName cannot be null.'));5184 }5185 5186 // Tracing5187 5188 // Construct URL5189 var url2 = '';5190 url2 = url2 + '/subscriptions/';5191 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {5192 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);5193 }5194 url2 = url2 + '/resourceGroups/';5195 url2 = url2 + encodeURIComponent(resourceGroupName);5196 url2 = url2 + '/providers/';5197 url2 = url2 + 'Microsoft.Web';5198 url2 = url2 + '/';5199 url2 = url2 + 'sites';5200 url2 = url2 + '/';5201 url2 = url2 + encodeURIComponent(webSiteName);5202 if (slotName !== null && slotName !== undefined) {5203 url2 = url2 + '/slots/' + encodeURIComponent(slotName);5204 }5205 url2 = url2 + '/config/publishingcredentials/list';5206 var queryParameters = [];5207 queryParameters.push('api-version=2014-06-01');5208 if (queryParameters.length > 0) {5209 url2 = url2 + '?' + queryParameters.join('&');5210 }5211 var baseUrl = this.client.baseUri;5212 // Trim '/' character from the end of baseUrl and beginning of url.5213 if (baseUrl[baseUrl.length - 1] === '/') {5214 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);5215 }5216 if (url2[0] === '/') {5217 url2 = url2.substring(1);5218 }5219 url2 = baseUrl + '/' + url2;5220 url2 = url2.replace(' ', '%20');5221 5222 // Create HTTP transport objects5223 var httpRequest = new WebResource();5224 httpRequest.method = 'POST';5225 httpRequest.headers = {};5226 httpRequest.url = url2;5227 5228 // Set Headers5229 httpRequest.headers['Content-Length'] = '0';5230 5231 // Send Request5232 return this.client.pipeline(httpRequest, function (err, response, body) {5233 if (err !== null && err !== undefined) {5234 return callback(err);5235 }5236 var statusCode = response.statusCode;5237 if (statusCode !== 200) {5238 var error = new Error(body);5239 error.statusCode = response.statusCode;5240 return callback(error);5241 }5242 5243 // Create Result5244 var result = null;5245 // Deserialize Response5246 if (statusCode === 200) {5247 var responseContent = body;5248 result = {};5249 var responseDoc = null;5250 if (responseContent) {5251 responseDoc = JSON.parse(responseContent);5252 }5253 5254 if (responseDoc !== null && responseDoc !== undefined) {5255 var resourceInstance = { tags: {} };5256 result.resource = resourceInstance;5257 5258 var propertiesValue = responseDoc['properties'];5259 if (propertiesValue !== null && propertiesValue !== undefined) {5260 var propertiesInstance = {};5261 resourceInstance.properties = propertiesInstance;5262 5263 var publishingPasswordValue = propertiesValue['publishingPassword'];5264 if (publishingPasswordValue !== null && publishingPasswordValue !== undefined) {5265 var publishingPasswordInstance = publishingPasswordValue;5266 propertiesInstance.publishingPassword = publishingPasswordInstance;5267 }5268 5269 var publishingUserNameValue = propertiesValue['publishingUserName'];5270 if (publishingUserNameValue !== null && publishingUserNameValue !== undefined) {5271 var publishingUserNameInstance = publishingUserNameValue;5272 propertiesInstance.publishingUserName = publishingUserNameInstance;5273 }5274 }5275 5276 var idValue = responseDoc['id'];5277 if (idValue !== null && idValue !== undefined) {5278 var idInstance = idValue;5279 resourceInstance.id = idInstance;5280 }5281 5282 var nameValue = responseDoc['name'];5283 if (nameValue !== null && nameValue !== undefined) {5284 var nameInstance = nameValue;5285 resourceInstance.name = nameInstance;5286 }5287 5288 var locationValue = responseDoc['location'];5289 if (locationValue !== null && locationValue !== undefined) {5290 var locationInstance = locationValue;5291 resourceInstance.location = locationInstance;5292 }5293 5294 var tagsSequenceElement = responseDoc['tags'];5295 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {5296 for (var property in tagsSequenceElement) {5297 var tagsKey = property;5298 var tagsValue = tagsSequenceElement[property];5299 resourceInstance.tags[tagsKey] = tagsValue;5300 }5301 }5302 5303 var typeValue = responseDoc['type'];5304 if (typeValue !== null && typeValue !== undefined) {5305 var typeInstance = typeValue;5306 resourceInstance.type = typeInstance;5307 }5308 }5309 5310 }5311 result.statusCode = statusCode;5312 result.requestId = response.headers['x-ms-request-id'];5313 5314 return callback(null, result);5315 });5316 };5317 5318 /**5319 * Retrieve the publish settings information for a web site. (see5320 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166996.aspx for5321 * more information)5322 * 5323 * @param {string} resourceGroupName The name of the resource group.5324 * 5325 * @param {string} webSiteName The name of the web site.5326 * 5327 * @param {string} [slotName] The name of the slot.5328 * 5329 * @param {function} callback5330 * 5331 * @returns {Stream} The response stream.5332 */5333 WebSiteOperations.prototype.getPublishProfile = function(resourceGroupName, webSiteName, slotName, callback) {5334 if (callback === null || callback === undefined) {5335 throw new Error('callback cannot be null.');5336 }5337 // Validate5338 if (resourceGroupName === null || resourceGroupName === undefined) {5339 return callback(new Error('resourceGroupName cannot be null.'));5340 }5341 if (webSiteName === null || webSiteName === undefined) {5342 return callback(new Error('webSiteName cannot be null.'));5343 }5344 5345 // Tracing5346 5347 // Construct URL5348 var url2 = '';5349 url2 = url2 + '/subscriptions/';5350 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {5351 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);5352 }5353 url2 = url2 + '/resourceGroups/';5354 url2 = url2 + encodeURIComponent(resourceGroupName);5355 url2 = url2 + '/providers/';5356 url2 = url2 + 'Microsoft.Web';5357 url2 = url2 + '/';5358 url2 = url2 + 'sites';5359 url2 = url2 + '/';5360 url2 = url2 + encodeURIComponent(webSiteName);5361 if (slotName !== null && slotName !== undefined) {5362 url2 = url2 + '/slots/' + encodeURIComponent(slotName);5363 }5364 url2 = url2 + '/publishxml';5365 var queryParameters = [];5366 queryParameters.push('api-version=2014-06-01');5367 if (queryParameters.length > 0) {5368 url2 = url2 + '?' + queryParameters.join('&');5369 }5370 var baseUrl = this.client.baseUri;5371 // Trim '/' character from the end of baseUrl and beginning of url.5372 if (baseUrl[baseUrl.length - 1] === '/') {5373 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);5374 }5375 if (url2[0] === '/') {5376 url2 = url2.substring(1);5377 }5378 url2 = baseUrl + '/' + url2;5379 url2 = url2.replace(' ', '%20');5380 5381 // Create HTTP transport objects5382 var httpRequest = new WebResource();5383 httpRequest.method = 'POST';5384 httpRequest.headers = {};5385 httpRequest.url = url2;5386 5387 // Set Headers5388 httpRequest.headers['Content-Type'] = 'application/xml';5389 5390 // Send Request5391 return this.client.pipeline(httpRequest, function (err, response, body) {5392 if (err !== null && err !== undefined) {5393 return callback(err);5394 }5395 var statusCode = response.statusCode;5396 if (statusCode !== 200) {5397 var error = new Error(body);5398 error.statusCode = response.statusCode;5399 return callback(error);5400 }5401 5402 // Create Result5403 var result = null;5404 // Deserialize Response5405 if (statusCode === 200) {5406 var responseContent = body;5407 result = { publishProfiles: [] };5408 var options = {};5409 options.trim = false;5410 options.strict = false;5411 xml.parseString(responseContent, options, function (err2, responseDoc) {5412 if (err2 !== null && err2 !== undefined) {5413 return callback(err2);5414 }5415 5416 var publishDataSequenceElement = js2xml.getElement(responseDoc, responseDoc, 'PUBLISHDATA', '');5417 if (publishDataSequenceElement !== null && publishDataSequenceElement !== undefined) {5418 for (var loweredIndex1 = 0; loweredIndex1 < js2xml.getElements(responseDoc, publishDataSequenceElement, 'PUBLISHPROFILE', '').length; loweredIndex1 = loweredIndex1 + 1) {5419 var publishDataElement = js2xml.getElements(responseDoc, publishDataSequenceElement, 'PUBLISHPROFILE', '')[loweredIndex1];5420 var publishProfileInstance = { databases: [] };5421 result.publishProfiles.push(publishProfileInstance);5422 5423 var profileNameAttribute = js2xml.getAttribute(responseDoc, publishDataElement, 'PROFILENAME', '');5424 if (profileNameAttribute !== null && profileNameAttribute !== undefined) {5425 publishProfileInstance.profileName = profileNameAttribute;5426 }5427 5428 var publishMethodAttribute = js2xml.getAttribute(responseDoc, publishDataElement, 'PUBLISHMETHOD', '');5429 if (publishMethodAttribute !== null && publishMethodAttribute !== undefined) {5430 publishProfileInstance.publishMethod = publishMethodAttribute;5431 }5432 5433 var publishUrlAttribute = js2xml.getAttribute(responseDoc, publishDataElement, 'PUBLISHURL', '');5434 if (publishUrlAttribute !== null && publishUrlAttribute !== undefined) {5435 publishProfileInstance.publishUrl = publishUrlAttribute;5436 }5437 5438 var msdeploySiteAttribute = js2xml.getAttribute(responseDoc, publishDataElement, 'MSDEPLOYSITE', '');5439 if (msdeploySiteAttribute !== null && msdeploySiteAttribute !== undefined) {5440 publishProfileInstance.mSDeploySite = msdeploySiteAttribute;5441 }5442 5443 var ftpPassiveModeAttribute = js2xml.getAttribute(responseDoc, publishDataElement, 'FTPPASSIVEMODE', '');5444 if (ftpPassiveModeAttribute !== null && ftpPassiveModeAttribute !== undefined && (ftpPassiveModeAttribute === null || ftpPassiveModeAttribute === undefined || ftpPassiveModeAttribute.length === 0) === false) {5445 publishProfileInstance.ftpPassiveMode = ftpPassiveModeAttribute === 'true';5446 }5447 5448 var userNameAttribute = js2xml.getAttribute(responseDoc, publishDataElement, 'USERNAME', '');5449 if (userNameAttribute !== null && userNameAttribute !== undefined) {5450 publishProfileInstance.userName = userNameAttribute;5451 }5452 5453 var userPWDAttribute = js2xml.getAttribute(responseDoc, publishDataElement, 'USERPWD', '');5454 if (userPWDAttribute !== null && userPWDAttribute !== undefined) {5455 publishProfileInstance.userPassword = userPWDAttribute;5456 }5457 5458 var destinationAppUrlAttribute = js2xml.getAttribute(responseDoc, publishDataElement, 'DESTINATIONAPPURL', '');5459 if (destinationAppUrlAttribute !== null && destinationAppUrlAttribute !== undefined) {5460 publishProfileInstance.destinationAppUri = destinationAppUrlAttribute;5461 }5462 5463 var sQLServerDBConnectionStringAttribute = js2xml.getAttribute(responseDoc, publishDataElement, 'SQLSERVERDBCONNECTIONSTRING', '');5464 if (sQLServerDBConnectionStringAttribute !== null && sQLServerDBConnectionStringAttribute !== undefined) {5465 publishProfileInstance.sqlServerConnectionString = sQLServerDBConnectionStringAttribute;5466 }5467 5468 var mySQLDBConnectionStringAttribute = js2xml.getAttribute(responseDoc, publishDataElement, 'MYSQLDBCONNECTIONSTRING', '');5469 if (mySQLDBConnectionStringAttribute !== null && mySQLDBConnectionStringAttribute !== undefined) {5470 publishProfileInstance.mySqlConnectionString = mySQLDBConnectionStringAttribute;5471 }5472 5473 var hostingProviderForumLinkAttribute = js2xml.getAttribute(responseDoc, publishDataElement, 'HOSTINGPROVIDERFORUMLINK', '');5474 if (hostingProviderForumLinkAttribute !== null && hostingProviderForumLinkAttribute !== undefined) {5475 publishProfileInstance.hostingProviderForumUri = hostingProviderForumLinkAttribute;5476 }5477 5478 var controlPanelLinkAttribute = js2xml.getAttribute(responseDoc, publishDataElement, 'CONTROLPANELLINK', '');5479 if (controlPanelLinkAttribute !== null && controlPanelLinkAttribute !== undefined) {5480 publishProfileInstance.controlPanelUri = controlPanelLinkAttribute;5481 }5482 5483 var databasesSequenceElement = js2xml.getElement(responseDoc, publishDataElement, 'DATABASES', '');5484 if (databasesSequenceElement !== null && databasesSequenceElement !== undefined) {5485 for (var loweredIndex2 = 0; loweredIndex2 < js2xml.getElements(responseDoc, databasesSequenceElement, 'ADD', '').length; loweredIndex2 = loweredIndex2 + 1) {5486 var databasesElement = js2xml.getElements(responseDoc, databasesSequenceElement, 'ADD', '')[loweredIndex2];5487 var addInstance = {};5488 publishProfileInstance.databases.push(addInstance);5489 5490 var nameAttribute = js2xml.getAttribute(responseDoc, databasesElement, 'NAME', '');5491 if (nameAttribute !== null && nameAttribute !== undefined) {5492 addInstance.name = nameAttribute;5493 }5494 5495 var connectionStringAttribute = js2xml.getAttribute(responseDoc, databasesElement, 'CONNECTIONSTRING', '');5496 if (connectionStringAttribute !== null && connectionStringAttribute !== undefined) {5497 addInstance.connectionString = connectionStringAttribute;5498 }5499 5500 var providerNameAttribute = js2xml.getAttribute(responseDoc, databasesElement, 'PROVIDERNAME', '');5501 if (providerNameAttribute !== null && providerNameAttribute !== undefined) {5502 addInstance.providerName = providerNameAttribute;5503 }5504 5505 var typeAttribute = js2xml.getAttribute(responseDoc, databasesElement, 'TYPE', '');5506 if (typeAttribute !== null && typeAttribute !== undefined) {5507 addInstance.type = typeAttribute;5508 }5509 }5510 }5511 }5512 }5513 5514 });5515 }5516 result.statusCode = statusCode;5517 result.requestId = response.headers['x-ms-request-id'];5518 5519 return callback(null, result);5520 });5521 };5522 5523 /**5524 * A web site repository is essentially a GIT repository that you can use to5525 * manage your web site content. By using GIT source control tools, you can5526 * push or pull version controlled changes to your site. You can create a5527 * repository for your web site by issuing an HTTP POST request, or retrieve5528 * information about the repository by using HTTP GET. (see5529 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166967.aspx for5530 * more information)5531 * 5532 * @param {string} resourceGroupName The name of the resource group.5533 * 5534 * @param {string} webSiteName The name of the web site.5535 * 5536 * @param {string} [slotName] The name of the slot.5537 * 5538 * @param {function} callback5539 * 5540 * @returns {Stream} The response stream.5541 */5542 WebSiteOperations.prototype.getRepository = function(resourceGroupName, webSiteName, slotName, callback) {5543 if (callback === null || callback === undefined) {5544 throw new Error('callback cannot be null.');5545 }5546 // Validate5547 if (resourceGroupName === null || resourceGroupName === undefined) {5548 return callback(new Error('resourceGroupName cannot be null.'));5549 }5550 if (webSiteName === null || webSiteName === undefined) {5551 return callback(new Error('webSiteName cannot be null.'));5552 }5553 5554 // Tracing5555 5556 // Construct URL5557 var url2 = '';5558 url2 = url2 + '/subscriptions/';5559 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {5560 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);5561 }5562 url2 = url2 + '/resourceGroups/';5563 url2 = url2 + encodeURIComponent(resourceGroupName);5564 url2 = url2 + '/providers/';5565 url2 = url2 + 'Microsoft.Web';5566 url2 = url2 + '/';5567 url2 = url2 + 'sites';5568 url2 = url2 + '/';5569 url2 = url2 + encodeURIComponent(webSiteName);5570 if (slotName !== null && slotName !== undefined) {5571 url2 = url2 + '/slots/' + encodeURIComponent(slotName);5572 }5573 url2 = url2 + '/repository';5574 var queryParameters = [];5575 queryParameters.push('api-version=2014-06-01');5576 if (queryParameters.length > 0) {5577 url2 = url2 + '?' + queryParameters.join('&');5578 }5579 var baseUrl = this.client.baseUri;5580 // Trim '/' character from the end of baseUrl and beginning of url.5581 if (baseUrl[baseUrl.length - 1] === '/') {5582 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);5583 }5584 if (url2[0] === '/') {5585 url2 = url2.substring(1);5586 }5587 url2 = baseUrl + '/' + url2;5588 url2 = url2.replace(' ', '%20');5589 5590 // Create HTTP transport objects5591 var httpRequest = new WebResource();5592 httpRequest.method = 'GET';5593 httpRequest.headers = {};5594 httpRequest.url = url2;5595 5596 // Set Headers5597 5598 // Send Request5599 return this.client.pipeline(httpRequest, function (err, response, body) {5600 if (err !== null && err !== undefined) {5601 return callback(err);5602 }5603 var statusCode = response.statusCode;5604 if (statusCode !== 200) {5605 var error = new Error(body);5606 error.statusCode = response.statusCode;5607 return callback(error);5608 }5609 5610 // Create Result5611 var result = null;5612 // Deserialize Response5613 if (statusCode === 200) {5614 var responseContent = body;5615 result = {};5616 var responseDoc = null;5617 if (responseContent) {5618 responseDoc = JSON.parse(responseContent);5619 }5620 5621 if (responseDoc !== null && responseDoc !== undefined) {5622 var uriValue = responseDoc['uri'];5623 if (uriValue !== null && uriValue !== undefined) {5624 var uriInstance = uriValue;5625 result.uri = uriInstance;5626 }5627 }5628 5629 }5630 result.statusCode = statusCode;5631 result.requestId = response.headers['x-ms-request-id'];5632 5633 return callback(null, result);5634 });5635 };5636 5637 /**5638 * Update list of app settings and connection strings which to be slot5639 * specific. E.g. settings in staging slots remain in staging after swap5640 * with production.5641 * 5642 * @param {string} resourceGroupName The name of the resource group5643 * 5644 * @param {string} webSiteName The name of the website5645 * 5646 * @param {function} callback5647 * 5648 * @returns {Stream} The response stream.5649 */5650 WebSiteOperations.prototype.getSlotConfigNames = function(resourceGroupName, webSiteName, callback) {5651 if (callback === null || callback === undefined) {5652 throw new Error('callback cannot be null.');5653 }5654 // Validate5655 if (resourceGroupName === null || resourceGroupName === undefined) {5656 return callback(new Error('resourceGroupName cannot be null.'));5657 }5658 if (webSiteName === null || webSiteName === undefined) {5659 return callback(new Error('webSiteName cannot be null.'));5660 }5661 5662 // Tracing5663 5664 // Construct URL5665 var url2 = '';5666 url2 = url2 + '/subscriptions/';5667 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {5668 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);5669 }5670 url2 = url2 + '/resourceGroups/';5671 url2 = url2 + encodeURIComponent(resourceGroupName);5672 url2 = url2 + '/providers/';5673 url2 = url2 + 'Microsoft.Web';5674 url2 = url2 + '/';5675 url2 = url2 + 'sites';5676 url2 = url2 + '/';5677 url2 = url2 + encodeURIComponent(webSiteName);5678 url2 = url2 + '/slotConfigNames';5679 var queryParameters = [];5680 queryParameters.push('api-version=2014-06-01');5681 if (queryParameters.length > 0) {5682 url2 = url2 + '?' + queryParameters.join('&');5683 }5684 var baseUrl = this.client.baseUri;5685 // Trim '/' character from the end of baseUrl and beginning of url.5686 if (baseUrl[baseUrl.length - 1] === '/') {5687 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);5688 }5689 if (url2[0] === '/') {5690 url2 = url2.substring(1);5691 }5692 url2 = baseUrl + '/' + url2;5693 url2 = url2.replace(' ', '%20');5694 5695 // Create HTTP transport objects5696 var httpRequest = new WebResource();5697 httpRequest.method = 'GET';5698 httpRequest.headers = {};5699 httpRequest.url = url2;5700 5701 // Set Headers5702 httpRequest.headers['accept'] = 'application/json';5703 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';5704 5705 // Send Request5706 return this.client.pipeline(httpRequest, function (err, response, body) {5707 if (err !== null && err !== undefined) {5708 return callback(err);5709 }5710 var statusCode = response.statusCode;5711 if (statusCode !== 200) {5712 var error = new Error(body);5713 error.statusCode = response.statusCode;5714 return callback(error);5715 }5716 5717 // Create Result5718 var result = null;5719 // Deserialize Response5720 if (statusCode === 200) {5721 var responseContent = body;5722 result = {};5723 var responseDoc = null;5724 if (responseContent) {5725 responseDoc = JSON.parse(responseContent);5726 }5727 5728 if (responseDoc !== null && responseDoc !== undefined) {5729 var resourceInstance = { tags: {} };5730 result.resource = resourceInstance;5731 5732 var propertiesValue = responseDoc['properties'];5733 if (propertiesValue !== null && propertiesValue !== undefined) {5734 var propertiesInstance = { appSettingNames: [], connectionStringNames: [] };5735 resourceInstance.properties = propertiesInstance;5736 5737 var connectionStringNamesArray = propertiesValue['connectionStringNames'];5738 if (connectionStringNamesArray !== null && connectionStringNamesArray !== undefined) {5739 for (var loweredIndex1 = 0; loweredIndex1 < connectionStringNamesArray.length; loweredIndex1 = loweredIndex1 + 1) {5740 var connectionStringNamesValue = connectionStringNamesArray[loweredIndex1];5741 propertiesInstance.connectionStringNames.push(connectionStringNamesValue);5742 }5743 }5744 5745 var appSettingNamesArray = propertiesValue['appSettingNames'];5746 if (appSettingNamesArray !== null && appSettingNamesArray !== undefined) {5747 for (var loweredIndex2 = 0; loweredIndex2 < appSettingNamesArray.length; loweredIndex2 = loweredIndex2 + 1) {5748 var appSettingNamesValue = appSettingNamesArray[loweredIndex2];5749 propertiesInstance.appSettingNames.push(appSettingNamesValue);5750 }5751 }5752 }5753 5754 var idValue = responseDoc['id'];5755 if (idValue !== null && idValue !== undefined) {5756 var idInstance = idValue;5757 resourceInstance.id = idInstance;5758 }5759 5760 var nameValue = responseDoc['name'];5761 if (nameValue !== null && nameValue !== undefined) {5762 var nameInstance = nameValue;5763 resourceInstance.name = nameInstance;5764 }5765 5766 var locationValue = responseDoc['location'];5767 if (locationValue !== null && locationValue !== undefined) {5768 var locationInstance = locationValue;5769 resourceInstance.location = locationInstance;5770 }5771 5772 var tagsSequenceElement = responseDoc['tags'];5773 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {5774 for (var property in tagsSequenceElement) {5775 var tagsKey = property;5776 var tagsValue = tagsSequenceElement[property];5777 resourceInstance.tags[tagsKey] = tagsValue;5778 }5779 }5780 5781 var typeValue = responseDoc['type'];5782 if (typeValue !== null && typeValue !== undefined) {5783 var typeInstance = typeValue;5784 resourceInstance.type = typeInstance;5785 }5786 }5787 5788 }5789 result.statusCode = statusCode;5790 result.requestId = response.headers['x-ms-request-id'];5791 5792 return callback(null, result);5793 });5794 };5795 5796 /**5797 * Get a web site's current usage metrics. The metrics returned include CPU5798 * Time, Data In, Data Out, Local bytes read, Local bytes written, Network5799 * bytes read, Network bytes written, WP stop requests, Memory Usage, CPU5800 * Time - Minute Limit, and File System Storage. (see5801 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166991.aspx for5802 * more information)5803 * 5804 * @param {string} resourceGroupName The name of the resource group.5805 * 5806 * @param {string} webSiteName The name of the web site.5807 * 5808 * @param {string} [slotName] The name of the slot.5809 * 5810 * @param {function} callback5811 * 5812 * @returns {Stream} The response stream.5813 */5814 WebSiteOperations.prototype.getUsageMetrics = function(resourceGroupName, webSiteName, slotName, callback) {5815 if (callback === null || callback === undefined) {5816 throw new Error('callback cannot be null.');5817 }5818 // Validate5819 if (resourceGroupName === null || resourceGroupName === undefined) {5820 return callback(new Error('resourceGroupName cannot be null.'));5821 }5822 if (webSiteName === null || webSiteName === undefined) {5823 return callback(new Error('webSiteName cannot be null.'));5824 }5825 5826 // Tracing5827 5828 // Construct URL5829 var url2 = '';5830 url2 = url2 + '/subscriptions/';5831 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {5832 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);5833 }5834 url2 = url2 + '/resourceGroups/';5835 url2 = url2 + encodeURIComponent(resourceGroupName);5836 url2 = url2 + '/providers/';5837 url2 = url2 + 'Microsoft.Web';5838 url2 = url2 + '/';5839 url2 = url2 + 'sites';5840 url2 = url2 + '/';5841 url2 = url2 + encodeURIComponent(webSiteName);5842 if (slotName !== null && slotName !== undefined) {5843 url2 = url2 + '/slots/' + encodeURIComponent(slotName);5844 }5845 url2 = url2 + '/usages';5846 var queryParameters = [];5847 queryParameters.push('api-version=2014-06-01');5848 if (queryParameters.length > 0) {5849 url2 = url2 + '?' + queryParameters.join('&');5850 }5851 var baseUrl = this.client.baseUri;5852 // Trim '/' character from the end of baseUrl and beginning of url.5853 if (baseUrl[baseUrl.length - 1] === '/') {5854 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);5855 }5856 if (url2[0] === '/') {5857 url2 = url2.substring(1);5858 }5859 url2 = baseUrl + '/' + url2;5860 url2 = url2.replace(' ', '%20');5861 5862 // Create HTTP transport objects5863 var httpRequest = new WebResource();5864 httpRequest.method = 'GET';5865 httpRequest.headers = {};5866 httpRequest.url = url2;5867 5868 // Set Headers5869 5870 // Send Request5871 return this.client.pipeline(httpRequest, function (err, response, body) {5872 if (err !== null && err !== undefined) {5873 return callback(err);5874 }5875 var statusCode = response.statusCode;5876 if (statusCode !== 200) {5877 var error = new Error(body);5878 error.statusCode = response.statusCode;5879 return callback(error);5880 }5881 5882 // Create Result5883 var result = null;5884 // Deserialize Response5885 if (statusCode === 200) {5886 var responseContent = body;5887 result = { usageMetrics: [] };5888 var responseDoc = null;5889 if (responseContent) {5890 responseDoc = JSON.parse(responseContent);5891 }5892 5893 var usagesValue = responseDoc['usages'];5894 if (usagesValue !== null && usagesValue !== undefined) {5895 var usagesInstance = { usageMetrics: [] };5896 5897 var usageMetricsArray = usagesValue;5898 if (usageMetricsArray !== null && usageMetricsArray !== undefined) {5899 for (var loweredIndex1 = 0; loweredIndex1 < usageMetricsArray.length; loweredIndex1 = loweredIndex1 + 1) {5900 var usageMetricsValue = usageMetricsArray[loweredIndex1];5901 var usageInstance = {};5902 usagesInstance.usageMetrics.push(usageInstance);5903 5904 var currentValueValue = usageMetricsValue['currentValue'];5905 if (currentValueValue !== null && currentValueValue !== undefined) {5906 var currentValueInstance = currentValueValue;5907 usageInstance.currentValue = currentValueInstance;5908 }5909 5910 var displayNameValue = usageMetricsValue['displayName'];5911 if (displayNameValue !== null && displayNameValue !== undefined) {5912 var displayNameInstance = displayNameValue;5913 usageInstance.displayName = displayNameInstance;5914 }5915 5916 var limitValue = usageMetricsValue['limit'];5917 if (limitValue !== null && limitValue !== undefined) {5918 var limitInstance = limitValue;5919 usageInstance.limit = limitInstance;5920 }5921 5922 var nameValue = usageMetricsValue['name'];5923 if (nameValue !== null && nameValue !== undefined) {5924 var nameInstance = nameValue;5925 usageInstance.name = nameInstance;5926 }5927 5928 var nextResetTimeValue = usageMetricsValue['nextResetTime'];5929 if (nextResetTimeValue !== null && nextResetTimeValue !== undefined) {5930 var nextResetTimeInstance = nextResetTimeValue;5931 usageInstance.nextResetTime = nextResetTimeInstance;5932 }5933 5934 var resourceNameValue = usageMetricsValue['resourceName'];5935 if (resourceNameValue !== null && resourceNameValue !== undefined) {5936 var resourceNameInstance = resourceNameValue;5937 usageInstance.resourceName = resourceNameInstance;5938 }5939 5940 var unitValue = usageMetricsValue['unit'];5941 if (unitValue !== null && unitValue !== undefined) {5942 var unitInstance = unitValue;5943 usageInstance.unit = unitInstance;5944 }5945 }5946 }5947 }5948 5949 }5950 result.statusCode = statusCode;5951 result.requestId = response.headers['x-ms-request-id'];5952 5953 return callback(null, result);5954 });5955 };5956 5957 /**5958 * List the Web Sites in a resource group.5959 * 5960 * @param {string} resourceGroupName The name of the resource group.5961 * 5962 * @param {string} [webSiteName] The name of the web site.5963 * 5964 * @param {WebSiteListParameters} [parametersOrCallback] Additional5965 * parameters.5966 * 5967 * @param {array} [parametersOrCallback.propertiesToInclude] Specifies a list5968 * of the names of any addtional parameters to return.5969 * 5970 * @param {function} callback5971 * 5972 * @returns {Stream} The response stream.5973 */5974 WebSiteOperations.prototype.list = function(resourceGroupName, webSiteName, parametersOrCallback, callback) {5975 var parameters = parametersOrCallback;5976 if (_.isFunction(parameters)) {5977 callback = parameters;5978 parameters = null;5979 }5980 if (callback === null || callback === undefined) {5981 throw new Error('callback cannot be null.');5982 }5983 // Validate5984 if (resourceGroupName === null || resourceGroupName === undefined) {5985 return callback(new Error('resourceGroupName cannot be null.'));5986 }5987 5988 // Tracing5989 5990 // Construct URL5991 var url2 = '';5992 url2 = url2 + '/subscriptions/';5993 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {5994 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);5995 }5996 url2 = url2 + '/resourceGroups/';5997 url2 = url2 + encodeURIComponent(resourceGroupName);5998 url2 = url2 + '/providers/';5999 url2 = url2 + 'Microsoft.Web';6000 url2 = url2 + '/';6001 url2 = url2 + 'sites';6002 if (webSiteName !== null && webSiteName !== undefined) {6003 url2 = url2 + '/' + encodeURIComponent(webSiteName) + '/slots/';6004 }6005 var queryParameters = [];6006 queryParameters.push('api-version=2014-06-01');6007 if (parameters !== null && parameters !== undefined && parameters.propertiesToInclude !== null && parameters.propertiesToInclude !== undefined && parameters.propertiesToInclude.length > 0) {6008 queryParameters.push('propertiesToInclude=' + encodeURIComponent(parameters.propertiesToInclude.join(',')));6009 }6010 if (queryParameters.length > 0) {6011 url2 = url2 + '?' + queryParameters.join('&');6012 }6013 var baseUrl = this.client.baseUri;6014 // Trim '/' character from the end of baseUrl and beginning of url.6015 if (baseUrl[baseUrl.length - 1] === '/') {6016 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);6017 }6018 if (url2[0] === '/') {6019 url2 = url2.substring(1);6020 }6021 url2 = baseUrl + '/' + url2;6022 url2 = url2.replace(' ', '%20');6023 6024 // Create HTTP transport objects6025 var httpRequest = new WebResource();6026 httpRequest.method = 'GET';6027 httpRequest.headers = {};6028 httpRequest.url = url2;6029 6030 // Set Headers6031 6032 // Send Request6033 return this.client.pipeline(httpRequest, function (err, response, body) {6034 if (err !== null && err !== undefined) {6035 return callback(err);6036 }6037 var statusCode = response.statusCode;6038 if (statusCode !== 200) {6039 var error = new Error(body);6040 error.statusCode = response.statusCode;6041 return callback(error);6042 }6043 6044 // Create Result6045 var result = null;6046 // Deserialize Response6047 if (statusCode === 200) {6048 var responseContent = body;6049 result = { webSites: [] };6050 var responseDoc = null;6051 if (responseContent) {6052 responseDoc = JSON.parse(responseContent);6053 }6054 6055 if (responseDoc !== null && responseDoc !== undefined) {6056 var valueArray = responseDoc['value'];6057 if (valueArray !== null && valueArray !== undefined) {6058 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {6059 var valueValue = valueArray[loweredIndex1];6060 var webSiteInstance = { tags: {} };6061 result.webSites.push(webSiteInstance);6062 6063 var propertiesValue = valueValue['properties'];6064 if (propertiesValue !== null && propertiesValue !== undefined) {6065 var propertiesInstance = { enabledHostNames: [], hostNames: [], hostNameSslStates: [], trafficManagerHostNames: [] };6066 webSiteInstance.properties = propertiesInstance;6067 6068 var adminEnabledValue = propertiesValue['adminEnabled'];6069 if (adminEnabledValue !== null && adminEnabledValue !== undefined) {6070 var adminEnabledInstance = adminEnabledValue;6071 propertiesInstance.adminEnabled = adminEnabledInstance;6072 }6073 6074 var availabilityStateValue = propertiesValue['availabilityState'];6075 if (availabilityStateValue !== null && availabilityStateValue !== undefined) {6076 var availabilityStateInstance = availabilityStateValue;6077 propertiesInstance.availabilityState = availabilityStateInstance;6078 }6079 6080 var enabledValue = propertiesValue['enabled'];6081 if (enabledValue !== null && enabledValue !== undefined) {6082 var enabledInstance = enabledValue;6083 propertiesInstance.enabled = enabledInstance;6084 }6085 6086 var enabledHostNamesArray = propertiesValue['enabledHostNames'];6087 if (enabledHostNamesArray !== null && enabledHostNamesArray !== undefined) {6088 for (var loweredIndex2 = 0; loweredIndex2 < enabledHostNamesArray.length; loweredIndex2 = loweredIndex2 + 1) {6089 var enabledHostNamesValue = enabledHostNamesArray[loweredIndex2];6090 propertiesInstance.enabledHostNames.push(enabledHostNamesValue);6091 }6092 }6093 6094 var hostNameSslStatesArray = propertiesValue['hostNameSslStates'];6095 if (hostNameSslStatesArray !== null && hostNameSslStatesArray !== undefined) {6096 for (var loweredIndex3 = 0; loweredIndex3 < hostNameSslStatesArray.length; loweredIndex3 = loweredIndex3 + 1) {6097 var hostNameSslStatesValue = hostNameSslStatesArray[loweredIndex3];6098 var webSiteHostNameSslStateInstance = {};6099 propertiesInstance.hostNameSslStates.push(webSiteHostNameSslStateInstance);6100 6101 var nameValue = hostNameSslStatesValue['name'];6102 if (nameValue !== null && nameValue !== undefined) {6103 var nameInstance = nameValue;6104 webSiteHostNameSslStateInstance.name = nameInstance;6105 }6106 6107 var sslStateValue = hostNameSslStatesValue['sslState'];6108 if (sslStateValue !== null && sslStateValue !== undefined) {6109 var sslStateInstance = sslStateValue;6110 webSiteHostNameSslStateInstance.sslState = sslStateInstance;6111 }6112 6113 var thumbprintValue = hostNameSslStatesValue['thumbprint'];6114 if (thumbprintValue !== null && thumbprintValue !== undefined) {6115 var thumbprintInstance = thumbprintValue;6116 webSiteHostNameSslStateInstance.thumbprint = thumbprintInstance;6117 }6118 6119 var virtualIPValue = hostNameSslStatesValue['virtualIP'];6120 if (virtualIPValue !== null && virtualIPValue !== undefined) {6121 var virtualIPInstance = virtualIPValue;6122 webSiteHostNameSslStateInstance.virtualIP = virtualIPInstance;6123 }6124 6125 var ipBasedSslResultValue = hostNameSslStatesValue['ipBasedSslResult'];6126 if (ipBasedSslResultValue !== null && ipBasedSslResultValue !== undefined) {6127 var ipBasedSslResultInstance = ipBasedSslResultValue;6128 webSiteHostNameSslStateInstance.ipBasedSslResult = ipBasedSslResultInstance;6129 }6130 6131 var toUpdateValue = hostNameSslStatesValue['toUpdate'];6132 if (toUpdateValue !== null && toUpdateValue !== undefined) {6133 var toUpdateInstance = toUpdateValue;6134 webSiteHostNameSslStateInstance.toUpdate = toUpdateInstance;6135 }6136 6137 var toUpdateIpBasedSslValue = hostNameSslStatesValue['toUpdateIpBasedSsl'];6138 if (toUpdateIpBasedSslValue !== null && toUpdateIpBasedSslValue !== undefined) {6139 var toUpdateIpBasedSslInstance = toUpdateIpBasedSslValue;6140 webSiteHostNameSslStateInstance.toUpdateIpBasedSsl = toUpdateIpBasedSslInstance;6141 }6142 }6143 }6144 6145 var hostNamesArray = propertiesValue['hostNames'];6146 if (hostNamesArray !== null && hostNamesArray !== undefined) {6147 for (var loweredIndex4 = 0; loweredIndex4 < hostNamesArray.length; loweredIndex4 = loweredIndex4 + 1) {6148 var hostNamesValue = hostNamesArray[loweredIndex4];6149 propertiesInstance.hostNames.push(hostNamesValue);6150 }6151 }6152 6153 var lastModifiedTimeUtcValue = propertiesValue['lastModifiedTimeUtc'];6154 if (lastModifiedTimeUtcValue !== null && lastModifiedTimeUtcValue !== undefined) {6155 var lastModifiedTimeUtcInstance = lastModifiedTimeUtcValue;6156 propertiesInstance.lastModifiedTimeUtc = lastModifiedTimeUtcInstance;6157 }6158 6159 var repositorySiteNameValue = propertiesValue['repositorySiteName'];6160 if (repositorySiteNameValue !== null && repositorySiteNameValue !== undefined) {6161 var repositorySiteNameInstance = repositorySiteNameValue;6162 propertiesInstance.repositorySiteName = repositorySiteNameInstance;6163 }6164 6165 var runtimeAvailabilityStateValue = propertiesValue['runtimeAvailabilityState'];6166 if (runtimeAvailabilityStateValue !== null && runtimeAvailabilityStateValue !== undefined) {6167 var runtimeAvailabilityStateInstance = runtimeAvailabilityStateValue;6168 propertiesInstance.runtimeAvailabilityState = runtimeAvailabilityStateInstance;6169 }6170 6171 var trafficManagerHostNamesArray = propertiesValue['trafficManagerHostNames'];6172 if (trafficManagerHostNamesArray !== null && trafficManagerHostNamesArray !== undefined) {6173 for (var loweredIndex5 = 0; loweredIndex5 < trafficManagerHostNamesArray.length; loweredIndex5 = loweredIndex5 + 1) {6174 var trafficManagerHostNamesValue = trafficManagerHostNamesArray[loweredIndex5];6175 propertiesInstance.trafficManagerHostNames.push(trafficManagerHostNamesValue);6176 }6177 }6178 6179 var selfLinkValue = propertiesValue['selfLink'];6180 if (selfLinkValue !== null && selfLinkValue !== undefined) {6181 var selfLinkInstance = selfLinkValue;6182 propertiesInstance.uri = selfLinkInstance;6183 }6184 6185 var serverFarmValue = propertiesValue['serverFarm'];6186 if (serverFarmValue !== null && serverFarmValue !== undefined) {6187 var serverFarmInstance = serverFarmValue;6188 propertiesInstance.serverFarm = serverFarmInstance;6189 }6190 6191 var skuValue = propertiesValue['sku'];6192 if (skuValue !== null && skuValue !== undefined) {6193 var skuInstance = skuValue;6194 propertiesInstance.sku = skuInstance;6195 }6196 6197 var sitePropertiesValue = propertiesValue['siteProperties'];6198 if (sitePropertiesValue !== null && sitePropertiesValue !== undefined) {6199 var sitePropertiesInstance = { appSettings: {}, metadata: {}, properties: {} };6200 propertiesInstance.properties = sitePropertiesInstance;6201 6202 var appSettingsSequenceElement = sitePropertiesValue['appSettings'];6203 if (appSettingsSequenceElement !== null && appSettingsSequenceElement !== undefined) {6204 for (var property in appSettingsSequenceElement) {6205 var appSettingsKey = property;6206 var appSettingsValue = appSettingsSequenceElement[property];6207 sitePropertiesInstance.appSettings[appSettingsKey] = appSettingsValue;6208 }6209 }6210 6211 var metadataSequenceElement = sitePropertiesValue['metadata'];6212 if (metadataSequenceElement !== null && metadataSequenceElement !== undefined) {6213 for (var property2 in metadataSequenceElement) {6214 var metadataKey = property2;6215 var metadataValue = metadataSequenceElement[property2];6216 sitePropertiesInstance.metadata[metadataKey] = metadataValue;6217 }6218 }6219 6220 var propertiesSequenceElement = sitePropertiesValue['properties'];6221 if (propertiesSequenceElement !== null && propertiesSequenceElement !== undefined) {6222 for (var property3 in propertiesSequenceElement) {6223 var propertiesKey = property3;6224 var propertiesValue2 = propertiesSequenceElement[property3];6225 sitePropertiesInstance.properties[propertiesKey] = propertiesValue2;6226 }6227 }6228 }6229 6230 var stateValue = propertiesValue['state'];6231 if (stateValue !== null && stateValue !== undefined) {6232 var stateInstance = stateValue;6233 propertiesInstance.state = stateInstance;6234 }6235 6236 var usageStateValue = propertiesValue['usageState'];6237 if (usageStateValue !== null && usageStateValue !== undefined) {6238 var usageStateInstance = usageStateValue;6239 propertiesInstance.usageState = usageStateInstance;6240 }6241 6242 var webSpaceValue = propertiesValue['webSpace'];6243 if (webSpaceValue !== null && webSpaceValue !== undefined) {6244 var webSpaceInstance = webSpaceValue;6245 propertiesInstance.webSpace = webSpaceInstance;6246 }6247 6248 var provisioningStateValue = propertiesValue['provisioningState'];6249 if (provisioningStateValue !== null && provisioningStateValue !== undefined) {6250 var provisioningStateInstance = provisioningStateValue;6251 propertiesInstance.provisioningState = provisioningStateInstance;6252 }6253 }6254 6255 var idValue = valueValue['id'];6256 if (idValue !== null && idValue !== undefined) {6257 var idInstance = idValue;6258 webSiteInstance.id = idInstance;6259 }6260 6261 var nameValue2 = valueValue['name'];6262 if (nameValue2 !== null && nameValue2 !== undefined) {6263 var nameInstance2 = nameValue2;6264 webSiteInstance.name = nameInstance2;6265 }6266 6267 var locationValue = valueValue['location'];6268 if (locationValue !== null && locationValue !== undefined) {6269 var locationInstance = locationValue;6270 webSiteInstance.location = locationInstance;6271 }6272 6273 var tagsSequenceElement = valueValue['tags'];6274 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {6275 for (var property4 in tagsSequenceElement) {6276 var tagsKey = property4;6277 var tagsValue = tagsSequenceElement[property4];6278 webSiteInstance.tags[tagsKey] = tagsValue;6279 }6280 }6281 6282 var typeValue = valueValue['type'];6283 if (typeValue !== null && typeValue !== undefined) {6284 var typeInstance = typeValue;6285 webSiteInstance.type = typeInstance;6286 }6287 }6288 }6289 }6290 6291 }6292 result.statusCode = statusCode;6293 result.requestId = response.headers['x-ms-request-id'];6294 6295 return callback(null, result);6296 });6297 };6298 6299 /**6300 * Returns list of all backups which are tracked by the system.6301 * 6302 * @param {string} resourceGroupName The name of the resource group.6303 * 6304 * @param {string} webSiteName The name of the web site.6305 * 6306 * @param {string} [slotName] The name of the slot.6307 * 6308 * @param {function} callback6309 * 6310 * @returns {Stream} The response stream.6311 */6312 WebSiteOperations.prototype.listBackups = function(resourceGroupName, webSiteName, slotName, callback) {6313 if (callback === null || callback === undefined) {6314 throw new Error('callback cannot be null.');6315 }6316 // Validate6317 if (resourceGroupName === null || resourceGroupName === undefined) {6318 return callback(new Error('resourceGroupName cannot be null.'));6319 }6320 if (webSiteName === null || webSiteName === undefined) {6321 return callback(new Error('webSiteName cannot be null.'));6322 }6323 6324 // Tracing6325 6326 // Construct URL6327 var url2 = '';6328 url2 = url2 + '/subscriptions/';6329 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {6330 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);6331 }6332 url2 = url2 + '/resourceGroups/';6333 url2 = url2 + encodeURIComponent(resourceGroupName);6334 url2 = url2 + '/providers/';6335 url2 = url2 + 'Microsoft.Web';6336 url2 = url2 + '/';6337 url2 = url2 + 'sites';6338 url2 = url2 + '/';6339 url2 = url2 + encodeURIComponent(webSiteName);6340 if (slotName !== null && slotName !== undefined) {6341 url2 = url2 + '/slots/' + encodeURIComponent(slotName);6342 }6343 url2 = url2 + '/restore';6344 var queryParameters = [];6345 queryParameters.push('api-version=2014-06-01');6346 if (queryParameters.length > 0) {6347 url2 = url2 + '?' + queryParameters.join('&');6348 }6349 var baseUrl = this.client.baseUri;6350 // Trim '/' character from the end of baseUrl and beginning of url.6351 if (baseUrl[baseUrl.length - 1] === '/') {6352 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);6353 }6354 if (url2[0] === '/') {6355 url2 = url2.substring(1);6356 }6357 url2 = baseUrl + '/' + url2;6358 url2 = url2.replace(' ', '%20');6359 6360 // Create HTTP transport objects6361 var httpRequest = new WebResource();6362 httpRequest.method = 'GET';6363 httpRequest.headers = {};6364 httpRequest.url = url2;6365 6366 // Set Headers6367 httpRequest.headers['x-ms-version'] = '2014-06-01';6368 6369 // Send Request6370 return this.client.pipeline(httpRequest, function (err, response, body) {6371 if (err !== null && err !== undefined) {6372 return callback(err);6373 }6374 var statusCode = response.statusCode;6375 if (statusCode !== 200) {6376 var error = new Error(body);6377 error.statusCode = response.statusCode;6378 return callback(error);6379 }6380 6381 // Create Result6382 var result = null;6383 // Deserialize Response6384 if (statusCode === 200) {6385 var responseContent = body;6386 result = {};6387 var responseDoc = null;6388 if (responseContent) {6389 responseDoc = JSON.parse(responseContent);6390 }6391 6392 if (responseDoc !== null && responseDoc !== undefined) {6393 var backupListInstance = { properties: [], tags: {} };6394 result.backupList = backupListInstance;6395 6396 var propertiesArray = responseDoc['properties'];6397 if (propertiesArray !== null && propertiesArray !== undefined) {6398 for (var loweredIndex1 = 0; loweredIndex1 < propertiesArray.length; loweredIndex1 = loweredIndex1 + 1) {6399 var propertiesValue = propertiesArray[loweredIndex1];6400 var backupItemInstance = { databases: [] };6401 backupListInstance.properties.push(backupItemInstance);6402 6403 var storageAccountUrlValue = propertiesValue['storageAccountUrl'];6404 if (storageAccountUrlValue !== null && storageAccountUrlValue !== undefined) {6405 var storageAccountUrlInstance = storageAccountUrlValue;6406 backupItemInstance.storageAccountUrl = storageAccountUrlInstance;6407 }6408 6409 var blobNameValue = propertiesValue['blobName'];6410 if (blobNameValue !== null && blobNameValue !== undefined) {6411 var blobNameInstance = blobNameValue;6412 backupItemInstance.blobName = blobNameInstance;6413 }6414 6415 var nameValue = propertiesValue['name'];6416 if (nameValue !== null && nameValue !== undefined) {6417 var nameInstance = nameValue;6418 backupItemInstance.name = nameInstance;6419 }6420 6421 var statusValue = propertiesValue['status'];6422 if (statusValue !== null && statusValue !== undefined) {6423 var statusInstance = statusValue;6424 backupItemInstance.status = statusInstance;6425 }6426 6427 var sizeInBytesValue = propertiesValue['sizeInBytes'];6428 if (sizeInBytesValue !== null && sizeInBytesValue !== undefined) {6429 var sizeInBytesInstance = sizeInBytesValue;6430 backupItemInstance.sizeInBytes = sizeInBytesInstance;6431 }6432 6433 var createdValue = propertiesValue['created'];6434 if (createdValue !== null && createdValue !== undefined) {6435 var createdInstance = createdValue;6436 backupItemInstance.created = createdInstance;6437 }6438 6439 var logValue = propertiesValue['log'];6440 if (logValue !== null && logValue !== undefined) {6441 var logInstance = logValue;6442 backupItemInstance.log = logInstance;6443 }6444 6445 var databasesArray = propertiesValue['databases'];6446 if (databasesArray !== null && databasesArray !== undefined) {6447 for (var loweredIndex2 = 0; loweredIndex2 < databasesArray.length; loweredIndex2 = loweredIndex2 + 1) {6448 var databasesValue = databasesArray[loweredIndex2];6449 var databaseBackupSettingInstance = {};6450 backupItemInstance.databases.push(databaseBackupSettingInstance);6451 6452 var connectionStringValue = databasesValue['connectionString'];6453 if (connectionStringValue !== null && connectionStringValue !== undefined) {6454 var connectionStringInstance = connectionStringValue;6455 databaseBackupSettingInstance.connectionString = connectionStringInstance;6456 }6457 6458 var connectionStringNameValue = databasesValue['connectionStringName'];6459 if (connectionStringNameValue !== null && connectionStringNameValue !== undefined) {6460 var connectionStringNameInstance = connectionStringNameValue;6461 databaseBackupSettingInstance.connectionStringName = connectionStringNameInstance;6462 }6463 6464 var databaseTypeValue = databasesValue['databaseType'];6465 if (databaseTypeValue !== null && databaseTypeValue !== undefined) {6466 var databaseTypeInstance = databaseTypeValue;6467 databaseBackupSettingInstance.databaseType = databaseTypeInstance;6468 }6469 6470 var nameValue2 = databasesValue['name'];6471 if (nameValue2 !== null && nameValue2 !== undefined) {6472 var nameInstance2 = nameValue2;6473 databaseBackupSettingInstance.name = nameInstance2;6474 }6475 }6476 }6477 6478 var scheduledValue = propertiesValue['scheduled'];6479 if (scheduledValue !== null && scheduledValue !== undefined) {6480 var scheduledInstance = scheduledValue;6481 backupItemInstance.scheduled = scheduledInstance;6482 }6483 6484 var lastRestoreTimeStampValue = propertiesValue['lastRestoreTimeStamp'];6485 if (lastRestoreTimeStampValue !== null && lastRestoreTimeStampValue !== undefined) {6486 var lastRestoreTimeStampInstance = lastRestoreTimeStampValue;6487 backupItemInstance.lastRestoreTimeStamp = lastRestoreTimeStampInstance;6488 }6489 6490 var finishedTimeStampValue = propertiesValue['finishedTimeStamp'];6491 if (finishedTimeStampValue !== null && finishedTimeStampValue !== undefined) {6492 var finishedTimeStampInstance = finishedTimeStampValue;6493 backupItemInstance.finishedTimeStamp = finishedTimeStampInstance;6494 }6495 6496 var correlationIdValue = propertiesValue['correlationId'];6497 if (correlationIdValue !== null && correlationIdValue !== undefined) {6498 var correlationIdInstance = correlationIdValue;6499 backupItemInstance.correlationId = correlationIdInstance;6500 }6501 }6502 }6503 6504 var idValue = responseDoc['id'];6505 if (idValue !== null && idValue !== undefined) {6506 var idInstance = idValue;6507 backupListInstance.id = idInstance;6508 }6509 6510 var nameValue3 = responseDoc['name'];6511 if (nameValue3 !== null && nameValue3 !== undefined) {6512 var nameInstance3 = nameValue3;6513 backupListInstance.name = nameInstance3;6514 }6515 6516 var locationValue = responseDoc['location'];6517 if (locationValue !== null && locationValue !== undefined) {6518 var locationInstance = locationValue;6519 backupListInstance.location = locationInstance;6520 }6521 6522 var tagsSequenceElement = responseDoc['tags'];6523 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {6524 for (var property in tagsSequenceElement) {6525 var tagsKey = property;6526 var tagsValue = tagsSequenceElement[property];6527 backupListInstance.tags[tagsKey] = tagsValue;6528 }6529 }6530 6531 var typeValue = responseDoc['type'];6532 if (typeValue !== null && typeValue !== undefined) {6533 var typeInstance = typeValue;6534 backupListInstance.type = typeInstance;6535 }6536 }6537 6538 }6539 result.statusCode = statusCode;6540 result.requestId = response.headers['x-ms-request-id'];6541 6542 return callback(null, result);6543 });6544 };6545 6546 /**6547 * Restart the web site.6548 * 6549 * @param {string} resourceGroupName The name of the resource group6550 * 6551 * @param {string} webSiteName Name of website6552 * 6553 * @param {string} [slotName] The name of the slot.6554 * 6555 * @param {function} callback6556 * 6557 * @returns {Stream} The response stream.6558 */6559 WebSiteOperations.prototype.restart = function(resourceGroupName, webSiteName, slotName, callback) {6560 if (callback === null || callback === undefined) {6561 throw new Error('callback cannot be null.');6562 }6563 // Validate6564 if (resourceGroupName === null || resourceGroupName === undefined) {6565 return callback(new Error('resourceGroupName cannot be null.'));6566 }6567 if (webSiteName === null || webSiteName === undefined) {6568 return callback(new Error('webSiteName cannot be null.'));6569 }6570 6571 // Tracing6572 6573 // Construct URL6574 var url2 = '';6575 url2 = url2 + '/subscriptions/';6576 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {6577 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);6578 }6579 url2 = url2 + '/resourceGroups/';6580 url2 = url2 + encodeURIComponent(resourceGroupName);6581 url2 = url2 + '/providers/';6582 url2 = url2 + 'Microsoft.Web';6583 url2 = url2 + '/';6584 url2 = url2 + 'sites';6585 url2 = url2 + '/';6586 url2 = url2 + encodeURIComponent(webSiteName);6587 if (slotName !== null && slotName !== undefined) {6588 url2 = url2 + '/slots/' + encodeURIComponent(slotName);6589 }6590 url2 = url2 + '/restart';6591 var queryParameters = [];6592 queryParameters.push('api-version=2014-06-01');6593 if (queryParameters.length > 0) {6594 url2 = url2 + '?' + queryParameters.join('&');6595 }6596 var baseUrl = this.client.baseUri;6597 // Trim '/' character from the end of baseUrl and beginning of url.6598 if (baseUrl[baseUrl.length - 1] === '/') {6599 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);6600 }6601 if (url2[0] === '/') {6602 url2 = url2.substring(1);6603 }6604 url2 = baseUrl + '/' + url2;6605 url2 = url2.replace(' ', '%20');6606 6607 // Create HTTP transport objects6608 var httpRequest = new WebResource();6609 httpRequest.method = 'POST';6610 httpRequest.headers = {};6611 httpRequest.url = url2;6612 6613 // Set Headers6614 httpRequest.headers['Content-Length'] = '0';6615 6616 // Send Request6617 return this.client.pipeline(httpRequest, function (err, response, body) {6618 if (err !== null && err !== undefined) {6619 return callback(err);6620 }6621 var statusCode = response.statusCode;6622 if (statusCode !== 200) {6623 var error = new Error(body);6624 error.statusCode = response.statusCode;6625 return callback(error);6626 }6627 6628 // Create Result6629 var result = null;6630 // Deserialize Response6631 result = {};6632 result.statusCode = statusCode;6633 result.requestId = response.headers['x-ms-request-id'];6634 6635 return callback(null, result);6636 });6637 };6638 6639 /**6640 * Restores a site to either a new site or existing site (Overwrite flag has6641 * to be set to true for that).6642 * 6643 * @param {string} resourceGroupName The name of the web space.6644 * 6645 * @param {string} webSiteName The name of the web site.6646 * 6647 * @param {string} [slotName] The name of the slot.6648 * 6649 * @param {RestoreRequestEnvelope} restoreRequestEnvelope A restore request.6650 * 6651 * @param {RestoreRequest} [restoreRequestEnvelope.request] TODO.6652 * 6653 * @param {boolean} [restoreRequestEnvelope.request.adjustConnectionStrings]6654 * If the restore operation also restores a database along with the website6655 * and the database is on a different server than when the original site h6656 * 6657 * @param {string} [restoreRequestEnvelope.request.blobName] The blob name6658 * where the backup is stored. E.g. mysite1_20140203.zip6659 * 6660 * @param {IEnumerable} [restoreRequestEnvelope.request.databases] Database6661 * settings for backup.6662 * 6663 * @param {boolean}6664 * [restoreRequestEnvelope.request.ignoreConflictingHostNames] When6665 * restoring a site, custom domains might conflict with other site in the6666 * same datacenter. If this value is true, such hostnames will be ignored6667 * during restore. If this is false, the restore operation will fail on such6668 * conflict.6669 * 6670 * @param {boolean} [restoreRequestEnvelope.request.overwrite] True if the6671 * restore operation will be used for overwrite an existing site; false6672 * otherwise.6673 * 6674 * @param {string} [restoreRequestEnvelope.request.storageAccountUrl] SAS URL6675 * for a container in a storage account. E.g.6676 * https://NAME.blob.core.windows.net/CONTAINERNAME/?sv=2012-02-12&st=2013-12-05T19%3A30%3A45Z&se=2017-12-04T19%3A30%3A45Z&sr=c&sp=rwdl&sig=abcdefABCDEFabcdef01234567896677 * 6678 * @param {string} [restoreRequestEnvelope.id] Gets the ID of the resource.6679 * 6680 * @param {string} [restoreRequestEnvelope.name] The name of the resource.6681 * 6682 * @param {string} restoreRequestEnvelope.location Gets or sets the location6683 * of the resource.6684 * 6685 * @param {object} [restoreRequestEnvelope.tags] Gets or sets the tags6686 * attached to the resource.6687 * 6688 * @param {string} [restoreRequestEnvelope.type] The type of the resource6689 * 6690 * @param {function} callback6691 * 6692 * @returns {Stream} The response stream.6693 */6694 WebSiteOperations.prototype.restore = function(resourceGroupName, webSiteName, slotName, restoreRequestEnvelope, callback) {6695 if (callback === null || callback === undefined) {6696 throw new Error('callback cannot be null.');6697 }6698 // Validate6699 if (resourceGroupName === null || resourceGroupName === undefined) {6700 return callback(new Error('resourceGroupName cannot be null.'));6701 }6702 if (webSiteName === null || webSiteName === undefined) {6703 return callback(new Error('webSiteName cannot be null.'));6704 }6705 if (restoreRequestEnvelope === null || restoreRequestEnvelope === undefined) {6706 return callback(new Error('restoreRequestEnvelope cannot be null.'));6707 }6708 if (restoreRequestEnvelope.location === null || restoreRequestEnvelope.location === undefined) {6709 return callback(new Error('restoreRequestEnvelope.location cannot be null.'));6710 }6711 6712 // Tracing6713 6714 // Construct URL6715 var url2 = '';6716 url2 = url2 + '/subscriptions/';6717 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {6718 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);6719 }6720 url2 = url2 + '/resourceGroups/';6721 url2 = url2 + encodeURIComponent(resourceGroupName);6722 url2 = url2 + '/providers/';6723 url2 = url2 + 'Microsoft.Web';6724 url2 = url2 + '/';6725 url2 = url2 + 'sites';6726 url2 = url2 + '/';6727 url2 = url2 + encodeURIComponent(webSiteName);6728 var queryParameters = [];6729 queryParameters.push('api-version=2014-06-01');6730 queryParameters.push('operation=restore');6731 if (queryParameters.length > 0) {6732 url2 = url2 + '?' + queryParameters.join('&');6733 }6734 var baseUrl = this.client.baseUri;6735 // Trim '/' character from the end of baseUrl and beginning of url.6736 if (baseUrl[baseUrl.length - 1] === '/') {6737 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);6738 }6739 if (url2[0] === '/') {6740 url2 = url2.substring(1);6741 }6742 url2 = baseUrl + '/' + url2;6743 url2 = url2.replace(' ', '%20');6744 6745 // Create HTTP transport objects6746 var httpRequest = new WebResource();6747 httpRequest.method = 'PUT';6748 httpRequest.headers = {};6749 httpRequest.url = url2;6750 6751 // Set Headers6752 httpRequest.headers['Content-Type'] = 'application/json';6753 httpRequest.headers['x-ms-version'] = '2014-06-01';6754 6755 // Serialize Request6756 var requestContent = null;6757 var requestDoc = null;6758 6759 var restoreRequestEnvelopeValue = {};6760 requestDoc = restoreRequestEnvelopeValue;6761 6762 if (restoreRequestEnvelope.request !== null && restoreRequestEnvelope.request !== undefined) {6763 var propertiesValue = {};6764 restoreRequestEnvelopeValue['properties'] = propertiesValue;6765 6766 if (restoreRequestEnvelope.request.adjustConnectionStrings !== null && restoreRequestEnvelope.request.adjustConnectionStrings !== undefined) {6767 propertiesValue['AdjustConnectionStrings'] = restoreRequestEnvelope.request.adjustConnectionStrings;6768 }6769 6770 if (restoreRequestEnvelope.request.blobName !== null && restoreRequestEnvelope.request.blobName !== undefined) {6771 propertiesValue['BlobName'] = restoreRequestEnvelope.request.blobName;6772 }6773 6774 if (restoreRequestEnvelope.request.databases !== null && restoreRequestEnvelope.request.databases !== undefined) {6775 var databasesArray = [];6776 for (var loweredIndex1 = 0; loweredIndex1 < restoreRequestEnvelope.request.databases.length; loweredIndex1 = loweredIndex1 + 1) {6777 var databasesItem = restoreRequestEnvelope.request.databases[loweredIndex1];6778 var databaseBackupSettingValue = {};6779 databasesArray.push(databaseBackupSettingValue);6780 6781 if (databasesItem.connectionString !== null && databasesItem.connectionString !== undefined) {6782 databaseBackupSettingValue['connectionString'] = databasesItem.connectionString;6783 }6784 6785 if (databasesItem.connectionStringName !== null && databasesItem.connectionStringName !== undefined) {6786 databaseBackupSettingValue['connectionStringName'] = databasesItem.connectionStringName;6787 }6788 6789 if (databasesItem.databaseType !== null && databasesItem.databaseType !== undefined) {6790 databaseBackupSettingValue['databaseType'] = databasesItem.databaseType;6791 }6792 6793 if (databasesItem.name !== null && databasesItem.name !== undefined) {6794 databaseBackupSettingValue['name'] = databasesItem.name;6795 }6796 }6797 propertiesValue['Databases'] = databasesArray;6798 }6799 6800 if (restoreRequestEnvelope.request.ignoreConflictingHostNames !== null && restoreRequestEnvelope.request.ignoreConflictingHostNames !== undefined) {6801 propertiesValue['IgnoreConflictingHostNames'] = restoreRequestEnvelope.request.ignoreConflictingHostNames;6802 }6803 6804 if (restoreRequestEnvelope.request.overwrite !== null && restoreRequestEnvelope.request.overwrite !== undefined) {6805 propertiesValue['Overwrite'] = restoreRequestEnvelope.request.overwrite;6806 }6807 6808 if (restoreRequestEnvelope.request.storageAccountUrl !== null && restoreRequestEnvelope.request.storageAccountUrl !== undefined) {6809 propertiesValue['StorageAccountUrl'] = restoreRequestEnvelope.request.storageAccountUrl;6810 }6811 }6812 6813 if (restoreRequestEnvelope.id !== null && restoreRequestEnvelope.id !== undefined) {6814 restoreRequestEnvelopeValue['id'] = restoreRequestEnvelope.id;6815 }6816 6817 if (restoreRequestEnvelope.name !== null && restoreRequestEnvelope.name !== undefined) {6818 restoreRequestEnvelopeValue['name'] = restoreRequestEnvelope.name;6819 }6820 6821 restoreRequestEnvelopeValue['location'] = restoreRequestEnvelope.location;6822 6823 if (restoreRequestEnvelope.tags !== null && restoreRequestEnvelope.tags !== undefined) {6824 var tagsDictionary = {};6825 for (var tagsKey in restoreRequestEnvelope.tags) {6826 var tagsValue = restoreRequestEnvelope.tags[tagsKey];6827 tagsDictionary[tagsKey] = tagsValue;6828 }6829 restoreRequestEnvelopeValue['tags'] = tagsDictionary;6830 }6831 6832 if (restoreRequestEnvelope.type !== null && restoreRequestEnvelope.type !== undefined) {6833 restoreRequestEnvelopeValue['type'] = restoreRequestEnvelope.type;6834 }6835 6836 requestContent = JSON.stringify(requestDoc);6837 httpRequest.body = requestContent;6838 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');6839 // Send Request6840 return this.client.pipeline(httpRequest, function (err, response, body) {6841 if (err !== null && err !== undefined) {6842 return callback(err);6843 }6844 var statusCode = response.statusCode;6845 if (statusCode !== 200) {6846 var error = new Error(body);6847 error.statusCode = response.statusCode;6848 return callback(error);6849 }6850 6851 // Create Result6852 var result = null;6853 // Deserialize Response6854 if (statusCode === 200) {6855 var responseContent = body;6856 result = {};6857 var responseDoc = null;6858 if (responseContent) {6859 responseDoc = JSON.parse(responseContent);6860 }6861 6862 var restoreResponseValue = responseDoc['RestoreResponse'];6863 if (restoreResponseValue !== null && restoreResponseValue !== undefined) {6864 var restoreResponseInstance = {};6865 6866 var operationIdValue = restoreResponseValue['operationId'];6867 if (operationIdValue !== null && operationIdValue !== undefined) {6868 var operationIdInstance = operationIdValue;6869 restoreResponseInstance.operationId = operationIdInstance;6870 }6871 }6872 6873 }6874 result.statusCode = statusCode;6875 result.requestId = response.headers['x-ms-request-id'];6876 6877 return callback(null, result);6878 });6879 };6880 6881 /**6882 * Restart the web site.6883 * 6884 * @param {string} resourceGroupName The name of the resource group6885 * 6886 * @param {string} webSiteName Name of website6887 * 6888 * @param {string} [slotName] The name of the slot of the website6889 * 6890 * @param {function} callback6891 * 6892 * @returns {Stream} The response stream.6893 */6894 WebSiteOperations.prototype.start = function(resourceGroupName, webSiteName, slotName, callback) {6895 if (callback === null || callback === undefined) {6896 throw new Error('callback cannot be null.');6897 }6898 // Validate6899 if (resourceGroupName === null || resourceGroupName === undefined) {6900 return callback(new Error('resourceGroupName cannot be null.'));6901 }6902 if (webSiteName === null || webSiteName === undefined) {6903 return callback(new Error('webSiteName cannot be null.'));6904 }6905 6906 // Tracing6907 6908 // Construct URL6909 var url2 = '';6910 url2 = url2 + '/subscriptions/';6911 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {6912 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);6913 }6914 url2 = url2 + '/resourceGroups/';6915 url2 = url2 + encodeURIComponent(resourceGroupName);6916 url2 = url2 + '/providers/';6917 url2 = url2 + 'Microsoft.Web';6918 url2 = url2 + '/';6919 url2 = url2 + 'sites';6920 url2 = url2 + '/';6921 url2 = url2 + encodeURIComponent(webSiteName);6922 if (slotName !== null && slotName !== undefined) {6923 url2 = url2 + '/slots/' + encodeURIComponent(slotName);6924 }6925 url2 = url2 + '/start';6926 var queryParameters = [];6927 queryParameters.push('api-version=2014-06-01');6928 if (queryParameters.length > 0) {6929 url2 = url2 + '?' + queryParameters.join('&');6930 }6931 var baseUrl = this.client.baseUri;6932 // Trim '/' character from the end of baseUrl and beginning of url.6933 if (baseUrl[baseUrl.length - 1] === '/') {6934 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);6935 }6936 if (url2[0] === '/') {6937 url2 = url2.substring(1);6938 }6939 url2 = baseUrl + '/' + url2;6940 url2 = url2.replace(' ', '%20');6941 6942 // Create HTTP transport objects6943 var httpRequest = new WebResource();6944 httpRequest.method = 'POST';6945 httpRequest.headers = {};6946 httpRequest.url = url2;6947 6948 // Set Headers6949 httpRequest.headers['Content-Length'] = '0';6950 6951 // Send Request6952 return this.client.pipeline(httpRequest, function (err, response, body) {6953 if (err !== null && err !== undefined) {6954 return callback(err);6955 }6956 var statusCode = response.statusCode;6957 if (statusCode !== 200) {6958 var error = new Error(body);6959 error.statusCode = response.statusCode;6960 return callback(error);6961 }6962 6963 // Create Result6964 var result = null;6965 // Deserialize Response6966 result = {};6967 result.statusCode = statusCode;6968 result.requestId = response.headers['x-ms-request-id'];6969 6970 return callback(null, result);6971 });6972 };6973 6974 /**6975 * Restart the web site.6976 * 6977 * @param {string} resourceGroupName The name of the resource group6978 * 6979 * @param {string} webSiteName Name of website6980 * 6981 * @param {string} [slotName] The name of the slot of the web site6982 * 6983 * @param {function} callback6984 * 6985 * @returns {Stream} The response stream.6986 */6987 WebSiteOperations.prototype.stop = function(resourceGroupName, webSiteName, slotName, callback) {6988 if (callback === null || callback === undefined) {6989 throw new Error('callback cannot be null.');6990 }6991 // Validate6992 if (resourceGroupName === null || resourceGroupName === undefined) {6993 return callback(new Error('resourceGroupName cannot be null.'));6994 }6995 if (webSiteName === null || webSiteName === undefined) {6996 return callback(new Error('webSiteName cannot be null.'));6997 }6998 6999 // Tracing7000 7001 // Construct URL7002 var url2 = '';7003 url2 = url2 + '/subscriptions/';7004 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {7005 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);7006 }7007 url2 = url2 + '/resourceGroups/';7008 url2 = url2 + encodeURIComponent(resourceGroupName);7009 url2 = url2 + '/providers/';7010 url2 = url2 + 'Microsoft.Web';7011 url2 = url2 + '/';7012 url2 = url2 + 'sites';7013 url2 = url2 + '/';7014 url2 = url2 + encodeURIComponent(webSiteName);7015 if (slotName !== null && slotName !== undefined) {7016 url2 = url2 + '/slots/' + encodeURIComponent(slotName);7017 }7018 url2 = url2 + '/stop';7019 var queryParameters = [];7020 queryParameters.push('api-version=2014-06-01');7021 if (queryParameters.length > 0) {7022 url2 = url2 + '?' + queryParameters.join('&');7023 }7024 var baseUrl = this.client.baseUri;7025 // Trim '/' character from the end of baseUrl and beginning of url.7026 if (baseUrl[baseUrl.length - 1] === '/') {7027 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);7028 }7029 if (url2[0] === '/') {7030 url2 = url2.substring(1);7031 }7032 url2 = baseUrl + '/' + url2;7033 url2 = url2.replace(' ', '%20');7034 7035 // Create HTTP transport objects7036 var httpRequest = new WebResource();7037 httpRequest.method = 'POST';7038 httpRequest.headers = {};7039 httpRequest.url = url2;7040 7041 // Set Headers7042 httpRequest.headers['Content-Length'] = '0';7043 7044 // Send Request7045 return this.client.pipeline(httpRequest, function (err, response, body) {7046 if (err !== null && err !== undefined) {7047 return callback(err);7048 }7049 var statusCode = response.statusCode;7050 if (statusCode !== 200) {7051 var error = new Error(body);7052 error.statusCode = response.statusCode;7053 return callback(error);7054 }7055 7056 // Create Result7057 var result = null;7058 // Deserialize Response7059 result = {};7060 result.statusCode = statusCode;7061 result.requestId = response.headers['x-ms-request-id'];7062 7063 return callback(null, result);7064 });7065 };7066 7067 /**7068 * You can retrieve the application settings for a web site by issuing an7069 * HTTP GET request, or update them by using HTTP PUT with a request body7070 * that contains the settings to be updated. (see7071 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166985.aspx for7072 * more information)7073 * 7074 * @param {string} resourceGroupName The name of the resource group7075 * 7076 * @param {string} webSiteName The name of the web site7077 * 7078 * @param {string} [slotName] The name of the slot of the website7079 * 7080 * @param {WebSiteNameValueParameters} parameters The Update Web Site app7081 * settings parameters7082 * 7083 * @param {array} parameters.properties The name value pair parameters for7084 * the web site.7085 * 7086 * @param {string} [parameters.id] Gets the ID of the resource.7087 * 7088 * @param {string} [parameters.name] The name of the resource.7089 * 7090 * @param {string} parameters.location Gets or sets the location of the7091 * resource.7092 * 7093 * @param {object} [parameters.tags] Gets or sets the tags attached to the7094 * resource.7095 * 7096 * @param {string} [parameters.type] The type of the resource7097 * 7098 * @param {function} callback7099 * 7100 * @returns {Stream} The response stream.7101 */7102 WebSiteOperations.prototype.updateAppSettings = function(resourceGroupName, webSiteName, slotName, parameters, callback) {7103 if (callback === null || callback === undefined) {7104 throw new Error('callback cannot be null.');7105 }7106 // Validate7107 if (resourceGroupName === null || resourceGroupName === undefined) {7108 return callback(new Error('resourceGroupName cannot be null.'));7109 }7110 if (webSiteName === null || webSiteName === undefined) {7111 return callback(new Error('webSiteName cannot be null.'));7112 }7113 if (parameters === null || parameters === undefined) {7114 return callback(new Error('parameters cannot be null.'));7115 }7116 if (parameters.location === null || parameters.location === undefined) {7117 return callback(new Error('parameters.location cannot be null.'));7118 }7119 if (parameters.properties === null || parameters.properties === undefined) {7120 return callback(new Error('parameters.properties cannot be null.'));7121 }7122 7123 // Tracing7124 7125 // Construct URL7126 var url2 = '';7127 url2 = url2 + '/subscriptions/';7128 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {7129 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);7130 }7131 url2 = url2 + '/resourceGroups/';7132 url2 = url2 + encodeURIComponent(resourceGroupName);7133 url2 = url2 + '/providers/';7134 url2 = url2 + 'Microsoft.Web';7135 url2 = url2 + '/';7136 url2 = url2 + 'sites';7137 url2 = url2 + '/';7138 url2 = url2 + encodeURIComponent(webSiteName);7139 if (slotName !== null && slotName !== undefined) {7140 url2 = url2 + '/slots/' + encodeURIComponent(slotName);7141 }7142 url2 = url2 + '/config/appsettings';7143 var queryParameters = [];7144 queryParameters.push('api-version=2014-06-01');7145 if (queryParameters.length > 0) {7146 url2 = url2 + '?' + queryParameters.join('&');7147 }7148 var baseUrl = this.client.baseUri;7149 // Trim '/' character from the end of baseUrl and beginning of url.7150 if (baseUrl[baseUrl.length - 1] === '/') {7151 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);7152 }7153 if (url2[0] === '/') {7154 url2 = url2.substring(1);7155 }7156 url2 = baseUrl + '/' + url2;7157 url2 = url2.replace(' ', '%20');7158 7159 // Create HTTP transport objects7160 var httpRequest = new WebResource();7161 httpRequest.method = 'PUT';7162 httpRequest.headers = {};7163 httpRequest.url = url2;7164 7165 // Set Headers7166 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';7167 7168 // Serialize Request7169 var requestContent = null;7170 var requestDoc = null;7171 7172 var webSiteNameValueParametersValue = {};7173 requestDoc = webSiteNameValueParametersValue;7174 7175 if (parameters.properties !== null && parameters.properties !== undefined) {7176 var propertiesArray = [];7177 for (var loweredIndex1 = 0; loweredIndex1 < parameters.properties.length; loweredIndex1 = loweredIndex1 + 1) {7178 var propertiesItem = parameters.properties[loweredIndex1];7179 var nameValuePairValue = {};7180 propertiesArray.push(nameValuePairValue);7181 7182 if (propertiesItem.name !== null && propertiesItem.name !== undefined) {7183 nameValuePairValue['name'] = propertiesItem.name;7184 }7185 7186 if (propertiesItem.value !== null && propertiesItem.value !== undefined) {7187 nameValuePairValue['value'] = propertiesItem.value;7188 }7189 }7190 webSiteNameValueParametersValue['properties'] = propertiesArray;7191 }7192 7193 if (parameters.id !== null && parameters.id !== undefined) {7194 webSiteNameValueParametersValue['id'] = parameters.id;7195 }7196 7197 if (parameters.name !== null && parameters.name !== undefined) {7198 webSiteNameValueParametersValue['name'] = parameters.name;7199 }7200 7201 webSiteNameValueParametersValue['location'] = parameters.location;7202 7203 if (parameters.tags !== null && parameters.tags !== undefined) {7204 var tagsDictionary = {};7205 for (var tagsKey in parameters.tags) {7206 var tagsValue = parameters.tags[tagsKey];7207 tagsDictionary[tagsKey] = tagsValue;7208 }7209 webSiteNameValueParametersValue['tags'] = tagsDictionary;7210 }7211 7212 if (parameters.type !== null && parameters.type !== undefined) {7213 webSiteNameValueParametersValue['type'] = parameters.type;7214 }7215 7216 requestContent = JSON.stringify(requestDoc);7217 httpRequest.body = requestContent;7218 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');7219 // Send Request7220 return this.client.pipeline(httpRequest, function (err, response, body) {7221 if (err !== null && err !== undefined) {7222 return callback(err);7223 }7224 var statusCode = response.statusCode;7225 if (statusCode !== 200) {7226 var error = new Error(body);7227 error.statusCode = response.statusCode;7228 return callback(error);7229 }7230 7231 // Create Result7232 var result = null;7233 // Deserialize Response7234 if (statusCode === 200) {7235 var responseContent = body;7236 result = {};7237 var responseDoc = null;7238 if (responseContent) {7239 responseDoc = JSON.parse(responseContent);7240 }7241 7242 if (responseDoc !== null && responseDoc !== undefined) {7243 var resourceInstance = { properties: [], tags: {} };7244 result.resource = resourceInstance;7245 7246 var propertiesArray2 = responseDoc['properties'];7247 if (propertiesArray2 !== null && propertiesArray2 !== undefined) {7248 for (var loweredIndex2 = 0; loweredIndex2 < propertiesArray2.length; loweredIndex2 = loweredIndex2 + 1) {7249 var propertiesValue = propertiesArray2[loweredIndex2];7250 var nameValuePairInstance = {};7251 resourceInstance.properties.push(nameValuePairInstance);7252 7253 var nameValue = propertiesValue['name'];7254 if (nameValue !== null && nameValue !== undefined) {7255 var nameInstance = nameValue;7256 nameValuePairInstance.name = nameInstance;7257 }7258 7259 var valueValue = propertiesValue['value'];7260 if (valueValue !== null && valueValue !== undefined) {7261 var valueInstance = valueValue;7262 nameValuePairInstance.value = valueInstance;7263 }7264 }7265 }7266 7267 var idValue = responseDoc['id'];7268 if (idValue !== null && idValue !== undefined) {7269 var idInstance = idValue;7270 resourceInstance.id = idInstance;7271 }7272 7273 var nameValue2 = responseDoc['name'];7274 if (nameValue2 !== null && nameValue2 !== undefined) {7275 var nameInstance2 = nameValue2;7276 resourceInstance.name = nameInstance2;7277 }7278 7279 var locationValue = responseDoc['location'];7280 if (locationValue !== null && locationValue !== undefined) {7281 var locationInstance = locationValue;7282 resourceInstance.location = locationInstance;7283 }7284 7285 var tagsSequenceElement = responseDoc['tags'];7286 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {7287 for (var property in tagsSequenceElement) {7288 var tagsKey2 = property;7289 var tagsValue2 = tagsSequenceElement[property];7290 resourceInstance.tags[tagsKey2] = tagsValue2;7291 }7292 }7293 7294 var typeValue = responseDoc['type'];7295 if (typeValue !== null && typeValue !== undefined) {7296 var typeInstance = typeValue;7297 resourceInstance.type = typeInstance;7298 }7299 }7300 7301 }7302 result.statusCode = statusCode;7303 result.requestId = response.headers['x-ms-request-id'];7304 7305 return callback(null, result);7306 });7307 };7308 7309 /**7310 * Updates a backup schedule for a site.7311 * 7312 * @param {string} resourceGroupName The name of the web space.7313 * 7314 * @param {string} webSiteName The name of the web site.7315 * 7316 * @param {string} [slotName] The name of the slot.7317 * 7318 * @param {BackupRequestEnvelope} backupRequestEnvelope A backup schedule7319 * specification.7320 * 7321 * @param {BackupRequest} [backupRequestEnvelope.request] TODO.7322 * 7323 * @param {BackupSchedule} [backupRequestEnvelope.request.backupSchedule] The7324 * backup schedule structure - valid only when setting up a schedule. Should7325 * be Null for on-demand backups.7326 * 7327 * @param {number}7328 * [backupRequestEnvelope.request.backupSchedule.frequencyInterval] The7329 * frequency of backups.7330 * 7331 * @param {FrequencyUnit}7332 * [backupRequestEnvelope.request.backupSchedule.frequencyUnit] Units for7333 * FrequencyInterval - e.g. Day or Hour7334 * 7335 * @param {boolean}7336 * [backupRequestEnvelope.request.backupSchedule.keepAtLeastOneBackup]7337 * Retention policy deletes backups after predefined number of days. If this7338 * is true, there will be always at least one backup left. regardless of the7339 * policy. If false, all backups can be deleted.7340 * 7341 * @param {date}7342 * [backupRequestEnvelope.request.backupSchedule.lastExecutionTime] The last7343 * time when this schedule started a backup, Null if didn't start anything7344 * yet.7345 * 7346 * @param {number}7347 * [backupRequestEnvelope.request.backupSchedule.retentionPeriodInDays]7348 * Backups older N days (N defined by this value) will be automatically7349 * deleted.7350 * 7351 * @param {date} [backupRequestEnvelope.request.backupSchedule.startTime]7352 * When this schedule should start backing up the site. Null means7353 * immediately.7354 * 7355 * @param {IEnumerable} [backupRequestEnvelope.request.databases] Database7356 * settings for backup.7357 * 7358 * @param {boolean} [backupRequestEnvelope.request.enabled] Valid only for a7359 * backup schedule (can be Null for on-demand backups). True if enabled;7360 * false if disabled (no backups will be performed).7361 * 7362 * @param {string} [backupRequestEnvelope.request.name] The name of this7363 * backup - will be used for generating a blob name.7364 * 7365 * @param {string} [backupRequestEnvelope.request.storageAccountUrl] SAS URL7366 * for a container in a storage account. E.g.7367 * https://NAME.blob.core.windows.net/CONTAINERNAME/?sv=2012-02-12&st=2013-12-05T19%3A30%3A45Z&se=2017-12-04T19%3A30%3A45Z&sr=c&sp=rwdl&sig=abcdefABCDEFabcdef01234567897368 * 7369 * @param {string} [backupRequestEnvelope.id] Gets the ID of the resource.7370 * 7371 * @param {string} [backupRequestEnvelope.name] The name of the resource.7372 * 7373 * @param {string} backupRequestEnvelope.location Gets or sets the location7374 * of the resource.7375 * 7376 * @param {object} [backupRequestEnvelope.tags] Gets or sets the tags7377 * attached to the resource.7378 * 7379 * @param {string} [backupRequestEnvelope.type] The type of the resource7380 * 7381 * @param {function} callback7382 * 7383 * @returns {Stream} The response stream.7384 */7385 WebSiteOperations.prototype.updateBackupConfiguration = function(resourceGroupName, webSiteName, slotName, backupRequestEnvelope, callback) {7386 if (callback === null || callback === undefined) {7387 throw new Error('callback cannot be null.');7388 }7389 // Validate7390 if (resourceGroupName === null || resourceGroupName === undefined) {7391 return callback(new Error('resourceGroupName cannot be null.'));7392 }7393 if (webSiteName === null || webSiteName === undefined) {7394 return callback(new Error('webSiteName cannot be null.'));7395 }7396 if (backupRequestEnvelope === null || backupRequestEnvelope === undefined) {7397 return callback(new Error('backupRequestEnvelope cannot be null.'));7398 }7399 if (backupRequestEnvelope.location === null || backupRequestEnvelope.location === undefined) {7400 return callback(new Error('backupRequestEnvelope.location cannot be null.'));7401 }7402 7403 // Tracing7404 7405 // Construct URL7406 var url2 = '';7407 url2 = url2 + '/subscriptions/';7408 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {7409 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);7410 }7411 url2 = url2 + '/resourceGroups/';7412 url2 = url2 + encodeURIComponent(resourceGroupName);7413 url2 = url2 + '/providers/';7414 url2 = url2 + 'Microsoft.Web';7415 url2 = url2 + '/';7416 url2 = url2 + 'sites';7417 url2 = url2 + '/';7418 url2 = url2 + encodeURIComponent(webSiteName);7419 if (slotName !== null && slotName !== undefined) {7420 url2 = url2 + '/slots/' + encodeURIComponent(slotName);7421 }7422 url2 = url2 + '/backup/config';7423 var queryParameters = [];7424 queryParameters.push('api-version=2014-06-01');7425 if (queryParameters.length > 0) {7426 url2 = url2 + '?' + queryParameters.join('&');7427 }7428 var baseUrl = this.client.baseUri;7429 // Trim '/' character from the end of baseUrl and beginning of url.7430 if (baseUrl[baseUrl.length - 1] === '/') {7431 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);7432 }7433 if (url2[0] === '/') {7434 url2 = url2.substring(1);7435 }7436 url2 = baseUrl + '/' + url2;7437 url2 = url2.replace(' ', '%20');7438 7439 // Create HTTP transport objects7440 var httpRequest = new WebResource();7441 httpRequest.method = 'PUT';7442 httpRequest.headers = {};7443 httpRequest.url = url2;7444 7445 // Set Headers7446 httpRequest.headers['Content-Type'] = 'application/json';7447 httpRequest.headers['x-ms-version'] = '2014-06-01';7448 7449 // Serialize Request7450 var requestContent = null;7451 var requestDoc = null;7452 7453 var backupRequestEnvelopeValue = {};7454 requestDoc = backupRequestEnvelopeValue;7455 7456 if (backupRequestEnvelope.request !== null && backupRequestEnvelope.request !== undefined) {7457 var propertiesValue = {};7458 backupRequestEnvelopeValue['properties'] = propertiesValue;7459 7460 if (backupRequestEnvelope.request.backupSchedule !== null && backupRequestEnvelope.request.backupSchedule !== undefined) {7461 var backupScheduleValue = {};7462 propertiesValue['backupSchedule'] = backupScheduleValue;7463 7464 if (backupRequestEnvelope.request.backupSchedule.frequencyInterval !== null && backupRequestEnvelope.request.backupSchedule.frequencyInterval !== undefined) {7465 backupScheduleValue['frequencyInterval'] = backupRequestEnvelope.request.backupSchedule.frequencyInterval;7466 }7467 7468 if (backupRequestEnvelope.request.backupSchedule.frequencyUnit !== null && backupRequestEnvelope.request.backupSchedule.frequencyUnit !== undefined) {7469 backupScheduleValue['frequencyUnit'] = backupRequestEnvelope.request.backupSchedule.frequencyUnit !== null && backupRequestEnvelope.request.backupSchedule.frequencyUnit !== undefined ? backupRequestEnvelope.request.backupSchedule.frequencyUnit.toString() : 'Day';7470 }7471 7472 if (backupRequestEnvelope.request.backupSchedule.keepAtLeastOneBackup !== null && backupRequestEnvelope.request.backupSchedule.keepAtLeastOneBackup !== undefined) {7473 backupScheduleValue['keepAtLeastOneBackup'] = backupRequestEnvelope.request.backupSchedule.keepAtLeastOneBackup;7474 }7475 7476 if (backupRequestEnvelope.request.backupSchedule.lastExecutionTime !== null && backupRequestEnvelope.request.backupSchedule.lastExecutionTime !== undefined) {7477 backupScheduleValue['lastExecutionTime'] = backupRequestEnvelope.request.backupSchedule.lastExecutionTime;7478 }7479 7480 if (backupRequestEnvelope.request.backupSchedule.retentionPeriodInDays !== null && backupRequestEnvelope.request.backupSchedule.retentionPeriodInDays !== undefined) {7481 backupScheduleValue['retentionPeriodInDays'] = backupRequestEnvelope.request.backupSchedule.retentionPeriodInDays;7482 }7483 7484 if (backupRequestEnvelope.request.backupSchedule.startTime !== null && backupRequestEnvelope.request.backupSchedule.startTime !== undefined) {7485 backupScheduleValue['startTime'] = backupRequestEnvelope.request.backupSchedule.startTime;7486 }7487 }7488 7489 if (backupRequestEnvelope.request.databases !== null && backupRequestEnvelope.request.databases !== undefined) {7490 var databasesArray = [];7491 for (var loweredIndex1 = 0; loweredIndex1 < backupRequestEnvelope.request.databases.length; loweredIndex1 = loweredIndex1 + 1) {7492 var databasesItem = backupRequestEnvelope.request.databases[loweredIndex1];7493 var databaseBackupSettingValue = {};7494 databasesArray.push(databaseBackupSettingValue);7495 7496 if (databasesItem.connectionString !== null && databasesItem.connectionString !== undefined) {7497 databaseBackupSettingValue['connectionString'] = databasesItem.connectionString;7498 }7499 7500 if (databasesItem.connectionStringName !== null && databasesItem.connectionStringName !== undefined) {7501 databaseBackupSettingValue['connectionStringName'] = databasesItem.connectionStringName;7502 }7503 7504 if (databasesItem.databaseType !== null && databasesItem.databaseType !== undefined) {7505 databaseBackupSettingValue['databaseType'] = databasesItem.databaseType;7506 }7507 7508 if (databasesItem.name !== null && databasesItem.name !== undefined) {7509 databaseBackupSettingValue['name'] = databasesItem.name;7510 }7511 }7512 propertiesValue['databases'] = databasesArray;7513 }7514 7515 if (backupRequestEnvelope.request.enabled !== null && backupRequestEnvelope.request.enabled !== undefined) {7516 propertiesValue['enabled'] = backupRequestEnvelope.request.enabled;7517 }7518 7519 if (backupRequestEnvelope.request.name !== null && backupRequestEnvelope.request.name !== undefined) {7520 propertiesValue['name'] = backupRequestEnvelope.request.name;7521 }7522 7523 if (backupRequestEnvelope.request.storageAccountUrl !== null && backupRequestEnvelope.request.storageAccountUrl !== undefined) {7524 propertiesValue['storageAccountUrl'] = backupRequestEnvelope.request.storageAccountUrl;7525 }7526 }7527 7528 if (backupRequestEnvelope.id !== null && backupRequestEnvelope.id !== undefined) {7529 backupRequestEnvelopeValue['id'] = backupRequestEnvelope.id;7530 }7531 7532 if (backupRequestEnvelope.name !== null && backupRequestEnvelope.name !== undefined) {7533 backupRequestEnvelopeValue['name'] = backupRequestEnvelope.name;7534 }7535 7536 backupRequestEnvelopeValue['location'] = backupRequestEnvelope.location;7537 7538 if (backupRequestEnvelope.tags !== null && backupRequestEnvelope.tags !== undefined) {7539 var tagsDictionary = {};7540 for (var tagsKey in backupRequestEnvelope.tags) {7541 var tagsValue = backupRequestEnvelope.tags[tagsKey];7542 tagsDictionary[tagsKey] = tagsValue;7543 }7544 backupRequestEnvelopeValue['tags'] = tagsDictionary;7545 }7546 7547 if (backupRequestEnvelope.type !== null && backupRequestEnvelope.type !== undefined) {7548 backupRequestEnvelopeValue['type'] = backupRequestEnvelope.type;7549 }7550 7551 requestContent = JSON.stringify(requestDoc);7552 httpRequest.body = requestContent;7553 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');7554 // Send Request7555 return this.client.pipeline(httpRequest, function (err, response, body) {7556 if (err !== null && err !== undefined) {7557 return callback(err);7558 }7559 var statusCode = response.statusCode;7560 if (statusCode !== 200) {7561 var error = new Error(body);7562 error.statusCode = response.statusCode;7563 return callback(error);7564 }7565 7566 // Create Result7567 var result = null;7568 // Deserialize Response7569 result = {};7570 result.statusCode = statusCode;7571 result.requestId = response.headers['x-ms-request-id'];7572 7573 return callback(null, result);7574 });7575 };7576 7577 /**7578 * You can retrieve the config settings for a web site by issuing an HTTP GET7579 * request, or update them by using HTTP PUT with a request body that7580 * contains the settings to be updated. (see7581 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166985.aspx for7582 * more information)7583 * 7584 * @param {string} resourceGroupName The name of the resource group.7585 * 7586 * @param {string} webSiteName The name of the web site.7587 * 7588 * @param {string} [slotName] The name of the slot.7589 * 7590 * @param {WebSiteUpdateConfigurationParameters} parameters The Update Web7591 * Site Configuration parameters.7592 * 7593 * @param {WebSiteUpdateConfigurationDetails} parameters.properties The name7594 * value pair parameters for the web site.7595 * 7596 * @param {object} [parameters.properties.appSettings] A set of name/value7597 * pairs that contain application settings for a site.7598 * 7599 * @param {array} [parameters.properties.connectionStrings] Contains7600 * connection strings for database and other external resources.7601 * 7602 * @param {array} [parameters.properties.defaultDocuments] Contains one or7603 * more string elements that list, in order of preference, the name of the7604 * file that a web site returns when the web site's domain name is requested7605 * by itself. For example, if the default document for http://contoso.com is7606 * default.htm, the page http://www.contoso.com/default.htm is returned when7607 * the browser is pointed to http://www.contoso.com.7608 * 7609 * @param {boolean} [parameters.properties.detailedErrorLoggingEnabled] True7610 * if detailed error logging is enabled; otherwise, false.7611 * 7612 * @param {string} [parameters.properties.documentRoot] The document root.7613 * 7614 * @param {array} [parameters.properties.handlerMappings] Specifies custom7615 * executable programs for handling requests for specific file name7616 * extensions.7617 * 7618 * @param {boolean} [parameters.properties.httpLoggingEnabled] True if HTTP7619 * error logging is enabled; otherwise, false.7620 * 7621 * @param {number} [parameters.properties.logsDirectorySizeLimit] The limit7622 * of the logs directory.7623 * 7624 * @param {ManagedPipelineMode} [parameters.properties.managedPipelineMode]7625 * Managed pipeline modes.7626 * 7627 * @param {object} [parameters.properties.metadata] Contains name/value pairs7628 * for source control or other information.7629 * 7630 * @param {string} [parameters.properties.netFrameworkVersion] The .NET7631 * Framework version. Supported values are v2.0, v4.0 and v4.5.7632 * 7633 * @param {number} [parameters.properties.numberOfWorkers] The number of web7634 * workers allotted to the web site. If the site mode is Free, this value is7635 * 1. If the site mode is Shared, this value can range from 1 through 6. If7636 * the site mode is Standard, this value can range from 1 through 10.7637 * 7638 * @param {string} [parameters.properties.phpVersion] Supported values are an7639 * empty string (an empty string disables PHP), 5.3, 5.4, 5.5 and 5.6.7640 * 7641 * @param {string} [parameters.properties.pythonVersion] Supported values are7642 * an empty string (an empty string disables Python), 2.7 and 3.4.7643 * 7644 * @param {boolean} [parameters.properties.remoteDebuggingEnabled] True7645 * remote debugging is enabled; otherwise, false.7646 * 7647 * @param {RemoteDebuggingVersion}7648 * [parameters.properties.remoteDebuggingVersion] True remote debugging7649 * version.7650 * 7651 * @param {boolean} [parameters.properties.requestTracingEnabled] True if7652 * request tracing is enabled; otherwise, false.7653 * 7654 * @param {date} [parameters.properties.requestTracingExpirationTime] Time7655 * remaining until request tracing expires.7656 * 7657 * @param {string} [parameters.properties.scmType] The source control method7658 * that the web site is using (for example, Local Git). If deployment from7659 * source control has not been set up for the web site, this value is None.7660 * 7661 * @param {boolean} [parameters.properties.use32BitWorkerProcess] True if7662 * 32-bit mode is enabled; otherwise, false.7663 * 7664 * @param {boolean} [parameters.properties.webSocketsEnabled] True if Web7665 * Sockets are enabled; otherwise, false.7666 * 7667 * @param {boolean} [parameters.properties.alwaysOn] True if Always On7668 * functionality is enabled for the site; otherwise, false.7669 * 7670 * @param {string} [parameters.properties.autoSwapSlotName] Sets the slot7671 * name to swap with after successful deployment.7672 * 7673 * @param {SiteLimits} [parameters.properties.limits] The per site limits.7674 * 7675 * @param {number} [parameters.properties.limits.maxPercentageCpu] The name7676 * of the pair.7677 * 7678 * @param {number} [parameters.properties.limits.maxMemoryInMb] Maximum7679 * memory allowed in MB7680 * 7681 * @param {number} [parameters.properties.limits.maxDiskSizeInMb] Maximum7682 * disk size allowed in MB7683 * 7684 * @param {string} [parameters.id] Gets the ID of the resource.7685 * 7686 * @param {string} [parameters.name] The name of the resource.7687 * 7688 * @param {string} parameters.location Gets or sets the location of the7689 * resource.7690 * 7691 * @param {object} [parameters.tags] Gets or sets the tags attached to the7692 * resource.7693 * 7694 * @param {string} [parameters.type] The type of the resource7695 * 7696 * @param {function} callback7697 * 7698 * @returns {Stream} The response stream.7699 */7700 WebSiteOperations.prototype.updateConfiguration = function(resourceGroupName, webSiteName, slotName, parameters, callback) {7701 if (callback === null || callback === undefined) {7702 throw new Error('callback cannot be null.');7703 }7704 // Validate7705 if (resourceGroupName === null || resourceGroupName === undefined) {7706 return callback(new Error('resourceGroupName cannot be null.'));7707 }7708 if (webSiteName === null || webSiteName === undefined) {7709 return callback(new Error('webSiteName cannot be null.'));7710 }7711 if (parameters === null || parameters === undefined) {7712 return callback(new Error('parameters cannot be null.'));7713 }7714 if (parameters.location === null || parameters.location === undefined) {7715 return callback(new Error('parameters.location cannot be null.'));7716 }7717 if (parameters.properties === null || parameters.properties === undefined) {7718 return callback(new Error('parameters.properties cannot be null.'));7719 }7720 7721 // Tracing7722 7723 // Construct URL7724 var url2 = '';7725 url2 = url2 + '/subscriptions/';7726 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {7727 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);7728 }7729 url2 = url2 + '/resourceGroups/';7730 url2 = url2 + encodeURIComponent(resourceGroupName);7731 url2 = url2 + '/providers/';7732 url2 = url2 + 'Microsoft.Web';7733 url2 = url2 + '/';7734 url2 = url2 + 'sites';7735 url2 = url2 + '/';7736 url2 = url2 + encodeURIComponent(webSiteName);7737 if (slotName !== null && slotName !== undefined) {7738 url2 = url2 + '/slots/' + encodeURIComponent(slotName);7739 }7740 url2 = url2 + '/config/web';7741 var queryParameters = [];7742 queryParameters.push('api-version=2014-06-01');7743 if (queryParameters.length > 0) {7744 url2 = url2 + '?' + queryParameters.join('&');7745 }7746 var baseUrl = this.client.baseUri;7747 // Trim '/' character from the end of baseUrl and beginning of url.7748 if (baseUrl[baseUrl.length - 1] === '/') {7749 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);7750 }7751 if (url2[0] === '/') {7752 url2 = url2.substring(1);7753 }7754 url2 = baseUrl + '/' + url2;7755 url2 = url2.replace(' ', '%20');7756 7757 // Create HTTP transport objects7758 var httpRequest = new WebResource();7759 httpRequest.method = 'PUT';7760 httpRequest.headers = {};7761 httpRequest.url = url2;7762 7763 // Set Headers7764 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';7765 7766 // Serialize Request7767 var requestContent = null;7768 var requestDoc = null;7769 7770 var webSiteUpdateConfigurationParametersValue = {};7771 requestDoc = webSiteUpdateConfigurationParametersValue;7772 7773 var propertiesValue = {};7774 webSiteUpdateConfigurationParametersValue['properties'] = propertiesValue;7775 7776 if (parameters.properties.appSettings !== null && parameters.properties.appSettings !== undefined) {7777 var appSettingsDictionary = {};7778 for (var appSettingsKey in parameters.properties.appSettings) {7779 var appSettingsValue = parameters.properties.appSettings[appSettingsKey];7780 appSettingsDictionary[appSettingsKey] = appSettingsValue;7781 }7782 propertiesValue['appSettings'] = appSettingsDictionary;7783 }7784 7785 if (parameters.properties.connectionStrings !== null && parameters.properties.connectionStrings !== undefined) {7786 var connectionStringsArray = [];7787 for (var loweredIndex1 = 0; loweredIndex1 < parameters.properties.connectionStrings.length; loweredIndex1 = loweredIndex1 + 1) {7788 var connectionStringsItem = parameters.properties.connectionStrings[loweredIndex1];7789 var connStringInfoValue = {};7790 connectionStringsArray.push(connStringInfoValue);7791 7792 if (connectionStringsItem.connectionString !== null && connectionStringsItem.connectionString !== undefined) {7793 connStringInfoValue['connectionString'] = connectionStringsItem.connectionString;7794 }7795 7796 if (connectionStringsItem.name !== null && connectionStringsItem.name !== undefined) {7797 connStringInfoValue['name'] = connectionStringsItem.name;7798 }7799 7800 if (connectionStringsItem.type !== null && connectionStringsItem.type !== undefined) {7801 connStringInfoValue['type'] = connectionStringsItem.type !== null && connectionStringsItem.type !== undefined ? connectionStringsItem.type.toString() : 'MySql';7802 }7803 }7804 propertiesValue['connectionStrings'] = connectionStringsArray;7805 }7806 7807 if (parameters.properties.defaultDocuments !== null && parameters.properties.defaultDocuments !== undefined) {7808 var defaultDocumentsArray = [];7809 for (var loweredIndex2 = 0; loweredIndex2 < parameters.properties.defaultDocuments.length; loweredIndex2 = loweredIndex2 + 1) {7810 var defaultDocumentsItem = parameters.properties.defaultDocuments[loweredIndex2];7811 defaultDocumentsArray.push(defaultDocumentsItem);7812 }7813 propertiesValue['defaultDocuments'] = defaultDocumentsArray;7814 }7815 7816 if (parameters.properties.detailedErrorLoggingEnabled !== null && parameters.properties.detailedErrorLoggingEnabled !== undefined) {7817 propertiesValue['detailedErrorLoggingEnabled'] = parameters.properties.detailedErrorLoggingEnabled;7818 }7819 7820 if (parameters.properties.documentRoot !== null && parameters.properties.documentRoot !== undefined) {7821 propertiesValue['documentRoot'] = parameters.properties.documentRoot;7822 }7823 7824 if (parameters.properties.handlerMappings !== null && parameters.properties.handlerMappings !== undefined) {7825 var handlerMappingsArray = [];7826 for (var loweredIndex3 = 0; loweredIndex3 < parameters.properties.handlerMappings.length; loweredIndex3 = loweredIndex3 + 1) {7827 var handlerMappingsItem = parameters.properties.handlerMappings[loweredIndex3];7828 var handlerMappingValue = {};7829 handlerMappingsArray.push(handlerMappingValue);7830 7831 if (handlerMappingsItem.arguments !== null && handlerMappingsItem.arguments !== undefined) {7832 handlerMappingValue['arguments'] = handlerMappingsItem.arguments;7833 }7834 7835 if (handlerMappingsItem.extension !== null && handlerMappingsItem.extension !== undefined) {7836 handlerMappingValue['extension'] = handlerMappingsItem.extension;7837 }7838 7839 if (handlerMappingsItem.scriptProcessor !== null && handlerMappingsItem.scriptProcessor !== undefined) {7840 handlerMappingValue['scriptProcessor'] = handlerMappingsItem.scriptProcessor;7841 }7842 }7843 propertiesValue['handlerMappings'] = handlerMappingsArray;7844 }7845 7846 if (parameters.properties.httpLoggingEnabled !== null && parameters.properties.httpLoggingEnabled !== undefined) {7847 propertiesValue['httpLoggingEnabled'] = parameters.properties.httpLoggingEnabled;7848 }7849 7850 if (parameters.properties.logsDirectorySizeLimit !== null && parameters.properties.logsDirectorySizeLimit !== undefined) {7851 propertiesValue['logsDirectorySizeLimit'] = parameters.properties.logsDirectorySizeLimit;7852 }7853 7854 if (parameters.properties.managedPipelineMode !== null && parameters.properties.managedPipelineMode !== undefined) {7855 propertiesValue['managedPipelineMode'] = parameters.properties.managedPipelineMode !== null && parameters.properties.managedPipelineMode !== undefined ? parameters.properties.managedPipelineMode.toString() : 'Integrated';7856 }7857 7858 if (parameters.properties.metadata !== null && parameters.properties.metadata !== undefined) {7859 var metadataDictionary = {};7860 for (var metadataKey in parameters.properties.metadata) {7861 var metadataValue = parameters.properties.metadata[metadataKey];7862 metadataDictionary[metadataKey] = metadataValue;7863 }7864 propertiesValue['metadata'] = metadataDictionary;7865 }7866 7867 if (parameters.properties.netFrameworkVersion !== null && parameters.properties.netFrameworkVersion !== undefined) {7868 propertiesValue['netFrameworkVersion'] = parameters.properties.netFrameworkVersion;7869 }7870 7871 if (parameters.properties.numberOfWorkers !== null && parameters.properties.numberOfWorkers !== undefined) {7872 propertiesValue['numberOfWorkers'] = parameters.properties.numberOfWorkers;7873 }7874 7875 if (parameters.properties.phpVersion !== null && parameters.properties.phpVersion !== undefined) {7876 propertiesValue['phpVersion'] = parameters.properties.phpVersion;7877 }7878 7879 if (parameters.properties.pythonVersion !== null && parameters.properties.pythonVersion !== undefined) {7880 propertiesValue['pythonVersion'] = parameters.properties.pythonVersion;7881 }7882 7883 if (parameters.properties.remoteDebuggingEnabled !== null && parameters.properties.remoteDebuggingEnabled !== undefined) {7884 propertiesValue['remoteDebuggingEnabled'] = parameters.properties.remoteDebuggingEnabled;7885 }7886 7887 if (parameters.properties.remoteDebuggingVersion !== null && parameters.properties.remoteDebuggingVersion !== undefined) {7888 propertiesValue['remoteDebuggingVersion'] = parameters.properties.remoteDebuggingVersion !== null && parameters.properties.remoteDebuggingVersion !== undefined ? parameters.properties.remoteDebuggingVersion.toString() : 'VS2012';7889 }7890 7891 if (parameters.properties.requestTracingEnabled !== null && parameters.properties.requestTracingEnabled !== undefined) {7892 propertiesValue['requestTracingEnabled'] = parameters.properties.requestTracingEnabled;7893 }7894 7895 if (parameters.properties.requestTracingExpirationTime !== null && parameters.properties.requestTracingExpirationTime !== undefined) {7896 propertiesValue['requestTracingExpirationTime'] = parameters.properties.requestTracingExpirationTime;7897 }7898 7899 if (parameters.properties.scmType !== null && parameters.properties.scmType !== undefined) {7900 propertiesValue['scmType'] = parameters.properties.scmType;7901 }7902 7903 if (parameters.properties.use32BitWorkerProcess !== null && parameters.properties.use32BitWorkerProcess !== undefined) {7904 propertiesValue['use32BitWorkerProcess'] = parameters.properties.use32BitWorkerProcess;7905 }7906 7907 if (parameters.properties.webSocketsEnabled !== null && parameters.properties.webSocketsEnabled !== undefined) {7908 propertiesValue['webSocketsEnabled'] = parameters.properties.webSocketsEnabled;7909 }7910 7911 if (parameters.properties.alwaysOn !== null && parameters.properties.alwaysOn !== undefined) {7912 propertiesValue['alwaysOn'] = parameters.properties.alwaysOn;7913 }7914 7915 if (parameters.properties.autoSwapSlotName !== null && parameters.properties.autoSwapSlotName !== undefined) {7916 propertiesValue['autoSwapSlotName'] = parameters.properties.autoSwapSlotName;7917 }7918 7919 if (parameters.properties.limits !== null && parameters.properties.limits !== undefined) {7920 var limitsValue = {};7921 propertiesValue['limits'] = limitsValue;7922 7923 if (parameters.properties.limits.maxPercentageCpu !== null && parameters.properties.limits.maxPercentageCpu !== undefined) {7924 limitsValue['maxPercentageCpu'] = parameters.properties.limits.maxPercentageCpu;7925 }7926 7927 if (parameters.properties.limits.maxMemoryInMb !== null && parameters.properties.limits.maxMemoryInMb !== undefined) {7928 limitsValue['maxMemoryInMb'] = parameters.properties.limits.maxMemoryInMb;7929 }7930 7931 if (parameters.properties.limits.maxDiskSizeInMb !== null && parameters.properties.limits.maxDiskSizeInMb !== undefined) {7932 limitsValue['maxDiskSizeInMb'] = parameters.properties.limits.maxDiskSizeInMb;7933 }7934 }7935 7936 if (parameters.id !== null && parameters.id !== undefined) {7937 webSiteUpdateConfigurationParametersValue['id'] = parameters.id;7938 }7939 7940 if (parameters.name !== null && parameters.name !== undefined) {7941 webSiteUpdateConfigurationParametersValue['name'] = parameters.name;7942 }7943 7944 webSiteUpdateConfigurationParametersValue['location'] = parameters.location;7945 7946 if (parameters.tags !== null && parameters.tags !== undefined) {7947 var tagsDictionary = {};7948 for (var tagsKey in parameters.tags) {7949 var tagsValue = parameters.tags[tagsKey];7950 tagsDictionary[tagsKey] = tagsValue;7951 }7952 webSiteUpdateConfigurationParametersValue['tags'] = tagsDictionary;7953 }7954 7955 if (parameters.type !== null && parameters.type !== undefined) {7956 webSiteUpdateConfigurationParametersValue['type'] = parameters.type;7957 }7958 7959 requestContent = JSON.stringify(requestDoc);7960 httpRequest.body = requestContent;7961 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');7962 // Send Request7963 return this.client.pipeline(httpRequest, function (err, response, body) {7964 if (err !== null && err !== undefined) {7965 return callback(err);7966 }7967 var statusCode = response.statusCode;7968 if (statusCode !== 200) {7969 var error = new Error(body);7970 error.statusCode = response.statusCode;7971 return callback(error);7972 }7973 7974 // Create Result7975 var result = null;7976 // Deserialize Response7977 result = {};7978 result.statusCode = statusCode;7979 result.requestId = response.headers['x-ms-request-id'];7980 7981 return callback(null, result);7982 });7983 };7984 7985 /**7986 * You can retrieve the connection strings for a web site by issuing an HTTP7987 * GET request, or update them by using HTTP PUT with a request body that7988 * contains the settings to be updated. (see7989 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166985.aspx for7990 * more information)7991 * 7992 * @param {string} resourceGroupName The name of the resource group7993 * 7994 * @param {string} webSiteName The name of the website7995 * 7996 * @param {string} [slotName] The name of the slot of the website7997 * 7998 * @param {WebSiteUpdateConnectionStringsParameters} parameters The Update7999 * Web Site connection strings parameters8000 * 8001 * @param {array} parameters.properties The connection strings for the web8002 * site.8003 * 8004 * @param {string} [parameters.id] Gets the ID of the resource.8005 * 8006 * @param {string} [parameters.name] The name of the resource.8007 * 8008 * @param {string} parameters.location Gets or sets the location of the8009 * resource.8010 * 8011 * @param {object} [parameters.tags] Gets or sets the tags attached to the8012 * resource.8013 * 8014 * @param {string} [parameters.type] The type of the resource8015 * 8016 * @param {function} callback8017 * 8018 * @returns {Stream} The response stream.8019 */8020 WebSiteOperations.prototype.updateConnectionStrings = function(resourceGroupName, webSiteName, slotName, parameters, callback) {8021 if (callback === null || callback === undefined) {8022 throw new Error('callback cannot be null.');8023 }8024 // Validate8025 if (resourceGroupName === null || resourceGroupName === undefined) {8026 return callback(new Error('resourceGroupName cannot be null.'));8027 }8028 if (webSiteName === null || webSiteName === undefined) {8029 return callback(new Error('webSiteName cannot be null.'));8030 }8031 if (parameters === null || parameters === undefined) {8032 return callback(new Error('parameters cannot be null.'));8033 }8034 if (parameters.location === null || parameters.location === undefined) {8035 return callback(new Error('parameters.location cannot be null.'));8036 }8037 if (parameters.properties === null || parameters.properties === undefined) {8038 return callback(new Error('parameters.properties cannot be null.'));8039 }8040 8041 // Tracing8042 8043 // Construct URL8044 var url2 = '';8045 url2 = url2 + '/subscriptions/';8046 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {8047 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);8048 }8049 url2 = url2 + '/resourceGroups/';8050 url2 = url2 + encodeURIComponent(resourceGroupName);8051 url2 = url2 + '/providers/';8052 url2 = url2 + 'Microsoft.Web';8053 url2 = url2 + '/';8054 url2 = url2 + 'sites';8055 url2 = url2 + '/';8056 url2 = url2 + encodeURIComponent(webSiteName);8057 if (slotName !== null && slotName !== undefined) {8058 url2 = url2 + '/slots/' + encodeURIComponent(slotName);8059 }8060 url2 = url2 + '/config/connectionstrings';8061 var queryParameters = [];8062 queryParameters.push('api-version=2014-06-01');8063 if (queryParameters.length > 0) {8064 url2 = url2 + '?' + queryParameters.join('&');8065 }8066 var baseUrl = this.client.baseUri;8067 // Trim '/' character from the end of baseUrl and beginning of url.8068 if (baseUrl[baseUrl.length - 1] === '/') {8069 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);8070 }8071 if (url2[0] === '/') {8072 url2 = url2.substring(1);8073 }8074 url2 = baseUrl + '/' + url2;8075 url2 = url2.replace(' ', '%20');8076 8077 // Create HTTP transport objects8078 var httpRequest = new WebResource();8079 httpRequest.method = 'PUT';8080 httpRequest.headers = {};8081 httpRequest.url = url2;8082 8083 // Set Headers8084 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';8085 8086 // Serialize Request8087 var requestContent = null;8088 var requestDoc = null;8089 8090 var webSiteUpdateConnectionStringsParametersValue = {};8091 requestDoc = webSiteUpdateConnectionStringsParametersValue;8092 8093 if (parameters.properties !== null && parameters.properties !== undefined) {8094 var propertiesArray = [];8095 for (var loweredIndex1 = 0; loweredIndex1 < parameters.properties.length; loweredIndex1 = loweredIndex1 + 1) {8096 var propertiesItem = parameters.properties[loweredIndex1];8097 var connStringInfoValue = {};8098 propertiesArray.push(connStringInfoValue);8099 8100 if (propertiesItem.connectionString !== null && propertiesItem.connectionString !== undefined) {8101 connStringInfoValue['connectionString'] = propertiesItem.connectionString;8102 }8103 8104 if (propertiesItem.name !== null && propertiesItem.name !== undefined) {8105 connStringInfoValue['name'] = propertiesItem.name;8106 }8107 8108 if (propertiesItem.type !== null && propertiesItem.type !== undefined) {8109 connStringInfoValue['type'] = propertiesItem.type !== null && propertiesItem.type !== undefined ? propertiesItem.type.toString() : 'MySql';8110 }8111 }8112 webSiteUpdateConnectionStringsParametersValue['properties'] = propertiesArray;8113 }8114 8115 if (parameters.id !== null && parameters.id !== undefined) {8116 webSiteUpdateConnectionStringsParametersValue['id'] = parameters.id;8117 }8118 8119 if (parameters.name !== null && parameters.name !== undefined) {8120 webSiteUpdateConnectionStringsParametersValue['name'] = parameters.name;8121 }8122 8123 webSiteUpdateConnectionStringsParametersValue['location'] = parameters.location;8124 8125 if (parameters.tags !== null && parameters.tags !== undefined) {8126 var tagsDictionary = {};8127 for (var tagsKey in parameters.tags) {8128 var tagsValue = parameters.tags[tagsKey];8129 tagsDictionary[tagsKey] = tagsValue;8130 }8131 webSiteUpdateConnectionStringsParametersValue['tags'] = tagsDictionary;8132 }8133 8134 if (parameters.type !== null && parameters.type !== undefined) {8135 webSiteUpdateConnectionStringsParametersValue['type'] = parameters.type;8136 }8137 8138 requestContent = JSON.stringify(requestDoc);8139 httpRequest.body = requestContent;8140 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');8141 // Send Request8142 return this.client.pipeline(httpRequest, function (err, response, body) {8143 if (err !== null && err !== undefined) {8144 return callback(err);8145 }8146 var statusCode = response.statusCode;8147 if (statusCode !== 200) {8148 var error = new Error(body);8149 error.statusCode = response.statusCode;8150 return callback(error);8151 }8152 8153 // Create Result8154 var result = null;8155 // Deserialize Response8156 if (statusCode === 200) {8157 var responseContent = body;8158 result = {};8159 var responseDoc = null;8160 if (responseContent) {8161 responseDoc = JSON.parse(responseContent);8162 }8163 8164 if (responseDoc !== null && responseDoc !== undefined) {8165 var resourceInstance = { properties: [], tags: {} };8166 result.resource = resourceInstance;8167 8168 var propertiesArray2 = responseDoc['properties'];8169 if (propertiesArray2 !== null && propertiesArray2 !== undefined) {8170 for (var loweredIndex2 = 0; loweredIndex2 < propertiesArray2.length; loweredIndex2 = loweredIndex2 + 1) {8171 var propertiesValue = propertiesArray2[loweredIndex2];8172 var connStringInfoInstance = {};8173 resourceInstance.properties.push(connStringInfoInstance);8174 8175 var connectionStringValue = propertiesValue['connectionString'];8176 if (connectionStringValue !== null && connectionStringValue !== undefined) {8177 var connectionStringInstance = connectionStringValue;8178 connStringInfoInstance.connectionString = connectionStringInstance;8179 }8180 8181 var nameValue = propertiesValue['name'];8182 if (nameValue !== null && nameValue !== undefined) {8183 var nameInstance = nameValue;8184 connStringInfoInstance.name = nameInstance;8185 }8186 8187 var typeValue = propertiesValue['type'];8188 if (typeValue !== null && typeValue !== undefined) {8189 var typeInstance = typeValue;8190 connStringInfoInstance.type = typeInstance;8191 }8192 }8193 }8194 8195 var idValue = responseDoc['id'];8196 if (idValue !== null && idValue !== undefined) {8197 var idInstance = idValue;8198 resourceInstance.id = idInstance;8199 }8200 8201 var nameValue2 = responseDoc['name'];8202 if (nameValue2 !== null && nameValue2 !== undefined) {8203 var nameInstance2 = nameValue2;8204 resourceInstance.name = nameInstance2;8205 }8206 8207 var locationValue = responseDoc['location'];8208 if (locationValue !== null && locationValue !== undefined) {8209 var locationInstance = locationValue;8210 resourceInstance.location = locationInstance;8211 }8212 8213 var tagsSequenceElement = responseDoc['tags'];8214 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {8215 for (var property in tagsSequenceElement) {8216 var tagsKey2 = property;8217 var tagsValue2 = tagsSequenceElement[property];8218 resourceInstance.tags[tagsKey2] = tagsValue2;8219 }8220 }8221 8222 var typeValue2 = responseDoc['type'];8223 if (typeValue2 !== null && typeValue2 !== undefined) {8224 var typeInstance2 = typeValue2;8225 resourceInstance.type = typeInstance2;8226 }8227 }8228 8229 }8230 result.statusCode = statusCode;8231 result.requestId = response.headers['x-ms-request-id'];8232 8233 return callback(null, result);8234 });8235 };8236 8237 /**8238 * You can retrieve the metadata for a web site by issuing an HTTP GET8239 * request, or update them by using HTTP PUT with a request body that8240 * contains the settings to be updated. (see8241 * http://msdn.microsoft.com/en-us/library/windowsazure/dn166985.aspx for8242 * more information)8243 * 8244 * @param {string} resourceGroupName The name of the resource group8245 * 8246 * @param {string} webSiteName The name of the website8247 * 8248 * @param {string} [slotName] The name of the slot of the website8249 * 8250 * @param {WebSiteNameValueParameters} parameters The Update Web Site8251 * metadata parameters8252 * 8253 * @param {array} parameters.properties The name value pair parameters for8254 * the web site.8255 * 8256 * @param {string} [parameters.id] Gets the ID of the resource.8257 * 8258 * @param {string} [parameters.name] The name of the resource.8259 * 8260 * @param {string} parameters.location Gets or sets the location of the8261 * resource.8262 * 8263 * @param {object} [parameters.tags] Gets or sets the tags attached to the8264 * resource.8265 * 8266 * @param {string} [parameters.type] The type of the resource8267 * 8268 * @param {function} callback8269 * 8270 * @returns {Stream} The response stream.8271 */8272 WebSiteOperations.prototype.updateMetadata = function(resourceGroupName, webSiteName, slotName, parameters, callback) {8273 if (callback === null || callback === undefined) {8274 throw new Error('callback cannot be null.');8275 }8276 // Validate8277 if (resourceGroupName === null || resourceGroupName === undefined) {8278 return callback(new Error('resourceGroupName cannot be null.'));8279 }8280 if (webSiteName === null || webSiteName === undefined) {8281 return callback(new Error('webSiteName cannot be null.'));8282 }8283 if (parameters === null || parameters === undefined) {8284 return callback(new Error('parameters cannot be null.'));8285 }8286 if (parameters.location === null || parameters.location === undefined) {8287 return callback(new Error('parameters.location cannot be null.'));8288 }8289 if (parameters.properties === null || parameters.properties === undefined) {8290 return callback(new Error('parameters.properties cannot be null.'));8291 }8292 8293 // Tracing8294 8295 // Construct URL8296 var url2 = '';8297 url2 = url2 + '/subscriptions/';8298 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {8299 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);8300 }8301 url2 = url2 + '/resourceGroups/';8302 url2 = url2 + encodeURIComponent(resourceGroupName);8303 url2 = url2 + '/providers/';8304 url2 = url2 + 'Microsoft.Web';8305 url2 = url2 + '/';8306 url2 = url2 + 'sites';8307 url2 = url2 + '/';8308 url2 = url2 + encodeURIComponent(webSiteName);8309 if (slotName !== null && slotName !== undefined) {8310 url2 = url2 + '/slots/' + encodeURIComponent(slotName);8311 }8312 url2 = url2 + '/config/metadata';8313 var queryParameters = [];8314 queryParameters.push('api-version=2014-06-01');8315 if (queryParameters.length > 0) {8316 url2 = url2 + '?' + queryParameters.join('&');8317 }8318 var baseUrl = this.client.baseUri;8319 // Trim '/' character from the end of baseUrl and beginning of url.8320 if (baseUrl[baseUrl.length - 1] === '/') {8321 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);8322 }8323 if (url2[0] === '/') {8324 url2 = url2.substring(1);8325 }8326 url2 = baseUrl + '/' + url2;8327 url2 = url2.replace(' ', '%20');8328 8329 // Create HTTP transport objects8330 var httpRequest = new WebResource();8331 httpRequest.method = 'PUT';8332 httpRequest.headers = {};8333 httpRequest.url = url2;8334 8335 // Set Headers8336 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';8337 8338 // Serialize Request8339 var requestContent = null;8340 var requestDoc = null;8341 8342 var webSiteNameValueParametersValue = {};8343 requestDoc = webSiteNameValueParametersValue;8344 8345 if (parameters.properties !== null && parameters.properties !== undefined) {8346 var propertiesArray = [];8347 for (var loweredIndex1 = 0; loweredIndex1 < parameters.properties.length; loweredIndex1 = loweredIndex1 + 1) {8348 var propertiesItem = parameters.properties[loweredIndex1];8349 var nameValuePairValue = {};8350 propertiesArray.push(nameValuePairValue);8351 8352 if (propertiesItem.name !== null && propertiesItem.name !== undefined) {8353 nameValuePairValue['name'] = propertiesItem.name;8354 }8355 8356 if (propertiesItem.value !== null && propertiesItem.value !== undefined) {8357 nameValuePairValue['value'] = propertiesItem.value;8358 }8359 }8360 webSiteNameValueParametersValue['properties'] = propertiesArray;8361 }8362 8363 if (parameters.id !== null && parameters.id !== undefined) {8364 webSiteNameValueParametersValue['id'] = parameters.id;8365 }8366 8367 if (parameters.name !== null && parameters.name !== undefined) {8368 webSiteNameValueParametersValue['name'] = parameters.name;8369 }8370 8371 webSiteNameValueParametersValue['location'] = parameters.location;8372 8373 if (parameters.tags !== null && parameters.tags !== undefined) {8374 var tagsDictionary = {};8375 for (var tagsKey in parameters.tags) {8376 var tagsValue = parameters.tags[tagsKey];8377 tagsDictionary[tagsKey] = tagsValue;8378 }8379 webSiteNameValueParametersValue['tags'] = tagsDictionary;8380 }8381 8382 if (parameters.type !== null && parameters.type !== undefined) {8383 webSiteNameValueParametersValue['type'] = parameters.type;8384 }8385 8386 requestContent = JSON.stringify(requestDoc);8387 httpRequest.body = requestContent;8388 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');8389 // Send Request8390 return this.client.pipeline(httpRequest, function (err, response, body) {8391 if (err !== null && err !== undefined) {8392 return callback(err);8393 }8394 var statusCode = response.statusCode;8395 if (statusCode !== 200) {8396 var error = new Error(body);8397 error.statusCode = response.statusCode;8398 return callback(error);8399 }8400 8401 // Create Result8402 var result = null;8403 // Deserialize Response8404 if (statusCode === 200) {8405 var responseContent = body;8406 result = {};8407 var responseDoc = null;8408 if (responseContent) {8409 responseDoc = JSON.parse(responseContent);8410 }8411 8412 if (responseDoc !== null && responseDoc !== undefined) {8413 var resourceInstance = { properties: [], tags: {} };8414 result.resource = resourceInstance;8415 8416 var propertiesArray2 = responseDoc['properties'];8417 if (propertiesArray2 !== null && propertiesArray2 !== undefined) {8418 for (var loweredIndex2 = 0; loweredIndex2 < propertiesArray2.length; loweredIndex2 = loweredIndex2 + 1) {8419 var propertiesValue = propertiesArray2[loweredIndex2];8420 var nameValuePairInstance = {};8421 resourceInstance.properties.push(nameValuePairInstance);8422 8423 var nameValue = propertiesValue['name'];8424 if (nameValue !== null && nameValue !== undefined) {8425 var nameInstance = nameValue;8426 nameValuePairInstance.name = nameInstance;8427 }8428 8429 var valueValue = propertiesValue['value'];8430 if (valueValue !== null && valueValue !== undefined) {8431 var valueInstance = valueValue;8432 nameValuePairInstance.value = valueInstance;8433 }8434 }8435 }8436 8437 var idValue = responseDoc['id'];8438 if (idValue !== null && idValue !== undefined) {8439 var idInstance = idValue;8440 resourceInstance.id = idInstance;8441 }8442 8443 var nameValue2 = responseDoc['name'];8444 if (nameValue2 !== null && nameValue2 !== undefined) {8445 var nameInstance2 = nameValue2;8446 resourceInstance.name = nameInstance2;8447 }8448 8449 var locationValue = responseDoc['location'];8450 if (locationValue !== null && locationValue !== undefined) {8451 var locationInstance = locationValue;8452 resourceInstance.location = locationInstance;8453 }8454 8455 var tagsSequenceElement = responseDoc['tags'];8456 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {8457 for (var property in tagsSequenceElement) {8458 var tagsKey2 = property;8459 var tagsValue2 = tagsSequenceElement[property];8460 resourceInstance.tags[tagsKey2] = tagsValue2;8461 }8462 }8463 8464 var typeValue = responseDoc['type'];8465 if (typeValue !== null && typeValue !== undefined) {8466 var typeInstance = typeValue;8467 resourceInstance.type = typeInstance;8468 }8469 }8470 8471 }8472 result.statusCode = statusCode;8473 result.requestId = response.headers['x-ms-request-id'];8474 8475 return callback(null, result);8476 });8477 };8478 8479 /**8480 * Link source control to website (do not forget to setup the token, and if8481 * needed token secret, for the specific source control type used).8482 * 8483 * @param {string} resourceGroupName The name of the resource group8484 * 8485 * @param {string} webSiteName The name of the web site8486 * 8487 * @param {string} [slotName] The name of the slot of the website8488 * 8489 * @param {SiteSourceControlUpdateParameters} parameters The update site8490 * source control parameters.8491 * 8492 * @param {SiteSourceControlProperties} parameters.properties Gets or sets8493 * the properties of the link site to source control.8494 * 8495 * @param {string} parameters.properties.repoUrl Gets or sets the repository8496 * url.8497 * 8498 * @param {string} [parameters.properties.branch] Gets or sets the branch (if8499 * required, will be master by default).8500 * 8501 * @param {boolean} [parameters.properties.isManualIntegration] Gets or sets8502 * true for repository that requires to be manually synced or false (by8503 * default) otherwise.8504 * 8505 * @param {boolean} [parameters.properties.deploymentRollbackEnabled] Gets or8506 * sets true to keep a repository for non-repository source control provider8507 * (like Dropbox) or false (by default) otherwise.8508 * 8509 * @param {boolean} [parameters.properties.isMercurial] Gets or sets true if8510 * repository is Mercurial or false (by default) otherwise.8511 * 8512 * @param {function} callback8513 * 8514 * @returns {Stream} The response stream.8515 */8516 WebSiteOperations.prototype.updateSiteSourceControl = function(resourceGroupName, webSiteName, slotName, parameters, callback) {8517 if (callback === null || callback === undefined) {8518 throw new Error('callback cannot be null.');8519 }8520 // Validate8521 if (resourceGroupName === null || resourceGroupName === undefined) {8522 return callback(new Error('resourceGroupName cannot be null.'));8523 }8524 if (webSiteName === null || webSiteName === undefined) {8525 return callback(new Error('webSiteName cannot be null.'));8526 }8527 if (parameters === null || parameters === undefined) {8528 return callback(new Error('parameters cannot be null.'));8529 }8530 if (parameters.properties === null || parameters.properties === undefined) {8531 return callback(new Error('parameters.properties cannot be null.'));8532 }8533 if (parameters.properties.repoUrl === null || parameters.properties.repoUrl === undefined) {8534 return callback(new Error('parameters.properties.repoUrl cannot be null.'));8535 }8536 8537 // Tracing8538 8539 // Construct URL8540 var url2 = '';8541 url2 = url2 + '/subscriptions/';8542 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {8543 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);8544 }8545 url2 = url2 + '/resourceGroups/';8546 url2 = url2 + encodeURIComponent(resourceGroupName);8547 url2 = url2 + '/providers/';8548 url2 = url2 + 'Microsoft.Web';8549 url2 = url2 + '/';8550 url2 = url2 + 'sites';8551 url2 = url2 + '/';8552 url2 = url2 + encodeURIComponent(webSiteName);8553 if (slotName !== null && slotName !== undefined) {8554 url2 = url2 + '/slots/' + encodeURIComponent(slotName);8555 }8556 url2 = url2 + '/sourcecontrols/web';8557 var queryParameters = [];8558 queryParameters.push('api-version=2014-06-01');8559 if (queryParameters.length > 0) {8560 url2 = url2 + '?' + queryParameters.join('&');8561 }8562 var baseUrl = this.client.baseUri;8563 // Trim '/' character from the end of baseUrl and beginning of url.8564 if (baseUrl[baseUrl.length - 1] === '/') {8565 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);8566 }8567 if (url2[0] === '/') {8568 url2 = url2.substring(1);8569 }8570 url2 = baseUrl + '/' + url2;8571 url2 = url2.replace(' ', '%20');8572 8573 // Create HTTP transport objects8574 var httpRequest = new WebResource();8575 httpRequest.method = 'PUT';8576 httpRequest.headers = {};8577 httpRequest.url = url2;8578 8579 // Set Headers8580 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';8581 8582 // Serialize Request8583 var requestContent = null;8584 var requestDoc = null;8585 8586 var siteSourceControlUpdateParametersValue = {};8587 requestDoc = siteSourceControlUpdateParametersValue;8588 8589 var propertiesValue = {};8590 siteSourceControlUpdateParametersValue['properties'] = propertiesValue;8591 8592 propertiesValue['repoUrl'] = parameters.properties.repoUrl;8593 8594 if (parameters.properties.branch !== null && parameters.properties.branch !== undefined) {8595 propertiesValue['branch'] = parameters.properties.branch;8596 }8597 8598 if (parameters.properties.isManualIntegration !== null && parameters.properties.isManualIntegration !== undefined) {8599 propertiesValue['isManualIntegration'] = parameters.properties.isManualIntegration;8600 }8601 8602 if (parameters.properties.deploymentRollbackEnabled !== null && parameters.properties.deploymentRollbackEnabled !== undefined) {8603 propertiesValue['deploymentRollbackEnabled'] = parameters.properties.deploymentRollbackEnabled;8604 }8605 8606 if (parameters.properties.isMercurial !== null && parameters.properties.isMercurial !== undefined) {8607 propertiesValue['isMercurial'] = parameters.properties.isMercurial;8608 }8609 8610 requestContent = JSON.stringify(requestDoc);8611 httpRequest.body = requestContent;8612 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');8613 // Send Request8614 return this.client.pipeline(httpRequest, function (err, response, body) {8615 if (err !== null && err !== undefined) {8616 return callback(err);8617 }8618 var statusCode = response.statusCode;8619 if (statusCode !== 200) {8620 var error = new Error(body);8621 error.statusCode = response.statusCode;8622 return callback(error);8623 }8624 8625 // Create Result8626 var result = null;8627 // Deserialize Response8628 if (statusCode === 200) {8629 var responseContent = body;8630 result = {};8631 var responseDoc = null;8632 if (responseContent) {8633 responseDoc = JSON.parse(responseContent);8634 }8635 8636 if (responseDoc !== null && responseDoc !== undefined) {8637 var siteSourceControlInstance = { tags: {} };8638 result.siteSourceControl = siteSourceControlInstance;8639 8640 var propertiesValue2 = responseDoc['properties'];8641 if (propertiesValue2 !== null && propertiesValue2 !== undefined) {8642 var propertiesInstance = {};8643 siteSourceControlInstance.properties = propertiesInstance;8644 8645 var repoUrlValue = propertiesValue2['repoUrl'];8646 if (repoUrlValue !== null && repoUrlValue !== undefined) {8647 var repoUrlInstance = repoUrlValue;8648 propertiesInstance.repoUrl = repoUrlInstance;8649 }8650 8651 var branchValue = propertiesValue2['branch'];8652 if (branchValue !== null && branchValue !== undefined) {8653 var branchInstance = branchValue;8654 propertiesInstance.branch = branchInstance;8655 }8656 8657 var isManualIntegrationValue = propertiesValue2['isManualIntegration'];8658 if (isManualIntegrationValue !== null && isManualIntegrationValue !== undefined) {8659 var isManualIntegrationInstance = isManualIntegrationValue;8660 propertiesInstance.isManualIntegration = isManualIntegrationInstance;8661 }8662 8663 var deploymentRollbackEnabledValue = propertiesValue2['deploymentRollbackEnabled'];8664 if (deploymentRollbackEnabledValue !== null && deploymentRollbackEnabledValue !== undefined) {8665 var deploymentRollbackEnabledInstance = deploymentRollbackEnabledValue;8666 propertiesInstance.deploymentRollbackEnabled = deploymentRollbackEnabledInstance;8667 }8668 8669 var isMercurialValue = propertiesValue2['isMercurial'];8670 if (isMercurialValue !== null && isMercurialValue !== undefined) {8671 var isMercurialInstance = isMercurialValue;8672 propertiesInstance.isMercurial = isMercurialInstance;8673 }8674 }8675 8676 var idValue = responseDoc['id'];8677 if (idValue !== null && idValue !== undefined) {8678 var idInstance = idValue;8679 siteSourceControlInstance.id = idInstance;8680 }8681 8682 var nameValue = responseDoc['name'];8683 if (nameValue !== null && nameValue !== undefined) {8684 var nameInstance = nameValue;8685 siteSourceControlInstance.name = nameInstance;8686 }8687 8688 var locationValue = responseDoc['location'];8689 if (locationValue !== null && locationValue !== undefined) {8690 var locationInstance = locationValue;8691 siteSourceControlInstance.location = locationInstance;8692 }8693 8694 var tagsSequenceElement = responseDoc['tags'];8695 if (tagsSequenceElement !== null && tagsSequenceElement !== undefined) {8696 for (var property in tagsSequenceElement) {8697 var tagsKey = property;8698 var tagsValue = tagsSequenceElement[property];8699 siteSourceControlInstance.tags[tagsKey] = tagsValue;8700 }8701 }8702 8703 var typeValue = responseDoc['type'];8704 if (typeValue !== null && typeValue !== undefined) {8705 var typeInstance = typeValue;8706 siteSourceControlInstance.type = typeInstance;8707 }8708 }8709 8710 }8711 result.statusCode = statusCode;8712 result.requestId = response.headers['x-ms-request-id'];8713 8714 return callback(null, result);8715 });8716 };8717 8718 /**8719 * Update list of app settings and connection strings which to be slot8720 * specific. E.g. settings in staging slots remain in staging after swap8721 * with production.8722 * 8723 * @param {string} resourceGroupName The name of the resource group8724 * 8725 * @param {string} webSiteName The name of the website8726 * 8727 * @param {SlotConfigNamesUpdateParameters} parameters The Update slot8728 * configs parameters8729 * 8730 * @param {SlotConfigNames} parameters.properties The name value pair8731 * parameters for the web site.8732 * 8733 * @param {array} [parameters.properties.connectionStringNames] One or more8734 * string elements that list the name of the connection string setting that8735 * will not be moved durig site swap. For example, if slot named staging has8736 * connection UsersDatabase that points to staging test database, it8737 * shouldn't be moved when swapped with production slot but should take the8738 * current value from production.8739 * 8740 * @param {array} [parameters.properties.appSettingNames] One or more string8741 * elements that list the name of the app setting that will not be moved8742 * durig site swap. For example, if slot named staging has setting8743 * EnableVerboseLogging=1, it shouldn't be moved when swapped with8744 * production slot but should take the current value from production.8745 * 8746 * @param {string} [parameters.id] Gets the ID of the resource.8747 * 8748 * @param {string} [parameters.name] The name of the resource.8749 * 8750 * @param {string} parameters.location Gets or sets the location of the8751 * resource.8752 * 8753 * @param {object} [parameters.tags] Gets or sets the tags attached to the8754 * resource.8755 * 8756 * @param {string} [parameters.type] The type of the resource8757 * 8758 * @param {function} callback8759 * 8760 * @returns {Stream} The response stream.8761 */8762 WebSiteOperations.prototype.updateSlotConfigNames = function(resourceGroupName, webSiteName, parameters, callback) {8763 if (callback === null || callback === undefined) {8764 throw new Error('callback cannot be null.');8765 }8766 // Validate8767 if (resourceGroupName === null || resourceGroupName === undefined) {8768 return callback(new Error('resourceGroupName cannot be null.'));8769 }8770 if (webSiteName === null || webSiteName === undefined) {8771 return callback(new Error('webSiteName cannot be null.'));8772 }8773 if (parameters === null || parameters === undefined) {8774 return callback(new Error('parameters cannot be null.'));8775 }8776 if (parameters.location === null || parameters.location === undefined) {8777 return callback(new Error('parameters.location cannot be null.'));8778 }8779 if (parameters.properties === null || parameters.properties === undefined) {8780 return callback(new Error('parameters.properties cannot be null.'));8781 }8782 8783 // Tracing8784 8785 // Construct URL8786 var url2 = '';8787 url2 = url2 + '/subscriptions/';8788 if (this.client.credentials.subscriptionId !== null && this.client.credentials.subscriptionId !== undefined) {8789 url2 = url2 + encodeURIComponent(this.client.credentials.subscriptionId);8790 }8791 url2 = url2 + '/resourceGroups/';8792 url2 = url2 + encodeURIComponent(resourceGroupName);8793 url2 = url2 + '/providers/';8794 url2 = url2 + 'Microsoft.Web';8795 url2 = url2 + '/';8796 url2 = url2 + 'sites';8797 url2 = url2 + '/';8798 url2 = url2 + encodeURIComponent(webSiteName);8799 url2 = url2 + '/slotConfigNames';8800 var queryParameters = [];8801 queryParameters.push('api-version=2014-06-01');8802 if (queryParameters.length > 0) {8803 url2 = url2 + '?' + queryParameters.join('&');8804 }8805 var baseUrl = this.client.baseUri;8806 // Trim '/' character from the end of baseUrl and beginning of url.8807 if (baseUrl[baseUrl.length - 1] === '/') {8808 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);8809 }8810 if (url2[0] === '/') {8811 url2 = url2.substring(1);8812 }8813 url2 = baseUrl + '/' + url2;8814 url2 = url2.replace(' ', '%20');8815 8816 // Create HTTP transport objects8817 var httpRequest = new WebResource();8818 httpRequest.method = 'PUT';8819 httpRequest.headers = {};8820 httpRequest.url = url2;8821 8822 // Set Headers8823 httpRequest.headers['accept'] = 'application/json';8824 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';8825 8826 // Serialize Request8827 var requestContent = null;8828 var requestDoc = null;8829 8830 var slotConfigNamesUpdateParametersValue = {};8831 requestDoc = slotConfigNamesUpdateParametersValue;8832 8833 var propertiesValue = {};8834 slotConfigNamesUpdateParametersValue['properties'] = propertiesValue;8835 8836 if (parameters.properties.connectionStringNames !== null && parameters.properties.connectionStringNames !== undefined) {8837 var connectionStringNamesArray = [];8838 for (var loweredIndex1 = 0; loweredIndex1 < parameters.properties.connectionStringNames.length; loweredIndex1 = loweredIndex1 + 1) {8839 var connectionStringNamesItem = parameters.properties.connectionStringNames[loweredIndex1];8840 connectionStringNamesArray.push(connectionStringNamesItem);8841 }8842 propertiesValue['connectionStringNames'] = connectionStringNamesArray;8843 }8844 8845 if (parameters.properties.appSettingNames !== null && parameters.properties.appSettingNames !== undefined) {8846 var appSettingNamesArray = [];8847 for (var loweredIndex2 = 0; loweredIndex2 < parameters.properties.appSettingNames.length; loweredIndex2 = loweredIndex2 + 1) {8848 var appSettingNamesItem = parameters.properties.appSettingNames[loweredIndex2];8849 appSettingNamesArray.push(appSettingNamesItem);8850 }8851 propertiesValue['appSettingNames'] = appSettingNamesArray;8852 }8853 8854 if (parameters.id !== null && parameters.id !== undefined) {8855 slotConfigNamesUpdateParametersValue['id'] = parameters.id;8856 }8857 8858 if (parameters.name !== null && parameters.name !== undefined) {8859 slotConfigNamesUpdateParametersValue['name'] = parameters.name;8860 }8861 8862 slotConfigNamesUpdateParametersValue['location'] = parameters.location;8863 8864 if (parameters.tags !== null && parameters.tags !== undefined) {8865 var tagsDictionary = {};8866 for (var tagsKey in parameters.tags) {8867 var tagsValue = parameters.tags[tagsKey];8868 tagsDictionary[tagsKey] = tagsValue;8869 }8870 slotConfigNamesUpdateParametersValue['tags'] = tagsDictionary;8871 }8872 8873 if (parameters.type !== null && parameters.type !== undefined) {8874 slotConfigNamesUpdateParametersValue['type'] = parameters.type;8875 }8876 8877 requestContent = JSON.stringify(requestDoc);8878 httpRequest.body = requestContent;8879 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');8880 // Send Request8881 return this.client.pipeline(httpRequest, function (err, response, body) {8882 if (err !== null && err !== undefined) {8883 return callback(err);8884 }8885 var statusCode = response.statusCode;8886 if (statusCode !== 200) {8887 var error = new Error(body);8888 error.statusCode = response.statusCode;8889 return callback(error);8890 }8891 8892 // Create Result8893 var result = null;8894 // Deserialize Response8895 result = {};8896 result.statusCode = statusCode;8897 result.requestId = response.headers['x-ms-request-id'];8898 8899 return callback(null, result);8900 });8901 };8902 8903 return WebSiteOperations; ...

Full Screen

Full Screen

graphRbacManagementClient.js

Source:graphRbacManagementClient.js Github

copy

Full Screen

1/* jshint latedef:false */2/* jshint forin:false */3/* jshint noempty:false */45// 6// Copyright (c) Microsoft and contributors. All rights reserved.7// 8// Licensed under the Apache License, Version 2.0 (the "License");9// you may not use this file except in compliance with the License.10// You may obtain a copy of the License at11// http://www.apache.org/licenses/LICENSE-2.012// 13// Unless required by applicable law or agreed to in writing, software14// distributed under the License is distributed on an "AS IS" BASIS,15// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.16// 17// See the License for the specific language governing permissions and18// limitations under the License.19// 2021// Warning: This code was generated by a tool.22// 23// Changes to this file may cause incorrect behavior and will be lost if the24// code is regenerated.2526'use strict';2728var util = require('util');29var azureCommon = require('azure-common');30var Service = azureCommon.Service;31var WebResource = azureCommon.WebResource;3233var GraphRbacManagementClient = ( /** @lends GraphRbacManagementClient */ function() {34 /**35 * @class36 * Initializes a new instance of the GraphRbacManagementClient class.37 * @constructor38 * 39 * @param {string} tenantID Gets or sets the tenant Id.40 * 41 * @param {SubscriptionCloudCredentials} credentials Gets subscription42 * credentials which uniquely identify Microsoft Azure subscription. The43 * subscription ID forms part of the URI for every service call.44 * 45 * @param {string} [credentials.subscriptionId]46 * 47 * @param {string} [baseUri] Gets the URI used as the base for all cloud48 * service requests.49 * 50 * @param {Array} filters51 */52 function GraphRbacManagementClient(tenantID, credentials, baseUri, filters) {53 if (tenantID === null || tenantID === undefined) {54 throw new Error('tenantID cannot be null.');55 }56 if (credentials === null || credentials === undefined) {57 throw new Error('credentials cannot be null.');58 }59 60 GraphRbacManagementClient['super_'].call(this, credentials, filters);61 62 this.tenantID = tenantID;63 this.credentials = credentials;64 this.baseUri = baseUri;65 if (this.baseUri === null || this.baseUri === undefined) {66 this.baseUri = 'https://graph.windows.net/';67 }68 if (this.apiVersion === null || this.apiVersion === undefined) {69 this.apiVersion = '1.42-previewInternal';70 }71 if (this.longRunningOperationInitialTimeout === null || this.longRunningOperationInitialTimeout === undefined) {72 this.longRunningOperationInitialTimeout = -1;73 }74 if (this.longRunningOperationRetryTimeout === null || this.longRunningOperationRetryTimeout === undefined) {75 this.longRunningOperationRetryTimeout = -1;76 }77 /**78 * Provides an instance of the79 * [ApplicationOperations](-ApplicationOperations.html) object.80 * @type {object}81 */82 this.application = new ApplicationOperations(this);83 /**84 * Provides an instance of the [GroupOperations](-GroupOperations.html)85 * object.86 * @type {object}87 */88 this.group = new GroupOperations(this);89 /**90 * Provides an instance of the [ObjectOperations](-ObjectOperations.html)91 * object.92 * @type {object}93 */94 this.objects = new ObjectOperations(this);95 /**96 * Provides an instance of the97 * [ServicePrincipalOperations](-ServicePrincipalOperations.html) object.98 * @type {object}99 */100 this.servicePrincipal = new ServicePrincipalOperations(this);101 /**102 * Provides an instance of the [UserOperations](-UserOperations.html)103 * object.104 * @type {object}105 */106 this.user = new UserOperations(this);107 }108 109 util.inherits(GraphRbacManagementClient, Service);110 111 112 return GraphRbacManagementClient;113})();114exports.GraphRbacManagementClient = GraphRbacManagementClient;115116var ApplicationOperations = ( /** @lends ApplicationOperations */ function() {117 /**118 * @class119 * Operations for working with applications in Azure Active Directory Graph120 * API. (see http://msdn.microsoft.com/en-us/library/azure/hh974476.aspx121 * for more information)122 * __NOTE__: An instance of this class is automatically created for an123 * instance of the [GraphRbacManagementClient] {@link124 * GraphRbacManagementClient~GraphRbacManagementClient}.125 * See [application] {@link126 * GraphRbacManagementClient~GraphRbacManagementClient#application}.127 * Initializes a new instance of the ApplicationOperations class.128 * @constructor129 * 130 * @param {GraphRbacManagementClient} client Reference to the service client.131 */132 function ApplicationOperations(client) {133 this.client = client;134 }135 136 /**137 * Create a new application. (see138 * http://msdn.microsoft.com/en-us/library/azure/hh974476.aspx for more139 * information)140 * 141 * @param {ApplicationCreateParameters} parameters Parameters to create an142 * application.143 * 144 * @param {boolean} parameters.availableToOtherTenants Indicates if the145 * application will be available to other tenants146 * 147 * @param {string} parameters.displayName Application display name148 * 149 * @param {string} parameters.homepage Application homepage150 * 151 * @param {IEnumerable} parameters.identifierUris Application Uris152 * 153 * @param {IEnumerable} [parameters.replyUrls] Application reply Urls154 * 155 * @param {IEnumerable} [parameters.keyCredentials] Gets or sets the list of156 * KeyCredential objects157 * 158 * @param {IEnumerable} [parameters.passwordCredentials] Gets or sets the159 * list of PasswordCredential objects160 * 161 * @param {function} callback162 * 163 * @returns {Stream} The response stream.164 */165 ApplicationOperations.prototype.create = function(parameters, callback) {166 if (callback === null || callback === undefined) {167 throw new Error('callback cannot be null.');168 }169 // Validate170 if (parameters === null || parameters === undefined) {171 return callback(new Error('parameters cannot be null.'));172 }173 if (parameters.availableToOtherTenants === null || parameters.availableToOtherTenants === undefined) {174 return callback(new Error('parameters.availableToOtherTenants cannot be null.'));175 }176 if (parameters.displayName === null || parameters.displayName === undefined) {177 return callback(new Error('parameters.displayName cannot be null.'));178 }179 if (parameters.homepage === null || parameters.homepage === undefined) {180 return callback(new Error('parameters.homepage cannot be null.'));181 }182 if (parameters.identifierUris === null || parameters.identifierUris === undefined) {183 return callback(new Error('parameters.identifierUris cannot be null.'));184 }185 186 // Tracing187 188 // Construct URL189 var url2 = '';190 url2 = url2 + '/';191 url2 = url2 + encodeURIComponent(this.client.tenantID);192 url2 = url2 + '/applications';193 var queryParameters = [];194 queryParameters.push('api-version=1.42-previewInternal');195 if (queryParameters.length > 0) {196 url2 = url2 + '?' + queryParameters.join('&');197 }198 var baseUrl = this.client.baseUri;199 // Trim '/' character from the end of baseUrl and beginning of url.200 if (baseUrl[baseUrl.length - 1] === '/') {201 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);202 }203 if (url2[0] === '/') {204 url2 = url2.substring(1);205 }206 url2 = baseUrl + '/' + url2;207 url2 = url2.replace(' ', '%20');208 209 // Create HTTP transport objects210 var httpRequest = new WebResource();211 httpRequest.method = 'POST';212 httpRequest.headers = {};213 httpRequest.url = url2;214 215 // Set Headers216 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';217 218 // Serialize Request219 var requestContent = null;220 var requestDoc = null;221 222 var applicationCreateParametersValue = {};223 requestDoc = applicationCreateParametersValue;224 225 applicationCreateParametersValue['availableToOtherTenants'] = parameters.availableToOtherTenants;226 227 applicationCreateParametersValue['displayName'] = parameters.displayName;228 229 applicationCreateParametersValue['homepage'] = parameters.homepage;230 231 if (parameters.identifierUris !== null && parameters.identifierUris !== undefined) {232 var identifierUrisArray = [];233 for (var loweredIndex1 = 0; loweredIndex1 < parameters.identifierUris.length; loweredIndex1 = loweredIndex1 + 1) {234 var identifierUrisItem = parameters.identifierUris[loweredIndex1];235 identifierUrisArray.push(identifierUrisItem);236 }237 applicationCreateParametersValue['identifierUris'] = identifierUrisArray;238 }239 240 if (parameters.replyUrls !== null && parameters.replyUrls !== undefined) {241 var replyUrlsArray = [];242 for (var loweredIndex2 = 0; loweredIndex2 < parameters.replyUrls.length; loweredIndex2 = loweredIndex2 + 1) {243 var replyUrlsItem = parameters.replyUrls[loweredIndex2];244 replyUrlsArray.push(replyUrlsItem);245 }246 applicationCreateParametersValue['replyUrls'] = replyUrlsArray;247 }248 249 if (parameters.keyCredentials !== null && parameters.keyCredentials !== undefined) {250 var keyCredentialsArray = [];251 for (var loweredIndex3 = 0; loweredIndex3 < parameters.keyCredentials.length; loweredIndex3 = loweredIndex3 + 1) {252 var keyCredentialsItem = parameters.keyCredentials[loweredIndex3];253 var keyCredentialValue = {};254 keyCredentialsArray.push(keyCredentialValue);255 256 if (keyCredentialsItem.startDate !== null && keyCredentialsItem.startDate !== undefined) {257 keyCredentialValue['startDate'] = keyCredentialsItem.startDate.toISOString();258 }259 260 if (keyCredentialsItem.endDate !== null && keyCredentialsItem.endDate !== undefined) {261 keyCredentialValue['endDate'] = keyCredentialsItem.endDate.toISOString();262 }263 264 if (keyCredentialsItem.value !== null && keyCredentialsItem.value !== undefined) {265 keyCredentialValue['value'] = keyCredentialsItem.value;266 }267 268 if (keyCredentialsItem.keyId !== null && keyCredentialsItem.keyId !== undefined) {269 keyCredentialValue['keyId'] = keyCredentialsItem.keyId;270 }271 272 if (keyCredentialsItem.usage !== null && keyCredentialsItem.usage !== undefined) {273 keyCredentialValue['usage'] = keyCredentialsItem.usage;274 }275 276 if (keyCredentialsItem.type !== null && keyCredentialsItem.type !== undefined) {277 keyCredentialValue['type'] = keyCredentialsItem.type;278 }279 }280 applicationCreateParametersValue['keyCredentials'] = keyCredentialsArray;281 }282 283 if (parameters.passwordCredentials !== null && parameters.passwordCredentials !== undefined) {284 var passwordCredentialsArray = [];285 for (var loweredIndex4 = 0; loweredIndex4 < parameters.passwordCredentials.length; loweredIndex4 = loweredIndex4 + 1) {286 var passwordCredentialsItem = parameters.passwordCredentials[loweredIndex4];287 var passwordCredentialValue = {};288 passwordCredentialsArray.push(passwordCredentialValue);289 290 if (passwordCredentialsItem.startDate !== null && passwordCredentialsItem.startDate !== undefined) {291 passwordCredentialValue['startDate'] = passwordCredentialsItem.startDate.toISOString();292 }293 294 if (passwordCredentialsItem.endDate !== null && passwordCredentialsItem.endDate !== undefined) {295 passwordCredentialValue['endDate'] = passwordCredentialsItem.endDate.toISOString();296 }297 298 if (passwordCredentialsItem.keyId !== null && passwordCredentialsItem.keyId !== undefined) {299 passwordCredentialValue['keyId'] = passwordCredentialsItem.keyId;300 }301 302 if (passwordCredentialsItem.value !== null && passwordCredentialsItem.value !== undefined) {303 passwordCredentialValue['value'] = passwordCredentialsItem.value;304 }305 }306 applicationCreateParametersValue['passwordCredentials'] = passwordCredentialsArray;307 }308 309 requestContent = JSON.stringify(requestDoc);310 httpRequest.body = requestContent;311 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');312 // Send Request313 return this.client.pipeline(httpRequest, function (err, response, body) {314 if (err !== null && err !== undefined) {315 return callback(err);316 }317 var statusCode = response.statusCode;318 if (statusCode !== 201) {319 var error = new Error(body);320 error.statusCode = response.statusCode;321 return callback(error);322 }323 324 // Create Result325 var result = null;326 // Deserialize Response327 if (statusCode === 201) {328 var responseContent = body;329 result = {};330 var responseDoc = null;331 if (responseContent) {332 responseDoc = JSON.parse(responseContent);333 }334 335 if (responseDoc !== null && responseDoc !== undefined) {336 var applicationInstance = { appPermissions: [] };337 result.application = applicationInstance;338 339 var objectIdValue = responseDoc['objectId'];340 if (objectIdValue !== null && objectIdValue !== undefined) {341 var objectIdInstance = objectIdValue;342 applicationInstance.objectId = objectIdInstance;343 }344 345 var objectTypeValue = responseDoc['objectType'];346 if (objectTypeValue !== null && objectTypeValue !== undefined) {347 var objectTypeInstance = objectTypeValue;348 applicationInstance.objectType = objectTypeInstance;349 }350 351 var appIdValue = responseDoc['appId'];352 if (appIdValue !== null && appIdValue !== undefined) {353 var appIdInstance = appIdValue;354 applicationInstance.appId = appIdInstance;355 }356 357 var appPermissionsArray = responseDoc['appPermissions'];358 if (appPermissionsArray !== null && appPermissionsArray !== undefined) {359 for (var loweredIndex5 = 0; loweredIndex5 < appPermissionsArray.length; loweredIndex5 = loweredIndex5 + 1) {360 var appPermissionsValue = appPermissionsArray[loweredIndex5];361 applicationInstance.appPermissions.push(appPermissionsValue);362 }363 }364 365 var availableToOtherTenantsValue = responseDoc['availableToOtherTenants'];366 if (availableToOtherTenantsValue !== null && availableToOtherTenantsValue !== undefined) {367 var availableToOtherTenantsInstance = availableToOtherTenantsValue;368 applicationInstance.availableToOtherTenants = availableToOtherTenantsInstance;369 }370 }371 372 }373 result.statusCode = statusCode;374 result.requestId = response.headers['request-id'];375 376 return callback(null, result);377 });378 };379 380 /**381 * Delete an application. (see382 * http://msdn.microsoft.com/en-us/library/azure/hh974476.aspx for more383 * information)384 * 385 * @param {string} applicationObjectId Application object id386 * 387 * @param {function} callback388 * 389 * @returns {Stream} The response stream.390 */391 ApplicationOperations.prototype.deleteMethod = function(applicationObjectId, callback) {392 if (callback === null || callback === undefined) {393 throw new Error('callback cannot be null.');394 }395 // Validate396 if (applicationObjectId === null || applicationObjectId === undefined) {397 return callback(new Error('applicationObjectId cannot be null.'));398 }399 400 // Tracing401 402 // Construct URL403 var url2 = '';404 url2 = url2 + '/';405 url2 = url2 + encodeURIComponent(this.client.tenantID);406 url2 = url2 + '/applications/';407 url2 = url2 + applicationObjectId;408 var queryParameters = [];409 queryParameters.push('api-version=1.42-previewInternal');410 if (queryParameters.length > 0) {411 url2 = url2 + '?' + queryParameters.join('&');412 }413 var baseUrl = this.client.baseUri;414 // Trim '/' character from the end of baseUrl and beginning of url.415 if (baseUrl[baseUrl.length - 1] === '/') {416 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);417 }418 if (url2[0] === '/') {419 url2 = url2.substring(1);420 }421 url2 = baseUrl + '/' + url2;422 url2 = url2.replace(' ', '%20');423 424 // Create HTTP transport objects425 var httpRequest = new WebResource();426 httpRequest.method = 'DELETE';427 httpRequest.headers = {};428 httpRequest.url = url2;429 430 // Set Headers431 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';432 433 // Send Request434 return this.client.pipeline(httpRequest, function (err, response, body) {435 if (err !== null && err !== undefined) {436 return callback(err);437 }438 var statusCode = response.statusCode;439 if (statusCode !== 204) {440 var error = new Error(body);441 error.statusCode = response.statusCode;442 return callback(error);443 }444 445 // Create Result446 var result = null;447 // Deserialize Response448 result = {};449 result.statusCode = statusCode;450 result.requestId = response.headers['request-id'];451 452 return callback(null, result);453 });454 };455 456 /**457 * Get an application by object Id. (see458 * http://msdn.microsoft.com/en-us/library/azure/hh974476.aspx for more459 * information)460 * 461 * @param {string} applicationObjectId Application object id462 * 463 * @param {function} callback464 * 465 * @returns {Stream} The response stream.466 */467 ApplicationOperations.prototype.get = function(applicationObjectId, callback) {468 if (callback === null || callback === undefined) {469 throw new Error('callback cannot be null.');470 }471 // Validate472 if (applicationObjectId === null || applicationObjectId === undefined) {473 return callback(new Error('applicationObjectId cannot be null.'));474 }475 476 // Tracing477 478 // Construct URL479 var url2 = '';480 url2 = url2 + '/';481 url2 = url2 + encodeURIComponent(this.client.tenantID);482 url2 = url2 + '/applications/';483 url2 = url2 + applicationObjectId;484 var queryParameters = [];485 queryParameters.push('api-version=1.42-previewInternal');486 if (queryParameters.length > 0) {487 url2 = url2 + '?' + queryParameters.join('&');488 }489 var baseUrl = this.client.baseUri;490 // Trim '/' character from the end of baseUrl and beginning of url.491 if (baseUrl[baseUrl.length - 1] === '/') {492 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);493 }494 if (url2[0] === '/') {495 url2 = url2.substring(1);496 }497 url2 = baseUrl + '/' + url2;498 url2 = url2.replace(' ', '%20');499 500 // Create HTTP transport objects501 var httpRequest = new WebResource();502 httpRequest.method = 'GET';503 httpRequest.headers = {};504 httpRequest.url = url2;505 506 // Set Headers507 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';508 509 // Send Request510 return this.client.pipeline(httpRequest, function (err, response, body) {511 if (err !== null && err !== undefined) {512 return callback(err);513 }514 var statusCode = response.statusCode;515 if (statusCode !== 204) {516 var error = new Error(body);517 error.statusCode = response.statusCode;518 return callback(error);519 }520 521 // Create Result522 var result = null;523 // Deserialize Response524 if (statusCode === 204) {525 var responseContent = body;526 result = {};527 var responseDoc = null;528 if (responseContent) {529 responseDoc = JSON.parse(responseContent);530 }531 532 if (responseDoc !== null && responseDoc !== undefined) {533 var applicationInstance = { appPermissions: [] };534 result.application = applicationInstance;535 536 var objectIdValue = responseDoc['objectId'];537 if (objectIdValue !== null && objectIdValue !== undefined) {538 var objectIdInstance = objectIdValue;539 applicationInstance.objectId = objectIdInstance;540 }541 542 var objectTypeValue = responseDoc['objectType'];543 if (objectTypeValue !== null && objectTypeValue !== undefined) {544 var objectTypeInstance = objectTypeValue;545 applicationInstance.objectType = objectTypeInstance;546 }547 548 var appIdValue = responseDoc['appId'];549 if (appIdValue !== null && appIdValue !== undefined) {550 var appIdInstance = appIdValue;551 applicationInstance.appId = appIdInstance;552 }553 554 var appPermissionsArray = responseDoc['appPermissions'];555 if (appPermissionsArray !== null && appPermissionsArray !== undefined) {556 for (var loweredIndex1 = 0; loweredIndex1 < appPermissionsArray.length; loweredIndex1 = loweredIndex1 + 1) {557 var appPermissionsValue = appPermissionsArray[loweredIndex1];558 applicationInstance.appPermissions.push(appPermissionsValue);559 }560 }561 562 var availableToOtherTenantsValue = responseDoc['availableToOtherTenants'];563 if (availableToOtherTenantsValue !== null && availableToOtherTenantsValue !== undefined) {564 var availableToOtherTenantsInstance = availableToOtherTenantsValue;565 applicationInstance.availableToOtherTenants = availableToOtherTenantsInstance;566 }567 }568 569 }570 result.statusCode = statusCode;571 result.requestId = response.headers['request-id'];572 573 return callback(null, result);574 });575 };576 577 /**578 * Update existing application. (see579 * http://msdn.microsoft.com/en-us/library/azure/hh974476.aspx for more580 * information)581 * 582 * @param {string} applicationObjectId Application object id583 * 584 * @param {ApplicationCreateParameters} parameters Parameters to create an585 * application.586 * 587 * @param {boolean} parameters.availableToOtherTenants Indicates if the588 * application will be available to other tenants589 * 590 * @param {string} parameters.displayName Application display name591 * 592 * @param {string} parameters.homepage Application homepage593 * 594 * @param {IEnumerable} parameters.identifierUris Application Uris595 * 596 * @param {IEnumerable} [parameters.replyUrls] Application reply Urls597 * 598 * @param {IEnumerable} [parameters.keyCredentials] Gets or sets the list of599 * KeyCredential objects600 * 601 * @param {IEnumerable} [parameters.passwordCredentials] Gets or sets the602 * list of PasswordCredential objects603 * 604 * @param {function} callback605 * 606 * @returns {Stream} The response stream.607 */608 ApplicationOperations.prototype.update = function(applicationObjectId, parameters, callback) {609 if (callback === null || callback === undefined) {610 throw new Error('callback cannot be null.');611 }612 // Validate613 if (applicationObjectId === null || applicationObjectId === undefined) {614 return callback(new Error('applicationObjectId cannot be null.'));615 }616 if (parameters === null || parameters === undefined) {617 return callback(new Error('parameters cannot be null.'));618 }619 if (parameters.availableToOtherTenants === null || parameters.availableToOtherTenants === undefined) {620 return callback(new Error('parameters.availableToOtherTenants cannot be null.'));621 }622 if (parameters.displayName === null || parameters.displayName === undefined) {623 return callback(new Error('parameters.displayName cannot be null.'));624 }625 if (parameters.homepage === null || parameters.homepage === undefined) {626 return callback(new Error('parameters.homepage cannot be null.'));627 }628 if (parameters.identifierUris === null || parameters.identifierUris === undefined) {629 return callback(new Error('parameters.identifierUris cannot be null.'));630 }631 632 // Tracing633 634 // Construct URL635 var url2 = '';636 url2 = url2 + '/';637 url2 = url2 + encodeURIComponent(this.client.tenantID);638 url2 = url2 + '/applications/';639 url2 = url2 + applicationObjectId;640 var queryParameters = [];641 queryParameters.push('api-version=1.42-previewInternal');642 if (queryParameters.length > 0) {643 url2 = url2 + '?' + queryParameters.join('&');644 }645 var baseUrl = this.client.baseUri;646 // Trim '/' character from the end of baseUrl and beginning of url.647 if (baseUrl[baseUrl.length - 1] === '/') {648 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);649 }650 if (url2[0] === '/') {651 url2 = url2.substring(1);652 }653 url2 = baseUrl + '/' + url2;654 url2 = url2.replace(' ', '%20');655 656 // Create HTTP transport objects657 var httpRequest = new WebResource();658 httpRequest.method = 'PATCH';659 httpRequest.headers = {};660 httpRequest.url = url2;661 662 // Set Headers663 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';664 665 // Serialize Request666 var requestContent = null;667 var requestDoc = null;668 669 var applicationCreateParametersValue = {};670 requestDoc = applicationCreateParametersValue;671 672 applicationCreateParametersValue['availableToOtherTenants'] = parameters.availableToOtherTenants;673 674 applicationCreateParametersValue['displayName'] = parameters.displayName;675 676 applicationCreateParametersValue['homepage'] = parameters.homepage;677 678 if (parameters.identifierUris !== null && parameters.identifierUris !== undefined) {679 var identifierUrisArray = [];680 for (var loweredIndex1 = 0; loweredIndex1 < parameters.identifierUris.length; loweredIndex1 = loweredIndex1 + 1) {681 var identifierUrisItem = parameters.identifierUris[loweredIndex1];682 identifierUrisArray.push(identifierUrisItem);683 }684 applicationCreateParametersValue['identifierUris'] = identifierUrisArray;685 }686 687 if (parameters.replyUrls !== null && parameters.replyUrls !== undefined) {688 var replyUrlsArray = [];689 for (var loweredIndex2 = 0; loweredIndex2 < parameters.replyUrls.length; loweredIndex2 = loweredIndex2 + 1) {690 var replyUrlsItem = parameters.replyUrls[loweredIndex2];691 replyUrlsArray.push(replyUrlsItem);692 }693 applicationCreateParametersValue['replyUrls'] = replyUrlsArray;694 }695 696 if (parameters.keyCredentials !== null && parameters.keyCredentials !== undefined) {697 var keyCredentialsArray = [];698 for (var loweredIndex3 = 0; loweredIndex3 < parameters.keyCredentials.length; loweredIndex3 = loweredIndex3 + 1) {699 var keyCredentialsItem = parameters.keyCredentials[loweredIndex3];700 var keyCredentialValue = {};701 keyCredentialsArray.push(keyCredentialValue);702 703 if (keyCredentialsItem.startDate !== null && keyCredentialsItem.startDate !== undefined) {704 keyCredentialValue['startDate'] = keyCredentialsItem.startDate.toISOString();705 }706 707 if (keyCredentialsItem.endDate !== null && keyCredentialsItem.endDate !== undefined) {708 keyCredentialValue['endDate'] = keyCredentialsItem.endDate.toISOString();709 }710 711 if (keyCredentialsItem.value !== null && keyCredentialsItem.value !== undefined) {712 keyCredentialValue['value'] = keyCredentialsItem.value;713 }714 715 if (keyCredentialsItem.keyId !== null && keyCredentialsItem.keyId !== undefined) {716 keyCredentialValue['keyId'] = keyCredentialsItem.keyId;717 }718 719 if (keyCredentialsItem.usage !== null && keyCredentialsItem.usage !== undefined) {720 keyCredentialValue['usage'] = keyCredentialsItem.usage;721 }722 723 if (keyCredentialsItem.type !== null && keyCredentialsItem.type !== undefined) {724 keyCredentialValue['type'] = keyCredentialsItem.type;725 }726 }727 applicationCreateParametersValue['keyCredentials'] = keyCredentialsArray;728 }729 730 if (parameters.passwordCredentials !== null && parameters.passwordCredentials !== undefined) {731 var passwordCredentialsArray = [];732 for (var loweredIndex4 = 0; loweredIndex4 < parameters.passwordCredentials.length; loweredIndex4 = loweredIndex4 + 1) {733 var passwordCredentialsItem = parameters.passwordCredentials[loweredIndex4];734 var passwordCredentialValue = {};735 passwordCredentialsArray.push(passwordCredentialValue);736 737 if (passwordCredentialsItem.startDate !== null && passwordCredentialsItem.startDate !== undefined) {738 passwordCredentialValue['startDate'] = passwordCredentialsItem.startDate.toISOString();739 }740 741 if (passwordCredentialsItem.endDate !== null && passwordCredentialsItem.endDate !== undefined) {742 passwordCredentialValue['endDate'] = passwordCredentialsItem.endDate.toISOString();743 }744 745 if (passwordCredentialsItem.keyId !== null && passwordCredentialsItem.keyId !== undefined) {746 passwordCredentialValue['keyId'] = passwordCredentialsItem.keyId;747 }748 749 if (passwordCredentialsItem.value !== null && passwordCredentialsItem.value !== undefined) {750 passwordCredentialValue['value'] = passwordCredentialsItem.value;751 }752 }753 applicationCreateParametersValue['passwordCredentials'] = passwordCredentialsArray;754 }755 756 requestContent = JSON.stringify(requestDoc);757 httpRequest.body = requestContent;758 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');759 // Send Request760 return this.client.pipeline(httpRequest, function (err, response, body) {761 if (err !== null && err !== undefined) {762 return callback(err);763 }764 var statusCode = response.statusCode;765 if (statusCode !== 204) {766 var error = new Error(body);767 error.statusCode = response.statusCode;768 return callback(error);769 }770 771 // Create Result772 var result = null;773 // Deserialize Response774 result = {};775 result.statusCode = statusCode;776 result.requestId = response.headers['request-id'];777 778 return callback(null, result);779 });780 };781 782 return ApplicationOperations;783})();784785var GroupOperations = ( /** @lends GroupOperations */ function() {786 /**787 * @class788 * Operations for working with Groups in Azure Active Directory Graph API.789 * (see http://msdn.microsoft.com/en-us/library/azure/hh974476.aspx for790 * more information)791 * __NOTE__: An instance of this class is automatically created for an792 * instance of the [GraphRbacManagementClient] {@link793 * GraphRbacManagementClient~GraphRbacManagementClient}.794 * See [group] {@link795 * GraphRbacManagementClient~GraphRbacManagementClient#group}.796 * Initializes a new instance of the GroupOperations class.797 * @constructor798 * 799 * @param {GraphRbacManagementClient} client Reference to the service client.800 */801 function GroupOperations(client) {802 this.client = client;803 }804 805 /**806 * Add a memeber to a group. (see807 * http://msdn.microsoft.com/en-us/library/azure/dn151600.aspx for more808 * information)809 * 810 * @param {string} groupObjectId Group object id811 * 812 * @param {GroupAddMemberParameters} parameters Member Object Url as813 * https://graph.windows.net/contoso.onmicrosoft.com/directoryObjects/f260bbc4-c254-447b-94cf-293b5ec434dd814 * 815 * @param {string} parameters.memberUrl Group display name816 * 817 * @param {function} callback818 * 819 * @returns {Stream} The response stream.820 */821 GroupOperations.prototype.addMember = function(groupObjectId, parameters, callback) {822 if (callback === null || callback === undefined) {823 throw new Error('callback cannot be null.');824 }825 // Validate826 if (groupObjectId === null || groupObjectId === undefined) {827 return callback(new Error('groupObjectId cannot be null.'));828 }829 if (parameters === null || parameters === undefined) {830 return callback(new Error('parameters cannot be null.'));831 }832 if (parameters.memberUrl === null || parameters.memberUrl === undefined) {833 return callback(new Error('parameters.memberUrl cannot be null.'));834 }835 836 // Tracing837 838 // Construct URL839 var url2 = '';840 url2 = url2 + '/';841 url2 = url2 + encodeURIComponent(this.client.tenantID);842 url2 = url2 + '/groups/';843 url2 = url2 + groupObjectId;844 url2 = url2 + '/$links/members';845 var queryParameters = [];846 queryParameters.push('api-version=1.42-previewInternal');847 if (queryParameters.length > 0) {848 url2 = url2 + '?' + queryParameters.join('&');849 }850 var baseUrl = this.client.baseUri;851 // Trim '/' character from the end of baseUrl and beginning of url.852 if (baseUrl[baseUrl.length - 1] === '/') {853 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);854 }855 if (url2[0] === '/') {856 url2 = url2.substring(1);857 }858 url2 = baseUrl + '/' + url2;859 url2 = url2.replace(' ', '%20');860 861 // Create HTTP transport objects862 var httpRequest = new WebResource();863 httpRequest.method = 'POST';864 httpRequest.headers = {};865 httpRequest.url = url2;866 867 // Set Headers868 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';869 870 // Serialize Request871 var requestContent = null;872 var requestDoc = null;873 874 var groupAddMemberParametersValue = {};875 requestDoc = groupAddMemberParametersValue;876 877 groupAddMemberParametersValue['url'] = parameters.memberUrl;878 879 requestContent = JSON.stringify(requestDoc);880 httpRequest.body = requestContent;881 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');882 // Send Request883 return this.client.pipeline(httpRequest, function (err, response, body) {884 if (err !== null && err !== undefined) {885 return callback(err);886 }887 var statusCode = response.statusCode;888 if (statusCode !== 204) {889 var error = new Error(body);890 error.statusCode = response.statusCode;891 return callback(error);892 }893 894 // Create Result895 var result = null;896 // Deserialize Response897 result = {};898 result.statusCode = statusCode;899 result.requestId = response.headers['request-id'];900 901 return callback(null, result);902 });903 };904 905 /**906 * Create a group in the directory. (see907 * http://msdn.microsoft.com/en-us/library/azure/dn151614.aspx for more908 * information)909 * 910 * @param {GroupCreateParameters} parameters Parameters to create a group911 * 912 * @param {string} parameters.displayName Group display name913 * 914 * @param {boolean} parameters.mailEnabled Mail915 * 916 * @param {string} parameters.mailNickname Mail nick name917 * 918 * @param {boolean} parameters.securityEnabled Is security enabled919 * 920 * @param {function} callback921 * 922 * @returns {Stream} The response stream.923 */924 GroupOperations.prototype.create = function(parameters, callback) {925 if (callback === null || callback === undefined) {926 throw new Error('callback cannot be null.');927 }928 // Validate929 if (parameters === null || parameters === undefined) {930 return callback(new Error('parameters cannot be null.'));931 }932 if (parameters.displayName === null || parameters.displayName === undefined) {933 return callback(new Error('parameters.displayName cannot be null.'));934 }935 if (parameters.mailEnabled === null || parameters.mailEnabled === undefined) {936 return callback(new Error('parameters.mailEnabled cannot be null.'));937 }938 if (parameters.mailNickname === null || parameters.mailNickname === undefined) {939 return callback(new Error('parameters.mailNickname cannot be null.'));940 }941 if (parameters.securityEnabled === null || parameters.securityEnabled === undefined) {942 return callback(new Error('parameters.securityEnabled cannot be null.'));943 }944 945 // Tracing946 947 // Construct URL948 var url2 = '';949 url2 = url2 + '/';950 url2 = url2 + encodeURIComponent(this.client.tenantID);951 url2 = url2 + '/groups';952 var queryParameters = [];953 queryParameters.push('api-version=1.42-previewInternal');954 if (queryParameters.length > 0) {955 url2 = url2 + '?' + queryParameters.join('&');956 }957 var baseUrl = this.client.baseUri;958 // Trim '/' character from the end of baseUrl and beginning of url.959 if (baseUrl[baseUrl.length - 1] === '/') {960 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);961 }962 if (url2[0] === '/') {963 url2 = url2.substring(1);964 }965 url2 = baseUrl + '/' + url2;966 url2 = url2.replace(' ', '%20');967 968 // Create HTTP transport objects969 var httpRequest = new WebResource();970 httpRequest.method = 'POST';971 httpRequest.headers = {};972 httpRequest.url = url2;973 974 // Set Headers975 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';976 977 // Serialize Request978 var requestContent = null;979 var requestDoc = null;980 981 var groupCreateParametersValue = {};982 requestDoc = groupCreateParametersValue;983 984 groupCreateParametersValue['displayName'] = parameters.displayName;985 986 groupCreateParametersValue['mailEnabled'] = parameters.mailEnabled;987 988 groupCreateParametersValue['mailNickname'] = parameters.mailNickname;989 990 groupCreateParametersValue['securityEnabled'] = parameters.securityEnabled;991 992 requestContent = JSON.stringify(requestDoc);993 httpRequest.body = requestContent;994 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');995 // Send Request996 return this.client.pipeline(httpRequest, function (err, response, body) {997 if (err !== null && err !== undefined) {998 return callback(err);999 }1000 var statusCode = response.statusCode;1001 if (statusCode !== 201) {1002 var error = new Error(body);1003 error.statusCode = response.statusCode;1004 return callback(error);1005 }1006 1007 // Create Result1008 var result = null;1009 // Deserialize Response1010 if (statusCode === 201) {1011 var responseContent = body;1012 result = {};1013 var responseDoc = null;1014 if (responseContent) {1015 responseDoc = JSON.parse(responseContent);1016 }1017 1018 if (responseDoc !== null && responseDoc !== undefined) {1019 var groupInstance = {};1020 result.group = groupInstance;1021 1022 var objectIdValue = responseDoc['objectId'];1023 if (objectIdValue !== null && objectIdValue !== undefined) {1024 var objectIdInstance = objectIdValue;1025 groupInstance.objectId = objectIdInstance;1026 }1027 1028 var objectTypeValue = responseDoc['objectType'];1029 if (objectTypeValue !== null && objectTypeValue !== undefined) {1030 var objectTypeInstance = objectTypeValue;1031 groupInstance.objectType = objectTypeInstance;1032 }1033 1034 var displayNameValue = responseDoc['displayName'];1035 if (displayNameValue !== null && displayNameValue !== undefined) {1036 var displayNameInstance = displayNameValue;1037 groupInstance.displayName = displayNameInstance;1038 }1039 1040 var securityEnabledValue = responseDoc['securityEnabled'];1041 if (securityEnabledValue !== null && securityEnabledValue !== undefined) {1042 var securityEnabledInstance = securityEnabledValue;1043 groupInstance.securityEnabled = securityEnabledInstance;1044 }1045 1046 var mailValue = responseDoc['mail'];1047 if (mailValue !== null && mailValue !== undefined) {1048 var mailInstance = mailValue;1049 groupInstance.mail = mailInstance;1050 }1051 }1052 1053 }1054 result.statusCode = statusCode;1055 result.requestId = response.headers['request-id'];1056 1057 return callback(null, result);1058 });1059 };1060 1061 /**1062 * Delete a group in the directory. (see1063 * http://msdn.microsoft.com/en-us/library/azure/dn151608.aspx for more1064 * information)1065 * 1066 * @param {string} groupObjectId Object id1067 * 1068 * @param {function} callback1069 * 1070 * @returns {Stream} The response stream.1071 */1072 GroupOperations.prototype.deleteMethod = function(groupObjectId, callback) {1073 if (callback === null || callback === undefined) {1074 throw new Error('callback cannot be null.');1075 }1076 // Validate1077 if (groupObjectId === null || groupObjectId === undefined) {1078 return callback(new Error('groupObjectId cannot be null.'));1079 }1080 1081 // Tracing1082 1083 // Construct URL1084 var url2 = '';1085 url2 = url2 + '/';1086 url2 = url2 + encodeURIComponent(this.client.tenantID);1087 url2 = url2 + '/groups/';1088 url2 = url2 + groupObjectId;1089 var queryParameters = [];1090 queryParameters.push('api-version=1.42-previewInternal');1091 if (queryParameters.length > 0) {1092 url2 = url2 + '?' + queryParameters.join('&');1093 }1094 var baseUrl = this.client.baseUri;1095 // Trim '/' character from the end of baseUrl and beginning of url.1096 if (baseUrl[baseUrl.length - 1] === '/') {1097 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);1098 }1099 if (url2[0] === '/') {1100 url2 = url2.substring(1);1101 }1102 url2 = baseUrl + '/' + url2;1103 url2 = url2.replace(' ', '%20');1104 1105 // Create HTTP transport objects1106 var httpRequest = new WebResource();1107 httpRequest.method = 'DELETE';1108 httpRequest.headers = {};1109 httpRequest.url = url2;1110 1111 // Set Headers1112 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';1113 1114 // Send Request1115 return this.client.pipeline(httpRequest, function (err, response, body) {1116 if (err !== null && err !== undefined) {1117 return callback(err);1118 }1119 var statusCode = response.statusCode;1120 if (statusCode !== 204) {1121 var error = new Error(body);1122 error.statusCode = response.statusCode;1123 return callback(error);1124 }1125 1126 // Create Result1127 var result = null;1128 // Deserialize Response1129 result = {};1130 result.statusCode = statusCode;1131 result.requestId = response.headers['request-id'];1132 1133 return callback(null, result);1134 });1135 };1136 1137 /**1138 * Gets group information from the directory.1139 * 1140 * @param {string} objectId User objectId to get group information.1141 * 1142 * @param {function} callback1143 * 1144 * @returns {Stream} The response stream.1145 */1146 GroupOperations.prototype.get = function(objectId, callback) {1147 if (callback === null || callback === undefined) {1148 throw new Error('callback cannot be null.');1149 }1150 // Validate1151 if (objectId === null || objectId === undefined) {1152 return callback(new Error('objectId cannot be null.'));1153 }1154 1155 // Tracing1156 1157 // Construct URL1158 var url2 = '';1159 url2 = url2 + '/';1160 url2 = url2 + encodeURIComponent(this.client.tenantID);1161 url2 = url2 + '/groups/';1162 url2 = url2 + objectId;1163 var queryParameters = [];1164 queryParameters.push('api-version=1.42-previewInternal');1165 if (queryParameters.length > 0) {1166 url2 = url2 + '?' + queryParameters.join('&');1167 }1168 var baseUrl = this.client.baseUri;1169 // Trim '/' character from the end of baseUrl and beginning of url.1170 if (baseUrl[baseUrl.length - 1] === '/') {1171 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);1172 }1173 if (url2[0] === '/') {1174 url2 = url2.substring(1);1175 }1176 url2 = baseUrl + '/' + url2;1177 url2 = url2.replace(' ', '%20');1178 1179 // Create HTTP transport objects1180 var httpRequest = new WebResource();1181 httpRequest.method = 'GET';1182 httpRequest.headers = {};1183 httpRequest.url = url2;1184 1185 // Set Headers1186 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';1187 1188 // Send Request1189 return this.client.pipeline(httpRequest, function (err, response, body) {1190 if (err !== null && err !== undefined) {1191 return callback(err);1192 }1193 var statusCode = response.statusCode;1194 if (statusCode !== 200) {1195 var error = new Error(body);1196 error.statusCode = response.statusCode;1197 return callback(error);1198 }1199 1200 // Create Result1201 var result = null;1202 // Deserialize Response1203 if (statusCode === 200) {1204 var responseContent = body;1205 result = {};1206 var responseDoc = null;1207 if (responseContent) {1208 responseDoc = JSON.parse(responseContent);1209 }1210 1211 if (responseDoc !== null && responseDoc !== undefined) {1212 var groupInstance = {};1213 result.group = groupInstance;1214 1215 var objectIdValue = responseDoc['objectId'];1216 if (objectIdValue !== null && objectIdValue !== undefined) {1217 var objectIdInstance = objectIdValue;1218 groupInstance.objectId = objectIdInstance;1219 }1220 1221 var objectTypeValue = responseDoc['objectType'];1222 if (objectTypeValue !== null && objectTypeValue !== undefined) {1223 var objectTypeInstance = objectTypeValue;1224 groupInstance.objectType = objectTypeInstance;1225 }1226 1227 var displayNameValue = responseDoc['displayName'];1228 if (displayNameValue !== null && displayNameValue !== undefined) {1229 var displayNameInstance = displayNameValue;1230 groupInstance.displayName = displayNameInstance;1231 }1232 1233 var securityEnabledValue = responseDoc['securityEnabled'];1234 if (securityEnabledValue !== null && securityEnabledValue !== undefined) {1235 var securityEnabledInstance = securityEnabledValue;1236 groupInstance.securityEnabled = securityEnabledInstance;1237 }1238 1239 var mailValue = responseDoc['mail'];1240 if (mailValue !== null && mailValue !== undefined) {1241 var mailInstance = mailValue;1242 groupInstance.mail = mailInstance;1243 }1244 }1245 1246 }1247 result.statusCode = statusCode;1248 result.requestId = response.headers['request-id'];1249 1250 return callback(null, result);1251 });1252 };1253 1254 /**1255 * Gets the members of a group.1256 * 1257 * @param {string} objectId Group object Id who's members should be retrieved.1258 * 1259 * @param {function} callback1260 * 1261 * @returns {Stream} The response stream.1262 */1263 GroupOperations.prototype.getGroupMembers = function(objectId, callback) {1264 if (callback === null || callback === undefined) {1265 throw new Error('callback cannot be null.');1266 }1267 // Validate1268 if (objectId === null || objectId === undefined) {1269 return callback(new Error('objectId cannot be null.'));1270 }1271 1272 // Tracing1273 1274 // Construct URL1275 var url2 = '';1276 url2 = url2 + '/';1277 url2 = url2 + encodeURIComponent(this.client.tenantID);1278 url2 = url2 + '/groups/';1279 url2 = url2 + objectId;1280 url2 = url2 + '/members';1281 var queryParameters = [];1282 queryParameters.push('api-version=1.42-previewInternal');1283 if (queryParameters.length > 0) {1284 url2 = url2 + '?' + queryParameters.join('&');1285 }1286 var baseUrl = this.client.baseUri;1287 // Trim '/' character from the end of baseUrl and beginning of url.1288 if (baseUrl[baseUrl.length - 1] === '/') {1289 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);1290 }1291 if (url2[0] === '/') {1292 url2 = url2.substring(1);1293 }1294 url2 = baseUrl + '/' + url2;1295 url2 = url2.replace(' ', '%20');1296 1297 // Create HTTP transport objects1298 var httpRequest = new WebResource();1299 httpRequest.method = 'GET';1300 httpRequest.headers = {};1301 httpRequest.url = url2;1302 1303 // Set Headers1304 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';1305 1306 // Send Request1307 return this.client.pipeline(httpRequest, function (err, response, body) {1308 if (err !== null && err !== undefined) {1309 return callback(err);1310 }1311 var statusCode = response.statusCode;1312 if (statusCode !== 200) {1313 var error = new Error(body);1314 error.statusCode = response.statusCode;1315 return callback(error);1316 }1317 1318 // Create Result1319 var result = null;1320 // Deserialize Response1321 if (statusCode === 200) {1322 var responseContent = body;1323 result = { aADObject: [] };1324 var responseDoc = null;1325 if (responseContent) {1326 responseDoc = JSON.parse(responseContent);1327 }1328 1329 if (responseDoc !== null && responseDoc !== undefined) {1330 var valueArray = responseDoc['value'];1331 if (valueArray !== null && valueArray !== undefined) {1332 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {1333 var valueValue = valueArray[loweredIndex1];1334 var aADObjectInstance = {};1335 result.aADObject.push(aADObjectInstance);1336 1337 var objectIdValue = valueValue['objectId'];1338 if (objectIdValue !== null && objectIdValue !== undefined) {1339 var objectIdInstance = objectIdValue;1340 aADObjectInstance.objectId = objectIdInstance;1341 }1342 1343 var objectTypeValue = valueValue['objectType'];1344 if (objectTypeValue !== null && objectTypeValue !== undefined) {1345 var objectTypeInstance = objectTypeValue;1346 aADObjectInstance.objectType = objectTypeInstance;1347 }1348 1349 var displayNameValue = valueValue['displayName'];1350 if (displayNameValue !== null && displayNameValue !== undefined) {1351 var displayNameInstance = displayNameValue;1352 aADObjectInstance.displayName = displayNameInstance;1353 }1354 1355 var userPrincipalNameValue = valueValue['userPrincipalName'];1356 if (userPrincipalNameValue !== null && userPrincipalNameValue !== undefined) {1357 var userPrincipalNameInstance = userPrincipalNameValue;1358 aADObjectInstance.userPrincipalName = userPrincipalNameInstance;1359 }1360 1361 var mailValue = valueValue['mail'];1362 if (mailValue !== null && mailValue !== undefined) {1363 var mailInstance = mailValue;1364 aADObjectInstance.mail = mailInstance;1365 }1366 1367 var mailEnabledValue = valueValue['mailEnabled'];1368 if (mailEnabledValue !== null && mailEnabledValue !== undefined) {1369 var mailEnabledInstance = mailEnabledValue;1370 aADObjectInstance.mailEnabled = mailEnabledInstance;1371 }1372 1373 var securityEnabledValue = valueValue['securityEnabled'];1374 if (securityEnabledValue !== null && securityEnabledValue !== undefined) {1375 var securityEnabledInstance = securityEnabledValue;1376 aADObjectInstance.securityEnabled = securityEnabledInstance;1377 }1378 }1379 }1380 1381 var odatanextLinkValue = responseDoc['odata.nextLink'];1382 if (odatanextLinkValue !== null && odatanextLinkValue !== undefined) {1383 var odatanextLinkInstance = odatanextLinkValue;1384 result.nextLink = odatanextLinkInstance;1385 }1386 }1387 1388 }1389 result.statusCode = statusCode;1390 result.requestId = response.headers['request-id'];1391 1392 return callback(null, result);1393 });1394 };1395 1396 /**1397 * Gets next set of members of a group.1398 * 1399 * @param {string} nextLink NextLink from the previous successful call to1400 * GetGroupMembers or GetGroupMembersNext.1401 * 1402 * @param {function} callback1403 * 1404 * @returns {Stream} The response stream.1405 */1406 GroupOperations.prototype.getGroupMembersNext = function(nextLink, callback) {1407 if (callback === null || callback === undefined) {1408 throw new Error('callback cannot be null.');1409 }1410 // Validate1411 if (nextLink === null || nextLink === undefined) {1412 return callback(new Error('nextLink cannot be null.'));1413 }1414 1415 // Tracing1416 1417 // Construct URL1418 var url2 = '';1419 url2 = url2 + '/';1420 url2 = url2 + encodeURIComponent(this.client.tenantID);1421 url2 = url2 + '/';1422 url2 = url2 + nextLink;1423 url2 = url2 + '&api-version=1.42-previewInternal';1424 var baseUrl = this.client.baseUri;1425 // Trim '/' character from the end of baseUrl and beginning of url.1426 if (baseUrl[baseUrl.length - 1] === '/') {1427 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);1428 }1429 if (url2[0] === '/') {1430 url2 = url2.substring(1);1431 }1432 url2 = baseUrl + '/' + url2;1433 url2 = url2.replace(' ', '%20');1434 1435 // Create HTTP transport objects1436 var httpRequest = new WebResource();1437 httpRequest.method = 'GET';1438 httpRequest.headers = {};1439 httpRequest.url = url2;1440 1441 // Set Headers1442 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';1443 1444 // Send Request1445 return this.client.pipeline(httpRequest, function (err, response, body) {1446 if (err !== null && err !== undefined) {1447 return callback(err);1448 }1449 var statusCode = response.statusCode;1450 if (statusCode !== 200) {1451 var error = new Error(body);1452 error.statusCode = response.statusCode;1453 return callback(error);1454 }1455 1456 // Create Result1457 var result = null;1458 // Deserialize Response1459 if (statusCode === 200) {1460 var responseContent = body;1461 result = { aADObject: [] };1462 var responseDoc = null;1463 if (responseContent) {1464 responseDoc = JSON.parse(responseContent);1465 }1466 1467 if (responseDoc !== null && responseDoc !== undefined) {1468 var valueArray = responseDoc['value'];1469 if (valueArray !== null && valueArray !== undefined) {1470 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {1471 var valueValue = valueArray[loweredIndex1];1472 var aADObjectInstance = {};1473 result.aADObject.push(aADObjectInstance);1474 1475 var objectIdValue = valueValue['objectId'];1476 if (objectIdValue !== null && objectIdValue !== undefined) {1477 var objectIdInstance = objectIdValue;1478 aADObjectInstance.objectId = objectIdInstance;1479 }1480 1481 var objectTypeValue = valueValue['objectType'];1482 if (objectTypeValue !== null && objectTypeValue !== undefined) {1483 var objectTypeInstance = objectTypeValue;1484 aADObjectInstance.objectType = objectTypeInstance;1485 }1486 1487 var displayNameValue = valueValue['displayName'];1488 if (displayNameValue !== null && displayNameValue !== undefined) {1489 var displayNameInstance = displayNameValue;1490 aADObjectInstance.displayName = displayNameInstance;1491 }1492 1493 var userPrincipalNameValue = valueValue['userPrincipalName'];1494 if (userPrincipalNameValue !== null && userPrincipalNameValue !== undefined) {1495 var userPrincipalNameInstance = userPrincipalNameValue;1496 aADObjectInstance.userPrincipalName = userPrincipalNameInstance;1497 }1498 1499 var mailValue = valueValue['mail'];1500 if (mailValue !== null && mailValue !== undefined) {1501 var mailInstance = mailValue;1502 aADObjectInstance.mail = mailInstance;1503 }1504 1505 var mailEnabledValue = valueValue['mailEnabled'];1506 if (mailEnabledValue !== null && mailEnabledValue !== undefined) {1507 var mailEnabledInstance = mailEnabledValue;1508 aADObjectInstance.mailEnabled = mailEnabledInstance;1509 }1510 1511 var securityEnabledValue = valueValue['securityEnabled'];1512 if (securityEnabledValue !== null && securityEnabledValue !== undefined) {1513 var securityEnabledInstance = securityEnabledValue;1514 aADObjectInstance.securityEnabled = securityEnabledInstance;1515 }1516 }1517 }1518 1519 var odatanextLinkValue = responseDoc['odata.nextLink'];1520 if (odatanextLinkValue !== null && odatanextLinkValue !== undefined) {1521 var odatanextLinkInstance = odatanextLinkValue;1522 result.nextLink = odatanextLinkInstance;1523 }1524 }1525 1526 }1527 result.statusCode = statusCode;1528 result.requestId = response.headers['request-id'];1529 1530 return callback(null, result);1531 });1532 };1533 1534 /**1535 * Gets a collection that contains the Object IDs of the groups of which the1536 * group is a member.1537 * 1538 * @param {GroupGetMemberGroupsParameters} parameters Group filtering1539 * parameters.1540 * 1541 * @param {string} parameters.objectId Group object Id1542 * 1543 * @param {boolean} parameters.securityEnabledOnly If true only membership in1544 * security enabled groups should be checked. Otherwise membership in all1545 * groups should be checked1546 * 1547 * @param {function} callback1548 * 1549 * @returns {Stream} The response stream.1550 */1551 GroupOperations.prototype.getMemberGroups = function(parameters, callback) {1552 if (callback === null || callback === undefined) {1553 throw new Error('callback cannot be null.');1554 }1555 // Validate1556 if (parameters === null || parameters === undefined) {1557 return callback(new Error('parameters cannot be null.'));1558 }1559 if (parameters.objectId === null || parameters.objectId === undefined) {1560 return callback(new Error('parameters.objectId cannot be null.'));1561 }1562 if (parameters.securityEnabledOnly === null || parameters.securityEnabledOnly === undefined) {1563 return callback(new Error('parameters.securityEnabledOnly cannot be null.'));1564 }1565 1566 // Tracing1567 1568 // Construct URL1569 var url2 = '';1570 url2 = url2 + '/';1571 url2 = url2 + encodeURIComponent(this.client.tenantID);1572 url2 = url2 + '/groups/';1573 url2 = url2 + parameters.objectId;1574 url2 = url2 + '/getMemberGroups';1575 var queryParameters = [];1576 queryParameters.push('api-version=1.42-previewInternal');1577 if (queryParameters.length > 0) {1578 url2 = url2 + '?' + queryParameters.join('&');1579 }1580 var baseUrl = this.client.baseUri;1581 // Trim '/' character from the end of baseUrl and beginning of url.1582 if (baseUrl[baseUrl.length - 1] === '/') {1583 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);1584 }1585 if (url2[0] === '/') {1586 url2 = url2.substring(1);1587 }1588 url2 = baseUrl + '/' + url2;1589 url2 = url2.replace(' ', '%20');1590 1591 // Create HTTP transport objects1592 var httpRequest = new WebResource();1593 httpRequest.method = 'POST';1594 httpRequest.headers = {};1595 httpRequest.url = url2;1596 1597 // Set Headers1598 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';1599 1600 // Serialize Request1601 var requestContent = null;1602 var requestDoc = null;1603 1604 requestDoc = {};1605 requestDoc['securityEnabledOnly'] = parameters.securityEnabledOnly;1606 1607 requestContent = JSON.stringify(requestDoc);1608 httpRequest.body = requestContent;1609 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');1610 // Send Request1611 return this.client.pipeline(httpRequest, function (err, response, body) {1612 if (err !== null && err !== undefined) {1613 return callback(err);1614 }1615 var statusCode = response.statusCode;1616 if (statusCode !== 200) {1617 var error = new Error(body);1618 error.statusCode = response.statusCode;1619 return callback(error);1620 }1621 1622 // Create Result1623 var result = null;1624 // Deserialize Response1625 if (statusCode === 200) {1626 var responseContent = body;1627 result = { objectIds: [] };1628 var responseDoc = null;1629 if (responseContent) {1630 responseDoc = JSON.parse(responseContent);1631 }1632 1633 if (responseDoc !== null && responseDoc !== undefined) {1634 var valueArray = responseDoc['value'];1635 if (valueArray !== null && valueArray !== undefined) {1636 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {1637 var valueValue = valueArray[loweredIndex1];1638 result.objectIds.push(valueValue);1639 }1640 }1641 }1642 1643 }1644 result.statusCode = statusCode;1645 result.requestId = response.headers['request-id'];1646 1647 return callback(null, result);1648 });1649 };1650 1651 /**1652 * Gets list of groups for the current tenant.1653 * 1654 * @param {string} [mail] Email to filter results.1655 * 1656 * @param {string} [displayNameStartsWith] Display name to filter results.1657 * 1658 * @param {function} callback1659 * 1660 * @returns {Stream} The response stream.1661 */1662 GroupOperations.prototype.list = function(mail, displayNameStartsWith, callback) {1663 if (callback === null || callback === undefined) {1664 throw new Error('callback cannot be null.');1665 }1666 // Validate1667 1668 // Tracing1669 1670 // Construct URL1671 var url2 = '';1672 url2 = url2 + '/';1673 url2 = url2 + encodeURIComponent(this.client.tenantID);1674 url2 = url2 + '/groups';1675 var queryParameters = [];1676 var odataFilter = [];1677 if (mail !== null && mail !== undefined) {1678 odataFilter.push('mail eq \'' + encodeURIComponent(mail) + '\'');1679 }1680 if (odataFilter.length > 0) {1681 queryParameters.push('$filter=' + odataFilter.join(null));1682 }1683 var odataFilter2 = [];1684 if (displayNameStartsWith !== null && displayNameStartsWith !== undefined) {1685 odataFilter2.push('startswith(displayName,\'' + encodeURIComponent(displayNameStartsWith) + '\')');1686 }1687 if (odataFilter2.length > 0) {1688 queryParameters.push('$filter=' + odataFilter2.join(null));1689 }1690 queryParameters.push('api-version=1.42-previewInternal');1691 if (queryParameters.length > 0) {1692 url2 = url2 + '?' + queryParameters.join('&');1693 }1694 var baseUrl = this.client.baseUri;1695 // Trim '/' character from the end of baseUrl and beginning of url.1696 if (baseUrl[baseUrl.length - 1] === '/') {1697 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);1698 }1699 if (url2[0] === '/') {1700 url2 = url2.substring(1);1701 }1702 url2 = baseUrl + '/' + url2;1703 url2 = url2.replace(' ', '%20');1704 1705 // Create HTTP transport objects1706 var httpRequest = new WebResource();1707 httpRequest.method = 'GET';1708 httpRequest.headers = {};1709 httpRequest.url = url2;1710 1711 // Set Headers1712 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';1713 1714 // Send Request1715 return this.client.pipeline(httpRequest, function (err, response, body) {1716 if (err !== null && err !== undefined) {1717 return callback(err);1718 }1719 var statusCode = response.statusCode;1720 if (statusCode !== 200) {1721 var error = new Error(body);1722 error.statusCode = response.statusCode;1723 return callback(error);1724 }1725 1726 // Create Result1727 var result = null;1728 // Deserialize Response1729 if (statusCode === 200) {1730 var responseContent = body;1731 result = { groups: [] };1732 var responseDoc = null;1733 if (responseContent) {1734 responseDoc = JSON.parse(responseContent);1735 }1736 1737 if (responseDoc !== null && responseDoc !== undefined) {1738 var valueArray = responseDoc['value'];1739 if (valueArray !== null && valueArray !== undefined) {1740 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {1741 var valueValue = valueArray[loweredIndex1];1742 var groupInstance = {};1743 result.groups.push(groupInstance);1744 1745 var objectIdValue = valueValue['objectId'];1746 if (objectIdValue !== null && objectIdValue !== undefined) {1747 var objectIdInstance = objectIdValue;1748 groupInstance.objectId = objectIdInstance;1749 }1750 1751 var objectTypeValue = valueValue['objectType'];1752 if (objectTypeValue !== null && objectTypeValue !== undefined) {1753 var objectTypeInstance = objectTypeValue;1754 groupInstance.objectType = objectTypeInstance;1755 }1756 1757 var displayNameValue = valueValue['displayName'];1758 if (displayNameValue !== null && displayNameValue !== undefined) {1759 var displayNameInstance = displayNameValue;1760 groupInstance.displayName = displayNameInstance;1761 }1762 1763 var securityEnabledValue = valueValue['securityEnabled'];1764 if (securityEnabledValue !== null && securityEnabledValue !== undefined) {1765 var securityEnabledInstance = securityEnabledValue;1766 groupInstance.securityEnabled = securityEnabledInstance;1767 }1768 1769 var mailValue = valueValue['mail'];1770 if (mailValue !== null && mailValue !== undefined) {1771 var mailInstance = mailValue;1772 groupInstance.mail = mailInstance;1773 }1774 }1775 }1776 1777 var odatanextLinkValue = responseDoc['odata.nextLink'];1778 if (odatanextLinkValue !== null && odatanextLinkValue !== undefined) {1779 var odatanextLinkInstance = odatanextLinkValue;1780 result.nextLink = odatanextLinkInstance;1781 }1782 }1783 1784 }1785 result.statusCode = statusCode;1786 result.requestId = response.headers['request-id'];1787 1788 return callback(null, result);1789 });1790 };1791 1792 /**1793 * Gets list of groups for the current tenant.1794 * 1795 * @param {string} nextLink NextLink from the previous successful call to1796 * List operation.1797 * 1798 * @param {function} callback1799 * 1800 * @returns {Stream} The response stream.1801 */1802 GroupOperations.prototype.listNext = function(nextLink, callback) {1803 if (callback === null || callback === undefined) {1804 throw new Error('callback cannot be null.');1805 }1806 // Validate1807 if (nextLink === null || nextLink === undefined) {1808 return callback(new Error('nextLink cannot be null.'));1809 }1810 1811 // Tracing1812 1813 // Construct URL1814 var url2 = '';1815 url2 = url2 + '/';1816 url2 = url2 + encodeURIComponent(this.client.tenantID);1817 url2 = url2 + '/';1818 url2 = url2 + nextLink;1819 url2 = url2 + '&api-version=1.42-previewInternal';1820 var baseUrl = this.client.baseUri;1821 // Trim '/' character from the end of baseUrl and beginning of url.1822 if (baseUrl[baseUrl.length - 1] === '/') {1823 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);1824 }1825 if (url2[0] === '/') {1826 url2 = url2.substring(1);1827 }1828 url2 = baseUrl + '/' + url2;1829 url2 = url2.replace(' ', '%20');1830 1831 // Create HTTP transport objects1832 var httpRequest = new WebResource();1833 httpRequest.method = 'GET';1834 httpRequest.headers = {};1835 httpRequest.url = url2;1836 1837 // Set Headers1838 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';1839 1840 // Send Request1841 return this.client.pipeline(httpRequest, function (err, response, body) {1842 if (err !== null && err !== undefined) {1843 return callback(err);1844 }1845 var statusCode = response.statusCode;1846 if (statusCode !== 200) {1847 var error = new Error(body);1848 error.statusCode = response.statusCode;1849 return callback(error);1850 }1851 1852 // Create Result1853 var result = null;1854 // Deserialize Response1855 if (statusCode === 200) {1856 var responseContent = body;1857 result = { groups: [] };1858 var responseDoc = null;1859 if (responseContent) {1860 responseDoc = JSON.parse(responseContent);1861 }1862 1863 if (responseDoc !== null && responseDoc !== undefined) {1864 var valueArray = responseDoc['value'];1865 if (valueArray !== null && valueArray !== undefined) {1866 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {1867 var valueValue = valueArray[loweredIndex1];1868 var groupInstance = {};1869 result.groups.push(groupInstance);1870 1871 var objectIdValue = valueValue['objectId'];1872 if (objectIdValue !== null && objectIdValue !== undefined) {1873 var objectIdInstance = objectIdValue;1874 groupInstance.objectId = objectIdInstance;1875 }1876 1877 var objectTypeValue = valueValue['objectType'];1878 if (objectTypeValue !== null && objectTypeValue !== undefined) {1879 var objectTypeInstance = objectTypeValue;1880 groupInstance.objectType = objectTypeInstance;1881 }1882 1883 var displayNameValue = valueValue['displayName'];1884 if (displayNameValue !== null && displayNameValue !== undefined) {1885 var displayNameInstance = displayNameValue;1886 groupInstance.displayName = displayNameInstance;1887 }1888 1889 var securityEnabledValue = valueValue['securityEnabled'];1890 if (securityEnabledValue !== null && securityEnabledValue !== undefined) {1891 var securityEnabledInstance = securityEnabledValue;1892 groupInstance.securityEnabled = securityEnabledInstance;1893 }1894 1895 var mailValue = valueValue['mail'];1896 if (mailValue !== null && mailValue !== undefined) {1897 var mailInstance = mailValue;1898 groupInstance.mail = mailInstance;1899 }1900 }1901 }1902 1903 var odatanextLinkValue = responseDoc['odata.nextLink'];1904 if (odatanextLinkValue !== null && odatanextLinkValue !== undefined) {1905 var odatanextLinkInstance = odatanextLinkValue;1906 result.nextLink = odatanextLinkInstance;1907 }1908 }1909 1910 }1911 result.statusCode = statusCode;1912 result.requestId = response.headers['request-id'];1913 1914 return callback(null, result);1915 });1916 };1917 1918 /**1919 * Remove a memeber from a group (see1920 * http://msdn.microsoft.com/en-us/library/azure/dn151607.aspx for more1921 * information)1922 * 1923 * @param {string} groupObjectId Group object id1924 * 1925 * @param {string} memberObjectId Member Object id1926 * 1927 * @param {function} callback1928 * 1929 * @returns {Stream} The response stream.1930 */1931 GroupOperations.prototype.removeMember = function(groupObjectId, memberObjectId, callback) {1932 if (callback === null || callback === undefined) {1933 throw new Error('callback cannot be null.');1934 }1935 // Validate1936 if (groupObjectId === null || groupObjectId === undefined) {1937 return callback(new Error('groupObjectId cannot be null.'));1938 }1939 if (memberObjectId === null || memberObjectId === undefined) {1940 return callback(new Error('memberObjectId cannot be null.'));1941 }1942 1943 // Tracing1944 1945 // Construct URL1946 var url2 = '';1947 url2 = url2 + '/';1948 url2 = url2 + encodeURIComponent(this.client.tenantID);1949 url2 = url2 + '/groups/';1950 url2 = url2 + groupObjectId;1951 url2 = url2 + '/$links/members/';1952 url2 = url2 + memberObjectId;1953 var queryParameters = [];1954 queryParameters.push('api-version=1.42-previewInternal');1955 if (queryParameters.length > 0) {1956 url2 = url2 + '?' + queryParameters.join('&');1957 }1958 var baseUrl = this.client.baseUri;1959 // Trim '/' character from the end of baseUrl and beginning of url.1960 if (baseUrl[baseUrl.length - 1] === '/') {1961 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);1962 }1963 if (url2[0] === '/') {1964 url2 = url2.substring(1);1965 }1966 url2 = baseUrl + '/' + url2;1967 url2 = url2.replace(' ', '%20');1968 1969 // Create HTTP transport objects1970 var httpRequest = new WebResource();1971 httpRequest.method = 'DELETE';1972 httpRequest.headers = {};1973 httpRequest.url = url2;1974 1975 // Set Headers1976 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';1977 1978 // Send Request1979 return this.client.pipeline(httpRequest, function (err, response, body) {1980 if (err !== null && err !== undefined) {1981 return callback(err);1982 }1983 var statusCode = response.statusCode;1984 if (statusCode !== 204) {1985 var error = new Error(body);1986 error.statusCode = response.statusCode;1987 return callback(error);1988 }1989 1990 // Create Result1991 var result = null;1992 // Deserialize Response1993 result = {};1994 result.statusCode = statusCode;1995 result.requestId = response.headers['request-id'];1996 1997 return callback(null, result);1998 });1999 };2000 2001 return GroupOperations;2002})();20032004var ObjectOperations = ( /** @lends ObjectOperations */ function() {2005 /**2006 * @class2007 * Operations for working with Objects in Azure AD Graph API. (see2008 * http://msdn.microsoft.com/en-us/library/azure/hh974476.aspx for more2009 * information)2010 * __NOTE__: An instance of this class is automatically created for an2011 * instance of the [GraphRbacManagementClient] {@link2012 * GraphRbacManagementClient~GraphRbacManagementClient}.2013 * See [objects] {@link2014 * GraphRbacManagementClient~GraphRbacManagementClient#objects}.2015 * Initializes a new instance of the ObjectOperations class.2016 * @constructor2017 * 2018 * @param {GraphRbacManagementClient} client Reference to the service client.2019 */2020 function ObjectOperations(client) {2021 this.client = client;2022 }2023 2024 /**2025 * Gets AD group membership by provided AD object Ids2026 * 2027 * @param {GetObjectsParameters} parameters Objects filtering parameters.2028 * 2029 * @param {array} [parameters.ids] Requested object Ids2030 * 2031 * @param {array} [parameters.types] Requested object types2032 * 2033 * @param {function} callback2034 * 2035 * @returns {Stream} The response stream.2036 */2037 ObjectOperations.prototype.getObjectsByObjectIds = function(parameters, callback) {2038 if (callback === null || callback === undefined) {2039 throw new Error('callback cannot be null.');2040 }2041 // Validate2042 if (parameters === null || parameters === undefined) {2043 return callback(new Error('parameters cannot be null.'));2044 }2045 2046 // Tracing2047 2048 // Construct URL2049 var url2 = '';2050 url2 = url2 + '/';2051 url2 = url2 + encodeURIComponent(this.client.tenantID);2052 url2 = url2 + '/getObjectsByObjectIds';2053 var queryParameters = [];2054 queryParameters.push('api-version=1.42-previewInternal');2055 if (queryParameters.length > 0) {2056 url2 = url2 + '?' + queryParameters.join('&');2057 }2058 var baseUrl = this.client.baseUri;2059 // Trim '/' character from the end of baseUrl and beginning of url.2060 if (baseUrl[baseUrl.length - 1] === '/') {2061 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2062 }2063 if (url2[0] === '/') {2064 url2 = url2.substring(1);2065 }2066 url2 = baseUrl + '/' + url2;2067 url2 = url2.replace(' ', '%20');2068 2069 // Create HTTP transport objects2070 var httpRequest = new WebResource();2071 httpRequest.method = 'POST';2072 httpRequest.headers = {};2073 httpRequest.url = url2;2074 2075 // Set Headers2076 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';2077 2078 // Serialize Request2079 var requestContent = null;2080 var requestDoc = null;2081 2082 var getObjectsParametersValue = {};2083 requestDoc = getObjectsParametersValue;2084 2085 if (parameters.ids !== null && parameters.ids !== undefined) {2086 var objectIdsArray = [];2087 for (var loweredIndex1 = 0; loweredIndex1 < parameters.ids.length; loweredIndex1 = loweredIndex1 + 1) {2088 var objectIdsItem = parameters.ids[loweredIndex1];2089 objectIdsArray.push(objectIdsItem);2090 }2091 getObjectsParametersValue['objectIds'] = objectIdsArray;2092 }2093 2094 if (parameters.types !== null && parameters.types !== undefined) {2095 var typesArray = [];2096 for (var loweredIndex2 = 0; loweredIndex2 < parameters.types.length; loweredIndex2 = loweredIndex2 + 1) {2097 var typesItem = parameters.types[loweredIndex2];2098 typesArray.push(typesItem);2099 }2100 getObjectsParametersValue['types'] = typesArray;2101 }2102 2103 requestContent = JSON.stringify(requestDoc);2104 httpRequest.body = requestContent;2105 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');2106 // Send Request2107 return this.client.pipeline(httpRequest, function (err, response, body) {2108 if (err !== null && err !== undefined) {2109 return callback(err);2110 }2111 var statusCode = response.statusCode;2112 if (statusCode !== 200) {2113 var error = new Error(body);2114 error.statusCode = response.statusCode;2115 return callback(error);2116 }2117 2118 // Create Result2119 var result = null;2120 // Deserialize Response2121 if (statusCode === 200) {2122 var responseContent = body;2123 result = { aADObject: [] };2124 var responseDoc = null;2125 if (responseContent) {2126 responseDoc = JSON.parse(responseContent);2127 }2128 2129 if (responseDoc !== null && responseDoc !== undefined) {2130 var valueArray = responseDoc['value'];2131 if (valueArray !== null && valueArray !== undefined) {2132 for (var loweredIndex3 = 0; loweredIndex3 < valueArray.length; loweredIndex3 = loweredIndex3 + 1) {2133 var valueValue = valueArray[loweredIndex3];2134 var aADObjectInstance = {};2135 result.aADObject.push(aADObjectInstance);2136 2137 var objectIdValue = valueValue['objectId'];2138 if (objectIdValue !== null && objectIdValue !== undefined) {2139 var objectIdInstance = objectIdValue;2140 aADObjectInstance.objectId = objectIdInstance;2141 }2142 2143 var objectTypeValue = valueValue['objectType'];2144 if (objectTypeValue !== null && objectTypeValue !== undefined) {2145 var objectTypeInstance = objectTypeValue;2146 aADObjectInstance.objectType = objectTypeInstance;2147 }2148 2149 var displayNameValue = valueValue['displayName'];2150 if (displayNameValue !== null && displayNameValue !== undefined) {2151 var displayNameInstance = displayNameValue;2152 aADObjectInstance.displayName = displayNameInstance;2153 }2154 2155 var userPrincipalNameValue = valueValue['userPrincipalName'];2156 if (userPrincipalNameValue !== null && userPrincipalNameValue !== undefined) {2157 var userPrincipalNameInstance = userPrincipalNameValue;2158 aADObjectInstance.userPrincipalName = userPrincipalNameInstance;2159 }2160 2161 var mailValue = valueValue['mail'];2162 if (mailValue !== null && mailValue !== undefined) {2163 var mailInstance = mailValue;2164 aADObjectInstance.mail = mailInstance;2165 }2166 2167 var mailEnabledValue = valueValue['mailEnabled'];2168 if (mailEnabledValue !== null && mailEnabledValue !== undefined) {2169 var mailEnabledInstance = mailEnabledValue;2170 aADObjectInstance.mailEnabled = mailEnabledInstance;2171 }2172 2173 var securityEnabledValue = valueValue['securityEnabled'];2174 if (securityEnabledValue !== null && securityEnabledValue !== undefined) {2175 var securityEnabledInstance = securityEnabledValue;2176 aADObjectInstance.securityEnabled = securityEnabledInstance;2177 }2178 }2179 }2180 2181 var odatanextLinkValue = responseDoc['odata.nextLink'];2182 if (odatanextLinkValue !== null && odatanextLinkValue !== undefined) {2183 var odatanextLinkInstance = odatanextLinkValue;2184 result.nextLink = odatanextLinkInstance;2185 }2186 }2187 2188 }2189 result.statusCode = statusCode;2190 result.requestId = response.headers['request-id'];2191 2192 return callback(null, result);2193 });2194 };2195 2196 return ObjectOperations;2197})();21982199var ServicePrincipalOperations = ( /** @lends ServicePrincipalOperations */ function() {2200 /**2201 * @class2202 * Operations for working with service principal in Azure Active Directory2203 * Graph API. (see2204 * http://msdn.microsoft.com/en-us/library/azure/hh974476.aspx for more2205 * information)2206 * __NOTE__: An instance of this class is automatically created for an2207 * instance of the [GraphRbacManagementClient] {@link2208 * GraphRbacManagementClient~GraphRbacManagementClient}.2209 * See [servicePrincipal] {@link2210 * GraphRbacManagementClient~GraphRbacManagementClient#servicePrincipal}.2211 * Initializes a new instance of the ServicePrincipalOperations class.2212 * @constructor2213 * 2214 * @param {GraphRbacManagementClient} client Reference to the service client.2215 */2216 function ServicePrincipalOperations(client) {2217 this.client = client;2218 }2219 2220 /**2221 * Creates a service principal in the directory.2222 * 2223 * @param {ServicePrincipalCreateParameters} parameters Parameters to create2224 * a service principal.2225 * 2226 * @param {string} parameters.appId Gets or sets application Id2227 * 2228 * @param {boolean} parameters.accountEnabled Specifies if the account is2229 * enabled2230 * 2231 * @param {function} callback2232 * 2233 * @returns {Stream} The response stream.2234 */2235 ServicePrincipalOperations.prototype.create = function(parameters, callback) {2236 if (callback === null || callback === undefined) {2237 throw new Error('callback cannot be null.');2238 }2239 // Validate2240 if (parameters === null || parameters === undefined) {2241 return callback(new Error('parameters cannot be null.'));2242 }2243 if (parameters.accountEnabled === null || parameters.accountEnabled === undefined) {2244 return callback(new Error('parameters.accountEnabled cannot be null.'));2245 }2246 if (parameters.appId === null || parameters.appId === undefined) {2247 return callback(new Error('parameters.appId cannot be null.'));2248 }2249 2250 // Tracing2251 2252 // Construct URL2253 var url2 = '';2254 url2 = url2 + '/';2255 url2 = url2 + encodeURIComponent(this.client.tenantID);2256 url2 = url2 + '/servicePrincipals';2257 var queryParameters = [];2258 queryParameters.push('api-version=1.42-previewInternal');2259 if (queryParameters.length > 0) {2260 url2 = url2 + '?' + queryParameters.join('&');2261 }2262 var baseUrl = this.client.baseUri;2263 // Trim '/' character from the end of baseUrl and beginning of url.2264 if (baseUrl[baseUrl.length - 1] === '/') {2265 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2266 }2267 if (url2[0] === '/') {2268 url2 = url2.substring(1);2269 }2270 url2 = baseUrl + '/' + url2;2271 url2 = url2.replace(' ', '%20');2272 2273 // Create HTTP transport objects2274 var httpRequest = new WebResource();2275 httpRequest.method = 'POST';2276 httpRequest.headers = {};2277 httpRequest.url = url2;2278 2279 // Set Headers2280 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';2281 2282 // Serialize Request2283 var requestContent = null;2284 var requestDoc = null;2285 2286 var servicePrincipalCreateParametersValue = {};2287 requestDoc = servicePrincipalCreateParametersValue;2288 2289 servicePrincipalCreateParametersValue['appId'] = parameters.appId;2290 2291 servicePrincipalCreateParametersValue['accountEnabled'] = parameters.accountEnabled;2292 2293 requestContent = JSON.stringify(requestDoc);2294 httpRequest.body = requestContent;2295 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');2296 // Send Request2297 return this.client.pipeline(httpRequest, function (err, response, body) {2298 if (err !== null && err !== undefined) {2299 return callback(err);2300 }2301 var statusCode = response.statusCode;2302 if (statusCode !== 201) {2303 var error = new Error(body);2304 error.statusCode = response.statusCode;2305 return callback(error);2306 }2307 2308 // Create Result2309 var result = null;2310 // Deserialize Response2311 if (statusCode === 201) {2312 var responseContent = body;2313 result = {};2314 var responseDoc = null;2315 if (responseContent) {2316 responseDoc = JSON.parse(responseContent);2317 }2318 2319 if (responseDoc !== null && responseDoc !== undefined) {2320 var servicePrincipalInstance = { servicePrincipalNames: [] };2321 result.servicePrincipal = servicePrincipalInstance;2322 2323 var objectIdValue = responseDoc['objectId'];2324 if (objectIdValue !== null && objectIdValue !== undefined) {2325 var objectIdInstance = objectIdValue;2326 servicePrincipalInstance.objectId = objectIdInstance;2327 }2328 2329 var objectTypeValue = responseDoc['objectType'];2330 if (objectTypeValue !== null && objectTypeValue !== undefined) {2331 var objectTypeInstance = objectTypeValue;2332 servicePrincipalInstance.objectType = objectTypeInstance;2333 }2334 2335 var displayNameValue = responseDoc['displayName'];2336 if (displayNameValue !== null && displayNameValue !== undefined) {2337 var displayNameInstance = displayNameValue;2338 servicePrincipalInstance.displayName = displayNameInstance;2339 }2340 2341 var appIdValue = responseDoc['appId'];2342 if (appIdValue !== null && appIdValue !== undefined) {2343 var appIdInstance = appIdValue;2344 servicePrincipalInstance.appId = appIdInstance;2345 }2346 2347 var servicePrincipalNamesArray = responseDoc['servicePrincipalNames'];2348 if (servicePrincipalNamesArray !== null && servicePrincipalNamesArray !== undefined) {2349 for (var loweredIndex1 = 0; loweredIndex1 < servicePrincipalNamesArray.length; loweredIndex1 = loweredIndex1 + 1) {2350 var servicePrincipalNamesValue = servicePrincipalNamesArray[loweredIndex1];2351 servicePrincipalInstance.servicePrincipalNames.push(servicePrincipalNamesValue);2352 }2353 }2354 }2355 2356 }2357 result.statusCode = statusCode;2358 result.requestId = response.headers['request-id'];2359 2360 return callback(null, result);2361 });2362 };2363 2364 /**2365 * Deletes service principal from the directory.2366 * 2367 * @param {string} objectId Object id to delete service principal information.2368 * 2369 * @param {function} callback2370 * 2371 * @returns {Stream} The response stream.2372 */2373 ServicePrincipalOperations.prototype.deleteMethod = function(objectId, callback) {2374 if (callback === null || callback === undefined) {2375 throw new Error('callback cannot be null.');2376 }2377 // Validate2378 if (objectId === null || objectId === undefined) {2379 return callback(new Error('objectId cannot be null.'));2380 }2381 2382 // Tracing2383 2384 // Construct URL2385 var url2 = '';2386 url2 = url2 + '/';2387 url2 = url2 + encodeURIComponent(this.client.tenantID);2388 url2 = url2 + '/servicePrincipals/';2389 url2 = url2 + objectId;2390 var queryParameters = [];2391 queryParameters.push('api-version=1.42-previewInternal');2392 if (queryParameters.length > 0) {2393 url2 = url2 + '?' + queryParameters.join('&');2394 }2395 var baseUrl = this.client.baseUri;2396 // Trim '/' character from the end of baseUrl and beginning of url.2397 if (baseUrl[baseUrl.length - 1] === '/') {2398 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2399 }2400 if (url2[0] === '/') {2401 url2 = url2.substring(1);2402 }2403 url2 = baseUrl + '/' + url2;2404 url2 = url2.replace(' ', '%20');2405 2406 // Create HTTP transport objects2407 var httpRequest = new WebResource();2408 httpRequest.method = 'DELETE';2409 httpRequest.headers = {};2410 httpRequest.url = url2;2411 2412 // Set Headers2413 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';2414 2415 // Send Request2416 return this.client.pipeline(httpRequest, function (err, response, body) {2417 if (err !== null && err !== undefined) {2418 return callback(err);2419 }2420 var statusCode = response.statusCode;2421 if (statusCode !== 204) {2422 var error = new Error(body);2423 error.statusCode = response.statusCode;2424 return callback(error);2425 }2426 2427 // Create Result2428 var result = null;2429 // Deserialize Response2430 result = {};2431 result.statusCode = statusCode;2432 result.requestId = response.headers['request-id'];2433 2434 return callback(null, result);2435 });2436 };2437 2438 /**2439 * Gets service principal information from the directory.2440 * 2441 * @param {string} objectId Object id to get service principal information.2442 * 2443 * @param {function} callback2444 * 2445 * @returns {Stream} The response stream.2446 */2447 ServicePrincipalOperations.prototype.get = function(objectId, callback) {2448 if (callback === null || callback === undefined) {2449 throw new Error('callback cannot be null.');2450 }2451 // Validate2452 if (objectId === null || objectId === undefined) {2453 return callback(new Error('objectId cannot be null.'));2454 }2455 2456 // Tracing2457 2458 // Construct URL2459 var url2 = '';2460 url2 = url2 + '/';2461 url2 = url2 + encodeURIComponent(this.client.tenantID);2462 url2 = url2 + '/servicePrincipals/';2463 url2 = url2 + objectId;2464 var queryParameters = [];2465 queryParameters.push('api-version=1.42-previewInternal');2466 if (queryParameters.length > 0) {2467 url2 = url2 + '?' + queryParameters.join('&');2468 }2469 var baseUrl = this.client.baseUri;2470 // Trim '/' character from the end of baseUrl and beginning of url.2471 if (baseUrl[baseUrl.length - 1] === '/') {2472 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2473 }2474 if (url2[0] === '/') {2475 url2 = url2.substring(1);2476 }2477 url2 = baseUrl + '/' + url2;2478 url2 = url2.replace(' ', '%20');2479 2480 // Create HTTP transport objects2481 var httpRequest = new WebResource();2482 httpRequest.method = 'GET';2483 httpRequest.headers = {};2484 httpRequest.url = url2;2485 2486 // Set Headers2487 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';2488 2489 // Send Request2490 return this.client.pipeline(httpRequest, function (err, response, body) {2491 if (err !== null && err !== undefined) {2492 return callback(err);2493 }2494 var statusCode = response.statusCode;2495 if (statusCode !== 200) {2496 var error = new Error(body);2497 error.statusCode = response.statusCode;2498 return callback(error);2499 }2500 2501 // Create Result2502 var result = null;2503 // Deserialize Response2504 if (statusCode === 200) {2505 var responseContent = body;2506 result = {};2507 var responseDoc = null;2508 if (responseContent) {2509 responseDoc = JSON.parse(responseContent);2510 }2511 2512 if (responseDoc !== null && responseDoc !== undefined) {2513 var servicePrincipalInstance = { servicePrincipalNames: [] };2514 result.servicePrincipal = servicePrincipalInstance;2515 2516 var objectIdValue = responseDoc['objectId'];2517 if (objectIdValue !== null && objectIdValue !== undefined) {2518 var objectIdInstance = objectIdValue;2519 servicePrincipalInstance.objectId = objectIdInstance;2520 }2521 2522 var objectTypeValue = responseDoc['objectType'];2523 if (objectTypeValue !== null && objectTypeValue !== undefined) {2524 var objectTypeInstance = objectTypeValue;2525 servicePrincipalInstance.objectType = objectTypeInstance;2526 }2527 2528 var displayNameValue = responseDoc['displayName'];2529 if (displayNameValue !== null && displayNameValue !== undefined) {2530 var displayNameInstance = displayNameValue;2531 servicePrincipalInstance.displayName = displayNameInstance;2532 }2533 2534 var appIdValue = responseDoc['appId'];2535 if (appIdValue !== null && appIdValue !== undefined) {2536 var appIdInstance = appIdValue;2537 servicePrincipalInstance.appId = appIdInstance;2538 }2539 2540 var servicePrincipalNamesArray = responseDoc['servicePrincipalNames'];2541 if (servicePrincipalNamesArray !== null && servicePrincipalNamesArray !== undefined) {2542 for (var loweredIndex1 = 0; loweredIndex1 < servicePrincipalNamesArray.length; loweredIndex1 = loweredIndex1 + 1) {2543 var servicePrincipalNamesValue = servicePrincipalNamesArray[loweredIndex1];2544 servicePrincipalInstance.servicePrincipalNames.push(servicePrincipalNamesValue);2545 }2546 }2547 }2548 2549 }2550 result.statusCode = statusCode;2551 result.requestId = response.headers['request-id'];2552 2553 return callback(null, result);2554 });2555 };2556 2557 /**2558 * Gets service principal information from the directory.2559 * 2560 * @param {string} servicePrincipalName filter based on service principal name2561 * 2562 * @param {function} callback2563 * 2564 * @returns {Stream} The response stream.2565 */2566 ServicePrincipalOperations.prototype.getByServicePrincipalName = function(servicePrincipalName, callback) {2567 if (callback === null || callback === undefined) {2568 throw new Error('callback cannot be null.');2569 }2570 // Validate2571 if (servicePrincipalName === null || servicePrincipalName === undefined) {2572 return callback(new Error('servicePrincipalName cannot be null.'));2573 }2574 2575 // Tracing2576 2577 // Construct URL2578 var url2 = '';2579 url2 = url2 + '/';2580 url2 = url2 + encodeURIComponent(this.client.tenantID);2581 url2 = url2 + '/servicePrincipals';2582 var queryParameters = [];2583 var odataFilter = [];2584 odataFilter.push('servicePrincipalNames/any(c:c eq \'' + encodeURIComponent(servicePrincipalName) + '\')');2585 if (odataFilter.length > 0) {2586 queryParameters.push('$filter=' + odataFilter.join(null));2587 }2588 queryParameters.push('api-version=1.42-previewInternal');2589 if (queryParameters.length > 0) {2590 url2 = url2 + '?' + queryParameters.join('&');2591 }2592 var baseUrl = this.client.baseUri;2593 // Trim '/' character from the end of baseUrl and beginning of url.2594 if (baseUrl[baseUrl.length - 1] === '/') {2595 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2596 }2597 if (url2[0] === '/') {2598 url2 = url2.substring(1);2599 }2600 url2 = baseUrl + '/' + url2;2601 url2 = url2.replace(' ', '%20');2602 2603 // Create HTTP transport objects2604 var httpRequest = new WebResource();2605 httpRequest.method = 'GET';2606 httpRequest.headers = {};2607 httpRequest.url = url2;2608 2609 // Set Headers2610 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';2611 2612 // Send Request2613 return this.client.pipeline(httpRequest, function (err, response, body) {2614 if (err !== null && err !== undefined) {2615 return callback(err);2616 }2617 var statusCode = response.statusCode;2618 if (statusCode !== 200) {2619 var error = new Error(body);2620 error.statusCode = response.statusCode;2621 return callback(error);2622 }2623 2624 // Create Result2625 var result = null;2626 // Deserialize Response2627 if (statusCode === 200) {2628 var responseContent = body;2629 result = { servicePrincipals: [] };2630 var responseDoc = null;2631 if (responseContent) {2632 responseDoc = JSON.parse(responseContent);2633 }2634 2635 if (responseDoc !== null && responseDoc !== undefined) {2636 var valueArray = responseDoc['value'];2637 if (valueArray !== null && valueArray !== undefined) {2638 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {2639 var valueValue = valueArray[loweredIndex1];2640 var servicePrincipalInstance = { servicePrincipalNames: [] };2641 result.servicePrincipals.push(servicePrincipalInstance);2642 2643 var objectIdValue = valueValue['objectId'];2644 if (objectIdValue !== null && objectIdValue !== undefined) {2645 var objectIdInstance = objectIdValue;2646 servicePrincipalInstance.objectId = objectIdInstance;2647 }2648 2649 var objectTypeValue = valueValue['objectType'];2650 if (objectTypeValue !== null && objectTypeValue !== undefined) {2651 var objectTypeInstance = objectTypeValue;2652 servicePrincipalInstance.objectType = objectTypeInstance;2653 }2654 2655 var displayNameValue = valueValue['displayName'];2656 if (displayNameValue !== null && displayNameValue !== undefined) {2657 var displayNameInstance = displayNameValue;2658 servicePrincipalInstance.displayName = displayNameInstance;2659 }2660 2661 var appIdValue = valueValue['appId'];2662 if (appIdValue !== null && appIdValue !== undefined) {2663 var appIdInstance = appIdValue;2664 servicePrincipalInstance.appId = appIdInstance;2665 }2666 2667 var servicePrincipalNamesArray = valueValue['servicePrincipalNames'];2668 if (servicePrincipalNamesArray !== null && servicePrincipalNamesArray !== undefined) {2669 for (var loweredIndex2 = 0; loweredIndex2 < servicePrincipalNamesArray.length; loweredIndex2 = loweredIndex2 + 1) {2670 var servicePrincipalNamesValue = servicePrincipalNamesArray[loweredIndex2];2671 servicePrincipalInstance.servicePrincipalNames.push(servicePrincipalNamesValue);2672 }2673 }2674 }2675 }2676 2677 var odatanextLinkValue = responseDoc['odata.nextLink'];2678 if (odatanextLinkValue !== null && odatanextLinkValue !== undefined) {2679 var odatanextLinkInstance = odatanextLinkValue;2680 result.nextLink = odatanextLinkInstance;2681 }2682 }2683 2684 }2685 result.statusCode = statusCode;2686 result.requestId = response.headers['request-id'];2687 2688 return callback(null, result);2689 });2690 };2691 2692 /**2693 * Gets list of service principals from the current tenant.2694 * 2695 * @param {string} [displayNameStartsWith] Display name to filter results.2696 * 2697 * @param {function} callback2698 * 2699 * @returns {Stream} The response stream.2700 */2701 ServicePrincipalOperations.prototype.list = function(displayNameStartsWith, callback) {2702 if (callback === null || callback === undefined) {2703 throw new Error('callback cannot be null.');2704 }2705 // Validate2706 2707 // Tracing2708 2709 // Construct URL2710 var url2 = '';2711 url2 = url2 + '/';2712 url2 = url2 + encodeURIComponent(this.client.tenantID);2713 url2 = url2 + '/servicePrincipals';2714 var queryParameters = [];2715 var odataFilter = [];2716 if (displayNameStartsWith !== null && displayNameStartsWith !== undefined) {2717 odataFilter.push('startswith(displayName,\'' + encodeURIComponent(displayNameStartsWith) + '\')');2718 }2719 if (odataFilter.length > 0) {2720 queryParameters.push('$filter=' + odataFilter.join(null));2721 }2722 queryParameters.push('api-version=1.42-previewInternal');2723 if (queryParameters.length > 0) {2724 url2 = url2 + '?' + queryParameters.join('&');2725 }2726 var baseUrl = this.client.baseUri;2727 // Trim '/' character from the end of baseUrl and beginning of url.2728 if (baseUrl[baseUrl.length - 1] === '/') {2729 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2730 }2731 if (url2[0] === '/') {2732 url2 = url2.substring(1);2733 }2734 url2 = baseUrl + '/' + url2;2735 url2 = url2.replace(' ', '%20');2736 2737 // Create HTTP transport objects2738 var httpRequest = new WebResource();2739 httpRequest.method = 'GET';2740 httpRequest.headers = {};2741 httpRequest.url = url2;2742 2743 // Set Headers2744 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';2745 2746 // Send Request2747 return this.client.pipeline(httpRequest, function (err, response, body) {2748 if (err !== null && err !== undefined) {2749 return callback(err);2750 }2751 var statusCode = response.statusCode;2752 if (statusCode !== 200) {2753 var error = new Error(body);2754 error.statusCode = response.statusCode;2755 return callback(error);2756 }2757 2758 // Create Result2759 var result = null;2760 // Deserialize Response2761 if (statusCode === 200) {2762 var responseContent = body;2763 result = { servicePrincipals: [] };2764 var responseDoc = null;2765 if (responseContent) {2766 responseDoc = JSON.parse(responseContent);2767 }2768 2769 if (responseDoc !== null && responseDoc !== undefined) {2770 var valueArray = responseDoc['value'];2771 if (valueArray !== null && valueArray !== undefined) {2772 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {2773 var valueValue = valueArray[loweredIndex1];2774 var servicePrincipalInstance = { servicePrincipalNames: [] };2775 result.servicePrincipals.push(servicePrincipalInstance);2776 2777 var objectIdValue = valueValue['objectId'];2778 if (objectIdValue !== null && objectIdValue !== undefined) {2779 var objectIdInstance = objectIdValue;2780 servicePrincipalInstance.objectId = objectIdInstance;2781 }2782 2783 var objectTypeValue = valueValue['objectType'];2784 if (objectTypeValue !== null && objectTypeValue !== undefined) {2785 var objectTypeInstance = objectTypeValue;2786 servicePrincipalInstance.objectType = objectTypeInstance;2787 }2788 2789 var displayNameValue = valueValue['displayName'];2790 if (displayNameValue !== null && displayNameValue !== undefined) {2791 var displayNameInstance = displayNameValue;2792 servicePrincipalInstance.displayName = displayNameInstance;2793 }2794 2795 var appIdValue = valueValue['appId'];2796 if (appIdValue !== null && appIdValue !== undefined) {2797 var appIdInstance = appIdValue;2798 servicePrincipalInstance.appId = appIdInstance;2799 }2800 2801 var servicePrincipalNamesArray = valueValue['servicePrincipalNames'];2802 if (servicePrincipalNamesArray !== null && servicePrincipalNamesArray !== undefined) {2803 for (var loweredIndex2 = 0; loweredIndex2 < servicePrincipalNamesArray.length; loweredIndex2 = loweredIndex2 + 1) {2804 var servicePrincipalNamesValue = servicePrincipalNamesArray[loweredIndex2];2805 servicePrincipalInstance.servicePrincipalNames.push(servicePrincipalNamesValue);2806 }2807 }2808 }2809 }2810 2811 var odatanextLinkValue = responseDoc['odata.nextLink'];2812 if (odatanextLinkValue !== null && odatanextLinkValue !== undefined) {2813 var odatanextLinkInstance = odatanextLinkValue;2814 result.nextLink = odatanextLinkInstance;2815 }2816 }2817 2818 }2819 result.statusCode = statusCode;2820 result.requestId = response.headers['request-id'];2821 2822 return callback(null, result);2823 });2824 };2825 2826 /**2827 * Gets list of service principals for the current tenant.2828 * 2829 * @param {string} nextLink NextLink from the previous successful call to2830 * List operation.2831 * 2832 * @param {function} callback2833 * 2834 * @returns {Stream} The response stream.2835 */2836 ServicePrincipalOperations.prototype.listNext = function(nextLink, callback) {2837 if (callback === null || callback === undefined) {2838 throw new Error('callback cannot be null.');2839 }2840 // Validate2841 if (nextLink === null || nextLink === undefined) {2842 return callback(new Error('nextLink cannot be null.'));2843 }2844 2845 // Tracing2846 2847 // Construct URL2848 var url2 = '';2849 url2 = url2 + '/';2850 url2 = url2 + encodeURIComponent(this.client.tenantID);2851 url2 = url2 + '/';2852 url2 = url2 + nextLink;2853 url2 = url2 + '&api-version=1.42-previewInternal';2854 var baseUrl = this.client.baseUri;2855 // Trim '/' character from the end of baseUrl and beginning of url.2856 if (baseUrl[baseUrl.length - 1] === '/') {2857 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);2858 }2859 if (url2[0] === '/') {2860 url2 = url2.substring(1);2861 }2862 url2 = baseUrl + '/' + url2;2863 url2 = url2.replace(' ', '%20');2864 2865 // Create HTTP transport objects2866 var httpRequest = new WebResource();2867 httpRequest.method = 'GET';2868 httpRequest.headers = {};2869 httpRequest.url = url2;2870 2871 // Set Headers2872 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';2873 2874 // Send Request2875 return this.client.pipeline(httpRequest, function (err, response, body) {2876 if (err !== null && err !== undefined) {2877 return callback(err);2878 }2879 var statusCode = response.statusCode;2880 if (statusCode !== 200) {2881 var error = new Error(body);2882 error.statusCode = response.statusCode;2883 return callback(error);2884 }2885 2886 // Create Result2887 var result = null;2888 // Deserialize Response2889 if (statusCode === 200) {2890 var responseContent = body;2891 result = { servicePrincipals: [] };2892 var responseDoc = null;2893 if (responseContent) {2894 responseDoc = JSON.parse(responseContent);2895 }2896 2897 if (responseDoc !== null && responseDoc !== undefined) {2898 var valueArray = responseDoc['value'];2899 if (valueArray !== null && valueArray !== undefined) {2900 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {2901 var valueValue = valueArray[loweredIndex1];2902 var servicePrincipalInstance = { servicePrincipalNames: [] };2903 result.servicePrincipals.push(servicePrincipalInstance);2904 2905 var objectIdValue = valueValue['objectId'];2906 if (objectIdValue !== null && objectIdValue !== undefined) {2907 var objectIdInstance = objectIdValue;2908 servicePrincipalInstance.objectId = objectIdInstance;2909 }2910 2911 var objectTypeValue = valueValue['objectType'];2912 if (objectTypeValue !== null && objectTypeValue !== undefined) {2913 var objectTypeInstance = objectTypeValue;2914 servicePrincipalInstance.objectType = objectTypeInstance;2915 }2916 2917 var displayNameValue = valueValue['displayName'];2918 if (displayNameValue !== null && displayNameValue !== undefined) {2919 var displayNameInstance = displayNameValue;2920 servicePrincipalInstance.displayName = displayNameInstance;2921 }2922 2923 var appIdValue = valueValue['appId'];2924 if (appIdValue !== null && appIdValue !== undefined) {2925 var appIdInstance = appIdValue;2926 servicePrincipalInstance.appId = appIdInstance;2927 }2928 2929 var servicePrincipalNamesArray = valueValue['servicePrincipalNames'];2930 if (servicePrincipalNamesArray !== null && servicePrincipalNamesArray !== undefined) {2931 for (var loweredIndex2 = 0; loweredIndex2 < servicePrincipalNamesArray.length; loweredIndex2 = loweredIndex2 + 1) {2932 var servicePrincipalNamesValue = servicePrincipalNamesArray[loweredIndex2];2933 servicePrincipalInstance.servicePrincipalNames.push(servicePrincipalNamesValue);2934 }2935 }2936 }2937 }2938 2939 var odatanextLinkValue = responseDoc['odata.nextLink'];2940 if (odatanextLinkValue !== null && odatanextLinkValue !== undefined) {2941 var odatanextLinkInstance = odatanextLinkValue;2942 result.nextLink = odatanextLinkInstance;2943 }2944 }2945 2946 }2947 result.statusCode = statusCode;2948 result.requestId = response.headers['request-id'];2949 2950 return callback(null, result);2951 });2952 };2953 2954 return ServicePrincipalOperations;2955})();29562957var UserOperations = ( /** @lends UserOperations */ function() {2958 /**2959 * @class2960 * Operations for working with Users in Azure Active Directory Graph API.2961 * (see http://msdn.microsoft.com/en-us/library/azure/hh974476.aspx for2962 * more information)2963 * __NOTE__: An instance of this class is automatically created for an2964 * instance of the [GraphRbacManagementClient] {@link2965 * GraphRbacManagementClient~GraphRbacManagementClient}.2966 * See [user] {@link2967 * GraphRbacManagementClient~GraphRbacManagementClient#user}.2968 * Initializes a new instance of the UserOperations class.2969 * @constructor2970 * 2971 * @param {GraphRbacManagementClient} client Reference to the service client.2972 */2973 function UserOperations(client) {2974 this.client = client;2975 }2976 2977 /**2978 * Create a new user. (see2979 * http://msdn.microsoft.com/en-us/library/azure/dn130117.aspx for more2980 * information)2981 * 2982 * @param {UserCreateParameters} parameters Parameters to create a user.2983 * 2984 * @param {string} parameters.userPrincipalName User Principal Name2985 * 2986 * @param {boolean} parameters.accountEnabled Enable the account2987 * 2988 * @param {string} parameters.displayName User display name2989 * 2990 * @param {string} parameters.mailNickname Mail nick name2991 * 2992 * @param {PasswordProfile} parameters.passwordProfileSettings Password2993 * Profile2994 * 2995 * @param {string} parameters.passwordProfileSettings.password Password2996 * 2997 * @param {boolean}2998 * [parameters.passwordProfileSettings.forceChangePasswordNextLogin] Force2999 * change password on next login3000 * 3001 * @param {function} callback3002 * 3003 * @returns {Stream} The response stream.3004 */3005 UserOperations.prototype.create = function(parameters, callback) {3006 if (callback === null || callback === undefined) {3007 throw new Error('callback cannot be null.');3008 }3009 // Validate3010 if (parameters === null || parameters === undefined) {3011 return callback(new Error('parameters cannot be null.'));3012 }3013 if (parameters.accountEnabled === null || parameters.accountEnabled === undefined) {3014 return callback(new Error('parameters.accountEnabled cannot be null.'));3015 }3016 if (parameters.displayName === null || parameters.displayName === undefined) {3017 return callback(new Error('parameters.displayName cannot be null.'));3018 }3019 if (parameters.mailNickname === null || parameters.mailNickname === undefined) {3020 return callback(new Error('parameters.mailNickname cannot be null.'));3021 }3022 if (parameters.passwordProfileSettings === null || parameters.passwordProfileSettings === undefined) {3023 return callback(new Error('parameters.passwordProfileSettings cannot be null.'));3024 }3025 if (parameters.passwordProfileSettings.password === null || parameters.passwordProfileSettings.password === undefined) {3026 return callback(new Error('parameters.passwordProfileSettings. cannot be null.'));3027 }3028 if (parameters.userPrincipalName === null || parameters.userPrincipalName === undefined) {3029 return callback(new Error('parameters.userPrincipalName cannot be null.'));3030 }3031 3032 // Tracing3033 3034 // Construct URL3035 var url2 = '';3036 url2 = url2 + '/';3037 url2 = url2 + encodeURIComponent(this.client.tenantID);3038 url2 = url2 + '/users';3039 var queryParameters = [];3040 queryParameters.push('api-version=1.42-previewInternal');3041 if (queryParameters.length > 0) {3042 url2 = url2 + '?' + queryParameters.join('&');3043 }3044 var baseUrl = this.client.baseUri;3045 // Trim '/' character from the end of baseUrl and beginning of url.3046 if (baseUrl[baseUrl.length - 1] === '/') {3047 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);3048 }3049 if (url2[0] === '/') {3050 url2 = url2.substring(1);3051 }3052 url2 = baseUrl + '/' + url2;3053 url2 = url2.replace(' ', '%20');3054 3055 // Create HTTP transport objects3056 var httpRequest = new WebResource();3057 httpRequest.method = 'POST';3058 httpRequest.headers = {};3059 httpRequest.url = url2;3060 3061 // Set Headers3062 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';3063 3064 // Serialize Request3065 var requestContent = null;3066 var requestDoc = null;3067 3068 var userCreateParametersValue = {};3069 requestDoc = userCreateParametersValue;3070 3071 userCreateParametersValue['userPrincipalName'] = parameters.userPrincipalName;3072 3073 userCreateParametersValue['accountEnabled'] = parameters.accountEnabled;3074 3075 userCreateParametersValue['displayName'] = parameters.displayName;3076 3077 userCreateParametersValue['mailNickname'] = parameters.mailNickname;3078 3079 var passwordProfileValue = {};3080 userCreateParametersValue['passwordProfile'] = passwordProfileValue;3081 3082 passwordProfileValue['password'] = parameters.passwordProfileSettings.password;3083 3084 if (parameters.passwordProfileSettings.forceChangePasswordNextLogin !== null && parameters.passwordProfileSettings.forceChangePasswordNextLogin !== undefined) {3085 passwordProfileValue['forceChangePasswordNextLogin'] = parameters.passwordProfileSettings.forceChangePasswordNextLogin;3086 }3087 3088 requestContent = JSON.stringify(requestDoc);3089 httpRequest.body = requestContent;3090 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');3091 // Send Request3092 return this.client.pipeline(httpRequest, function (err, response, body) {3093 if (err !== null && err !== undefined) {3094 return callback(err);3095 }3096 var statusCode = response.statusCode;3097 if (statusCode !== 201) {3098 var error = new Error(body);3099 error.statusCode = response.statusCode;3100 return callback(error);3101 }3102 3103 // Create Result3104 var result = null;3105 // Deserialize Response3106 if (statusCode === 201) {3107 var responseContent = body;3108 result = {};3109 var responseDoc = null;3110 if (responseContent) {3111 responseDoc = JSON.parse(responseContent);3112 }3113 3114 if (responseDoc !== null && responseDoc !== undefined) {3115 var userInstance = {};3116 result.user = userInstance;3117 3118 var objectIdValue = responseDoc['objectId'];3119 if (objectIdValue !== null && objectIdValue !== undefined) {3120 var objectIdInstance = objectIdValue;3121 userInstance.objectId = objectIdInstance;3122 }3123 3124 var objectTypeValue = responseDoc['objectType'];3125 if (objectTypeValue !== null && objectTypeValue !== undefined) {3126 var objectTypeInstance = objectTypeValue;3127 userInstance.objectType = objectTypeInstance;3128 }3129 3130 var userPrincipalNameValue = responseDoc['userPrincipalName'];3131 if (userPrincipalNameValue !== null && userPrincipalNameValue !== undefined) {3132 var userPrincipalNameInstance = userPrincipalNameValue;3133 userInstance.userPrincipalName = userPrincipalNameInstance;3134 }3135 3136 var displayNameValue = responseDoc['displayName'];3137 if (displayNameValue !== null && displayNameValue !== undefined) {3138 var displayNameInstance = displayNameValue;3139 userInstance.displayName = displayNameInstance;3140 }3141 3142 var signInNameValue = responseDoc['signInName'];3143 if (signInNameValue !== null && signInNameValue !== undefined) {3144 var signInNameInstance = signInNameValue;3145 userInstance.signInName = signInNameInstance;3146 }3147 3148 var mailValue = responseDoc['mail'];3149 if (mailValue !== null && mailValue !== undefined) {3150 var mailInstance = mailValue;3151 userInstance.mail = mailInstance;3152 }3153 }3154 3155 }3156 result.statusCode = statusCode;3157 result.requestId = response.headers['request-id'];3158 3159 return callback(null, result);3160 });3161 };3162 3163 /**3164 * Delete a user. (see3165 * http://msdn.microsoft.com/en-us/library/azure/dn151676.aspx for more3166 * information)3167 * 3168 * @param {string} user user object id or user principal name3169 * 3170 * @param {function} callback3171 * 3172 * @returns {Stream} The response stream.3173 */3174 UserOperations.prototype.deleteMethod = function(user, callback) {3175 if (callback === null || callback === undefined) {3176 throw new Error('callback cannot be null.');3177 }3178 // Validate3179 if (user === null || user === undefined) {3180 return callback(new Error('user cannot be null.'));3181 }3182 3183 // Tracing3184 3185 // Construct URL3186 var url2 = '';3187 url2 = url2 + '/';3188 url2 = url2 + encodeURIComponent(this.client.tenantID);3189 url2 = url2 + '/users/';3190 url2 = url2 + user;3191 var queryParameters = [];3192 queryParameters.push('api-version=1.42-previewInternal');3193 if (queryParameters.length > 0) {3194 url2 = url2 + '?' + queryParameters.join('&');3195 }3196 var baseUrl = this.client.baseUri;3197 // Trim '/' character from the end of baseUrl and beginning of url.3198 if (baseUrl[baseUrl.length - 1] === '/') {3199 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);3200 }3201 if (url2[0] === '/') {3202 url2 = url2.substring(1);3203 }3204 url2 = baseUrl + '/' + url2;3205 url2 = url2.replace(' ', '%20');3206 3207 // Create HTTP transport objects3208 var httpRequest = new WebResource();3209 httpRequest.method = 'DELETE';3210 httpRequest.headers = {};3211 httpRequest.url = url2;3212 3213 // Set Headers3214 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';3215 3216 // Send Request3217 return this.client.pipeline(httpRequest, function (err, response, body) {3218 if (err !== null && err !== undefined) {3219 return callback(err);3220 }3221 var statusCode = response.statusCode;3222 if (statusCode !== 204) {3223 var error = new Error(body);3224 error.statusCode = response.statusCode;3225 return callback(error);3226 }3227 3228 // Create Result3229 var result = null;3230 // Deserialize Response3231 result = {};3232 result.statusCode = statusCode;3233 result.requestId = response.headers['request-id'];3234 3235 return callback(null, result);3236 });3237 };3238 3239 /**3240 * Gets user information from the directory. (see3241 * http://msdn.microsoft.com/en-us/library/azure/dn151678.aspx for more3242 * information)3243 * 3244 * @param {string} upnOrObjectId User object Id or user principal name to get3245 * user information.3246 * 3247 * @param {function} callback3248 * 3249 * @returns {Stream} The response stream.3250 */3251 UserOperations.prototype.get = function(upnOrObjectId, callback) {3252 if (callback === null || callback === undefined) {3253 throw new Error('callback cannot be null.');3254 }3255 // Validate3256 if (upnOrObjectId === null || upnOrObjectId === undefined) {3257 return callback(new Error('upnOrObjectId cannot be null.'));3258 }3259 3260 // Tracing3261 3262 // Construct URL3263 var url2 = '';3264 url2 = url2 + '/';3265 url2 = url2 + encodeURIComponent(this.client.tenantID);3266 url2 = url2 + '/users/';3267 url2 = url2 + upnOrObjectId;3268 var queryParameters = [];3269 queryParameters.push('api-version=1.42-previewInternal');3270 if (queryParameters.length > 0) {3271 url2 = url2 + '?' + queryParameters.join('&');3272 }3273 var baseUrl = this.client.baseUri;3274 // Trim '/' character from the end of baseUrl and beginning of url.3275 if (baseUrl[baseUrl.length - 1] === '/') {3276 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);3277 }3278 if (url2[0] === '/') {3279 url2 = url2.substring(1);3280 }3281 url2 = baseUrl + '/' + url2;3282 url2 = url2.replace(' ', '%20');3283 3284 // Create HTTP transport objects3285 var httpRequest = new WebResource();3286 httpRequest.method = 'GET';3287 httpRequest.headers = {};3288 httpRequest.url = url2;3289 3290 // Set Headers3291 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';3292 3293 // Send Request3294 return this.client.pipeline(httpRequest, function (err, response, body) {3295 if (err !== null && err !== undefined) {3296 return callback(err);3297 }3298 var statusCode = response.statusCode;3299 if (statusCode !== 200) {3300 var error = new Error(body);3301 error.statusCode = response.statusCode;3302 return callback(error);3303 }3304 3305 // Create Result3306 var result = null;3307 // Deserialize Response3308 if (statusCode === 200) {3309 var responseContent = body;3310 result = {};3311 var responseDoc = null;3312 if (responseContent) {3313 responseDoc = JSON.parse(responseContent);3314 }3315 3316 if (responseDoc !== null && responseDoc !== undefined) {3317 var userInstance = {};3318 result.user = userInstance;3319 3320 var objectIdValue = responseDoc['objectId'];3321 if (objectIdValue !== null && objectIdValue !== undefined) {3322 var objectIdInstance = objectIdValue;3323 userInstance.objectId = objectIdInstance;3324 }3325 3326 var objectTypeValue = responseDoc['objectType'];3327 if (objectTypeValue !== null && objectTypeValue !== undefined) {3328 var objectTypeInstance = objectTypeValue;3329 userInstance.objectType = objectTypeInstance;3330 }3331 3332 var userPrincipalNameValue = responseDoc['userPrincipalName'];3333 if (userPrincipalNameValue !== null && userPrincipalNameValue !== undefined) {3334 var userPrincipalNameInstance = userPrincipalNameValue;3335 userInstance.userPrincipalName = userPrincipalNameInstance;3336 }3337 3338 var displayNameValue = responseDoc['displayName'];3339 if (displayNameValue !== null && displayNameValue !== undefined) {3340 var displayNameInstance = displayNameValue;3341 userInstance.displayName = displayNameInstance;3342 }3343 3344 var signInNameValue = responseDoc['signInName'];3345 if (signInNameValue !== null && signInNameValue !== undefined) {3346 var signInNameInstance = signInNameValue;3347 userInstance.signInName = signInNameInstance;3348 }3349 3350 var mailValue = responseDoc['mail'];3351 if (mailValue !== null && mailValue !== undefined) {3352 var mailInstance = mailValue;3353 userInstance.mail = mailInstance;3354 }3355 }3356 3357 }3358 result.statusCode = statusCode;3359 result.requestId = response.headers['request-id'];3360 3361 return callback(null, result);3362 });3363 };3364 3365 /**3366 * Gets user information from the directory.3367 * 3368 * @param {string} signInName filter based on sign in name3369 * 3370 * @param {function} callback3371 * 3372 * @returns {Stream} The response stream.3373 */3374 UserOperations.prototype.getBySignInName = function(signInName, callback) {3375 if (callback === null || callback === undefined) {3376 throw new Error('callback cannot be null.');3377 }3378 // Validate3379 if (signInName === null || signInName === undefined) {3380 return callback(new Error('signInName cannot be null.'));3381 }3382 3383 // Tracing3384 3385 // Construct URL3386 var url2 = '';3387 url2 = url2 + '/';3388 url2 = url2 + encodeURIComponent(this.client.tenantID);3389 url2 = url2 + '/users';3390 var queryParameters = [];3391 var odataFilter = [];3392 odataFilter.push('signInName eq \'' + encodeURIComponent(signInName) + '\'');3393 if (odataFilter.length > 0) {3394 queryParameters.push('$filter=' + odataFilter.join(null));3395 }3396 queryParameters.push('api-version=1.42-previewInternal');3397 if (queryParameters.length > 0) {3398 url2 = url2 + '?' + queryParameters.join('&');3399 }3400 var baseUrl = this.client.baseUri;3401 // Trim '/' character from the end of baseUrl and beginning of url.3402 if (baseUrl[baseUrl.length - 1] === '/') {3403 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);3404 }3405 if (url2[0] === '/') {3406 url2 = url2.substring(1);3407 }3408 url2 = baseUrl + '/' + url2;3409 url2 = url2.replace(' ', '%20');3410 3411 // Create HTTP transport objects3412 var httpRequest = new WebResource();3413 httpRequest.method = 'GET';3414 httpRequest.headers = {};3415 httpRequest.url = url2;3416 3417 // Set Headers3418 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';3419 3420 // Send Request3421 return this.client.pipeline(httpRequest, function (err, response, body) {3422 if (err !== null && err !== undefined) {3423 return callback(err);3424 }3425 var statusCode = response.statusCode;3426 if (statusCode !== 200) {3427 var error = new Error(body);3428 error.statusCode = response.statusCode;3429 return callback(error);3430 }3431 3432 // Create Result3433 var result = null;3434 // Deserialize Response3435 if (statusCode === 200) {3436 var responseContent = body;3437 result = { users: [] };3438 var responseDoc = null;3439 if (responseContent) {3440 responseDoc = JSON.parse(responseContent);3441 }3442 3443 if (responseDoc !== null && responseDoc !== undefined) {3444 var valueArray = responseDoc['value'];3445 if (valueArray !== null && valueArray !== undefined) {3446 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {3447 var valueValue = valueArray[loweredIndex1];3448 var userInstance = {};3449 result.users.push(userInstance);3450 3451 var objectIdValue = valueValue['objectId'];3452 if (objectIdValue !== null && objectIdValue !== undefined) {3453 var objectIdInstance = objectIdValue;3454 userInstance.objectId = objectIdInstance;3455 }3456 3457 var objectTypeValue = valueValue['objectType'];3458 if (objectTypeValue !== null && objectTypeValue !== undefined) {3459 var objectTypeInstance = objectTypeValue;3460 userInstance.objectType = objectTypeInstance;3461 }3462 3463 var userPrincipalNameValue = valueValue['userPrincipalName'];3464 if (userPrincipalNameValue !== null && userPrincipalNameValue !== undefined) {3465 var userPrincipalNameInstance = userPrincipalNameValue;3466 userInstance.userPrincipalName = userPrincipalNameInstance;3467 }3468 3469 var displayNameValue = valueValue['displayName'];3470 if (displayNameValue !== null && displayNameValue !== undefined) {3471 var displayNameInstance = displayNameValue;3472 userInstance.displayName = displayNameInstance;3473 }3474 3475 var signInNameValue = valueValue['signInName'];3476 if (signInNameValue !== null && signInNameValue !== undefined) {3477 var signInNameInstance = signInNameValue;3478 userInstance.signInName = signInNameInstance;3479 }3480 3481 var mailValue = valueValue['mail'];3482 if (mailValue !== null && mailValue !== undefined) {3483 var mailInstance = mailValue;3484 userInstance.mail = mailInstance;3485 }3486 }3487 }3488 3489 var odatanextLinkValue = responseDoc['odata.nextLink'];3490 if (odatanextLinkValue !== null && odatanextLinkValue !== undefined) {3491 var odatanextLinkInstance = odatanextLinkValue;3492 result.nextLink = odatanextLinkInstance;3493 }3494 }3495 3496 }3497 result.statusCode = statusCode;3498 result.requestId = response.headers['request-id'];3499 3500 return callback(null, result);3501 });3502 };3503 3504 /**3505 * Gets a collection that contains the Object IDs of the groups of which the3506 * user is a member.3507 * 3508 * @param {UserGetMemberGroupsParameters} parameters User filtering3509 * parameters.3510 * 3511 * @param {string} parameters.objectId User object Id3512 * 3513 * @param {boolean} parameters.securityEnabledOnly If true only membership in3514 * security enabled groups should be checked. Otherwise membership in all3515 * groups should be checked3516 * 3517 * @param {function} callback3518 * 3519 * @returns {Stream} The response stream.3520 */3521 UserOperations.prototype.getMemberGroups = function(parameters, callback) {3522 if (callback === null || callback === undefined) {3523 throw new Error('callback cannot be null.');3524 }3525 // Validate3526 if (parameters === null || parameters === undefined) {3527 return callback(new Error('parameters cannot be null.'));3528 }3529 if (parameters.objectId === null || parameters.objectId === undefined) {3530 return callback(new Error('parameters.objectId cannot be null.'));3531 }3532 if (parameters.securityEnabledOnly === null || parameters.securityEnabledOnly === undefined) {3533 return callback(new Error('parameters.securityEnabledOnly cannot be null.'));3534 }3535 3536 // Tracing3537 3538 // Construct URL3539 var url2 = '';3540 url2 = url2 + '/';3541 url2 = url2 + encodeURIComponent(this.client.tenantID);3542 url2 = url2 + '/users/';3543 url2 = url2 + parameters.objectId;3544 url2 = url2 + '/getMemberGroups';3545 var queryParameters = [];3546 queryParameters.push('api-version=1.42-previewInternal');3547 if (queryParameters.length > 0) {3548 url2 = url2 + '?' + queryParameters.join('&');3549 }3550 var baseUrl = this.client.baseUri;3551 // Trim '/' character from the end of baseUrl and beginning of url.3552 if (baseUrl[baseUrl.length - 1] === '/') {3553 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);3554 }3555 if (url2[0] === '/') {3556 url2 = url2.substring(1);3557 }3558 url2 = baseUrl + '/' + url2;3559 url2 = url2.replace(' ', '%20');3560 3561 // Create HTTP transport objects3562 var httpRequest = new WebResource();3563 httpRequest.method = 'POST';3564 httpRequest.headers = {};3565 httpRequest.url = url2;3566 3567 // Set Headers3568 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';3569 3570 // Serialize Request3571 var requestContent = null;3572 var requestDoc = null;3573 3574 requestDoc = {};3575 requestDoc['securityEnabledOnly'] = parameters.securityEnabledOnly;3576 3577 requestContent = JSON.stringify(requestDoc);3578 httpRequest.body = requestContent;3579 httpRequest.headers['Content-Length'] = Buffer.isBuffer(requestContent) ? requestContent.length : Buffer.byteLength(requestContent, 'UTF8');3580 // Send Request3581 return this.client.pipeline(httpRequest, function (err, response, body) {3582 if (err !== null && err !== undefined) {3583 return callback(err);3584 }3585 var statusCode = response.statusCode;3586 if (statusCode !== 200) {3587 var error = new Error(body);3588 error.statusCode = response.statusCode;3589 return callback(error);3590 }3591 3592 // Create Result3593 var result = null;3594 // Deserialize Response3595 if (statusCode === 200) {3596 var responseContent = body;3597 result = { objectIds: [] };3598 var responseDoc = null;3599 if (responseContent) {3600 responseDoc = JSON.parse(responseContent);3601 }3602 3603 if (responseDoc !== null && responseDoc !== undefined) {3604 var valueArray = responseDoc['value'];3605 if (valueArray !== null && valueArray !== undefined) {3606 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {3607 var valueValue = valueArray[loweredIndex1];3608 result.objectIds.push(valueValue);3609 }3610 }3611 }3612 3613 }3614 result.statusCode = statusCode;3615 result.requestId = response.headers['request-id'];3616 3617 return callback(null, result);3618 });3619 };3620 3621 /**3622 * Gets list of users for the current tenant.3623 * 3624 * @param {string} [mail] Email to filter results.3625 * 3626 * @param {string} [displayNameStartsWith] Display name to filter results.3627 * 3628 * @param {function} callback3629 * 3630 * @returns {Stream} The response stream.3631 */3632 UserOperations.prototype.list = function(mail, displayNameStartsWith, callback) {3633 if (callback === null || callback === undefined) {3634 throw new Error('callback cannot be null.');3635 }3636 // Validate3637 3638 // Tracing3639 3640 // Construct URL3641 var url2 = '';3642 url2 = url2 + '/';3643 url2 = url2 + encodeURIComponent(this.client.tenantID);3644 url2 = url2 + '/users';3645 var queryParameters = [];3646 var odataFilter = [];3647 if (mail !== null && mail !== undefined) {3648 odataFilter.push('mail eq \'' + encodeURIComponent(mail) + '\'');3649 }3650 if (odataFilter.length > 0) {3651 queryParameters.push('$filter=' + odataFilter.join(null));3652 }3653 var odataFilter2 = [];3654 if (displayNameStartsWith !== null && displayNameStartsWith !== undefined) {3655 odataFilter2.push('startswith(displayName,\'' + encodeURIComponent(displayNameStartsWith) + '\')');3656 }3657 if (odataFilter2.length > 0) {3658 queryParameters.push('$filter=' + odataFilter2.join(null));3659 }3660 queryParameters.push('api-version=1.42-previewInternal');3661 if (queryParameters.length > 0) {3662 url2 = url2 + '?' + queryParameters.join('&');3663 }3664 var baseUrl = this.client.baseUri;3665 // Trim '/' character from the end of baseUrl and beginning of url.3666 if (baseUrl[baseUrl.length - 1] === '/') {3667 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);3668 }3669 if (url2[0] === '/') {3670 url2 = url2.substring(1);3671 }3672 url2 = baseUrl + '/' + url2;3673 url2 = url2.replace(' ', '%20');3674 3675 // Create HTTP transport objects3676 var httpRequest = new WebResource();3677 httpRequest.method = 'GET';3678 httpRequest.headers = {};3679 httpRequest.url = url2;3680 3681 // Set Headers3682 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';3683 3684 // Send Request3685 return this.client.pipeline(httpRequest, function (err, response, body) {3686 if (err !== null && err !== undefined) {3687 return callback(err);3688 }3689 var statusCode = response.statusCode;3690 if (statusCode !== 200) {3691 var error = new Error(body);3692 error.statusCode = response.statusCode;3693 return callback(error);3694 }3695 3696 // Create Result3697 var result = null;3698 // Deserialize Response3699 if (statusCode === 200) {3700 var responseContent = body;3701 result = { users: [] };3702 var responseDoc = null;3703 if (responseContent) {3704 responseDoc = JSON.parse(responseContent);3705 }3706 3707 if (responseDoc !== null && responseDoc !== undefined) {3708 var valueArray = responseDoc['value'];3709 if (valueArray !== null && valueArray !== undefined) {3710 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {3711 var valueValue = valueArray[loweredIndex1];3712 var userInstance = {};3713 result.users.push(userInstance);3714 3715 var objectIdValue = valueValue['objectId'];3716 if (objectIdValue !== null && objectIdValue !== undefined) {3717 var objectIdInstance = objectIdValue;3718 userInstance.objectId = objectIdInstance;3719 }3720 3721 var objectTypeValue = valueValue['objectType'];3722 if (objectTypeValue !== null && objectTypeValue !== undefined) {3723 var objectTypeInstance = objectTypeValue;3724 userInstance.objectType = objectTypeInstance;3725 }3726 3727 var userPrincipalNameValue = valueValue['userPrincipalName'];3728 if (userPrincipalNameValue !== null && userPrincipalNameValue !== undefined) {3729 var userPrincipalNameInstance = userPrincipalNameValue;3730 userInstance.userPrincipalName = userPrincipalNameInstance;3731 }3732 3733 var displayNameValue = valueValue['displayName'];3734 if (displayNameValue !== null && displayNameValue !== undefined) {3735 var displayNameInstance = displayNameValue;3736 userInstance.displayName = displayNameInstance;3737 }3738 3739 var signInNameValue = valueValue['signInName'];3740 if (signInNameValue !== null && signInNameValue !== undefined) {3741 var signInNameInstance = signInNameValue;3742 userInstance.signInName = signInNameInstance;3743 }3744 3745 var mailValue = valueValue['mail'];3746 if (mailValue !== null && mailValue !== undefined) {3747 var mailInstance = mailValue;3748 userInstance.mail = mailInstance;3749 }3750 }3751 }3752 3753 var odatanextLinkValue = responseDoc['odata.nextLink'];3754 if (odatanextLinkValue !== null && odatanextLinkValue !== undefined) {3755 var odatanextLinkInstance = odatanextLinkValue;3756 result.nextLink = odatanextLinkInstance;3757 }3758 }3759 3760 }3761 result.statusCode = statusCode;3762 result.requestId = response.headers['request-id'];3763 3764 return callback(null, result);3765 });3766 };3767 3768 /**3769 * Gets list of users for the current tenant.3770 * 3771 * @param {string} nextLink NextLink from the previous successful call to3772 * List operation.3773 * 3774 * @param {function} callback3775 * 3776 * @returns {Stream} The response stream.3777 */3778 UserOperations.prototype.listNext = function(nextLink, callback) {3779 if (callback === null || callback === undefined) {3780 throw new Error('callback cannot be null.');3781 }3782 // Validate3783 if (nextLink === null || nextLink === undefined) {3784 return callback(new Error('nextLink cannot be null.'));3785 }3786 3787 // Tracing3788 3789 // Construct URL3790 var url2 = '';3791 url2 = url2 + '/';3792 url2 = url2 + encodeURIComponent(this.client.tenantID);3793 url2 = url2 + '/';3794 url2 = url2 + nextLink;3795 url2 = url2 + '&api-version=1.42-previewInternal';3796 var baseUrl = this.client.baseUri;3797 // Trim '/' character from the end of baseUrl and beginning of url.3798 if (baseUrl[baseUrl.length - 1] === '/') {3799 baseUrl = baseUrl.substring(0, (baseUrl.length - 1) + 0);3800 }3801 if (url2[0] === '/') {3802 url2 = url2.substring(1);3803 }3804 url2 = baseUrl + '/' + url2;3805 url2 = url2.replace(' ', '%20');3806 3807 // Create HTTP transport objects3808 var httpRequest = new WebResource();3809 httpRequest.method = 'GET';3810 httpRequest.headers = {};3811 httpRequest.url = url2;3812 3813 // Set Headers3814 httpRequest.headers['Content-Type'] = 'application/json; charset=utf-8';3815 3816 // Send Request3817 return this.client.pipeline(httpRequest, function (err, response, body) {3818 if (err !== null && err !== undefined) {3819 return callback(err);3820 }3821 var statusCode = response.statusCode;3822 if (statusCode !== 200) {3823 var error = new Error(body);3824 error.statusCode = response.statusCode;3825 return callback(error);3826 }3827 3828 // Create Result3829 var result = null;3830 // Deserialize Response3831 if (statusCode === 200) {3832 var responseContent = body;3833 result = { users: [] };3834 var responseDoc = null;3835 if (responseContent) {3836 responseDoc = JSON.parse(responseContent);3837 }3838 3839 if (responseDoc !== null && responseDoc !== undefined) {3840 var valueArray = responseDoc['value'];3841 if (valueArray !== null && valueArray !== undefined) {3842 for (var loweredIndex1 = 0; loweredIndex1 < valueArray.length; loweredIndex1 = loweredIndex1 + 1) {3843 var valueValue = valueArray[loweredIndex1];3844 var userInstance = {};3845 result.users.push(userInstance);3846 3847 var objectIdValue = valueValue['objectId'];3848 if (objectIdValue !== null && objectIdValue !== undefined) {3849 var objectIdInstance = objectIdValue;3850 userInstance.objectId = objectIdInstance;3851 }3852 3853 var objectTypeValue = valueValue['objectType'];3854 if (objectTypeValue !== null && objectTypeValue !== undefined) {3855 var objectTypeInstance = objectTypeValue;3856 userInstance.objectType = objectTypeInstance;3857 }3858 3859 var userPrincipalNameValue = valueValue['userPrincipalName'];3860 if (userPrincipalNameValue !== null && userPrincipalNameValue !== undefined) {3861 var userPrincipalNameInstance = userPrincipalNameValue;3862 userInstance.userPrincipalName = userPrincipalNameInstance;3863 }3864 3865 var displayNameValue = valueValue['displayName'];3866 if (displayNameValue !== null && displayNameValue !== undefined) {3867 var displayNameInstance = displayNameValue;3868 userInstance.displayName = displayNameInstance;3869 }3870 3871 var signInNameValue = valueValue['signInName'];3872 if (signInNameValue !== null && signInNameValue !== undefined) {3873 var signInNameInstance = signInNameValue;3874 userInstance.signInName = signInNameInstance;3875 }3876 3877 var mailValue = valueValue['mail'];3878 if (mailValue !== null && mailValue !== undefined) {3879 var mailInstance = mailValue;3880 userInstance.mail = mailInstance;3881 }3882 }3883 }3884 3885 var odatanextLinkValue = responseDoc['odata.nextLink'];3886 if (odatanextLinkValue !== null && odatanextLinkValue !== undefined) {3887 var odatanextLinkInstance = odatanextLinkValue;3888 result.nextLink = odatanextLinkInstance;3889 }3890 }3891 3892 }3893 result.statusCode = statusCode;3894 result.requestId = response.headers['request-id'];3895 3896 return callback(null, result);3897 });3898 };3899 3900 return UserOperations; ...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1var wpt = require('webpagetest');2var wpt = new WebPageTest('www.webpagetest.org');3wpt.runTest('www.google.com', {4 videoParams: {5 }6}, function(err, data) {7 if (err) {8 console.log(err);9 } else {10 console.log(data);11 }12});13var wpt = require('webpagetest');14var wpt = new WebPageTest('www.webpagetest.org');15wpt.runTest('www.google.com', {16 videoParams: {17 }18}, function(err, data) {19 if (err) {20 console.log(err);21 } else {22 console.log(data);23 }24});25var wpt = require('webpagetest');26var wpt = new WebPageTest('www.webpagetest.org');27wpt.runTest('www.google.com', {28 videoParams: {29 }30}, function(err, data) {31 if (err) {32 console.log(err);33 } else {34 console.log(data);35 }36});37var wpt = require('webpagetest');38var wpt = new WebPageTest('www.webpagetest.org');39wpt.runTest('www.google.com', {40 videoParams: {

Full Screen

Using AI Code Generation

copy

Full Screen

1var wpt = require('webpagetest');2var wpt = new WebPageTest('www.webpagetest.org');3wpt.getLocations(function(err, data) {4});5var wpt = require('webpagetest');6var wpt = new WebPageTest('www.webpagetest.org');7wpt.getLocations(function(err, data) {8});9var wpt = require('webpagetest');10var wpt = new WebPageTest('www.webpagetest.org');11wpt.getLocations(function(err, data) {12});13var wpt = require('webpagetest');14var wpt = new WebPageTest('www.webpagetest.org');15wpt.getLocations(function(err, data) {16});17var wpt = require('webpagetest');18var wpt = new WebPageTest('www.webpagetest.org');19wpt.getLocations(function(err, data) {20});21var wpt = require('webpagetest');22var wpt = new WebPageTest('www.webpagetest.org');23wpt.getLocations(function(err, data) {24});25var wpt = require('webpagetest');26var wpt = new WebPageTest('www.webpagetest.org');27wpt.getLocations(function(err, data) {28});29var wpt = require('webpagetest');30var wpt = new WebPageTest('www.webpagetest.org');31wpt.getLocations(function(err, data) {32});33var wpt = require('webpagetest

Full Screen

Using AI Code Generation

copy

Full Screen

1var url2 = require('url2');2console.log(url2);3var url2 = require('url2');4console.log(url2);5var url2 = require('url2');6console.log(url2);7var url2 = require('url2');8console.log(url2);9var url2 = require('url2');10console.log(url2);11var url2 = require('url2');12console.log(url2);13var url2 = require('url2');14console.log(url2);15var url2 = require('url2');16console.log(url2);17var url2 = require('url2');18console.log(url2);19var url2 = require('url2');20console.log(url2);21var url2 = require('url2');22console.log(url2);23var url2 = require('url2');

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run wpt automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful