curl --request PUT \
--url https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Standard Pipeline",
"phases": [
{
"audiences": [
{
"environmentKey": "<string>",
"name": "<string>",
"segmentKeys": [
"<string>"
]
}
],
"name": "Phase 1 - Testing",
"configuration": {}
}
],
"description": "Standard pipeline to roll out to production",
"tags": [
"example-tag"
]
}
'import requests
url = "https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}"
payload = {
"name": "Standard Pipeline",
"phases": [
{
"audiences": [
{
"environmentKey": "<string>",
"name": "<string>",
"segmentKeys": ["<string>"]
}
],
"name": "Phase 1 - Testing",
"configuration": {}
}
],
"description": "Standard pipeline to roll out to production",
"tags": ["example-tag"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Standard Pipeline',
phases: [
{
audiences: [{environmentKey: '<string>', name: '<string>', segmentKeys: ['<string>']}],
name: 'Phase 1 - Testing',
configuration: {}
}
],
description: 'Standard pipeline to roll out to production',
tags: ['example-tag']
})
};
fetch('https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Standard Pipeline',
'phases' => [
[
'audiences' => [
[
'environmentKey' => '<string>',
'name' => '<string>',
'segmentKeys' => [
'<string>'
]
]
],
'name' => 'Phase 1 - Testing',
'configuration' => [
]
]
],
'description' => 'Standard pipeline to roll out to production',
'tags' => [
'example-tag'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}"
payload := strings.NewReader("{\n \"name\": \"Standard Pipeline\",\n \"phases\": [\n {\n \"audiences\": [\n {\n \"environmentKey\": \"<string>\",\n \"name\": \"<string>\",\n \"segmentKeys\": [\n \"<string>\"\n ]\n }\n ],\n \"name\": \"Phase 1 - Testing\",\n \"configuration\": {}\n }\n ],\n \"description\": \"Standard pipeline to roll out to production\",\n \"tags\": [\n \"example-tag\"\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Standard Pipeline\",\n \"phases\": [\n {\n \"audiences\": [\n {\n \"environmentKey\": \"<string>\",\n \"name\": \"<string>\",\n \"segmentKeys\": [\n \"<string>\"\n ]\n }\n ],\n \"name\": \"Phase 1 - Testing\",\n \"configuration\": {}\n }\n ],\n \"description\": \"Standard pipeline to roll out to production\",\n \"tags\": [\n \"example-tag\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Standard Pipeline\",\n \"phases\": [\n {\n \"audiences\": [\n {\n \"environmentKey\": \"<string>\",\n \"name\": \"<string>\",\n \"segmentKeys\": [\n \"<string>\"\n ]\n }\n ],\n \"name\": \"Phase 1 - Testing\",\n \"configuration\": {}\n }\n ],\n \"description\": \"Standard pipeline to roll out to production\",\n \"tags\": [\n \"example-tag\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "1684262711507",
"key": "standard-pipeline",
"name": "Standard Pipeline",
"phases": [
{
"id": "1234a56b7c89d012345e678f",
"audiences": [
{
"name": "Phase 1 - Testing",
"environment": {
"_links": {
"self": {
"href": "/api/v2/projects/my-project/environments/my-environment",
"type": "application/json"
}
},
"key": "environment-key-123abc",
"name": "My Environment",
"color": "F5A623"
},
"configuration": {
"releaseStrategy": "monitoredRelease",
"requireApproval": true,
"notifyMemberIds": [
"1234a56b7c89d012345e678f"
],
"notifyTeamKeys": [
"example-reviewer-team"
],
"releaseGuardianConfiguration": {
"monitoringWindowMilliseconds": 60000,
"rolloutWeight": 50,
"rollbackOnRegression": true,
"randomizationUnit": "user"
}
},
"segmentKeys": [
"segment-key-123abc"
]
}
],
"name": "Phase 1 - Testing",
"configuration": {}
}
],
"description": "Standard pipeline to roll out to production",
"tags": [
"example-tag"
],
"_version": 1,
"_access": {
"denied": [
{
"action": "<string>",
"reason": {
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
],
"role_name": "<string>"
}
}
],
"allowed": [
{
"action": "<string>",
"reason": {
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
],
"role_name": "<string>"
}
}
]
},
"isProjectDefault": true,
"_isLegacy": true
}{
"code": "invalid_request",
"message": "Invalid request body"
}{
"code": "forbidden",
"message": "Forbidden. Access to the requested resource was denied."
}{
"code": "not_found",
"message": "Invalid resource identifier"
}Update a release pipeline
Updates a release pipeline.
curl --request PUT \
--url https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Standard Pipeline",
"phases": [
{
"audiences": [
{
"environmentKey": "<string>",
"name": "<string>",
"segmentKeys": [
"<string>"
]
}
],
"name": "Phase 1 - Testing",
"configuration": {}
}
],
"description": "Standard pipeline to roll out to production",
"tags": [
"example-tag"
]
}
'import requests
url = "https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}"
payload = {
"name": "Standard Pipeline",
"phases": [
{
"audiences": [
{
"environmentKey": "<string>",
"name": "<string>",
"segmentKeys": ["<string>"]
}
],
"name": "Phase 1 - Testing",
"configuration": {}
}
],
"description": "Standard pipeline to roll out to production",
"tags": ["example-tag"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Standard Pipeline',
phases: [
{
audiences: [{environmentKey: '<string>', name: '<string>', segmentKeys: ['<string>']}],
name: 'Phase 1 - Testing',
configuration: {}
}
],
description: 'Standard pipeline to roll out to production',
tags: ['example-tag']
})
};
fetch('https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Standard Pipeline',
'phases' => [
[
'audiences' => [
[
'environmentKey' => '<string>',
'name' => '<string>',
'segmentKeys' => [
'<string>'
]
]
],
'name' => 'Phase 1 - Testing',
'configuration' => [
]
]
],
'description' => 'Standard pipeline to roll out to production',
'tags' => [
'example-tag'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}"
payload := strings.NewReader("{\n \"name\": \"Standard Pipeline\",\n \"phases\": [\n {\n \"audiences\": [\n {\n \"environmentKey\": \"<string>\",\n \"name\": \"<string>\",\n \"segmentKeys\": [\n \"<string>\"\n ]\n }\n ],\n \"name\": \"Phase 1 - Testing\",\n \"configuration\": {}\n }\n ],\n \"description\": \"Standard pipeline to roll out to production\",\n \"tags\": [\n \"example-tag\"\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Standard Pipeline\",\n \"phases\": [\n {\n \"audiences\": [\n {\n \"environmentKey\": \"<string>\",\n \"name\": \"<string>\",\n \"segmentKeys\": [\n \"<string>\"\n ]\n }\n ],\n \"name\": \"Phase 1 - Testing\",\n \"configuration\": {}\n }\n ],\n \"description\": \"Standard pipeline to roll out to production\",\n \"tags\": [\n \"example-tag\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Standard Pipeline\",\n \"phases\": [\n {\n \"audiences\": [\n {\n \"environmentKey\": \"<string>\",\n \"name\": \"<string>\",\n \"segmentKeys\": [\n \"<string>\"\n ]\n }\n ],\n \"name\": \"Phase 1 - Testing\",\n \"configuration\": {}\n }\n ],\n \"description\": \"Standard pipeline to roll out to production\",\n \"tags\": [\n \"example-tag\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "1684262711507",
"key": "standard-pipeline",
"name": "Standard Pipeline",
"phases": [
{
"id": "1234a56b7c89d012345e678f",
"audiences": [
{
"name": "Phase 1 - Testing",
"environment": {
"_links": {
"self": {
"href": "/api/v2/projects/my-project/environments/my-environment",
"type": "application/json"
}
},
"key": "environment-key-123abc",
"name": "My Environment",
"color": "F5A623"
},
"configuration": {
"releaseStrategy": "monitoredRelease",
"requireApproval": true,
"notifyMemberIds": [
"1234a56b7c89d012345e678f"
],
"notifyTeamKeys": [
"example-reviewer-team"
],
"releaseGuardianConfiguration": {
"monitoringWindowMilliseconds": 60000,
"rolloutWeight": 50,
"rollbackOnRegression": true,
"randomizationUnit": "user"
}
},
"segmentKeys": [
"segment-key-123abc"
]
}
],
"name": "Phase 1 - Testing",
"configuration": {}
}
],
"description": "Standard pipeline to roll out to production",
"tags": [
"example-tag"
],
"_version": 1,
"_access": {
"denied": [
{
"action": "<string>",
"reason": {
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
],
"role_name": "<string>"
}
}
],
"allowed": [
{
"action": "<string>",
"reason": {
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
],
"role_name": "<string>"
}
}
]
},
"isProjectDefault": true,
"_isLegacy": true
}{
"code": "invalid_request",
"message": "Invalid request body"
}{
"code": "forbidden",
"message": "Forbidden. Access to the requested resource was denied."
}{
"code": "not_found",
"message": "Invalid resource identifier"
}Authorizations
Path Parameters
The project key
The release pipeline key
Body
The name of the release pipeline
"Standard Pipeline"
A logical grouping of one or more environments that share attributes for rolling out changes
Show child attributes
Show child attributes
The release pipeline description
"Standard pipeline to roll out to production"
A list of tags for this release pipeline
["example-tag"]
Response
Release pipeline response
Timestamp of when the release pipeline was created
"1684262711507"
The release pipeline key
"standard-pipeline"
The release pipeline name
"Standard Pipeline"
An ordered list of the release pipeline phases. Each phase is a logical grouping of one or more environments that share attributes for rolling out changes.
Show child attributes
Show child attributes
The release pipeline description
"Standard pipeline to roll out to production"
A list of the release pipeline's tags
["example-tag"]
The release pipeline version
1
Details on the allowed and denied actions for this release pipeline
Show child attributes
Show child attributes
Whether this release pipeline is the default pipeline for the project
Whether this release pipeline is a legacy pipeline
true