Publish a function version
curl --request POST \
--url https://api.example.com/api/decisions/{workspace}/functions/{name}/publish \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"version": 2
}'import requests
url = "https://api.example.com/api/decisions/{workspace}/functions/{name}/publish"
payload = { "version": 2 }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({version: 2})
};
fetch('https://api.example.com/api/decisions/{workspace}/functions/{name}/publish', 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://api.example.com/api/decisions/{workspace}/functions/{name}/publish",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'version' => 2
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.example.com/api/decisions/{workspace}/functions/{name}/publish"
payload := strings.NewReader("{\n \"version\": 2\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.example.com/api/decisions/{workspace}/functions/{name}/publish")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"version\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/decisions/{workspace}/functions/{name}/publish")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"version\": 2\n}"
response = http.request(request)
puts response.read_body{
"workspace": "<string>",
"name": "<string>",
"action": "<string>",
"actor": "<string>",
"at": "2023-11-07T05:31:56Z",
"version": 123,
"previous_version": 123,
"release": {
"workspace": "<string>",
"version": "<string>",
"sequence": 123,
"status": "building",
"created_by": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"trigger": "",
"package_uri": "<string>",
"package_sha": "<string>",
"package_size": 123,
"error": "<string>",
"change": {},
"published_at": "2023-11-07T05:31:56Z"
},
"release_error": "<string>"
}{
"error": "<string>",
"code": 500
}{
"error": "<string>",
"code": 500
}{
"error": "<string>",
"code": 500
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"error": "<string>",
"code": 500
}Decision functions
Publish a function version
Make an approved version the live one and cut the workspace’s release.
Rolling back is this call with an earlier version. If the release fails
to write, the publish still stands and release_error says so.
Required roles: approver or workspace_admin
POST
/
api
/
decisions
/
{workspace}
/
functions
/
{name}
/
publish
Publish a function version
curl --request POST \
--url https://api.example.com/api/decisions/{workspace}/functions/{name}/publish \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"version": 2
}'import requests
url = "https://api.example.com/api/decisions/{workspace}/functions/{name}/publish"
payload = { "version": 2 }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({version: 2})
};
fetch('https://api.example.com/api/decisions/{workspace}/functions/{name}/publish', 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://api.example.com/api/decisions/{workspace}/functions/{name}/publish",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'version' => 2
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.example.com/api/decisions/{workspace}/functions/{name}/publish"
payload := strings.NewReader("{\n \"version\": 2\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://api.example.com/api/decisions/{workspace}/functions/{name}/publish")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"version\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/decisions/{workspace}/functions/{name}/publish")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"version\": 2\n}"
response = http.request(request)
puts response.read_body{
"workspace": "<string>",
"name": "<string>",
"action": "<string>",
"actor": "<string>",
"at": "2023-11-07T05:31:56Z",
"version": 123,
"previous_version": 123,
"release": {
"workspace": "<string>",
"version": "<string>",
"sequence": 123,
"status": "building",
"created_by": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"trigger": "",
"package_uri": "<string>",
"package_sha": "<string>",
"package_size": 123,
"error": "<string>",
"change": {},
"published_at": "2023-11-07T05:31:56Z"
},
"release_error": "<string>"
}{
"error": "<string>",
"code": 500
}{
"error": "<string>",
"code": 500
}{
"error": "<string>",
"code": 500
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"error": "<string>",
"code": 500
}Authorizations
OAuth2AuthorizationCodeBearerAPIKeyHeader
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
Workspace slug.
Maximum string length:
64Pattern:
^[a-z0-9][a-z0-9-]{0,63}$Function name — a Python identifier.
Maximum string length:
64Pattern:
^[a-z][a-z0-9_]{0,63}$Body
application/json
An approved version to publish.
Required range:
x >= 1Response
Successful Response
Show child attributes
Show child attributes
Set when the publish succeeded but writing the release did not.
Was this page helpful?

