UNPKG

azure-devops-node-api

Version:
992 lines 133 kB
"use strict"; /* * --------------------------------------------------------- * Copyright(C) Microsoft Corporation. All rights reserved. * --------------------------------------------------------- * * --------------------------------------------------------- * Generated file, DO NOT EDIT * --------------------------------------------------------- */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReleaseApi = void 0; const basem = require("./ClientApiBases"); const ReleaseInterfaces = require("./interfaces/ReleaseInterfaces"); class ReleaseApi extends basem.ClientApiBase { constructor(baseUrl, handlers, options) { super(baseUrl, handlers, 'node-Release-api', options); } /** * Returns the artifact details that automation agent requires * * @param {string} project - Project ID or project name * @param {number} releaseId */ getAgentArtifactDefinitions(project, releaseId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, releaseId: releaseId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "Release", "f2571c27-bf50-4938-b396-32d109ddef26", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AgentArtifactDefinition, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get a list of approvals * * @param {string} project - Project ID or project name * @param {string} assignedToFilter - Approvals assigned to this user. * @param {ReleaseInterfaces.ApprovalStatus} statusFilter - Approvals with this status. Default is 'pending'. * @param {number[]} releaseIdsFilter - Approvals for release id(s) mentioned in the filter. Multiple releases can be mentioned by separating them with ',' e.g. releaseIdsFilter=1,2,3,4. * @param {ReleaseInterfaces.ApprovalType} typeFilter - Approval with this type. * @param {number} top - Number of approvals to get. Default is 50. * @param {number} continuationToken - Gets the approvals after the continuation token provided. * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder - Gets the results in the defined order of created approvals. Default is 'descending'. * @param {boolean} includeMyGroupApprovals - 'true' to include my group approvals. Default is 'false'. */ getApprovals(project, assignedToFilter, statusFilter, releaseIdsFilter, typeFilter, top, continuationToken, queryOrder, includeMyGroupApprovals) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { assignedToFilter: assignedToFilter, statusFilter: statusFilter, releaseIdsFilter: releaseIdsFilter && releaseIdsFilter.join(","), typeFilter: typeFilter, top: top, continuationToken: continuationToken, queryOrder: queryOrder, includeMyGroupApprovals: includeMyGroupApprovals, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.3", "Release", "b47c6458-e73b-47cb-a770-4df1e8813a91", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get approval history. * * @param {string} project - Project ID or project name * @param {number} approvalStepId - Id of the approval. */ getApprovalHistory(project, approvalStepId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, approvalStepId: approvalStepId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.3", "Release", "250c7158-852e-4130-a00f-a0cce9b72d05", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get an approval. * * @param {string} project - Project ID or project name * @param {number} approvalId - Id of the approval. * @param {boolean} includeHistory - 'true' to include history of the approval. Default is 'false'. */ getApproval(project, approvalId, includeHistory) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, approvalId: approvalId }; let queryValues = { includeHistory: includeHistory, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.3", "Release", "9328e074-59fb-465a-89d9-b09c82ee5109", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Update status of an approval * * @param {ReleaseInterfaces.ReleaseApproval} approval - ReleaseApproval object having status, approver and comments. * @param {string} project - Project ID or project name * @param {number} approvalId - Id of the approval. */ updateReleaseApproval(approval, project, approvalId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, approvalId: approvalId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.3", "Release", "9328e074-59fb-465a-89d9-b09c82ee5109", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.update(url, approval, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {ReleaseInterfaces.ReleaseApproval[]} approvals * @param {string} project - Project ID or project name */ updateReleaseApprovals(approvals, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.3", "Release", "c957584a-82aa-4131-8222-6d47f78bfa7a", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.update(url, approvals, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseApproval, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get a task attachment. * * @param {string} project - Project ID or project name * @param {number} releaseId - Id of the release. * @param {number} environmentId - Id of the release environment. * @param {number} attemptId - Attempt number of deployment. * @param {string} timelineId - Timeline Id of the task. * @param {string} recordId - Record Id of attachment. * @param {string} type - Type of the attachment. * @param {string} name - Name of the attachment. */ getTaskAttachmentContent(project, releaseId, environmentId, attemptId, timelineId, recordId, type, name) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, releaseId: releaseId, environmentId: environmentId, attemptId: attemptId, timelineId: timelineId, recordId: recordId, type: type, name: name }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "Release", "c4071f6d-3697-46ca-858e-8b10ff09e52f", routeValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("application/octet-stream", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * Get a release task attachment. * * @param {string} project - Project ID or project name * @param {number} releaseId - Id of the release. * @param {number} environmentId - Id of the release environment. * @param {number} attemptId - Attempt number of deployment. * @param {string} planId - Plan Id of the deploy phase. * @param {string} timelineId - Timeline Id of the task. * @param {string} recordId - Record Id of attachment. * @param {string} type - Type of the attachment. * @param {string} name - Name of the attachment. */ getReleaseTaskAttachmentContent(project, releaseId, environmentId, attemptId, planId, timelineId, recordId, type, name) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, releaseId: releaseId, environmentId: environmentId, attemptId: attemptId, planId: planId, timelineId: timelineId, recordId: recordId, type: type, name: name }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "Release", "60b86efb-7b8c-4853-8f9f-aa142b77b479", routeValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("application/octet-stream", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * Get the task attachments. * * @param {string} project - Project ID or project name * @param {number} releaseId - Id of the release. * @param {number} environmentId - Id of the release environment. * @param {number} attemptId - Attempt number of deployment. * @param {string} timelineId - Timeline Id of the task. * @param {string} type - Type of the attachment. */ getTaskAttachments(project, releaseId, environmentId, attemptId, timelineId, type) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, releaseId: releaseId, environmentId: environmentId, attemptId: attemptId, timelineId: timelineId, type: type }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "Release", "214111ee-2415-4df2-8ed2-74417f7d61f9", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTaskAttachment, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get the release task attachments. * * @param {string} project - Project ID or project name * @param {number} releaseId - Id of the release. * @param {number} environmentId - Id of the release environment. * @param {number} attemptId - Attempt number of deployment. * @param {string} planId - Plan Id of the deploy phase. * @param {string} type - Type of the attachment. */ getReleaseTaskAttachments(project, releaseId, environmentId, attemptId, planId, type) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, releaseId: releaseId, environmentId: environmentId, attemptId: attemptId, planId: planId, type: type }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "Release", "a4d06688-0dfa-4895-82a5-f43ec9452306", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseTaskAttachment, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} artifactType * @param {string} sourceId * @param {string} artifactVersionId * @param {string} project - Project ID or project name */ getAutoTriggerIssues(artifactType, sourceId, artifactVersionId, project) { return __awaiter(this, void 0, void 0, function* () { if (artifactType == null) { throw new TypeError('artifactType can not be null or undefined'); } if (sourceId == null) { throw new TypeError('sourceId can not be null or undefined'); } if (artifactVersionId == null) { throw new TypeError('artifactVersionId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { artifactType: artifactType, sourceId: sourceId, artifactVersionId: artifactVersionId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "Release", "c1a68497-69da-40fb-9423-cab19cfeeca9", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.AutoTriggerIssue, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Gets a badge that indicates the status of the most recent deployment for an environment. * * @param {string} projectId - The ID of the Project. * @param {number} releaseDefinitionId - The ID of the Release Definition. * @param {number} environmentId - The ID of the Environment. * @param {string} branchName - The name of the branch. */ getDeploymentBadge(projectId, releaseDefinitionId, environmentId, branchName) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { projectId: projectId, releaseDefinitionId: releaseDefinitionId, environmentId: environmentId, branchName: branchName }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "Release", "1a60a35d-b8c9-45fb-bf67-da0829711147", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {number} releaseId * @param {number} baseReleaseId * @param {number} top * @param {string} artifactAlias */ getReleaseChanges(project, releaseId, baseReleaseId, top, artifactAlias) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, releaseId: releaseId }; let queryValues = { baseReleaseId: baseReleaseId, '$top': top, artifactAlias: artifactAlias, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "Release", "8dcf9fe9-ca37-4113-8ee1-37928e98407c", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Change, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {string} project - Project ID or project name * @param {string} taskGroupId * @param {string[]} propertyFilters */ getDefinitionEnvironments(project, taskGroupId, propertyFilters) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { taskGroupId: taskGroupId, propertyFilters: propertyFilters && propertyFilters.join(","), }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.1", "Release", "12b5d21a-f54c-430e-a8c1-7515d196890e", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, null, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Create a release definition * * @param {ReleaseInterfaces.ReleaseDefinition} releaseDefinition - release definition object to create. * @param {string} project - Project ID or project name */ createReleaseDefinition(releaseDefinition, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, releaseDefinition, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Delete a release definition. * * @param {string} project - Project ID or project name * @param {number} definitionId - Id of the release definition. * @param {string} comment - Comment for deleting a release definition. * @param {boolean} forceDelete - 'true' to automatically cancel any in-progress release deployments and proceed with release definition deletion . Default is 'false'. */ deleteReleaseDefinition(project, definitionId, comment, forceDelete) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, definitionId: definitionId }; let queryValues = { comment: comment, forceDelete: forceDelete, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.del(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get a release definition. * * @param {string} project - Project ID or project name * @param {number} definitionId - Id of the release definition. * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release Definition will contain values for the specified property Ids (if they exist). If not set, properties will not be included. */ getReleaseDefinition(project, definitionId, propertyFilters) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, definitionId: definitionId }; let queryValues = { propertyFilters: propertyFilters && propertyFilters.join(","), }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get release definition of a given revision. * * @param {string} project - Project ID or project name * @param {number} definitionId - Id of the release definition. * @param {number} revision - Revision number of the release definition. */ getReleaseDefinitionRevision(project, definitionId, revision) { return __awaiter(this, void 0, void 0, function* () { if (revision == null) { throw new TypeError('revision can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, definitionId: definitionId }; let queryValues = { revision: revision, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues, queryValues); let url = verData.requestUrl; let apiVersion = verData.apiVersion; let accept = this.createAcceptHeader("text/plain", apiVersion); resolve((yield this.http.get(url, { "Accept": accept })).message); } catch (err) { reject(err); } })); }); } /** * Get a list of release definitions. * * @param {string} project - Project ID or project name * @param {string} searchText - Get release definitions with names containing searchText. * @param {ReleaseInterfaces.ReleaseDefinitionExpands} expand - The properties that should be expanded in the list of Release definitions. * @param {string} artifactType - Release definitions with given artifactType will be returned. Values can be Build, Jenkins, GitHub, Nuget, Team Build (external), ExternalTFSBuild, Git, TFVC, ExternalTfsXamlBuild. * @param {string} artifactSourceId - Release definitions with given artifactSourceId will be returned. e.g. For build it would be {projectGuid}:{BuildDefinitionId}, for Jenkins it would be {JenkinsConnectionId}:{JenkinsDefinitionId}, for TfsOnPrem it would be {TfsOnPremConnectionId}:{ProjectName}:{TfsOnPremDefinitionId}. For third-party artifacts e.g. TeamCity, BitBucket you may refer 'uniqueSourceIdentifier' inside vss-extension.json at https://github.com/Microsoft/vsts-rm-extensions/blob/master/Extensions. * @param {number} top - Number of release definitions to get. * @param {string} continuationToken - Gets the release definitions after the continuation token provided. * @param {ReleaseInterfaces.ReleaseDefinitionQueryOrder} queryOrder - Gets the results in the defined order. Default is 'IdAscending'. * @param {string} path - Gets the release definitions under the specified path. * @param {boolean} isExactNameMatch - 'true'to gets the release definitions with exact match as specified in searchText. Default is 'false'. * @param {string[]} tagFilter - A comma-delimited list of tags. Only release definitions with these tags will be returned. * @param {string[]} propertyFilters - A comma-delimited list of extended properties to be retrieved. If set, the returned Release Definitions will contain values for the specified property Ids (if they exist). If not set, properties will not be included. Note that this will not filter out any Release Definition from results irrespective of whether it has property set or not. * @param {string[]} definitionIdFilter - A comma-delimited list of release definitions to retrieve. * @param {boolean} isDeleted - 'true' to get release definitions that has been deleted. Default is 'false' * @param {boolean} searchTextContainsFolderName - 'true' to get the release definitions under the folder with name as specified in searchText. Default is 'false'. */ getReleaseDefinitions(project, searchText, expand, artifactType, artifactSourceId, top, continuationToken, queryOrder, path, isExactNameMatch, tagFilter, propertyFilters, definitionIdFilter, isDeleted, searchTextContainsFolderName) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { searchText: searchText, '$expand': expand, artifactType: artifactType, artifactSourceId: artifactSourceId, '$top': top, continuationToken: continuationToken, queryOrder: queryOrder, path: path, isExactNameMatch: isExactNameMatch, tagFilter: tagFilter && tagFilter.join(","), propertyFilters: propertyFilters && propertyFilters.join(","), definitionIdFilter: definitionIdFilter && definitionIdFilter.join(","), isDeleted: isDeleted, searchTextContainsFolderName: searchTextContainsFolderName, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Undelete a release definition. * * @param {ReleaseInterfaces.ReleaseDefinitionUndeleteParameter} releaseDefinitionUndeleteParameter - Object for undelete release definition. * @param {string} project - Project ID or project name * @param {number} definitionId - Id of the release definition to be undeleted */ undeleteReleaseDefinition(releaseDefinitionUndeleteParameter, project, definitionId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, definitionId: definitionId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.update(url, releaseDefinitionUndeleteParameter, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Update a release definition. * * @param {ReleaseInterfaces.ReleaseDefinition} releaseDefinition - Release definition object to update. * @param {string} project - Project ID or project name */ updateReleaseDefinition(releaseDefinition, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.4", "Release", "d8f96f24-8ea7-4cb6-baab-2df8fc515665", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.replace(url, releaseDefinition, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinition, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get a list of deployments * * @param {string} project - Project ID or project name * @param {number} definitionId - List the deployments for a given definition id. * @param {number} definitionEnvironmentId - List the deployments for a given definition environment id. * @param {string} createdBy - List the deployments for which deployments are created as identity specified. * @param {Date} minModifiedTime - List the deployments with LastModified time >= minModifiedTime. * @param {Date} maxModifiedTime - List the deployments with LastModified time <= maxModifiedTime. * @param {ReleaseInterfaces.DeploymentStatus} deploymentStatus - List the deployments with given deployment status. Defult is 'All'. * @param {ReleaseInterfaces.DeploymentOperationStatus} operationStatus - List the deployments with given operation status. Default is 'All'. * @param {boolean} latestAttemptsOnly - 'true' to include deployments with latest attempt only. Default is 'false'. * @param {ReleaseInterfaces.ReleaseQueryOrder} queryOrder - List the deployments with given query order. Default is 'Descending'. * @param {number} top - List the deployments with given top. Default top is '50' and Max top is '100'. * @param {number} continuationToken - List the deployments with deployment id >= continuationToken. * @param {string} createdFor - List the deployments for which deployments are requested as identity specified. * @param {Date} minStartedTime - List the deployments with StartedOn time >= minStartedTime. * @param {Date} maxStartedTime - List the deployments with StartedOn time <= maxStartedTime. * @param {string} sourceBranch - List the deployments that are deployed from given branch name. */ getDeployments(project, definitionId, definitionEnvironmentId, createdBy, minModifiedTime, maxModifiedTime, deploymentStatus, operationStatus, latestAttemptsOnly, queryOrder, top, continuationToken, createdFor, minStartedTime, maxStartedTime, sourceBranch) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { definitionId: definitionId, definitionEnvironmentId: definitionEnvironmentId, createdBy: createdBy, minModifiedTime: minModifiedTime, maxModifiedTime: maxModifiedTime, deploymentStatus: deploymentStatus, operationStatus: operationStatus, latestAttemptsOnly: latestAttemptsOnly, queryOrder: queryOrder, '$top': top, continuationToken: continuationToken, createdFor: createdFor, minStartedTime: minStartedTime, maxStartedTime: maxStartedTime, sourceBranch: sourceBranch, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "Release", "b005ef73-cddc-448e-9ba2-5193bf36b19f", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Deployment, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * @param {ReleaseInterfaces.DeploymentQueryParameters} queryParameters * @param {string} project - Project ID or project name */ getDeploymentsForMultipleEnvironments(queryParameters, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.2", "Release", "b005ef73-cddc-448e-9ba2-5193bf36b19f", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, queryParameters, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.Deployment, true); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Get a release environment. * * @param {string} project - Project ID or project name * @param {number} releaseId - Id of the release. * @param {number} environmentId - Id of the release environment. * @param {ReleaseInterfaces.ReleaseEnvironmentExpands} expand - A property that should be expanded in the environment. */ getReleaseEnvironment(project, releaseId, environmentId, expand) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, releaseId: releaseId, environmentId: environmentId }; let queryValues = { '$expand': expand, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.7", "Release", "a7e426b1-03dc-48af-9dfe-c98bac612dcb", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseEnvironment, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Update the status of a release environment * * @param {ReleaseInterfaces.ReleaseEnvironmentUpdateMetadata} environmentUpdateData - Environment update meta data. * @param {string} project - Project ID or project name * @param {number} releaseId - Id of the release. * @param {number} environmentId - Id of release environment. */ updateReleaseEnvironment(environmentUpdateData, project, releaseId, environmentId) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project, releaseId: releaseId, environmentId: environmentId }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.7", "Release", "a7e426b1-03dc-48af-9dfe-c98bac612dcb", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.update(url, environmentUpdateData, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseEnvironment, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Creates a definition environment template * * @param {ReleaseInterfaces.ReleaseDefinitionEnvironmentTemplate} template - Definition environment template to create * @param {string} project - Project ID or project name */ createDefinitionEnvironmentTemplate(template, project) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.4", "Release", "6b03b696-824e-4479-8eb2-6644a51aba89", routeValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.create(url, template, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Delete a definition environment template * * @param {string} project - Project ID or project name * @param {string} templateId - Id of the definition environment template */ deleteDefinitionEnvironmentTemplate(project, templateId) { return __awaiter(this, void 0, void 0, function* () { if (templateId == null) { throw new TypeError('templateId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { templateId: templateId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.4", "Release", "6b03b696-824e-4479-8eb2-6644a51aba89", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.del(url, options); let ret = this.formatResponse(res.result, null, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Gets a definition environment template * * @param {string} project - Project ID or project name * @param {string} templateId - Id of the definition environment template */ getDefinitionEnvironmentTemplate(project, templateId) { return __awaiter(this, void 0, void 0, function* () { if (templateId == null) { throw new TypeError('templateId can not be null or undefined'); } return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let queryValues = { templateId: templateId, }; try { let verData = yield this.vsoClient.getVersioningData("7.2-preview.4", "Release", "6b03b696-824e-4479-8eb2-6644a51aba89", routeValues, queryValues); let url = verData.requestUrl; let options = this.createRequestOptions('application/json', verData.apiVersion); let res; res = yield this.rest.get(url, options); let ret = this.formatResponse(res.result, ReleaseInterfaces.TypeInfo.ReleaseDefinitionEnvironmentTemplate, false); resolve(ret); } catch (err) { reject(err); } })); }); } /** * Gets a list of definition environment templates * * @param {string} project - Project ID or project name * @param {boolean} isDeleted - 'true' to get definition environment templates that have been deleted. Default is 'false' */ listDefinitionEnvironmentTemplates(project, isDeleted) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { let routeValues = { project: project }; let q