JavaScript
import Roark from '@roarkanalytics/sdk';
const client = new Roark({
bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted
});
const response = await client.autoimproveFix.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
console.log(response.data);import os
from roark_analytics import Roark
client = Roark(
bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"), # This is the default and can be omitted
)
response = client.autoimprove_fix.promote(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(response.data)curl --request POST \
--url https://api.roark.ai/v1/autoimprove/fix/{fixId}/promote \
--header 'Authorization: Bearer <token>'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roark.ai/v1/autoimprove/fix/{fixId}/promote",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.roark.ai/v1/autoimprove/fix/{fixId}/promote"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.roark.ai/v1/autoimprove/fix/{fixId}/promote")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roark.ai/v1/autoimprove/fix/{fixId}/promote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stagingAgentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stagingKind": "DESIGNATED",
"customerIntegrationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"objectiveMetricDefinitionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"objectiveLabel": "<string>",
"targetValue": 123,
"baselineValue": 123,
"currentValue": 123,
"trigger": "ISSUE",
"issueId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"objectiveId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"validationRunPlanId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "RUNNING",
"workingMemory": "<string>",
"finalReport": "<string>",
"maxIterations": 123,
"maxSimCalls": 123,
"iterationCount": 123,
"simCallsUsed": 123,
"initiatedByUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"concludedAt": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>"
}
}{
"type": "validation",
"code": "invalid_parameter",
"message": "The request was invalid",
"param": "email"
}{
"type": "authentication",
"code": "unauthorized",
"message": "Authentication required"
}{
"type": "forbidden",
"code": "permission_denied",
"message": "You do not have permission to access this resource"
}{
"type": "not_found",
"code": "resource_not_found",
"message": "The requested resource could not be found"
}{
"type": "conflict",
"code": "resource_in_use",
"message": "The resource is in use and cannot be deleted"
}{
"type": "rate_limit",
"code": "too_many_requests",
"message": "Rate limit exceeded"
}{
"type": "internal",
"code": "internal_error",
"message": "Internal server error"
}Autoimprove
Promote a verified fix to production
Apply the verified staging changes to the PRODUCTION agent. Only a fix in AWAITING_PROMOTE can be promoted.
A snapshot of the production configuration is taken immediately before the write, so the promote is fully rollbackable. After the promote the staging shadow and its phone number are cleaned up.
POST
/
v1
/
autoimprove
/
fix
/
{fixId}
/
promote
JavaScript
import Roark from '@roarkanalytics/sdk';
const client = new Roark({
bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted
});
const response = await client.autoimproveFix.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');
console.log(response.data);import os
from roark_analytics import Roark
client = Roark(
bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"), # This is the default and can be omitted
)
response = client.autoimprove_fix.promote(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(response.data)curl --request POST \
--url https://api.roark.ai/v1/autoimprove/fix/{fixId}/promote \
--header 'Authorization: Bearer <token>'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roark.ai/v1/autoimprove/fix/{fixId}/promote",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.roark.ai/v1/autoimprove/fix/{fixId}/promote"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.roark.ai/v1/autoimprove/fix/{fixId}/promote")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roark.ai/v1/autoimprove/fix/{fixId}/promote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"projectId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"agentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stagingAgentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"stagingKind": "DESIGNATED",
"customerIntegrationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"objectiveMetricDefinitionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"objectiveLabel": "<string>",
"targetValue": 123,
"baselineValue": 123,
"currentValue": 123,
"trigger": "ISSUE",
"issueId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"objectiveId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"validationRunPlanId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "RUNNING",
"workingMemory": "<string>",
"finalReport": "<string>",
"maxIterations": 123,
"maxSimCalls": 123,
"iterationCount": 123,
"simCallsUsed": 123,
"initiatedByUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"concludedAt": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>"
}
}{
"type": "validation",
"code": "invalid_parameter",
"message": "The request was invalid",
"param": "email"
}{
"type": "authentication",
"code": "unauthorized",
"message": "Authentication required"
}{
"type": "forbidden",
"code": "permission_denied",
"message": "You do not have permission to access this resource"
}{
"type": "not_found",
"code": "resource_not_found",
"message": "The requested resource could not be found"
}{
"type": "conflict",
"code": "resource_in_use",
"message": "The resource is in use and cannot be deleted"
}{
"type": "rate_limit",
"code": "too_many_requests",
"message": "Rate limit exceeded"
}{
"type": "internal",
"code": "internal_error",
"message": "Internal server error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Response
The verified changes are live on production.
One Autoimprove engagement: Roark autonomously improving one agent toward one objective metric. Roark only ever changes the staging agent (a shadow clone by default); production changes exactly once, when a verified fix is promoted.
Show child attributes
Show child attributes