Definitions - Create

Create a release definition

POST https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/definitions?api-version=5.0

URI Parameters

Name In Required Type Description
organization
path True

string

The name of the Azure DevOps organization.

project
path True

string

Project ID or project name

api-version
query True

string

Version of the API to use. This should be set to '5.0' to use this version of the api.

Request Body

Name Type Description
_links

ReferenceLinks

Gets the links to related resources, APIs, and views for the release definition.

artifacts

Artifact[]

Gets or sets the list of artifacts.

comment

string

Gets or sets comment.

createdBy

IdentityRef

Gets or sets the identity who created.

createdOn

string

Gets date on which it got created.

description

string

Gets or sets the description.

environments

ReleaseDefinitionEnvironment[]

Gets or sets the list of environments.

id

integer

Gets the unique identifier of release definition.

isDeleted

boolean

Whether release definition is deleted.

lastRelease

ReleaseReference

Gets the reference of last release.

modifiedBy

IdentityRef

Gets or sets the identity who modified.

modifiedOn

string

Gets date on which it got modified.

name

string

Gets or sets the name of the release definition.

path

string

Gets or sets the path of the release definition.

projectReference

ProjectReference

Gets or sets project reference.

properties

PropertiesCollection

Gets or sets properties.

releaseNameFormat

string

Gets or sets the release name format.

revision

integer

Gets the revision number.

source

ReleaseDefinitionSource

Gets or sets source of release definition.

tags

string[]

Gets or sets list of tags.

triggers

ReleaseTriggerBase[]

Gets or sets the list of triggers.

url

string

Gets the REST API url to access the release definition.

variableGroups

integer[]

Gets or sets the list of variable groups.

variables

<string,  ConfigurationVariableValue>

Gets or sets the dictionary of variables.

Responses

Name Type Description
200 OK

ReleaseDefinition

successful operation

Security

oauth2

Type: oauth2
Flow: accessCode
Authorization URL: https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
Token URL: https://app.vssps.visualstudio.com/oauth2/token?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer

Scopes

Name Description
vso.release_execute Grants the ability to read and update release artifacts, including releases, release definitions and release envrionment, and the ability to queue a new release.

Definitions

Name Description
ApprovalExecutionOrder
ApprovalOptions
Artifact
ArtifactSourceReference
AuthorizationHeader
Condition
ConditionType

Gets or sets the condition type.

ConfigurationVariableValue
DataSourceBindingBase

Represents binding of data source for the service endpoint request.

Demand
DeployPhase
DeployPhaseTypes
EnvironmentExecutionPolicy

Defines policy on environment queuing at Release Management side queue. We will send to Environment Runner [creating pre-deploy and other steps] only when the policies mentioned are satisfied.

EnvironmentOptions
EnvironmentRetentionPolicy
EnvironmentTrigger
EnvironmentTriggerType
IdentityRef
ProcessParameters
ProjectReference
PropertiesCollection

The class represents a property bag as a collection of key-value pairs. Values of all primitive types (any type with a TypeCode != TypeCode.Object) except for DBNull are accepted. Values of type Byte[], Int32, Double, DateType and String preserve their type, other primitives are retuned as a String. Byte[] expected as base64 encoded string.

ReferenceLinks

The class to represent a collection of REST reference links.

ReleaseDefinition
ReleaseDefinitionApprovals
ReleaseDefinitionApprovalStep
ReleaseDefinitionDeployStep
ReleaseDefinitionEnvironment
ReleaseDefinitionGate
ReleaseDefinitionGatesOptions
ReleaseDefinitionGatesStep
ReleaseDefinitionShallowReference
ReleaseDefinitionSource

Gets or sets source of release definition.

ReleaseReason

Gets reason for release.

ReleaseReference
ReleaseSchedule
ReleaseShallowReference
ReleaseTriggerBase
ReleaseTriggerType
ScheduleDays

Days of the week to release

TaskInputDefinitionBase
TaskInputValidation
TaskSourceDefinitionBase
WorkflowTask

ApprovalExecutionOrder

Name Type Description
afterGatesAlways

string

afterSuccessfulGates

string

beforeGates

string

ApprovalOptions

Name Type Description
autoTriggeredAndPreviousEnvironmentApprovedCanBeSkipped

boolean

enforceIdentityRevalidation

boolean

executionOrder

ApprovalExecutionOrder

releaseCreatorCanBeApprover

boolean

requiredApproverCount

integer

timeoutInMinutes

integer

Artifact

Name Type Description
alias

string

Gets or sets alias.

definitionReference

<string,  ArtifactSourceReference>

Gets or sets definition reference. e.g. {"project":{"id":"fed755ea-49c5-4399-acea-fd5b5aa90a6c","name":"myProject"},"definition":{"id":"1","name":"mybuildDefinition"},"connection":{"id":"1","name":"myConnection"}}

isPrimary

boolean

Gets or sets as artifact is primary or not.

isRetained

boolean

type

string

Gets or sets type. It can have value as 'Build', 'Jenkins', 'GitHub', 'Nuget', 'Team Build (external)', 'ExternalTFSBuild', 'Git', 'TFVC', 'ExternalTfsXamlBuild'.

ArtifactSourceReference

Name Type Description
id

string

name

string

AuthorizationHeader

Name Type Description
name

string

value

string

Condition

Name Type Description
conditionType

ConditionType

Gets or sets the condition type.

name

string

Gets or sets the name of the condition. e.g. 'ReleaseStarted'.

value

string

Gets or set value of the condition.

ConditionType

Gets or sets the condition type.

Name Type Description
artifact

string

The condition type is artifact.

environmentState

string

The condition type is environment state.

event

string

The condition type is event.

undefined

string

The condition type is undefined.

ConfigurationVariableValue

Name Type Description
allowOverride

boolean

Gets or sets if a variable can be overridden at deployment time or not.

isSecret

boolean

Gets or sets as variable is secret or not.

value

string

Gets or sets value of the configuration variable.

DataSourceBindingBase

Represents binding of data source for the service endpoint request.

Name Type Description
callbackContextTemplate

string

Pagination format supported by this data source(ContinuationToken/SkipTop).

callbackRequiredTemplate

string

Subsequent calls needed?

dataSourceName

string

Gets or sets the name of the data source.

endpointId

string

Gets or sets the endpoint Id.

endpointUrl

string

Gets or sets the url of the service endpoint.

headers

AuthorizationHeader[]

Gets or sets the authorization headers.

initialContextTemplate

string

Defines the initial value of the query params

parameters

object

Gets or sets the parameters for the data source.

resultSelector

string

Gets or sets the result selector.

resultTemplate

string

Gets or sets the result template.

target

string

Gets or sets the target of the data source.

Demand

Name Type Description
name

string

value

string

DeployPhase

Name Type Description
name

string

phaseType

DeployPhaseTypes

rank

integer

refName

string

workflowTasks

WorkflowTask[]

DeployPhaseTypes

Name Type Description
agentBasedDeployment

string

deploymentGates

string

Phase type which contains tasks which acts as Gates for the deployment to go forward.

machineGroupBasedDeployment

string

runOnServer

string

undefined

string

EnvironmentExecutionPolicy

Defines policy on environment queuing at Release Management side queue. We will send to Environment Runner [creating pre-deploy and other steps] only when the policies mentioned are satisfied.

Name Type Description
concurrencyCount

integer

This policy decides, how many environments would be with Environment Runner.

queueDepthCount

integer

Queue depth in the EnvironmentQueue table, this table keeps the environment entries till Environment Runner is free [as per it's policy] to take another environment for running.

EnvironmentOptions

Name Type Description
autoLinkWorkItems

boolean

badgeEnabled

boolean

emailNotificationType

string

emailRecipients

string

enableAccessToken

boolean

publishDeploymentStatus

boolean

pullRequestDeploymentEnabled

boolean

skipArtifactsDownload

boolean

timeoutInMinutes

integer

EnvironmentRetentionPolicy

Name Type Description
daysToKeep

integer

releasesToKeep

integer

retainBuild

boolean

EnvironmentTrigger

Name Type Description
definitionEnvironmentId

integer

releaseDefinitionId

integer

triggerContent

string

triggerType

EnvironmentTriggerType

EnvironmentTriggerType

Name Type Description
deploymentGroupRedeploy

string

rollbackRedeploy

string

undefined

string

IdentityRef

Name Type Description
_links

ReferenceLinks

This field contains zero or more interesting links about the graph subject. These links may be invoked to obtain additional relationships or more detailed information about this graph subject.

descriptor

string

The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the same graph subject across both Accounts and Organizations.

directoryAlias

string

displayName

string

This is the non-unique display name of the graph subject. To change this field, you must alter its value in the source provider.

id

string

imageUrl

string

inactive

boolean

isAadIdentity

boolean

isContainer

boolean

isDeletedInOrigin

boolean

profileUrl

string

uniqueName

string

url

string

This url is the full route to the source resource of this graph subject.

ProcessParameters

Name Type Description
dataSourceBindings

DataSourceBindingBase[]

Represents binding of data source for the service endpoint request.

inputs

TaskInputDefinitionBase[]

sourceDefinitions

TaskSourceDefinitionBase[]

ProjectReference

Name Type Description
id

string

Gets the unique identifier of this field.

name

string

Gets name of project.

PropertiesCollection

The class represents a property bag as a collection of key-value pairs. Values of all primitive types (any type with a TypeCode != TypeCode.Object) except for DBNull are accepted. Values of type Byte[], Int32, Double, DateType and String preserve their type, other primitives are retuned as a String. Byte[] expected as base64 encoded string.

Name Type Description
count

integer

The count of properties in the collection.

item

object

keys

string[]

The set of keys in the collection.

values

string[]

The set of values in the collection.

The class to represent a collection of REST reference links.

Name Type Description
links

object

The readonly view of the links. Because Reference links are readonly, we only want to expose them as read only.

ReleaseDefinition

Name Type Description
_links

ReferenceLinks

Gets the links to related resources, APIs, and views for the release definition.

artifacts

Artifact[]

Gets or sets the list of artifacts.

comment

string

Gets or sets comment.

createdBy

IdentityRef

Gets or sets the identity who created.

createdOn

string

Gets date on which it got created.

description

string

Gets or sets the description.

environments

ReleaseDefinitionEnvironment[]

Gets or sets the list of environments.

id

integer

Gets the unique identifier of release definition.

isDeleted

boolean

Whether release definition is deleted.

lastRelease

ReleaseReference

Gets the reference of last release.

modifiedBy

IdentityRef

Gets or sets the identity who modified.

modifiedOn

string

Gets date on which it got modified.

name

string

Gets or sets the name of the release definition.

path

string

Gets or sets the path of the release definition.

projectReference

ProjectReference

Gets or sets project reference.

properties

PropertiesCollection

Gets or sets properties.

releaseNameFormat

string

Gets or sets the release name format.

revision

integer

Gets the revision number.

source

ReleaseDefinitionSource

Gets or sets source of release definition.

tags

string[]

Gets or sets list of tags.

triggers

ReleaseTriggerBase[]

Gets or sets the list of triggers.

url

string

Gets the REST API url to access the release definition.

variableGroups

integer[]

Gets or sets the list of variable groups.

variables

<string,  ConfigurationVariableValue>

Gets or sets the dictionary of variables.

ReleaseDefinitionApprovals

Name Type Description
approvalOptions

ApprovalOptions

approvals

ReleaseDefinitionApprovalStep[]

ReleaseDefinitionApprovalStep

Name Type Description
approver

IdentityRef

id

integer

isAutomated

boolean

isNotificationOn

boolean

rank

integer

ReleaseDefinitionDeployStep

Name Type Description
id

integer

tasks

WorkflowTask[]

The list of steps for this definition.

ReleaseDefinitionEnvironment

Name Type Description
badgeUrl

string

conditions

Condition[]

currentRelease

ReleaseShallowReference

demands

Demand[]

deployPhases

DeployPhase[]

deployStep

ReleaseDefinitionDeployStep

environmentOptions

EnvironmentOptions

environmentTriggers

EnvironmentTrigger[]

executionPolicy

EnvironmentExecutionPolicy

Defines policy on environment queuing at Release Management side queue. We will send to Environment Runner [creating pre-deploy and other steps] only when the policies mentioned are satisfied.

id

integer

name

string

owner

IdentityRef

postDeployApprovals

ReleaseDefinitionApprovals

postDeploymentGates

ReleaseDefinitionGatesStep

preDeployApprovals

ReleaseDefinitionApprovals

preDeploymentGates

ReleaseDefinitionGatesStep

processParameters

ProcessParameters

properties

PropertiesCollection

The class represents a property bag as a collection of key-value pairs. Values of all primitive types (any type with a TypeCode != TypeCode.Object) except for DBNull are accepted. Values of type Byte[], Int32, Double, DateType and String preserve their type, other primitives are retuned as a String. Byte[] expected as base64 encoded string.

queueId

integer

rank

integer

retentionPolicy

EnvironmentRetentionPolicy

schedules

ReleaseSchedule[]

variableGroups

integer[]

variables

<string,  ConfigurationVariableValue>

ReleaseDefinitionGate

Name Type Description
tasks

WorkflowTask[]

ReleaseDefinitionGatesOptions

Name Type Description
isEnabled

boolean

minimumSuccessDuration

integer

samplingInterval

integer

stabilizationTime

integer

timeout

integer

ReleaseDefinitionGatesStep

Name Type Description
gates

ReleaseDefinitionGate[]

gatesOptions

ReleaseDefinitionGatesOptions

id

integer

ReleaseDefinitionShallowReference

Name Type Description
_links

ReferenceLinks

Gets the links to related resources, APIs, and views for the release definition.

id

integer

Gets the unique identifier of release definition.

name

string

Gets or sets the name of the release definition.

path

string

Gets or sets the path of the release definition.

projectReference

ProjectReference

Gets or sets project reference.

url

string

Gets the REST API url to access the release definition.

ReleaseDefinitionSource

Gets or sets source of release definition.

Name Type Description
ibiza

string

portalExtensionApi

string

restApi

string

undefined

string

userInterface

string

ReleaseReason

Gets reason for release.

Name Type Description
continuousIntegration

string

manual

string

none

string

pullRequest

string

schedule

string

ReleaseReference

Name Type Description
_links

ReferenceLinks

Gets links to access the release.

artifacts

Artifact[]

Gets list of artifacts.

createdBy

IdentityRef

Gets the identity who created.

createdOn

string

Gets date on which it got created.

description

string

Gets description.

id

integer

Gets the unique identifier of this field.

modifiedBy

IdentityRef

Gets the identity who modified.

name

string

Gets name of release.

reason

ReleaseReason

Gets reason for release.

releaseDefinition

ReleaseDefinitionShallowReference

Gets release definition shallow reference.

ReleaseSchedule

Name Type Description
daysToRelease

ScheduleDays

Days of the week to release

jobId

string

Team Foundation Job Definition Job Id

startHours

integer

Local time zone hour to start

startMinutes

integer

Local time zone minute to start

timeZoneId

string

Time zone Id of release schedule, such as 'UTC'

ReleaseShallowReference

Name Type Description
_links

ReferenceLinks

Gets the links to related resources, APIs, and views for the release.

id

integer

Gets the unique identifier of release.

name

string

Gets or sets the name of the release.

url

string

Gets the REST API url to access the release.

ReleaseTriggerBase

Name Type Description
triggerType

ReleaseTriggerType

ReleaseTriggerType

Name Type Description
artifactSource

string

containerImage

string

package

string

pullRequest

string

schedule

string

sourceRepo

string

undefined

string

ScheduleDays

Days of the week to release

Name Type Description
all

string

friday

string

monday

string

none

string

saturday

string

sunday

string

thursday

string

tuesday

string

wednesday

string

TaskInputDefinitionBase

Name Type Description
aliases

string[]

defaultValue

string

groupName

string

helpMarkDown

string

label

string

name

string

options

object

properties

object

required

boolean

type

string

validation

TaskInputValidation

visibleRule

string

TaskInputValidation

Name Type Description
expression

string

Conditional expression

message

string

Message explaining how user can correct if validation fails

TaskSourceDefinitionBase

Name Type Description
authKey

string

endpoint

string

keySelector

string

selector

string

target

string

WorkflowTask

Name Type Description
alwaysRun

boolean

condition

string

continueOnError

boolean

definitionType

string

enabled

boolean

environment

object

inputs

object

name

string

overrideInputs

object

refName

string

taskId

string

timeoutInMinutes

integer

version

string