curl --request PATCH \
--url https://app.launchdarkly.com/api/v2/account/relay-auto-configs/{id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"patch": [
{
"op": "replace",
"path": "/policy/0",
"value": {
"actions": [
"*"
],
"effect": "allow",
"resources": [
"proj/*:env/qa"
]
}
}
]
}
'import requests
url = "https://app.launchdarkly.com/api/v2/account/relay-auto-configs/{id}"
payload = { "patch": [
{
"op": "replace",
"path": "/policy/0",
"value": {
"actions": ["*"],
"effect": "allow",
"resources": ["proj/*:env/qa"]
}
}
] }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
patch: [
{
op: 'replace',
path: '/policy/0',
value: {actions: ['*'], effect: 'allow', resources: ['proj/*:env/qa']}
}
]
})
};
fetch('https://app.launchdarkly.com/api/v2/account/relay-auto-configs/{id}', 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/account/relay-auto-configs/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'patch' => [
[
'op' => 'replace',
'path' => '/policy/0',
'value' => [
'actions' => [
'*'
],
'effect' => 'allow',
'resources' => [
'proj/*:env/qa'
]
]
]
]
]),
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/account/relay-auto-configs/{id}"
payload := strings.NewReader("{\n \"patch\": [\n {\n \"op\": \"replace\",\n \"path\": \"/policy/0\",\n \"value\": {\n \"actions\": [\n \"*\"\n ],\n \"effect\": \"allow\",\n \"resources\": [\n \"proj/*:env/qa\"\n ]\n }\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://app.launchdarkly.com/api/v2/account/relay-auto-configs/{id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"patch\": [\n {\n \"op\": \"replace\",\n \"path\": \"/policy/0\",\n \"value\": {\n \"actions\": [\n \"*\"\n ],\n \"effect\": \"allow\",\n \"resources\": [\n \"proj/*:env/qa\"\n ]\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/account/relay-auto-configs/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"patch\": [\n {\n \"op\": \"replace\",\n \"path\": \"/policy/0\",\n \"value\": {\n \"actions\": [\n \"*\"\n ],\n \"effect\": \"allow\",\n \"resources\": [\n \"proj/*:env/qa\"\n ]\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"_id": "12ab3c45de678910abc12345",
"name": "Relay Proxy Demo Config",
"policy": [
{
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
]
}
],
"displayKey": "7f30",
"creationDate": "1628001602644",
"lastModified": "1628001602644",
"_creator": {
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"role": "admin",
"email": "ariel@acme.com",
"firstName": "Ariel",
"lastName": "Flores"
},
"_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>"
}
}
]
},
"fullKey": "<string>"
}{
"code": "invalid_request",
"message": "Invalid request body"
}{
"code": "unauthorized",
"message": "Invalid access token"
}{
"code": "not_found",
"message": "Invalid resource identifier"
}{
"code": "optimistic_locking_error",
"message": "Conflict. Optimistic lock error. Try again later."
}{
"code": "patch_failed",
"message": "Unprocessable entity. Could not apply patch."
}{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}Update a Relay Proxy config
Update a Relay Proxy configuration. Updating a configuration uses a JSON patch or JSON merge patch representation of the desired changes. To learn more, read Updates.
curl --request PATCH \
--url https://app.launchdarkly.com/api/v2/account/relay-auto-configs/{id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"patch": [
{
"op": "replace",
"path": "/policy/0",
"value": {
"actions": [
"*"
],
"effect": "allow",
"resources": [
"proj/*:env/qa"
]
}
}
]
}
'import requests
url = "https://app.launchdarkly.com/api/v2/account/relay-auto-configs/{id}"
payload = { "patch": [
{
"op": "replace",
"path": "/policy/0",
"value": {
"actions": ["*"],
"effect": "allow",
"resources": ["proj/*:env/qa"]
}
}
] }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
patch: [
{
op: 'replace',
path: '/policy/0',
value: {actions: ['*'], effect: 'allow', resources: ['proj/*:env/qa']}
}
]
})
};
fetch('https://app.launchdarkly.com/api/v2/account/relay-auto-configs/{id}', 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/account/relay-auto-configs/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'patch' => [
[
'op' => 'replace',
'path' => '/policy/0',
'value' => [
'actions' => [
'*'
],
'effect' => 'allow',
'resources' => [
'proj/*:env/qa'
]
]
]
]
]),
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/account/relay-auto-configs/{id}"
payload := strings.NewReader("{\n \"patch\": [\n {\n \"op\": \"replace\",\n \"path\": \"/policy/0\",\n \"value\": {\n \"actions\": [\n \"*\"\n ],\n \"effect\": \"allow\",\n \"resources\": [\n \"proj/*:env/qa\"\n ]\n }\n }\n ]\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://app.launchdarkly.com/api/v2/account/relay-auto-configs/{id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"patch\": [\n {\n \"op\": \"replace\",\n \"path\": \"/policy/0\",\n \"value\": {\n \"actions\": [\n \"*\"\n ],\n \"effect\": \"allow\",\n \"resources\": [\n \"proj/*:env/qa\"\n ]\n }\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/account/relay-auto-configs/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"patch\": [\n {\n \"op\": \"replace\",\n \"path\": \"/policy/0\",\n \"value\": {\n \"actions\": [\n \"*\"\n ],\n \"effect\": \"allow\",\n \"resources\": [\n \"proj/*:env/qa\"\n ]\n }\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"_id": "12ab3c45de678910abc12345",
"name": "Relay Proxy Demo Config",
"policy": [
{
"effect": "allow",
"resources": [
"proj/*:env/*;qa_*:/flag/*"
],
"notResources": [
"<string>"
],
"actions": [
"*"
],
"notActions": [
"<string>"
]
}
],
"displayKey": "7f30",
"creationDate": "1628001602644",
"lastModified": "1628001602644",
"_creator": {
"_links": {
"self": {
"href": "/api/v2/members/569f183514f4432160000007",
"type": "application/json"
}
},
"_id": "569f183514f4432160000007",
"role": "admin",
"email": "ariel@acme.com",
"firstName": "Ariel",
"lastName": "Flores"
},
"_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>"
}
}
]
},
"fullKey": "<string>"
}{
"code": "invalid_request",
"message": "Invalid request body"
}{
"code": "unauthorized",
"message": "Invalid access token"
}{
"code": "not_found",
"message": "Invalid resource identifier"
}{
"code": "optimistic_locking_error",
"message": "Conflict. Optimistic lock error. Try again later."
}{
"code": "patch_failed",
"message": "Unprocessable entity. Could not apply patch."
}{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}Authorizations
Path Parameters
The relay auto config id
Body
Response
Relay auto config response
The ID of the Relay Proxy configuration
"12ab3c45de678910abc12345"
A human-friendly name for the Relay Proxy configuration
"Relay Proxy Demo Config"
A description of what environments and projects the Relay Proxy should include or exclude
Show child attributes
Show child attributes
The last few characters of the Relay Proxy configuration key, displayed in the LaunchDarkly UI
"7f30"
Timestamp of when the Relay Proxy configuration was created
"1628001602644"
Timestamp of when the Relay Proxy configuration was most recently modified
"1628001602644"
Details on the member who created this Relay Proxy configuration
Show child attributes
Show child attributes
Details on the allowed and denied actions for this Relay Proxy configuration
Show child attributes
Show child attributes
The Relay Proxy configuration key