diff --git a/lib/VSS.SDK.js b/lib/VSS.SDK.js
index e49b97f..cdfe61a 100644
--- a/lib/VSS.SDK.js
+++ b/lib/VSS.SDK.js
@@ -1,6 +1,5 @@
-//----------------------------------------------------------
+//dependencies=
// Copyright (C) Microsoft Corporation. All rights reserved.
-//----------------------------------------------------------
///
///
///
@@ -666,6 +665,7 @@ var XDM;
})(XDM || (XDM = {}));
var VSS;
(function (VSS) {
+ // W A R N I N G: if VssSDKVersion changes, the VSS WEB SDK demand resolver needs to be updated with the new version
VSS.VssSDKVersion = 2.0;
VSS.VssSDKRestVersion = "2.2";
var bodyElement;
@@ -1378,4 +1378,3 @@ var VSS;
}
}
})(VSS || (VSS = {}));
-//dependencies=
diff --git a/lib/VSS.SDK.min.js b/lib/VSS.SDK.min.js
index 285179f..183b2ab 100644
--- a/lib/VSS.SDK.min.js
+++ b/lib/VSS.SDK.min.js
@@ -1,5 +1,3 @@
-//----------------------------------------------------------
+//dependencies=
// Copyright (C) Microsoft Corporation. All rights reserved.
-//----------------------------------------------------------
var XDM,VSS;(function(n){function u(){return new o}function s(){return Math.floor(Math.random()*(f-t)+t).toString(36)+Math.floor(Math.random()*(f-t)+t).toString(36)}var i,r,e;n.createDeferred=u;var o=function(){function n(){var n=this;this._resolveCallbacks=[];this._rejectCallbacks=[];this._isResolved=!1;this._isRejected=!1;this.resolve=function(t){n._resolve(t)};this.reject=function(t){n._reject(t)};this.promise={};this.promise.then=function(t,i){return n._then(t,i)}}return n.prototype._then=function(t,i){var u=this,r;return!t&&!i||this._isResolved&&!t||this._isRejected&&!i?this.promise:(r=new n,this._resolveCallbacks.push(function(n){u._wrapCallback(t,n,r,!1)}),this._rejectCallbacks.push(function(n){u._wrapCallback(i,n,r,!0)}),this._isResolved?this._resolve(this._resolvedValue):this._isRejected&&this._reject(this._rejectValue),r.promise)},n.prototype._wrapCallback=function(n,t,i,r){if(!n){r?i.reject(t):i.resolve(t);return}var u;try{u=n(t)}catch(f){i.reject(f);return}u===undefined?i.resolve(t):u&&typeof u.then=="function"?u.then(function(n){i.resolve(n)},function(n){i.reject(n)}):i.resolve(u)},n.prototype._resolve=function(n){if(this._isRejected||this._isResolved||(this._isResolved=!0,this._resolvedValue=n),this._isResolved&&this._resolveCallbacks.length>0){var t=this._resolveCallbacks.splice(0);window.setTimeout(function(){for(var i=0,r=t.length;i0){var t=this._rejectCallbacks.splice(0);window.setTimeout(function(){for(var i=0,r=t.length;it.MAX_XDM_DEPTH)||this._shouldSkipSerialization(n))return null;if(a=function(t,e,o){var s,c,l,a,v;try{s=t[o]}catch(y){}(c=typeof s,c!=="undefined")&&(l=-1,c==="object"&&(l=r.originalObjects.indexOf(s)),l>=0?(a=r.newObjects[l],a.__circularReferenceId||(a.__circularReferenceId=u++),e[o]={__circularReference:a.__circularReferenceId}):c==="function"?(v=h._nextProxyFunctionId++,e[o]={__proxyFunctionId:h._registerProxyFunction(s,n),__channelId:h._channelId}):c==="object"?e[o]=s&&s instanceof Date?{__proxyDate:s.getTime()}:h._customSerializeObject(s,i,r,u,f+1):o!=="__proxyFunctionId"&&(e[o]=s))},r||(r={newObjects:[],originalObjects:[]}),r.originalObjects.push(n),n instanceof Array)for(o=[],r.newObjects.push(o),e=0,c=n.length;e0&&(f=!0);lt=!0;f&&tt()}e||a?ht():w()})},0)}function tt(){var n={localStorage:JSON.stringify(u||{})};i.invokeRemoteMethod("updateSandboxedStorage","VSS.HostControl",[n])}function pt(n,t){var i;i=typeof n=="string"?[n]:n;t||(t=function(){});l?it(i,t):(r?e||(e=!0,s&&(s=!1,ht())):nt({usePlatformScripts:!0}),rt(function(){it(i,t)}))}function it(n,i){t.diagnostics.bundlingEnabled?window.require(["VSS/Bundling"],function(t){t.requireModules(n,i)}):window.require(n,i)}function rt(n){s?window.setTimeout(n,0):(f||(f=[]),f.push(n))}function wt(){i.invokeRemoteMethod("notifyLoadSucceeded","VSS.HostControl")}function ut(n){i.invokeRemoteMethod("notifyLoadFailed","VSS.HostControl",[n])}function ft(){return b}function bt(){return k}function et(){return c}function kt(){return d}function dt(n,t){return ot(n).then(function(n){return t||(t={}),t.webContext||(t.webContext=ft()),t.extensionContext||(t.extensionContext=et()),n.getInstance(n.id,t)})}function ot(t){var r=XDM.createDeferred();return n.ready(function(){i.invokeRemoteMethod("getServiceContribution","vss.hostManagement",[t]).then(function(n){var t=n;t.getInstance=function(t,i){return st(n,t,i)};r.resolve(t)},r.reject)}),r.promise}function gt(t){var r=XDM.createDeferred();return n.ready(function(){i.invokeRemoteMethod("getContributionsForTarget","vss.hostManagement",[t]).then(function(n){var t=[];n.forEach(function(n){var i=n;i.getInstance=function(t,i){return st(n,t,i)};t.push(i)});r.resolve(t)},r.reject)}),r.promise}function st(t,r,u){var f=XDM.createDeferred();return n.ready(function(){i.invokeRemoteMethod("getBackgroundContributionInstance","vss.hostManagement",[t,r,u]).then(f.resolve,f.reject)}),f.promise}function ni(n,t){i.getObjectRegistry().register(n,t)}function ti(n,t){return i.getObjectRegistry().getInstance(n,t)}function ii(){return i.invokeRemoteMethod("getAccessToken","VSS.HostControl")}function ri(){return i.invokeRemoteMethod("getAppToken","VSS.HostControl")}function ui(){o||(o=document.getElementsByTagName("body").item(0));i.invokeRemoteMethod("resize","VSS.HostControl",[o.scrollWidth,o.scrollHeight])}function ht(){var i=oi(t.webContext),f,g,n,s,o,b,k,nt,tt,d,u;if(window.__vssPageContext=t,window.__cultureInfo=t.microsoftAjaxConfig.cultureInfo,a!==!1&&t.coreReferences.stylesheets&&t.coreReferences.stylesheets.forEach(function(n){if(n.isCoreStylesheet){var t=document.createElement("link");t.href=h(n.url,i);t.rel="stylesheet";p(t,"head")}}),!e){l=!0;w();return}if(f=[],g=!1,t.coreReferences.scripts&&(t.coreReferences.scripts.forEach(function(n){if(n.isCoreModule){var r=!1,t=window;n.identifier==="JQuery"?r=!!t.jQuery:n.identifier==="JQueryUI"?r=!!(t.jQuery&&t.jQuery.ui&&t.jQuery.ui.version):n.identifier==="AMDLoader"&&(r=typeof t.define=="function"&&!!t.define.amd);r?g=!0:f.push({source:h(n.url,i)})}}),t.coreReferences.coreScriptsBundle&&!g&&(f=[{source:h(t.coreReferences.coreScriptsBundle.url,i)}]),t.coreReferences.extensionCoreReferences&&f.push({source:h(t.coreReferences.extensionCoreReferences.url,i)})),n={baseUrl:c.baseUri,contributionPaths:null,paths:{},shim:{}},r.moduleLoaderConfig&&(r.moduleLoaderConfig.baseUrl&&(n.baseUrl=r.moduleLoaderConfig.baseUrl),ei(r.moduleLoaderConfig,n),ct(r.moduleLoaderConfig,n)),t.moduleLoaderConfig&&(ct(t.moduleLoaderConfig,n),s=t.moduleLoaderConfig.contributionPaths,s))for(o in s)if(s.hasOwnProperty(o)&&!n.paths[o]&&(b=s[o].value,n.paths[o]=b.match("^https?://")?b:i+b,k=t.moduleLoaderConfig.paths,k)){nt=o+"/";tt=v(i,t.moduleLoaderConfig.baseUrl);for(d in k)fi(d,nt)&&(u=k[d],u.match("^https?://")||(u=u[0]==="/"?v(i,u):v(tt,u)),n.paths[d]=u)}window.__vssModuleLoaderConfig=n;f.push({content:"require.config("+JSON.stringify(n)+");"});y(f,0,function(){l=!0;w()})}function fi(n,t){return n&&n.length>=t.length?n.substr(0,t.length).localeCompare(t)===0:!1}function v(n,t){var i=n||"";return i[i.length-1]!=="/"&&(i+="/"),t&&(i+=t[0]==="/"?t.substr(1):t),i}function ei(n,t,i){var r,u;if(n.paths){t.paths||(t.paths={});for(r in n.paths)n.paths.hasOwnProperty(r)&&(u=n.paths[r],i&&(u=i(r,n.paths[r])),u&&(t.paths[r]=u))}}function ct(n,t){if(n.shim){t.shim||(t.shim={});for(var i in n.shim)n.shim.hasOwnProperty(i)&&(t.shim[i]=n.shim[i])}}function oi(n){var r=n.account||n.host,t=r.uri,i=r.relativeUri;return t&&i&&(t[t.length-1]!=="/"&&(t+="/"),i[i.length-1]!=="/"&&(i+="/"),t=t.substr(0,t.length-i.length)),t}function y(n,t,i){var f=this,r,u;if(t>=n.length){i.call(this);return}r=document.createElement("script");r.type="text/javascript";n[t].source?(u=n[t].source,r.src=u,r.addEventListener("load",function(){y.call(f,n,t+1,i)}),r.addEventListener("error",function(){ut("Failed to load script: "+u)}),p(r,"head")):n[t].content&&(r.textContent=n[t].content,p(r,"head"),y.call(this,n,t+1,i))}function p(n,t){var i=document.getElementsByTagName(t)[0];i||(i=document.createElement(t),document.appendChild(i));i.appendChild(n)}function h(n,t){var i=(n||"").toLowerCase();return i.substr(0,2)!=="//"&&i.substr(0,5)!=="http:"&&i.substr(0,6)!=="https:"&&(n=t+(i[0]==="/"?"":"/")+n),n}function w(){var t=this,n;s=!0;f&&(n=f,f=null,n.forEach(function(n){n.call(t)}))}var yt;n.VssSDKVersion=2;n.VssSDKRestVersion="2.2";var o,b,t,c,k,d,r,l=!1,e,a,s=!1,f,i=XDM.XDMChannelManager.get().addChannel(window.parent),u,lt=!1,g=function(){function n(){t&&t.call(this)}function i(){}var t;return Object.defineProperties(i.prototype,{getItem:{get:function(){return function(n){var t=this[""+n];return typeof t=="undefined"?null:t}}},setItem:{get:function(){return function(t,i){t=""+t;var u=this[t],r=""+i;u!==r&&(this[t]=r,n())}}},removeItem:{get:function(){return function(t){t=""+t;typeof this[t]!="undefined"&&(delete this[t],n())}}},clear:{get:function(){return function(){var r=Object.keys(this),t,i,u;if(r.length>0){for(t=0,i=r;t
@@ -7,8 +7,10 @@ declare module "ReleaseManagement/Core/Constants" {
export module ArtifactDefinitionConstants {
var ProjectId: string;
var ConnectionId: string;
+ var ConnectionName: string;
var DefinitionId: string;
var RepositoryId: string;
+ var BranchId: string;
var MappingsId: string;
var MappingTypeId: string;
var ServerPathId: string;
@@ -37,6 +39,7 @@ export module WellKnownReleaseVariables {
var System: string;
var Build: string;
var HostTypeValue: string;
+ var DeploymentHostType: string;
var ReleaseArtifact: string;
var ReleaseEnvironments: string;
var AgentReleaseDirectory: string;
@@ -55,6 +58,7 @@ export module WellKnownReleaseVariables {
var ReleaseUri: string;
var ReleaseWebUrl: string;
var ReleaseEnvironmentUri: string;
+ var ReleaseEnvironmentId: string;
var ReleaseEnvironmentName: string;
var RequestorId: string;
var ReleaseRequestedForId: string;
@@ -129,7 +133,6 @@ export interface Artifact {
definitionReference: {
[key: string]: ArtifactSourceReference;
};
- id: number;
isPrimary: boolean;
sourceId: string;
type: string;
@@ -174,7 +177,7 @@ export interface ArtifactTypeDefinition {
uniqueSourceIdentifier: string;
}
export interface ArtifactVersion {
- artifactSourceId: number;
+ alias: string;
errorMessage: string;
sourceId: string;
versions: BuildVersion[];
@@ -300,6 +303,11 @@ export interface EnvironmentOptions {
skipArtifactsDownload: boolean;
timeoutInMinutes: number;
}
+export interface EnvironmentRetentionPolicy {
+ daysToKeep: number;
+ releasesToKeep: number;
+ retainBuild: boolean;
+}
export enum EnvironmentStatus {
Undefined = 0,
NotStarted = 1,
@@ -309,16 +317,7 @@ export enum EnvironmentStatus {
Rejected = 16,
Queued = 32,
Scheduled = 64,
-}
-export enum EnvironmentStatusOld {
- Undefined = 0,
- NotStarted = 1,
- Pending = 2,
- Succeeded = 3,
- Rejected = 4,
- InProgress = 5,
- Canceled = 6,
- Queued = 7,
+ PartiallySucceeded = 128,
}
export interface Issue {
issueType: string;
@@ -353,6 +352,14 @@ export interface ProjectReference {
id: string;
name: string;
}
+export interface PropertySelector {
+ properties: string[];
+ selectorType: PropertySelectorType;
+}
+export enum PropertySelectorType {
+ Inclusion = 0,
+ Exclusion = 1,
+}
export interface RealtimeReleaseEvent {
projectId: string;
releaseId: number;
@@ -487,6 +494,7 @@ export interface ReleaseDefinitionEnvironment {
preDeployApprovals: ReleaseDefinitionApprovals;
queueId: number;
rank: number;
+ retentionPolicy: EnvironmentRetentionPolicy;
runOptions: {
[key: string]: string;
};
@@ -593,21 +601,6 @@ export enum ReleaseExpands {
Artifacts = 4,
Approvals = 8,
}
-export enum ReleaseManagementSecurityPermissions {
- None = 0,
- ViewReleaseDefinition = 1,
- EditReleaseDefinition = 2,
- DeleteReleaseDefinition = 4,
- ManageReleaseApprovers = 8,
- ManageReleases = 16,
- ViewReleases = 32,
- CreateReleases = 64,
- EditReleaseEnvironment = 128,
- DeleteReleaseEnvironment = 256,
- AdministerReleasePermissions = 512,
- DeleteReleases = 1024,
- ManageDeployments = 2048,
-}
export enum ReleaseQueryOrder {
Descending = 0,
Ascending = 1,
@@ -663,12 +656,6 @@ export enum ReleaseStatus {
Active = 2,
Abandoned = 4,
}
-export enum ReleaseStatusOld {
- Undefined = 0,
- Draft = 1,
- Abandoned = 2,
- Active = 3,
-}
export interface ReleaseTask {
agentName: string;
dateEnded: Date;
@@ -766,6 +753,7 @@ export enum TaskStatus {
Skipped = 6,
Succeeded = 7,
Failed = 8,
+ PartiallySucceeded = 9,
}
export interface TimeZone {
displayName: string;
@@ -785,12 +773,11 @@ export interface WorkflowTask {
};
name: string;
taskId: string;
+ timeoutInMinutes: number;
version: string;
}
export var TypeInfo: {
- AgentArtifactDefinition: {
- fields: any;
- };
+ AgentArtifactDefinition: any;
AgentArtifactType: {
enumValues: {
"xamlBuild": number;
@@ -806,9 +793,6 @@ export var TypeInfo: {
"tfvc": number;
};
};
- ApprovalOptions: {
- fields: any;
- };
ApprovalStatus: {
enumValues: {
"undefined": number;
@@ -828,39 +812,8 @@ export var TypeInfo: {
"all": number;
};
};
- Artifact: {
- fields: any;
- };
- ArtifactInstanceData: {
- fields: any;
- };
- ArtifactMetadata: {
- fields: any;
- };
- ArtifactProvider: {
- fields: any;
- };
- ArtifactSourceId: {
- fields: any;
- };
- ArtifactSourceIdsQueryResult: {
- fields: any;
- };
- ArtifactSourceReference: {
- fields: any;
- };
- ArtifactSourceTrigger: {
- fields: any;
- };
- ArtifactTypeDefinition: {
- fields: any;
- };
- ArtifactVersion: {
- fields: any;
- };
- ArtifactVersionQueryResult: {
- fields: any;
- };
+ ArtifactSourceTrigger: any;
+ ArtifactTypeDefinition: any;
AuditAction: {
enumValues: {
"add": number;
@@ -868,15 +821,8 @@ export var TypeInfo: {
"delete": number;
};
};
- BuildVersion: {
- fields: any;
- };
- Change: {
- fields: any;
- };
- Condition: {
- fields: any;
- };
+ Change: any;
+ Condition: any;
ConditionType: {
enumValues: {
"undefined": number;
@@ -884,36 +830,11 @@ export var TypeInfo: {
"environmentState": number;
};
};
- ConfigurationVariableValue: {
- fields: any;
- };
- Consumer: {
- fields: any;
- };
- DeploymentApprovalCompletedEvent: {
- fields: any;
- };
- DeploymentApprovalPendingEvent: {
- fields: any;
- };
- DeploymentAttempt: {
- fields: any;
- };
- DeploymentCompletedEvent: {
- fields: any;
- };
- DeploymentStartedEvent: {
- fields: any;
- };
- EmailRecipients: {
- fields: any;
- };
- EnvironmentExecutionPolicy: {
- fields: any;
- };
- EnvironmentOptions: {
- fields: any;
- };
+ DeploymentApprovalCompletedEvent: any;
+ DeploymentApprovalPendingEvent: any;
+ DeploymentAttempt: any;
+ DeploymentCompletedEvent: any;
+ DeploymentStartedEvent: any;
EnvironmentStatus: {
enumValues: {
"undefined": number;
@@ -924,26 +845,10 @@ export var TypeInfo: {
"rejected": number;
"queued": number;
"scheduled": number;
+ "partiallySucceeded": number;
};
};
- EnvironmentStatusOld: {
- enumValues: {
- "undefined": number;
- "notStarted": number;
- "pending": number;
- "succeeded": number;
- "rejected": number;
- "inProgress": number;
- "canceled": number;
- "queued": number;
- };
- };
- Issue: {
- fields: any;
- };
- MailMessage: {
- fields: any;
- };
+ MailMessage: any;
MailSectionType: {
enumValues: {
"details": number;
@@ -954,60 +859,22 @@ export var TypeInfo: {
"releaseInfo": number;
};
};
- MappingDetails: {
- fields: any;
- };
- ProjectReference: {
- fields: any;
- };
- RealtimeReleaseEvent: {
- fields: any;
- };
- Release: {
- fields: any;
- };
- ReleaseAbandonedEvent: {
- fields: any;
- };
- ReleaseApproval: {
- fields: any;
- };
- ReleaseApprovalHistory: {
- fields: any;
- };
- ReleaseApprovalPendingEvent: {
- fields: any;
- };
- ReleaseArtifact: {
- fields: any;
- };
- ReleaseCreatedEvent: {
- fields: any;
- };
- ReleaseDefinition: {
- fields: any;
- };
- ReleaseDefinitionApprovals: {
- fields: any;
- };
- ReleaseDefinitionApprovalStep: {
- fields: any;
- };
- ReleaseDefinitionDeployStep: {
- fields: any;
- };
- ReleaseDefinitionEnvironment: {
- fields: any;
- };
- ReleaseDefinitionEnvironmentStep: {
- fields: any;
- };
- ReleaseDefinitionEnvironmentSummary: {
- fields: any;
- };
- ReleaseDefinitionEnvironmentTemplate: {
- fields: any;
+ PropertySelector: any;
+ PropertySelectorType: {
+ enumValues: {
+ "inclusion": number;
+ "exclusion": number;
+ };
};
+ Release: any;
+ ReleaseAbandonedEvent: any;
+ ReleaseApproval: any;
+ ReleaseApprovalHistory: any;
+ ReleaseApprovalPendingEvent: any;
+ ReleaseCreatedEvent: any;
+ ReleaseDefinition: any;
+ ReleaseDefinitionEnvironment: any;
+ ReleaseDefinitionEnvironmentTemplate: any;
ReleaseDefinitionExpands: {
enumValues: {
"none": number;
@@ -1016,21 +883,11 @@ export var TypeInfo: {
"triggers": number;
};
};
- ReleaseDefinitionRevision: {
- fields: any;
- };
- ReleaseDefinitionSummary: {
- fields: any;
- };
- ReleaseEnvironment: {
- fields: any;
- };
- ReleaseEnvironmentCompletedEvent: {
- fields: any;
- };
- ReleaseEnvironmentUpdateMetadata: {
- fields: any;
- };
+ ReleaseDefinitionRevision: any;
+ ReleaseDefinitionSummary: any;
+ ReleaseEnvironment: any;
+ ReleaseEnvironmentCompletedEvent: any;
+ ReleaseEnvironmentUpdateMetadata: any;
ReleaseExpands: {
enumValues: {
"none": number;
@@ -1039,23 +896,6 @@ export var TypeInfo: {
"approvals": number;
};
};
- ReleaseManagementSecurityPermissions: {
- enumValues: {
- "none": number;
- "viewReleaseDefinition": number;
- "editReleaseDefinition": number;
- "deleteReleaseDefinition": number;
- "manageReleaseApprovers": number;
- "manageReleases": number;
- "viewReleases": number;
- "createReleases": number;
- "editReleaseEnvironment": number;
- "deleteReleaseEnvironment": number;
- "administerReleasePermissions": number;
- "deleteReleases": number;
- "manageDeployments": number;
- };
- };
ReleaseQueryOrder: {
enumValues: {
"descending": number;
@@ -1070,15 +910,9 @@ export var TypeInfo: {
"schedule": number;
};
};
- ReleaseRevision: {
- fields: any;
- };
- ReleaseSchedule: {
- fields: any;
- };
- ReleaseStartMetadata: {
- fields: any;
- };
+ ReleaseRevision: any;
+ ReleaseSchedule: any;
+ ReleaseStartMetadata: any;
ReleaseStatus: {
enumValues: {
"undefined": number;
@@ -1087,26 +921,9 @@ export var TypeInfo: {
"abandoned": number;
};
};
- ReleaseStatusOld: {
- enumValues: {
- "undefined": number;
- "draft": number;
- "abandoned": number;
- "active": number;
- };
- };
- ReleaseTask: {
- fields: any;
- };
- ReleaseTaskLogUpdatedEvent: {
- fields: any;
- };
- ReleaseTasksUpdatedEvent: {
- fields: any;
- };
- ReleaseTriggerBase: {
- fields: any;
- };
+ ReleaseTask: any;
+ ReleaseTasksUpdatedEvent: any;
+ ReleaseTriggerBase: any;
ReleaseTriggerType: {
enumValues: {
"undefined": number;
@@ -1114,18 +931,8 @@ export var TypeInfo: {
"schedule": number;
};
};
- ReleaseUpdatedEvent: {
- fields: any;
- };
- ReleaseUpdateMetadata: {
- fields: any;
- };
- ReleaseWorkItemRef: {
- fields: any;
- };
- RetentionPolicy: {
- fields: any;
- };
+ ReleaseUpdatedEvent: any;
+ ReleaseUpdateMetadata: any;
ScheduleDays: {
enumValues: {
"none": number;
@@ -1139,24 +946,14 @@ export var TypeInfo: {
"all": number;
};
};
- ScheduledReleaseTrigger: {
- fields: any;
- };
+ ScheduledReleaseTrigger: any;
SenderType: {
enumValues: {
"serviceAccount": number;
"requestingUser": number;
};
};
- ShallowReference: {
- fields: any;
- };
- SourceIdInput: {
- fields: any;
- };
- SummaryMailSection: {
- fields: any;
- };
+ SummaryMailSection: any;
TaskStatus: {
enumValues: {
"unknown": number;
@@ -1168,17 +965,9 @@ export var TypeInfo: {
"skipped": number;
"succeeded": number;
"failed": number;
+ "partiallySucceeded": number;
};
};
- TimeZone: {
- fields: any;
- };
- TimeZoneList: {
- fields: any;
- };
- WorkflowTask: {
- fields: any;
- };
};
}
declare module "ReleaseManagement/Core/ExtensionContracts" {
@@ -1271,7 +1060,6 @@ export class CommonMethods2_2To3 extends CommonMethods2To3 {
protected releasesApiVersion: string;
protected revisionsApiVersion: string;
protected sendmailApiVersion: string;
- protected sourcesApiVersion: string;
protected tasksApiVersion: string;
protected typesApiVersion: string;
protected versionsApiVersion: string;
@@ -1320,14 +1108,6 @@ export class CommonMethods2_2To3 extends CommonMethods2To3 {
* @return IPromise
*/
getTasks(project: string, releaseId: number, environmentId: number, attemptId?: number): IPromise;
- /**
- * [Preview API]
- *
- * @param {string} project - Project ID or project name
- * @param {string} typeId
- * @return IPromise
- */
- getArtifactsSources(project: string, typeId?: string): IPromise;
/**
* [Preview API]
*
@@ -1399,9 +1179,10 @@ export class CommonMethods2_2To3 extends CommonMethods2To3 {
* @param {string} artifactTypeId
* @param {string} sourceId
* @param {string} artifactVersionId
+ * @param {string} sourceBranchFilter
* @return IPromise
*/
- getReleases(project: string, definitionId?: number, definitionEnvironmentId?: number, searchText?: string, createdBy?: string, statusFilter?: Contracts.ReleaseStatus, environmentStatusFilter?: number, minCreatedTime?: Date, maxCreatedTime?: Date, queryOrder?: Contracts.ReleaseQueryOrder, top?: number, continuationToken?: number, expand?: Contracts.ReleaseExpands, artifactTypeId?: string, sourceId?: string, artifactVersionId?: string): IPromise;
+ getReleases(project: string, definitionId?: number, definitionEnvironmentId?: number, searchText?: string, createdBy?: string, statusFilter?: Contracts.ReleaseStatus, environmentStatusFilter?: number, minCreatedTime?: Date, maxCreatedTime?: Date, queryOrder?: Contracts.ReleaseQueryOrder, top?: number, continuationToken?: number, expand?: Contracts.ReleaseExpands, artifactTypeId?: string, sourceId?: string, artifactVersionId?: string, sourceBranchFilter?: string): IPromise;
/**
* [Preview API]
*
@@ -1639,6 +1420,14 @@ export class CommonMethods2_2To3 extends CommonMethods2To3 {
*/
export class ReleaseHttpClient3 extends CommonMethods2_2To3 {
constructor(rootRequestPath: string, options?: VSS_WebApi.IVssHttpClientOptions);
+ /**
+ * [Preview API]
+ *
+ * @param {string} project - Project ID or project name
+ * @param {number} definitionId
+ * @return IPromise
+ */
+ getSourceBranches(project: string, definitionId: number): IPromise;
}
/**
* @exemptedapi
diff --git a/typings/tfs.d.ts b/typings/tfs.d.ts
index c777703..73c3e49 100644
--- a/typings/tfs.d.ts
+++ b/typings/tfs.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Microsoft Visual Studio Services v101.20160627.0901
+// Type definitions for Microsoft Visual Studio Services v102.20160718.1146
// Project: https://www.visualstudio.com/integrate/extensions/overview
// Definitions by: Microsoft
@@ -358,6 +358,10 @@ export interface BuildDefinitionReference extends DefinitionReference {
* The author of the definition.
*/
authoredBy: VSS_Common_Contracts.IdentityRef;
+ /**
+ * The default branch of this definition
+ */
+ defaultBranch: string;
/**
* If this is a draft definition, it might have a parent
*/
@@ -491,6 +495,10 @@ export interface BuildMetric {
* The name of the metric
*/
name: string;
+ /**
+ * The scope of the metric
+ */
+ scope: string;
}
export interface BuildOption {
definition: BuildOptionDefinitionReference;
@@ -2203,9 +2211,10 @@ export class BuildHttpClient3 extends CommonMethods2_1To3 {
* @param {Contracts.QueryDeletedOption} deletedFilter
* @param {Contracts.BuildQueryOrder} queryOrder
* @param {string} branchName
+ * @param {number[]} buildIds
* @return IPromise
*/
- getBuilds(project?: string, definitions?: number[], queues?: number[], buildNumber?: string, minFinishTime?: Date, maxFinishTime?: Date, requestedFor?: string, reasonFilter?: Contracts.BuildReason, statusFilter?: Contracts.BuildStatus, resultFilter?: Contracts.BuildResult, tagFilters?: string[], properties?: string[], top?: number, continuationToken?: string, maxBuildsPerDefinition?: number, deletedFilter?: Contracts.QueryDeletedOption, queryOrder?: Contracts.BuildQueryOrder, branchName?: string): IPromise;
+ getBuilds(project?: string, definitions?: number[], queues?: number[], buildNumber?: string, minFinishTime?: Date, maxFinishTime?: Date, requestedFor?: string, reasonFilter?: Contracts.BuildReason, statusFilter?: Contracts.BuildStatus, resultFilter?: Contracts.BuildResult, tagFilters?: string[], properties?: string[], top?: number, continuationToken?: string, maxBuildsPerDefinition?: number, deletedFilter?: Contracts.QueryDeletedOption, queryOrder?: Contracts.BuildQueryOrder, branchName?: string, buildIds?: number[]): IPromise;
/**
* [Preview API] Queues a build
*
@@ -3500,6 +3509,12 @@ export interface AgentChangeEvent {
poolId: number;
timeStamp: Date;
}
+export interface AgentJobRequestMessage extends JobRequestMessage {
+ lockedUntil: Date;
+ lockToken: string;
+ requestId: number;
+ tasks: TaskInstance[];
+}
export interface AgentPoolEvent {
eventType: string;
pool: TaskAgentPool;
@@ -3540,6 +3555,14 @@ export interface DataSourceBinding {
resultTemplate: string;
target: string;
}
+export interface DependencyBinding {
+ key: string;
+ value: string;
+}
+export interface DependsOn {
+ input: string;
+ map: DependencyBinding[];
+}
export interface EndpointAuthorization {
parameters: {
[key: string]: string;
@@ -3547,8 +3570,10 @@ export interface EndpointAuthorization {
scheme: string;
}
export interface EndpointUrl {
+ dependsOn: DependsOn;
displayName: string;
helpText: string;
+ isVisible: string;
value: string;
}
export interface HelpLink {
@@ -3599,6 +3624,14 @@ export interface JobEvent {
jobId: string;
name: string;
}
+export interface JobEventConfig {
+ timeout: string;
+}
+export interface JobEventsConfig {
+ jobAssigned: JobEventConfig;
+ jobCompleted: JobEventConfig;
+ jobStarted: JobEventConfig;
+}
/**
* Represents an option that may affect the way an agent runs the job.
*/
@@ -3615,13 +3648,12 @@ export interface JobRequestMessage {
environment: JobEnvironment;
jobId: string;
jobName: string;
- lockedUntil: Date;
- lockToken: string;
+ messageType: string;
plan: TaskOrchestrationPlanReference;
- requestId: number;
- tasks: TaskInstance[];
timeline: TimelineReference;
}
+export interface JobStartedEvent extends JobEvent {
+}
export interface MaskHint {
type: MaskType;
value: string;
@@ -3677,6 +3709,19 @@ export interface PlanEnvironment {
[key: string]: string;
};
}
+export interface SendJobResponse {
+ events: JobEventsConfig;
+ variables: {
+ [key: string]: string;
+ };
+}
+export interface ServerExecutionDefinition {
+ events: JobEventsConfig;
+}
+export interface ServerJobRequestMessage extends JobRequestMessage {
+ taskDefinition: TaskDefinition;
+ taskInstance: TaskInstance;
+}
/**
* Represents an endpoint which may be used by an orchestration job.
*/
@@ -3977,6 +4022,9 @@ export interface TaskDefinition {
demands: any[];
description: string;
disabled: boolean;
+ execution: {
+ [key: string]: any;
+ };
friendlyName: string;
groups: TaskGroupDefinition[];
helpMarkDown: string;
@@ -4026,6 +4074,17 @@ export interface TaskDefinitionReference {
id: string;
versionSpec: string;
}
+export enum TaskDefinitionStatus {
+ Preinstalled = 1,
+ ReceivedInstallOrUpdate = 2,
+ Installed = 3,
+ ReceivedUninstall = 4,
+ Uninstalled = 5,
+ RequestedUpdate = 6,
+ Updated = 7,
+ AlreadyUpToDate = 8,
+ InlineUpdateReceived = 9,
+}
export interface TaskExecution {
/**
* The utility task to run. Specifying this means that this task definition is simply a meta task to call another task. This is useful for tasks that call utility tasks like powershell and commandline
@@ -4100,6 +4159,7 @@ export enum TaskOrchestrationItemType {
export interface TaskOrchestrationJob extends TaskOrchestrationItem {
demands: any[];
executeAs: VSS_Common_Contracts.IdentityRef;
+ executionMode: string;
executionTimeout: any;
instanceId: string;
name: string;
@@ -4221,6 +4281,7 @@ export interface TimelineReference {
}
export var TypeInfo: {
AgentChangeEvent: any;
+ AgentJobRequestMessage: any;
AgentPoolEvent: any;
AgentRequestEvent: any;
Issue: any;
@@ -4243,6 +4304,7 @@ export var TypeInfo: {
};
PackageMetadata: any;
PlanEnvironment: any;
+ ServerJobRequestMessage: any;
ServiceEndpointAuthenticationScheme: any;
ServiceEndpointType: any;
TaskAgent: any;
@@ -4264,6 +4326,19 @@ export var TypeInfo: {
};
};
TaskAttachment: any;
+ TaskDefinitionStatus: {
+ enumValues: {
+ "preinstalled": number;
+ "receivedInstallOrUpdate": number;
+ "installed": number;
+ "receivedUninstall": number;
+ "uninstalled": number;
+ "requestedUpdate": number;
+ "updated": number;
+ "alreadyUpToDate": number;
+ "inlineUpdateReceived": number;
+ };
+ };
TaskLog: any;
TaskOrchestrationContainer: any;
TaskOrchestrationItem: any;
@@ -5333,6 +5408,7 @@ export interface QueryModel {
export interface ReleaseReference {
definitionId: number;
environmentDefinitionId: number;
+ environmentDefinitionName: string;
environmentId: number;
id: number;
name: string;
@@ -5352,11 +5428,6 @@ export enum ResultObjectType {
TestSuite = 0,
TestPlan = 1,
}
-export enum ResultOutcome {
- Pass = 1,
- Fail = 2,
- Pending = 3,
-}
export interface ResultRetentionSettings {
automatedResultsRetentionDuration: number;
lastUpdatedBy: VSS_Common_Contracts.IdentityRef;
@@ -5583,29 +5654,6 @@ export interface TestCaseResult {
testRun: ShallowReference;
url: string;
}
-export interface TestCaseResult2 {
- componentId: string;
- custom: any;
- endTime: Date;
- exceptionStack: string;
- externalArtifacts: string[];
- externalRunId: string;
- externalSystem: string;
- externalTestId: string;
- failureReasons: string[];
- failureSummary: string;
- investigationNotes: string;
- isSuperseded: boolean;
- isValid: boolean;
- outcome: ResultOutcome;
- resultCustomPropertiesTypeName: string;
- resultId: string;
- resultName: string;
- runId: string;
- startTime: Date;
- testId: string;
- tfsSecurityKey: string;
-}
export interface TestCaseResultAttachmentModel {
id: number;
iterationId: number;
@@ -5854,6 +5902,7 @@ export interface TestPoint {
lastResolutionStateId: number;
lastResult: ShallowReference;
lastResultDetails: LastResultDetails;
+ lastResultState: string;
lastRunBuildNumber: string;
lastTestRun: ShallowReference;
lastUpdatedBy: VSS_Common_Contracts.IdentityRef;
@@ -5905,7 +5954,7 @@ export interface TestResultHistory {
resultsForGroup: TestResultHistoryDetailsForGroup[];
}
export interface TestResultHistoryDetailsForGroup {
- groupByValue: string;
+ groupByValue: any;
latestResult: TestCaseResult;
}
export interface TestResultModelBase {
@@ -6343,13 +6392,6 @@ export var TypeInfo: {
"testPlan": number;
};
};
- ResultOutcome: {
- enumValues: {
- "pass": number;
- "fail": number;
- "pending": number;
- };
- };
ResultRetentionSettings: any;
ResultsFilter: any;
ResultUpdateRequestModel: any;
@@ -6357,7 +6399,6 @@ export var TypeInfo: {
TestActionResultModel: any;
TestAttachment: any;
TestCaseResult: any;
- TestCaseResult2: any;
TestConfiguration: any;
TestConfigurationState: {
enumValues: {
@@ -6467,10 +6508,10 @@ export class CommonMethods2To3 extends VSS_WebApi.VssHttpClient {
protected parameterResultsApiVersion: string;
protected plansApiVersion: string;
protected pointsApiVersion: string;
+ protected resultRetentionSettingsApiVersion: string;
protected resultsApiVersion: string;
protected runsApiVersion: string;
protected runsApiVersion_0a42c424: string;
- protected runsApiVersion_cadb3810: string;
protected sessionApiVersion: string;
protected suiteEntryApiVersion: string;
protected suitesApiVersion: string;
@@ -6669,18 +6710,6 @@ export class CommonMethods2To3 extends VSS_WebApi.VssHttpClient {
* @return IPromise
*/
createTestSession(testSession: Contracts.TestSession, teamContext: TFS_Core_Contracts.TeamContext): IPromise;
- /**
- * @exemptedapi
- * [Preview API]
- *
- * @param {Contracts.QueryModel} query
- * @param {string} project - Project ID or project name
- * @param {boolean} includeRunDetails
- * @param {number} skip
- * @param {number} top
- * @return IPromise
- */
- getTestRunsByQuery(query: Contracts.QueryModel, project: string, includeRunDetails?: boolean, skip?: number, top?: number): IPromise;
/**
* @param {Contracts.RunUpdateModel} runUpdateModel
* @param {string} project - Project ID or project name
@@ -6726,48 +6755,24 @@ export class CommonMethods2To3 extends VSS_WebApi.VssHttpClient {
*/
getTestRunStatistics(project: string, runId: number): IPromise;
/**
- * @exemptedapi
- * [Preview API]
- *
- * @param {Contracts.TestCaseResultUpdateModel[]} resultUpdateModels
- * @param {string} project - Project ID or project name
- * @param {number} runId
- * @return IPromise
- */
- updateTestResults(resultUpdateModels: Contracts.TestCaseResultUpdateModel[], project: string, runId: number): IPromise;
- /**
- * @exemptedapi
- * [Preview API]
- *
* @param {string} project - Project ID or project name
* @param {number} runId
+ * @param {number} testCaseResultId
* @param {Contracts.ResultDetails} detailsToInclude
- * @param {number} skip
- * @param {number} top
- * @return IPromise
+ * @return IPromise
*/
- getTestResults(project: string, runId: number, detailsToInclude?: Contracts.ResultDetails, skip?: number, top?: number): IPromise;
+ getTestResultById(project: string, runId: number, testCaseResultId: number, detailsToInclude?: Contracts.ResultDetails): IPromise;
/**
- * @exemptedapi
- * [Preview API]
- *
- * @param {Contracts.TestCaseResultUpdateModel} resultUpdateModel
+ * @param {Contracts.ResultRetentionSettings} retentionSettings
* @param {string} project - Project ID or project name
- * @param {number} runId
- * @param {number[]} resultIds
- * @return IPromise
+ * @return IPromise
*/
- bulkUpdateTestResults(resultUpdateModel: Contracts.TestCaseResultUpdateModel, project: string, runId: number, resultIds: number[]): IPromise;
+ updateResultRetentionSettings(retentionSettings: Contracts.ResultRetentionSettings, project: string): IPromise;
/**
- * @exemptedapi
- * [Preview API]
- *
- * @param {Contracts.TestResultCreateModel[]} resultCreateModels
* @param {string} project - Project ID or project name
- * @param {number} runId
- * @return IPromise
+ * @return IPromise
*/
- addTestResultsToTestRun(resultCreateModels: Contracts.TestResultCreateModel[], project: string, runId: number): IPromise;
+ getResultRetentionSettings(project: string): IPromise;
/**
* @param {Contracts.PointUpdateModel} pointUpdateModel
* @param {string} project - Project ID or project name
@@ -7103,25 +7108,10 @@ export class CommonMethods2To3 extends VSS_WebApi.VssHttpClient {
*/
getActionResults(project: string, runId: number, testCaseResultId: number, iterationId: number, actionPath?: string): IPromise;
}
-export class CommonMethods2_1To3 extends CommonMethods2To3 {
- protected resultRetentionSettingsApiVersion: string;
- constructor(rootRequestPath: string, options?: VSS_WebApi.IVssHttpClientOptions);
- /**
- * @param {Contracts.ResultRetentionSettings} retentionSettings
- * @param {string} project - Project ID or project name
- * @return IPromise
- */
- updateResultRetentionSettings(retentionSettings: Contracts.ResultRetentionSettings, project: string): IPromise;
- /**
- * @param {string} project - Project ID or project name
- * @return IPromise
- */
- getResultRetentionSettings(project: string): IPromise;
-}
/**
* @exemptedapi
*/
-export class TestHttpClient3 extends CommonMethods2_1To3 {
+export class TestHttpClient3 extends CommonMethods2To3 {
constructor(rootRequestPath: string, options?: VSS_WebApi.IVssHttpClientOptions);
/**
* [Preview API] Returns attachment references for test result.
@@ -7173,16 +7163,45 @@ export class TestHttpClient3 extends CommonMethods2_1To3 {
* @return IPromise
*/
getTestResultDetailsForRelease(project: string, releaseId: number, releaseEnvId: number, publishContext?: string, groupBy?: string, filter?: string, orderby?: string): IPromise;
+ /**
+ * [Preview API]
+ *
+ * @param {Contracts.TestCaseResult[]} results
+ * @param {string} project - Project ID or project name
+ * @param {number} runId
+ * @return IPromise
+ */
+ addTestResultsToTestRun(results: Contracts.TestCaseResult[], project: string, runId: number): IPromise;
+ /**
+ * [Preview API]
+ *
+ * @param {Contracts.TestCaseResult} result
+ * @param {string} project - Project ID or project name
+ * @param {number} runId
+ * @param {number[]} resultIds
+ * @return IPromise
+ */
+ bulkUpdateTestResults(result: Contracts.TestCaseResult, project: string, runId: number, resultIds: number[]): IPromise;
/**
* [Preview API]
*
* @param {string} project - Project ID or project name
* @param {number} runId
- * @param {number} testCaseResultId
* @param {Contracts.ResultDetails} detailsToInclude
- * @return IPromise
+ * @param {number} skip
+ * @param {number} top
+ * @return IPromise
*/
- getTestResultById(project: string, runId: number, testCaseResultId: number, detailsToInclude?: Contracts.ResultDetails): IPromise;
+ getTestResults(project: string, runId: number, detailsToInclude?: Contracts.ResultDetails, skip?: number, top?: number): IPromise;
+ /**
+ * [Preview API]
+ *
+ * @param {Contracts.TestCaseResult[]} results
+ * @param {string} project - Project ID or project name
+ * @param {number} runId
+ * @return IPromise
+ */
+ updateTestResults(results: Contracts.TestCaseResult[], project: string, runId: number): IPromise;
/**
* [Preview API]
*
@@ -7214,14 +7233,23 @@ export class TestHttpClient3 extends CommonMethods2_1To3 {
* @return IPromise
*/
queryTestResultsReportForRelease(project: string, releaseId: number, releaseEnvId: number, publishContext?: string, includeFailureDetails?: boolean, releaseToCompare?: Contracts.ReleaseReference): IPromise;
+ /**
+ * [Preview API]
+ *
+ * @param {Contracts.ReleaseReference[]} releases
+ * @param {string} project - Project ID or project name
+ * @return IPromise
+ */
+ queryTestResultsSummaryForReleases(releases: Contracts.ReleaseReference[], project: string): IPromise;
/**
* [Preview API]
*
* @param {Contracts.TestResultsContext} resultsContext
* @param {string} project - Project ID or project name
+ * @param {number[]} workItemIds
* @return IPromise
*/
- queryTestSummaryByRequirementForBuild(resultsContext: Contracts.TestResultsContext, project: string): IPromise;
+ queryTestSummaryByRequirement(resultsContext: Contracts.TestResultsContext, project: string, workItemIds?: number[]): IPromise;
/**
* [Preview API]
*
@@ -7269,14 +7297,24 @@ export class TestHttpClient3 extends CommonMethods2_1To3 {
*/
queryTestResultWorkItems(project: string, workItemCategory: string, automatedTestName?: string, testCaseId?: number, maxCompleteDate?: Date, days?: number, workItemCount?: number): IPromise;
}
-/**
- * @exemptedapi
- */
-export class TestHttpClient2_2 extends CommonMethods2_1To3 {
+export class TestHttpClient2_2 extends CommonMethods2To3 {
constructor(rootRequestPath: string, options?: VSS_WebApi.IVssHttpClientOptions);
/**
- * [Preview API]
- *
+ * @param {Contracts.TestResultCreateModel[]} resultCreateModels
+ * @param {string} project - Project ID or project name
+ * @param {number} runId
+ * @return IPromise
+ */
+ addTestResultsToTestRun(resultCreateModels: Contracts.TestResultCreateModel[], project: string, runId: number): IPromise;
+ /**
+ * @param {Contracts.TestCaseResultUpdateModel} resultUpdateModel
+ * @param {string} project - Project ID or project name
+ * @param {number} runId
+ * @param {number[]} resultIds
+ * @return IPromise
+ */
+ bulkUpdateTestResults(resultUpdateModel: Contracts.TestCaseResultUpdateModel, project: string, runId: number, resultIds: number[]): IPromise;
+ /**
* @param {string} project - Project ID or project name
* @param {number} runId
* @param {number} testCaseResultId
@@ -7286,8 +7324,6 @@ export class TestHttpClient2_2 extends CommonMethods2_1To3 {
*/
getTestCaseResultById(project: string, runId: number, testCaseResultId: number, includeIterationDetails: boolean, includeAssociatedBugs?: boolean): IPromise;
/**
- * [Preview API]
- *
* @param {string} project - Project ID or project name
* @param {number} runId
* @param {boolean} includeIterationDetails
@@ -7295,16 +7331,23 @@ export class TestHttpClient2_2 extends CommonMethods2_1To3 {
*/
getTestCaseResults(project: string, runId: number, includeIterationDetails: boolean): IPromise;
/**
- * [Preview API]
- *
* @param {string} project - Project ID or project name
* @param {number} runId
- * @param {number} testCaseResultId
* @param {Contracts.ResultDetails} detailsToInclude
+ * @param {number} skip
+ * @param {number} top
* @return IPromise
*/
- getTestResultById(project: string, runId: number, testCaseResultId: number, detailsToInclude?: Contracts.ResultDetails): IPromise;
+ getTestResults(project: string, runId: number, detailsToInclude?: Contracts.ResultDetails, skip?: number, top?: number): IPromise;
+ /**
+ * @param {Contracts.TestCaseResultUpdateModel[]} resultUpdateModels
+ * @param {string} project - Project ID or project name
+ * @param {number} runId
+ * @return IPromise
+ */
+ updateTestResults(resultUpdateModels: Contracts.TestCaseResultUpdateModel[], project: string, runId: number): IPromise;
/**
+ * @exemptedapi
* [Preview API]
*
* @param {Contracts.QueryModel} query
@@ -7316,6 +7359,18 @@ export class TestHttpClient2_2 extends CommonMethods2_1To3 {
* @return IPromise
*/
getTestResultsByQuery(query: Contracts.QueryModel, project: string, includeResultDetails?: boolean, includeIterationDetails?: boolean, skip?: number, top?: number): IPromise;
+ /**
+ * @exemptedapi
+ * [Preview API]
+ *
+ * @param {Contracts.QueryModel} query
+ * @param {string} project - Project ID or project name
+ * @param {boolean} includeRunDetails
+ * @param {number} skip
+ * @param {number} top
+ * @return IPromise
+ */
+ getTestRunsByQuery(query: Contracts.QueryModel, project: string, includeRunDetails?: boolean, skip?: number, top?: number): IPromise;
}
export class TestHttpClient extends TestHttpClient3 {
constructor(rootRequestPath: string, options?: VSS_WebApi.IVssHttpClientOptions);
@@ -7652,6 +7707,7 @@ export interface GitPathToItemsCollection {
}
export interface GitPullRequest {
_links: any;
+ autoCompleteSetBy: VSS_Common_Contracts.IdentityRef;
closedBy: VSS_Common_Contracts.IdentityRef;
closedDate: Date;
codeReviewId: number;
@@ -9811,8 +9867,10 @@ import Contracts_Platform = require("VSS/Common/Contracts/Platform");
export interface IVersionControlActionService {
/** Launches create branch dialog
* @param workItemIds The work item ids to link to the newly created branch
+ * @param project The Project Name to open the dialog for
+ * @param projectId The Project ID/Guid to open the dialog for
*/
- beginLaunchCreateBranchDialog(workItemIds: number[]): IPromise;
+ beginLaunchCreateBranchDialog(workItemIds: number[], project?: string, projectId?: string): IPromise;
/** Features required for actions, the actions will not work as desired when users do not have license for the listed features. */
requiredFeaturesForActions?: string[];
}
@@ -10551,6 +10609,9 @@ export interface WorkItemRelationUpdates {
export interface WorkItemRevisionReference extends WorkItemReference {
rev: number;
}
+export interface WorkItemStateTransition {
+ to: string;
+}
export interface WorkItemTrackingReference extends WorkItemTrackingResource {
name: string;
referenceName: string;
@@ -10566,6 +10627,9 @@ export interface WorkItemType extends WorkItemTrackingResource {
fieldInstances: WorkItemTypeFieldInstance[];
fields: WorkItemTypeFieldInstance[];
name: string;
+ transitions: {
+ [key: string]: WorkItemStateTransition[];
+ };
xmlForm: string;
}
export interface WorkItemTypeCategory extends WorkItemTrackingResource {
@@ -10575,6 +10639,7 @@ export interface WorkItemTypeCategory extends WorkItemTrackingResource {
workItemTypes: WorkItemTypeReference[];
}
export interface WorkItemTypeFieldInstance {
+ alwaysRequired: boolean;
field: WorkItemFieldReference;
helpText: string;
}
@@ -11046,6 +11111,10 @@ export interface WorkItemTypeModel {
states: WorkItemStateResultModel[];
url: string;
}
+export interface WorkItemTypeUpdateModel {
+ color: string;
+ description: string;
+}
export var TypeInfo: {
FieldModel: any;
FieldType: {
@@ -11092,6 +11161,15 @@ export class CommonMethods2_1To3 extends VSS_WebApi.VssHttpClient {
protected statesApiVersion: string;
protected workItemTypesApiVersion: string;
constructor(rootRequestPath: string, options?: VSS_WebApi.IVssHttpClientOptions);
+ /**
+ * [Preview API]
+ *
+ * @param {ProcessDefinitionsContracts.WorkItemTypeUpdateModel} workitemTypeUpdate
+ * @param {string} processId
+ * @param {string} witRefName
+ * @return IPromise
+ */
+ updateWorkItemType(workitemTypeUpdate: ProcessDefinitionsContracts.WorkItemTypeUpdateModel, processId: string, witRefName: string): IPromise;
/**
* [Preview API]
*
diff --git a/typings/vss.d.ts b/typings/vss.d.ts
index ea9bda2..227d494 100644
--- a/typings/vss.d.ts
+++ b/typings/vss.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Microsoft Visual Studio Services v101.20160627.0901
+// Type definitions for Microsoft Visual Studio Services v102.20160718.1145
// Project: https://www.visualstudio.com/integrate/extensions/overview
// Definitions by: Microsoft
@@ -945,24 +945,46 @@ interface IContributedTab {
}
/**
+ * A navigation element which appears in the header section.
* @exemptedapi
*/
-interface HubResult extends Hub {
- hubs?: Hub[];
-
+interface IContributedHub extends Hub {
+ /**
+ * Specifies the target hub id where the children are attached to the target hub.
+ */
targetHubId?: string;
- getHubs?(context: any): Hub[] | IPromise;
+
+ /**
+ * Hubs resolved by this container hub.
+ */
+ children: IContributedHub[] | (()=> IPromise);
+
+ /**
+ * Specifies whether a separator is displayed before this hub or not.
+ */
+ beforeSeparator?: boolean;
+
+ /**
+ * Specifies whether a separator is displayed after this hub or not.
+ */
+ afterSeparator?: boolean;
+
+ /**
+ * Specifies whether this hub is a default hub or not (rendered differently).
+ */
+ isDefault?: boolean;
}
/**
+ * The contract for hub providers which are expected to provide a container hub.
* @exemptedapi
*/
interface IHubsProvider {
- getHubs(context: any): HubResult | IPromise;
+ /**
+ * Container hub specified by this provider. Container decides where to display child hubs in the header.
+ */
+ getContainerHub(context: any): IContributedHub | IPromise;
}
-//----------------------------------------------------------
-// Copyright (C) Microsoft Corporation. All rights reserved.
-//----------------------------------------------------------
//----------------------------------------------------------
// Generated file, DO NOT EDIT.
@@ -1225,6 +1247,10 @@ interface ContributionConstraint {
* Properties that are fed to the contribution filter class
*/
properties: any;
+ /**
+ * Constraints can be optionally be applied to one or more of the relationships defined in the contribution. If no relationships are defined then all relationships are associated with the constraint. This means the default behaviour will elimiate the contribution from the tree completely if the constraint is applied.
+ */
+ relationships: string[];
}
/**
@@ -1619,6 +1645,10 @@ interface ExtensionManifest {
*/
contributionTypes: ContributionType[];
/**
+ * List of explicit demands required by this extension
+ */
+ demands: string[];
+ /**
* Collection of endpoints that get called when particular extension events occur
*/
eventCallbacks: ExtensionEventCallbackCollection;
@@ -1743,6 +1773,10 @@ declare enum ExtensionStateFlags {
* Extension is currently in an error state
*/
Error = 64,
+ /**
+ * Extension scopes have changed and the extension requires re-authorization
+ */
+ NeedsReauthorization = 128,
}
interface FeatureAvailabilityContext {
@@ -1793,6 +1827,7 @@ interface Hub {
interface HubGroup {
builtIn: boolean;
hasHubs: boolean;
+ hidden: boolean;
icon: string;
id: string;
name: string;
@@ -1808,6 +1843,7 @@ interface HubsContext {
hubGroups: HubGroup[];
hubGroupsCollectionContributionId: string;
hubs: Hub[];
+ pinningPreferences: PinningPreferences;
selectedHubGroupId: string;
selectedHubId: string;
}
@@ -1857,6 +1893,7 @@ interface InstalledExtension {
baseUri: string;
contributions: Contribution[];
contributionTypes: ContributionType[];
+ demands: string[];
eventCallbacks: ExtensionEventCallbackCollection;
/**
* The friendly extension id for this extension - unique for a given publisher.
@@ -2101,6 +2138,12 @@ interface PageContext {
webContext: WebContext;
}
+interface PinningPreferences {
+ pinnedHubGroupIds: string[];
+ pinnedHubs: { [key: string]: string[]; };
+ unpinnedHubs: { [key: string]: string[]; };
+}
+
/**
* A request for an extension (to be installed or have a license assigned)
*/
@@ -3132,6 +3175,7 @@ export module ToolNames {
var TeamBuild: string;
var TestManagement: string;
var Requirements: string;
+ var Hyperlink: string;
var Legacy: string;
var CodeSense: string;
var Git: string;
@@ -3425,6 +3469,7 @@ export enum AccountProviderNamespace {
VisualStudioOnline = 0,
AppInsights = 1,
Marketplace = 2,
+ OnPremise = 3,
}
/**
* Encapsulates azure specific plan structure, using a publisher defined publisher name, offer name, and plan name These are all specified by the publisher and can vary from other meta data we store about the extension internally therefore need to be tracked seperately for purposes of interacting with Azure
@@ -3492,6 +3537,66 @@ export enum BillingProvider {
SelfManaged = 0,
AzureStoreManaged = 1,
}
+export interface ConnectedServer {
+ /**
+ * Hosted AccountName associated with the connected server
+ */
+ accountName: string;
+ /**
+ * Object used to create credentials to call from OnPrem to hosted service.
+ */
+ authorization: ConnectedServerAuthorization;
+ /**
+ * AuthToken which can be used to connect to hosted service.
+ */
+ authToken: string;
+ /**
+ * OnPrem server id associated with the connected server
+ */
+ serverId: string;
+ /**
+ * SpsUrl of the hosted account that the onrepm server has been connected to.
+ */
+ spsUrl: string;
+ /**
+ * The id of the subscription used for purchase
+ */
+ subscriptionId: string;
+ /**
+ * OnPrem target host associated with the connected server. Typically the collection host id
+ */
+ targetId: string;
+}
+/**
+ * Provides data necessary for authorizing the connecter server using OAuth 2.0 authentication flows.
+ */
+export interface ConnectedServerAuthorization {
+ /**
+ * Gets or sets the endpoint used to obtain access tokens from the configured token service.
+ */
+ authorizationUrl: string;
+ /**
+ * Gets or sets the client identifier for this agent.
+ */
+ clientId: string;
+ /**
+ * Gets or sets the public key used to verify the identity of this connected server.
+ */
+ publicKey: ConnectedServerPublicKey;
+}
+/**
+ * Represents the public key portion of an RSA asymmetric key.
+ */
+export interface ConnectedServerPublicKey {
+ /**
+ * Gets or sets the exponent for the public key.
+ */
+ exponent: number[];
+ /**
+ * Gets or sets the modulus for the public key.
+ */
+ modulus: number[];
+}
/**
* Information about a resource associated with a subscription.
*/
@@ -3536,6 +3641,10 @@ export interface IOfferSubscription {
* Gets the value indicating whether the puchase is canceled.
*/
isPurchaseCanceled: boolean;
+ /**
+ * Gets the value indicating whether current meter was purchased while the meter is still in trial
+ */
+ isPurchasedDuringTrial: boolean;
/**
* Gets or sets a value indicating whether this instance is trial or preview.
*/
@@ -3730,6 +3839,28 @@ export enum MeterState {
Retired = 2,
Deleted = 3,
}
+export enum MinimumRequiredServiceLevel {
+ /**
+ * No service rights. The user cannot access the account
+ */
+ None = 0,
+ /**
+ * Default or minimum service level
+ */
+ Express = 1,
+ /**
+ * Premium service level - either by purchasing on the Azure portal or by purchasing the appropriate MSDN subscription
+ */
+ Advanced = 2,
+ /**
+ * Only available to a specific set of MSDN Subscribers
+ */
+ AdvancedPlus = 3,
+ /**
+ * Stakeholder service level
+ */
+ Stakeholder = 4,
+}
export interface OfferMeter {
/**
* Gets or sets the value of absolute maximum quantity for the resource
@@ -3779,6 +3910,10 @@ export interface OfferMeter {
* Quantity included for free.
*/
includedQuantity: number;
+ /**
+ * Flag to identify whether the meter is First Party or Third Party based on BillingEntity If the BillingEntity is SelfManaged, the Meter is First Party otherwise its a Third Party Meter
+ */
+ isFirstParty: boolean;
/**
* Gets or sets the value of maximum quantity for the resource
*/
@@ -3787,6 +3922,10 @@ export interface OfferMeter {
* Meter Id.
*/
meterId: number;
+ /**
+ * Gets or sets the minimum required access level for the meter.
+ */
+ minimumRequiredAccessLevel: MinimumRequiredServiceLevel;
/**
* Name of the resource
*/
@@ -3909,6 +4048,10 @@ export interface OfferSubscription {
* Gets the value indicating whether the puchase is canceled.
*/
isPurchaseCanceled: boolean;
+ /**
+ * Gets the value indicating whether current meter was purchased while the meter is still in trial
+ */
+ isPurchasedDuringTrial: boolean;
/**
* Gets or sets a value indicating whether this instance is trial or preview.
*/
@@ -4133,6 +4276,7 @@ export var TypeInfo: {
"visualStudioOnline": number;
"appInsights": number;
"marketplace": number;
+ "onPremise": number;
};
};
BillingProvider: {
@@ -4173,6 +4317,15 @@ export var TypeInfo: {
"deleted": number;
};
};
+ MinimumRequiredServiceLevel: {
+ enumValues: {
+ "none": number;
+ "express": number;
+ "advanced": number;
+ "advancedPlus": number;
+ "stakeholder": number;
+ };
+ };
OfferMeter: any;
OfferMeterAssignmentModel: {
enumValues: {
@@ -4314,12 +4467,13 @@ export class CommonMethods2To3 extends VSS_WebApi.VssHttpClient {
*/
getSubscriptionAccount(providerNamespaceId: Contracts.AccountProviderNamespace, accountId: string): IPromise;
/**
- * [Preview API] Get list of azure subscription where user is admin- co-admin under tenant or valid azure subscriptions for purchase
+ * [Preview API] Get list of azure subscriptions where user is admin or co-admin
*
* @param {string} subscriptionId
+ * @param {boolean} queryAcrossTenants
* @return IPromise
*/
- getAzureSubscriptionForUser(subscriptionId?: string): IPromise;
+ getAzureSubscriptionForUser(subscriptionId?: string, queryAcrossTenants?: boolean): IPromise;
/**
* [Preview API] Get list of azure subscription where user is admin- co-admin under tenant or valid azure subscriptions for purchase (passing accountId to get this information for AAD calls)
*
@@ -4505,6 +4659,20 @@ export class CommonMethods2To3 extends VSS_WebApi.VssHttpClient {
*/
export class CommerceHttpClient3 extends CommonMethods2To3 {
constructor(rootRequestPath: string, options?: VSS_WebApi.IVssHttpClientOptions);
+ /**
+ * [Preview API]
+ *
+ * @param {Contracts.ConnectedServer} connectedServer
+ * @return IPromise
+ */
+ connectConnectedServer(connectedServer: Contracts.ConnectedServer): IPromise;
+ /**
+ * [Preview API]
+ *
+ * @param {Contracts.ConnectedServer} connectedServer
+ * @return IPromise
+ */
+ createConnectedServer(connectedServer: Contracts.ConnectedServer): IPromise;
}
/**
* @exemptedapi
@@ -5175,6 +5343,7 @@ export interface Hub {
export interface HubGroup {
builtIn: boolean;
hasHubs: boolean;
+ hidden: boolean;
icon: string;
id: string;
name: string;
@@ -5189,6 +5358,7 @@ export interface HubsContext {
hubGroups: HubGroup[];
hubGroupsCollectionContributionId: string;
hubs: Hub[];
+ pinningPreferences: PinningPreferences;
selectedHubGroupId: string;
selectedHubId: string;
}
@@ -5410,6 +5580,15 @@ export interface PageContext {
*/
webContext: WebContext;
}
+export interface PinningPreferences {
+ pinnedHubGroupIds: string[];
+ pinnedHubs: {
+ [key: string]: string[];
+ };
+ unpinnedHubs: {
+ [key: string]: string[];
+ };
+}
/**
* Holds a lookup of urls for different services (at different host levels)
*/
@@ -5678,6 +5857,9 @@ export var TypeInfo: {
PageContext: {
fields: any;
};
+ PinningPreferences: {
+ fields: any;
+ };
ServiceLocations: {
fields: any;
};
@@ -6008,6 +6190,17 @@ export function processContributedServiceContext(context: Contracts_Platform.Con
declare module "VSS/Contributions/Contracts" {
import VSS_Common_Contracts = require("VSS/WebApi/Contracts");
import VSS_Gallery_Contracts = require("VSS/Gallery/Contracts");
+export enum AcquisitionAssignmentType {
+ None = 0,
+ /**
+ * Just assign for me
+ */
+ Me = 1,
+ /**
+ * Assign for all users in the account
+ */
+ All = 2,
+}
export interface AcquisitionOperation {
/**
* State of the the AcquisitionOperation for the current user
@@ -6021,6 +6214,20 @@ export interface AcquisitionOperation {
* Optional reason to justify current state. Typically used with Disallow state.
*/
reason: string;
+ /**
+ * List of reasons indicating why the operation is not allowed.
+ */
+ reasons: AcquisitionOperationDisallowReason[];
+}
+export interface AcquisitionOperationDisallowReason {
+ /**
+ * User-friendly message clarifying the reason for disallowance
+ */
+ message: string;
+ /**
+ * Type of reason for disallowance - AlreadyInstalled, UnresolvedDemand, etc.
+ */
+ type: string;
}
export enum AcquisitionOperationState {
/**
@@ -6271,6 +6478,35 @@ export interface DataProviderResult {
*/
resolvedProviders: ResolvedDataProvider[];
}
+/**
+ * Contract for handling the extension acquisition process
+ */
+export interface ExtensionAcquisitionRequest {
+ /**
+ * How the item is being assigned
+ */
+ assignmentType: AcquisitionAssignmentType;
+ /**
+ * The id of the subscription used for purchase
+ */
+ billingId: string;
+ /**
+ * The marketplace id (publisherName.extensionName) for the item
+ */
+ itemId: string;
+ /**
+ * The type of operation, such as install, request, purchase
+ */
+ operationType: AcquisitionOperationType;
+ /**
+ * Additional properties which can be added to the request.
+ */
+ properties: any;
+ /**
+ * How many licenses should be purchased
+ */
+ quantity: number;
+}
/**
* Represents the state of an extension request
*/
@@ -6314,6 +6550,10 @@ export interface ExtensionAuditLogEntry {
*/
updatedBy: VSS_Common_Contracts.IdentityRef;
}
+export interface ExtensionAuthorization {
+ id: string;
+ scopes: string[];
+}
/**
* Represents a single collection for extension data documents
*/
@@ -6412,6 +6652,10 @@ export interface ExtensionManifest {
* List of contribution types defined by this extension
*/
contributionTypes: ContributionType[];
+ /**
+ * List of explicit demands required by this extension
+ */
+ demands: string[];
/**
* Collection of endpoints that get called when particular extension events occur
*/
@@ -6525,6 +6769,18 @@ export enum ExtensionStateFlags {
* Extension is currently in an error state
*/
Error = 64,
+ /**
+ * Extension scopes have changed and the extension requires re-authorization
+ */
+ NeedsReauthorization = 128,
+ /**
+ * Error performing auto-upgrade. For example, if the new version has demands not supported the extension cannot be auto-upgraded.
+ */
+ AutoUpgradeError = 256,
+ /**
+ * Extension is currently in a warning state, that can cause a degraded experience. The degraded experience can be caused for example by some installation issues detected like as implicit demands not supported.
+ */
+ Warning = 512,
}
/**
* Represents a VSTS extension along with its installation state
@@ -6583,11 +6839,42 @@ export interface InstalledExtensionState {
* States of an installed extension
*/
flags: ExtensionStateFlags;
+ /**
+ * List of installation issues
+ */
+ installationIssues: InstalledExtensionStateIssue[];
/**
* The time at which this installation was last updated
*/
lastUpdated: Date;
}
+/**
+ * Represents an installation issue
+ */
+export interface InstalledExtensionStateIssue {
+ /**
+ * The error message
+ */
+ message: string;
+ /**
+ * Source of the installation issue, for example "Demands"
+ */
+ source: string;
+ /**
+ * Installation issue type (Warning, Error)
+ */
+ type: InstalledExtensionStateIssueType;
+}
+export enum InstalledExtensionStateIssueType {
+ /**
+ * Represents an installation warning, for example an implicit demand not supported
+ */
+ Warning = 0,
+ /**
+ * Represents an installation error, for example an explicit demand not supported
+ */
+ Error = 1,
+}
/**
* A request for an extension (to be installed or have a license assigned)
*/
@@ -6647,6 +6934,13 @@ export interface SupportedExtension {
version: string;
}
export var TypeInfo: {
+ AcquisitionAssignmentType: {
+ enumValues: {
+ "none": number;
+ "me": number;
+ "all": number;
+ };
+ };
AcquisitionOperation: any;
AcquisitionOperationState: {
enumValues: {
@@ -6683,6 +6977,7 @@ export var TypeInfo: {
};
};
ContributionType: any;
+ ExtensionAcquisitionRequest: any;
ExtensionAuditLog: any;
ExtensionAuditLogEntry: any;
ExtensionFlags: {
@@ -6711,10 +7006,20 @@ export var TypeInfo: {
"versionCheckError": number;
"trusted": number;
"error": number;
+ "needsReauthorization": number;
+ "autoUpgradeError": number;
+ "warning": number;
};
};
InstalledExtension: any;
InstalledExtensionState: any;
+ InstalledExtensionStateIssue: any;
+ InstalledExtensionStateIssueType: {
+ enumValues: {
+ "warning": number;
+ "error": number;
+ };
+ };
RequestedExtension: any;
};
}
@@ -7053,6 +7358,7 @@ export class WebPageDataService extends Service.VssService {
private _localData;
private _resolvedProviders;
private _contributionPromises;
+ private _contributionIdsByDataType;
private _ensureInitialized();
private _handleDataProviderResult(result, contributions);
private _compatServiceContextPlugin(key, newValue, existingValue);
@@ -7077,6 +7383,13 @@ export class WebPageDataService extends Service.VssService {
* @param contractMetadata Optional contract metadata to use to deserialize the object
*/
getPageData(key: string, contractMetadata?: Serialization.ContractMetadata): T;
+ /**
+ * Get the page data entries from all data provider contributions with the given dataType property.
+ *
+ * @param dataType Value of the dataType property in the data provider contribution's properties
+ * @param contractMetadata Optional contract metadata to use to deserialize the returned values.
+ */
+ getPageDataByDataType(dataType: string, contractMetadata?: Serialization.ContractMetadata): IDictionaryStringTo;
/**
* Ensure that all data providers have been resolved for all of the given data-provider contributions
*
@@ -9301,15 +9614,64 @@ export class FileDropTarget extends Controls.Enhancement
}
declare module "VSS/Controls/Filters" {
import Controls = require("VSS/Controls");
+import Utils_UI = require("VSS/Utils/UI");
+/**
+ * Options for the FlterControl
+ */
export interface IFilterControlOptions extends Controls.EnhancementOptions {
+ /**
+ * Hide or show corresponding clause section
+ */
enableGrouping?: boolean;
- enableRowAddRemove?: boolean;
hideLogicalOperator?: boolean;
hideOperatorHeader?: boolean;
+ /**
+ * Enable add or remove clause behavior
+ */
+ enableRowAddRemove?: boolean;
+ /**
+ * Add clause behavior will prepend instead of append. Used with enableRowAddRemove
+ */
+ prependAddRow?: boolean;
+ /**
+ * Add blur propogation to field, operator, and value controls
+ */
propogateControlBlur?: boolean;
}
+/**
+ * Model for FilterControl
+ */
+export interface IFilter {
+ clauses?: IFilterClause[];
+ maxGroupLevel?: number;
+ groups?: Utils_UI.IFilterGroup[];
+}
+/**
+ * Model for an individual clause
+ */
+export interface IFilterClause {
+ index?: number;
+ logicalOperator?: string;
+ fieldName?: string;
+ operator?: string;
+ value?: string;
+}
+/**
+ * Info of a clause role including member controls, element, and model information
+ */
+export interface IFilterClauseInfo {
+ clause?: IFilterClause;
+ $row?: JQuery;
+ logicalOperatorControl?: any;
+ fieldNameControl?: any;
+ operatorControl?: any;
+ valueControl?: any;
+ group?: Utils_UI.IFilterGroup;
+}
export class FilterControlO extends Controls.Control {
static enhancementTypeName: string;
+ protected static ADD_REMOVE_CLASS: string;
+ protected static ADD_CLAUSE_ROW_CLASS: string;
private _clauseTable;
private _groupHeaderCell;
private _filter;
@@ -9376,7 +9738,7 @@ export class FilterControlO extends Cont
*/
initializeOptions(options?: IFilterControlOptions): void;
setFilter(filter: any): void;
- private _createClauseTable();
+ protected _createClauseTable(): void;
private _createHeaderRow();
_getInsertClauseTooltipText(): string;
_getRemoveClauseTooltipText(): string;
@@ -9969,6 +10331,7 @@ export class GridO extends Controls.Control void;
+}
+/**
+ * Options for menus with pinnable items. This is intended to support the case where there is a menu of
+ * pinned items (the target menu), with a submenu that displays all items (the source menu). Set
+ * isPinnableTarget hideUnpinnedItems on the target menu, and isPinnableSource and optionally
+ * hidePinnedItems on the source menu.
+ * See also IMenuItemPinningOptions.
+ */
+export interface IMenuPinningOptions {
+ /**
+ * Set to true to hide unpinned items in this item's submenu.
+ */
+ hideUnpinnedItems?: boolean;
+ /**
+ * Set to true to hide pinned items in this item's submenu.
+ */
+ hidePinnedItems?: boolean;
+ /**
+ * Set to true if this item's submenu is the target pinned items are pinned to. The pinning source should be a submenu of this item's submenu.
+ */
+ isPinningTarget?: boolean;
+ /**
+ * Set to true if this item's submenu is where all pinnable items are shown. The pinning target should be the parent menu of this item.
+ */
+ isPinningSource?: boolean;
+ /**
+ * Set to true on the pinning target if newly-pinned items should be moved to the end of the list.
+ */
+ pinItemsToEnd?: boolean;
+}
export interface MenuBaseOptions {
type: string;
contextInfo: any;
@@ -11296,7 +11736,7 @@ export interface MenuBaseOptions {
export class MenuBase extends Controls.Control {
_type: any;
_parent: any;
- _children: any;
+ _children: any[];
_commandStates: any;
actionArguments: any;
/**
@@ -11305,6 +11745,10 @@ export class MenuBase extends Controls.Control
constructor(options?: any);
getOwner(): any;
getParent(): MenuBase;
+ /**
+ * Get the parent menu of this.
+ */
+ getParentMenu(): Menu;
getContextInfo(): any;
/**
* @return
@@ -11338,8 +11782,12 @@ export class MenuItem extends MenuBase {
private _highlightHover;
private _highlightPressed;
private _index;
+ private _isPinned;
+ private _pinElement;
_item: any;
_align: any;
+ private static PinnedIconClass;
+ private static UnpinnedIconClass;
/**
* @param options
*/
@@ -11348,7 +11796,9 @@ export class MenuItem extends MenuBase {
* @param options
*/
initializeOptions(options?: MenuItemOptions): void;
+ getParentMenu(): Menu;
getCommandId(): any;
+ getPinningOptions(): IMenuItemPinningOptions;
getAction(): any;
hasAction(): boolean;
hasSubMenu(): any;
@@ -11371,7 +11821,6 @@ export class MenuItem extends MenuBase {
update(item: any): void;
updateItems(items: any): void;
_decorate(): void;
- private _getDropIcon();
private _getExternalIcon(url);
select(): void;
deselect(): void;
@@ -11437,6 +11886,7 @@ export class MenuItem extends MenuBase {
private _onMouseUp(e?);
private _onClick(e?);
private _onDropClick(e?);
+ private _onPinClick(e);
private _onKeyDown(e);
}
export interface MenuContributionProviderOptions {
@@ -11445,6 +11895,7 @@ export interface MenuContributionProviderOptions {
export interface MenuOptions extends MenuBaseOptions {
suppressInitContributions: boolean;
contributionIds: string[];
+ contributionType: string;
/**
* Items to be displayed in the menu
*/
@@ -11454,6 +11905,10 @@ export interface MenuOptions extends MenuBaseOptions {
*/
executeAction: Function;
getContributionContext: Function;
+ /**
+ * Control the behavior of pinnable items in the menu.
+ */
+ pinningMenuOptions: IMenuPinningOptions;
}
/**
* @publicapi
@@ -11474,7 +11929,7 @@ export class Menu extends MenuBase {
protected _contributedItems: IContributedMenuItem[];
protected _contributionProviderOptions: MenuContributionProviderOptions;
protected _contributionPromise: IPromise;
- _menuItems: any;
+ _menuItems: MenuItem[];
_selectedItem: any;
_visible: boolean;
_active: boolean;
@@ -11513,6 +11968,9 @@ export class Menu extends MenuBase {
* @return
*/
getItemByTag(tag: string): MenuItem;
+ getMenuItemSpecs(): IMenuItemSpec[];
+ getParentMenu(): Menu;
+ getPinningOptions(): IMenuPinningOptions;
getCommandState(commandId: string, context?: any): MenuItemState;
/**
* Updates the command states of the items with the specified ids.
@@ -11533,6 +11991,15 @@ export class Menu extends MenuBase {
*/
getGroupedItems(): IMenuItemSpec[];
appendItems(appendedItems: any): void;
+ appendItem(item: IMenuItemSpec): void;
+ /**
+ * Move a menu item to appear immediately after the other given menu item.
+ * @param item
+ * @param after
+ */
+ moveMenuItemAfter(item: MenuItem, after: MenuItem): boolean;
+ removeItem(item: IMenuItemSpec): boolean;
+ removeMenuItem(menuItem: MenuItem): boolean;
/**
* @param element
*/
@@ -16470,6 +16937,10 @@ export interface ExtensionManifest {
* List of contribution types defined by this extension
*/
contributionTypes: ContributionType[];
+ /**
+ * List of explicit demands required by this extension
+ */
+ demands: string[];
/**
* Collection of endpoints that get called when particular extension events occur
*/
@@ -16583,6 +17054,10 @@ export enum ExtensionStateFlags {
* Extension is currently in an error state
*/
Error = 64,
+ /**
+ * Extension scopes have changed and the extension requires re-authorization
+ */
+ NeedsReauthorization = 128,
}
/**
* Represents a VSTS extension along with its installation state
@@ -16769,6 +17244,7 @@ export var TypeInfo: {
"versionCheckError": number;
"trusted": number;
"error": number;
+ "needsReauthorization": number;
};
};
InstalledExtension: any;
@@ -16852,9 +17328,10 @@ export class CommonMethods2To3 extends VSS_WebApi.VssHttpClient {
* @param {boolean} includeDisabledExtensions
* @param {boolean} includeErrors
* @param {string[]} assetTypes
+ * @param {boolean} includeInstallationIssues
* @return IPromise
*/
- getInstalledExtensions(includeDisabledExtensions?: boolean, includeErrors?: boolean, assetTypes?: string[]): IPromise;
+ getInstalledExtensions(includeDisabledExtensions?: boolean, includeErrors?: boolean, assetTypes?: string[], includeInstallationIssues?: boolean): IPromise;
}
export class CommonMethods2_1To3 extends CommonMethods2To3 {
protected dataApiVersion: string;
@@ -16902,9 +17379,10 @@ export class CommonMethods2_1To3 extends CommonMethods2To3 {
*
* @param {boolean} includeDisabled
* @param {boolean} includeErrors
+ * @param {boolean} includeInstallationIssues
* @return IPromise
*/
- getStates(includeDisabled?: boolean, includeErrors?: boolean): IPromise;
+ getStates(includeDisabled?: boolean, includeErrors?: boolean, includeInstallationIssues?: boolean): IPromise;
/**
* [Preview API]
*
@@ -17007,9 +17485,27 @@ export class ExtensionManagementHttpClient3 extends CommonMethods2_2To3 {
* [Preview API]
*
* @param {string} itemId
+ * @param {boolean} testCommerce
+ * @param {boolean} isFreeOrTrialInstall
* @return IPromise
*/
- getAcquisitionOptions(itemId: string): IPromise;
+ getAcquisitionOptions(itemId: string, testCommerce?: boolean, isFreeOrTrialInstall?: boolean): IPromise;
+ /**
+ * [Preview API]
+ *
+ * @param {Contracts.ExtensionAcquisitionRequest} acquisitionRequest
+ * @return IPromise
+ */
+ requestAcquisition(acquisitionRequest: Contracts.ExtensionAcquisitionRequest): IPromise;
+ /**
+ * [Preview API]
+ *
+ * @param {string} publisherName
+ * @param {string} extensionName
+ * @param {string} registrationId
+ * @return IPromise
+ */
+ registerAuthorization(publisherName: string, extensionName: string, registrationId: string): IPromise;
}
/**
* @exemptedapi
@@ -17543,6 +18039,26 @@ export interface AcquisitionOptions {
*/
target: string;
}
+export interface Answers {
+ /**
+ * Gets or sets the vs marketplace extension name
+ */
+ vSMarketplaceExtensionName: string;
+ /**
+ * Gets or sets the vs marketplace publsiher name
+ */
+ vSMarketplacePublisherName: string;
+}
+export interface AssetDetails {
+ /**
+ * Gets or sets the Answers, which contains vs marketplace extension name and publisher name
+ */
+ answers: Answers;
+ /**
+ * Gets or sets the VS publisher Id
+ */
+ publisherNaturalIdentifier: string;
+}
export interface AzurePublisher {
azurePublisherId: string;
publisherName: string;
@@ -17551,7 +18067,7 @@ export interface AzureRestApiRequestModel {
/**
* Gets or sets the Asset details
*/
- assetDetails: any;
+ assetDetails: AssetDetails;
/**
* Gets or sets the asset id
*/
@@ -17564,34 +18080,18 @@ export interface AzureRestApiRequestModel {
* Gets or sets the customer support email
*/
customerSupportEmail: string;
- /**
- * Gets or sets the customer support phone number
- */
- customerSupportPhoneNumber: string;
- /**
- * Gets or sets the resource id
- */
- id: string;
/**
* Gets or sets the integration contact email
*/
integrationContactEmail: string;
- /**
- * Gets or sets the integration contact phone number
- */
- integrationContactPhoneNumber: string;
/**
* Gets or sets the asset version
*/
- operation: AzureRestApiRequestOperationType;
+ operation: string;
/**
* Gets or sets the plan identifier if any.
*/
planId: string;
- /**
- * Gets or sets the previous operation details if any
- */
- previousOperationDetails: any;
/**
* Gets or sets the publisher id
*/
@@ -17601,32 +18101,6 @@ export interface AzureRestApiRequestModel {
*/
type: string;
}
-export enum AzureRestApiRequestOperationType {
- /**
- * The operation is for preview (or stage for testing).
- */
- Preview = 0,
- /**
- * The operation is for production.
- */
- Production = 1,
- /**
- * The operation is for hide.
- */
- Hide = 2,
- /**
- * The operation is for unhide.
- */
- Show = 3,
- /**
- * The operation is for delete previewed or staged assets.
- */
- DeletePreview = 4,
- /**
- * The operation is for delete listed or live assets.
- */
- DeleteProduction = 5,
-}
export interface AzureRestApiResponseModel extends AzureRestApiRequestModel {
/**
* Gets or sets the Asset operation status
@@ -17917,6 +18391,19 @@ export interface ExtensionStatistic {
statisticName: string;
value: number;
}
+export enum ExtensionStatisticOperation {
+ None = 0,
+ Set = 1,
+ Increment = 2,
+ Decrement = 3,
+ Delete = 4,
+}
+export interface ExtensionStatisticUpdate {
+ extensionName: string;
+ operation: ExtensionStatisticOperation;
+ publisherName: string;
+ statistic: ExtensionStatistic;
+}
export interface ExtensionVersion {
assetUri: string;
files: ExtensionFile[];
@@ -17985,8 +18472,15 @@ export interface PublishedExtension {
installationTargets: InstallationTarget[];
lastUpdated: Date;
longDescription: string;
+ /**
+ * Date on which the extension was first uploaded.
+ */
publishedDate: Date;
publisher: PublisherFacts;
+ /**
+ * Date on which the extension first went public.
+ */
+ releaseDate: Date;
sharedWith: ExtensionShare[];
shortDescription: string;
statistics: ExtensionStatistic[];
@@ -18327,6 +18821,10 @@ export enum ReviewPatchOperation {
* Update an existing review
*/
UpdateReview = 2,
+ /**
+ * Submit a reply for a review
+ */
+ ReplyToReview = 3,
}
export interface ReviewReply {
/**
@@ -18417,6 +18915,10 @@ export enum SortByType {
* The results will be sorted as per Trending monthly Score of the extensions
*/
TrendingMonthly = 9,
+ /**
+ * The results will be sorted as per ReleaseDate of the extensions (date on which the extension first went public)
+ */
+ ReleaseDate = 10,
}
export enum SortOrderType {
/**
@@ -18554,6 +19056,16 @@ export var TypeInfo: {
};
};
ExtensionQueryResult: any;
+ ExtensionStatisticOperation: {
+ enumValues: {
+ "none": number;
+ "set": number;
+ "increment": number;
+ "decrement": number;
+ "delete": number;
+ };
+ };
+ ExtensionStatisticUpdate: any;
ExtensionVersion: any;
ExtensionVersionFlags: {
enumValues: {
@@ -18642,6 +19154,7 @@ export var TypeInfo: {
enumValues: {
"flagReview": number;
"updateReview": number;
+ "replyToReview": number;
};
};
ReviewReply: any;
@@ -18658,6 +19171,7 @@ export var TypeInfo: {
"trendingDaily": number;
"trendingWeekly": number;
"trendingMonthly": number;
+ "releaseDate": number;
};
};
SortOrderType: {
@@ -18938,9 +19452,10 @@ export class CommonMethods2_2To3 extends CommonMethods2_1To3 {
* @param {string} itemId
* @param {string} installationTarget
* @param {boolean} testCommerce
+ * @param {boolean} isFreeOrTrialInstall
* @return IPromise
*/
- getAcquisitionOptions(itemId: string, installationTarget: string, testCommerce?: boolean): IPromise;
+ getAcquisitionOptions(itemId: string, installationTarget: string, testCommerce?: boolean, isFreeOrTrialInstall?: boolean): IPromise;
}
/**
* @exemptedapi
@@ -19018,6 +19533,15 @@ export class GalleryHttpClient3 extends CommonMethods2_2To3 {
* @return IPromise
*/
createCategory(category: Contracts.ExtensionCategory): IPromise;
+ /**
+ * [Preview API]
+ *
+ * @param {Contracts.ExtensionStatisticUpdate} extensionStatisticsUpdate
+ * @param {string} publisherName
+ * @param {string} extensionName
+ * @return IPromise
+ */
+ updateExtensionStatistics(extensionStatisticsUpdate: Contracts.ExtensionStatisticUpdate, publisherName: string, extensionName: string): IPromise;
}
/**
* @exemptedapi
@@ -19649,9 +20173,9 @@ export interface IIdentityPickerDropdownOptions extends Identities_Picker_Servic
**/
onHide?: (event?: JQueryEventObject) => void;
/**
- * Callback to execute when the id card blurs in the dropdown control
+ * An element that will receive focus when the contact card for an item in the dropdown is closed
**/
- onIdCardBlurCallback?: () => void;
+ focusElementOnContactCardClose?: JQuery;
}
/**
* @exemptedapi
@@ -19679,6 +20203,7 @@ export class IdentityPickerDropdownControl extends Controls.Control void;
+ focusElementOnClose?: JQuery;
}
export class IdCardDialog extends Controls.Control {
static IDCARD_LOADED_EVENT: string;
@@ -19861,6 +20385,9 @@ export class IdCardDialog extends Controls.Control" (see the option showTemporaryDisplayName for details)
**/
items?: string | Identities_Picker_RestClient.IEntity[];
/**
@@ -19915,7 +20452,7 @@ export interface IIdentityPickerSearchOptions extends Identities_Picker_Services
**/
multiIdentitySearch?: boolean;
/**
- * whether to display the contact card icon for each identity in the dropdown. Default false.
+ * whether to display the contact card icon for each identity in the dropdown and for resolved identities. Default false.
**/
showContactCard?: boolean;
/**
@@ -19963,6 +20500,11 @@ export interface IIdentityPickerSearchOptions extends Identities_Picker_Services
* Callbacks supported by the search control
**/
callbacks?: ISearchControlCallbackOptions;
+ /**
+ * in case the control gets initialized with items in the format "DisplayName ",
+ * whether to show the DisplayName until the UniqueIdentifier gets resolved to an IEntity. Default false
+ **/
+ showTemporaryDisplayName?: boolean;
}
/**
* @exemptedapi
@@ -20006,10 +20548,7 @@ export class IdentityPickerSearchControl extends Controls.Control
+ * @return IPromise
*/
- getUsageRights(rightName?: string): IPromise;
+ getUsageRights(rightName?: string): IPromise;
/**
* [Preview API]
*
- * @return IPromise
+ * @return IPromise
*/
- getAccountLicensesUsage(): IPromise;
+ getAccountLicensesUsage(): IPromise;
/**
* [Preview API]
*
* @param {string} rightName
+ * @return IPromise
+ */
+ getServiceRights(rightName?: string): IPromise;
+ /**
+ * [Preview API]
+ *
+ * @return IPromise
+ */
+ getEntitlements(): IPromise;
+ /**
+ * [Preview API]
+ *
* @return IPromise
*/
- getServiceRights(rightName?: string): IPromise;
+ getMsdnPresence(): IPromise;
/**
* [Preview API]
*
@@ -21101,6 +21759,47 @@ export class CommonMethods2To3 extends VSS_WebApi.VssHttpClient {
* @return IPromise
*/
getExtensionLicenseData(extensionId: string): IPromise;
+ /**
+ * [Preview API] Get the entitlements for a user
+ *
+ * @param {string} userId - The id of the user
+ * @return IPromise
+ */
+ getAccountEntitlementForUser(userId: string): IPromise;
+ /**
+ * [Preview API]
+ *
+ * @param {string} userId
+ * @return IPromise
+ */
+ deleteUserEntitlements(userId: string): IPromise;
+ /**
+ * [Preview API] Assign an explicit account entitlement
+ *
+ * @param {Contracts.AccountEntitlementUpdateModel} body - The update model for the entitlement
+ * @param {string} userId - The id of the user
+ * @return IPromise
+ */
+ assignAccountEntitlementForUser(body: Contracts.AccountEntitlementUpdateModel, userId: string): IPromise;
+ /**
+ * [Preview API]
+ *
+ * @return IPromise
+ */
+ getAccountEntitlements(): IPromise;
+ /**
+ * [Preview API]
+ *
+ * @return IPromise
+ */
+ getAccountEntitlement(): IPromise;
+ /**
+ * [Preview API] Assign an available entitilement to a user
+ *
+ * @param {string} userId - The user to which to assign the entitilement
+ * @return IPromise
+ */
+ assignAvailableAccountEntitlement(userId: string): IPromise;
/**
* [Preview API]
*
@@ -21111,15 +21810,15 @@ export class CommonMethods2To3 extends VSS_WebApi.VssHttpClient {
* @param {boolean} includeCertificate
* @param {string} canary
* @param {string} machineId
- * @return IPromise
+ * @return IPromise
*/
- getClientRights(rightName?: string, productVersion?: string, edition?: string, relType?: string, includeCertificate?: boolean, canary?: string, machineId?: string): IPromise;
+ getClientRights(rightName?: string, productVersion?: string, edition?: string, relType?: string, includeCertificate?: boolean, canary?: string, machineId?: string): IPromise;
/**
* [Preview API]
*
- * @return IPromise
+ * @return IPromise
*/
- getCertificate(): IPromise;
+ getCertificate(): IPromise;
}
/**
* @exemptedapi
@@ -21854,7 +22553,8 @@ declare module "VSS/Organization/Contracts" {
export enum AssignmentStatus {
Unassignable = 0,
Assignable = 10,
- Assigned = 20,
+ Assigning = 20,
+ Assigned = 30,
}
export interface Collection {
data: {
@@ -21931,6 +22631,7 @@ export var TypeInfo: {
enumValues: {
"unassignable": number;
"assignable": number;
+ "assigning": number;
"assigned": number;
};
};
@@ -25378,6 +26079,7 @@ export enum KeyCode {
H = 72,
T = 84,
QUESTION_MARK = 191,
+ CONTEXT_MENU = 93,
}
export module KeyUtils {
/**
@@ -26442,6 +27144,11 @@ export interface IVssHttpClientOptions {
* Current command for activity logging.
*/
command?: string;
+ /**
+ * If true, include links and urls (typically Uri properties) in the JSON responses. If false (default), then
+ * send an excludeUrls=true header to suppress the generation of links in the JSON responses of requests from this client.
+ */
+ includeUrls?: boolean;
}
/**
* Base class that should be used (derived from) to make requests to VSS REST apis