Update a run plan
Updates an existing simulation run plan by its ID.
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 simulationRunPlan = await client.simulationRunPlan.update(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(simulationRunPlan.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
)
simulation_run_plan = client.simulation_run_plan.update(
plan_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(simulation_run_plan.data)curl --request PUT \
--url https://api.roark.ai/v1/simulation/plan/{planId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"iterationCount": 2,
"maxConcurrentJobs": 2,
"maxSimulationDurationSeconds": 2,
"silenceTimeoutSeconds": 2,
"endCallPhrases": [
"<string>"
],
"endCallReasons": [
"<string>"
],
"scenarios": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"variables": {}
}
],
"personas": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"agentEndpoints": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"metrics": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"metricId": "<string>"
}
]
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roark.ai/v1/simulation/plan/{planId}",
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' => '<string>',
'description' => '<string>',
'iterationCount' => 2,
'maxConcurrentJobs' => 2,
'maxSimulationDurationSeconds' => 2,
'silenceTimeoutSeconds' => 2,
'endCallPhrases' => [
'<string>'
],
'endCallReasons' => [
'<string>'
],
'scenarios' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'variables' => [
]
]
],
'personas' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
],
'agentEndpoints' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
],
'metrics' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'slug' => '<string>',
'metricId' => '<string>'
]
]
]),
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.roark.ai/v1/simulation/plan/{planId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"iterationCount\": 2,\n \"maxConcurrentJobs\": 2,\n \"maxSimulationDurationSeconds\": 2,\n \"silenceTimeoutSeconds\": 2,\n \"endCallPhrases\": [\n \"<string>\"\n ],\n \"endCallReasons\": [\n \"<string>\"\n ],\n \"scenarios\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {}\n }\n ],\n \"personas\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"agentEndpoints\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"metrics\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\",\n \"metricId\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.roark.ai/v1/simulation/plan/{planId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"iterationCount\": 2,\n \"maxConcurrentJobs\": 2,\n \"maxSimulationDurationSeconds\": 2,\n \"silenceTimeoutSeconds\": 2,\n \"endCallPhrases\": [\n \"<string>\"\n ],\n \"endCallReasons\": [\n \"<string>\"\n ],\n \"scenarios\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {}\n }\n ],\n \"personas\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"agentEndpoints\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"metrics\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\",\n \"metricId\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roark.ai/v1/simulation/plan/{planId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"iterationCount\": 2,\n \"maxConcurrentJobs\": 2,\n \"maxSimulationDurationSeconds\": 2,\n \"silenceTimeoutSeconds\": 2,\n \"endCallPhrases\": [\n \"<string>\"\n ],\n \"endCallReasons\": [\n \"<string>\"\n ],\n \"scenarios\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {}\n }\n ],\n \"personas\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"agentEndpoints\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"metrics\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\",\n \"metricId\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"iterationCount": 123,
"maxConcurrentJobs": 123,
"maxSimulationDurationSeconds": 123,
"silenceTimeoutSeconds": 123,
"endCallPhrases": [
"<string>"
],
"endCallReasons": [
"<string>"
],
"scenarios": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"variables": {
"customerName": "John Doe",
"appointmentDate": "2024-02-15"
}
}
],
"personas": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"agentEndpoints": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"evaluators": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"metrics": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"testCaseCount": 123,
"createdAt": "<string>",
"updatedAt": "<string>",
"description": "<string>"
}
}{
"type": "validation",
"code": "invalid_parameter",
"message": "The request was invalid",
"param": "email"
}{
"type": "authentication",
"code": "unauthorized",
"message": "Authentication required"
}{
"type": "not_found",
"code": "resource_not_found",
"message": "The requested resource could not be found"
}{
"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
The ID of the run plan to update
Body
Input for updating an existing simulation run plan
Name of the run plan
1Description of the run plan
Direction of the simulation (INBOUND or OUTBOUND)
INBOUND, OUTBOUND Number of iterations to run for each test case. Must be 1 for OUTBOUND direction.
x >= 1Maximum number of concurrent simulation jobs
x >= 1Maximum duration in seconds for each simulation
x >= 1Timeout in seconds for silence detection
x >= 1Phrases that trigger end of call. Empty array disables the feature.
Semantic conditions that trigger end of call. The LLM evaluates the conversation against these conditions. Empty array disables the feature.
Execution mode (PARALLEL or SEQUENTIAL)
PARALLEL, SEQUENTIAL_SAME_RUN_PLAN, SEQUENTIAL_PROJECT Scenarios to include in this run plan. The same scenario ID can appear multiple times with different variables.
1Show child attributes
Show child attributes
Personas to include in this run plan
1Show child attributes
Show child attributes
Agent endpoints to include in this run plan
1Show child attributes
Show child attributes
Metric definitions to include in this run plan. Reference each by id (UUID) or slug.
1Show child attributes
Show child attributes
Response
The updated run plan
A simulation run plan defining the test matrix
Show child attributes
Show child attributes
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 simulationRunPlan = await client.simulationRunPlan.update(
'182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',
);
console.log(simulationRunPlan.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
)
simulation_run_plan = client.simulation_run_plan.update(
plan_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(simulation_run_plan.data)curl --request PUT \
--url https://api.roark.ai/v1/simulation/plan/{planId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"iterationCount": 2,
"maxConcurrentJobs": 2,
"maxSimulationDurationSeconds": 2,
"silenceTimeoutSeconds": 2,
"endCallPhrases": [
"<string>"
],
"endCallReasons": [
"<string>"
],
"scenarios": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"variables": {}
}
],
"personas": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"agentEndpoints": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"metrics": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"metricId": "<string>"
}
]
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roark.ai/v1/simulation/plan/{planId}",
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' => '<string>',
'description' => '<string>',
'iterationCount' => 2,
'maxConcurrentJobs' => 2,
'maxSimulationDurationSeconds' => 2,
'silenceTimeoutSeconds' => 2,
'endCallPhrases' => [
'<string>'
],
'endCallReasons' => [
'<string>'
],
'scenarios' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'variables' => [
]
]
],
'personas' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
],
'agentEndpoints' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
],
'metrics' => [
[
'id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'slug' => '<string>',
'metricId' => '<string>'
]
]
]),
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.roark.ai/v1/simulation/plan/{planId}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"iterationCount\": 2,\n \"maxConcurrentJobs\": 2,\n \"maxSimulationDurationSeconds\": 2,\n \"silenceTimeoutSeconds\": 2,\n \"endCallPhrases\": [\n \"<string>\"\n ],\n \"endCallReasons\": [\n \"<string>\"\n ],\n \"scenarios\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {}\n }\n ],\n \"personas\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"agentEndpoints\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"metrics\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\",\n \"metricId\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.roark.ai/v1/simulation/plan/{planId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"iterationCount\": 2,\n \"maxConcurrentJobs\": 2,\n \"maxSimulationDurationSeconds\": 2,\n \"silenceTimeoutSeconds\": 2,\n \"endCallPhrases\": [\n \"<string>\"\n ],\n \"endCallReasons\": [\n \"<string>\"\n ],\n \"scenarios\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {}\n }\n ],\n \"personas\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"agentEndpoints\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"metrics\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\",\n \"metricId\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roark.ai/v1/simulation/plan/{planId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"iterationCount\": 2,\n \"maxConcurrentJobs\": 2,\n \"maxSimulationDurationSeconds\": 2,\n \"silenceTimeoutSeconds\": 2,\n \"endCallPhrases\": [\n \"<string>\"\n ],\n \"endCallReasons\": [\n \"<string>\"\n ],\n \"scenarios\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"variables\": {}\n }\n ],\n \"personas\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"agentEndpoints\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ],\n \"metrics\": [\n {\n \"id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"slug\": \"<string>\",\n \"metricId\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"iterationCount": 123,
"maxConcurrentJobs": 123,
"maxSimulationDurationSeconds": 123,
"silenceTimeoutSeconds": 123,
"endCallPhrases": [
"<string>"
],
"endCallReasons": [
"<string>"
],
"scenarios": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"variables": {
"customerName": "John Doe",
"appointmentDate": "2024-02-15"
}
}
],
"personas": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"agentEndpoints": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"evaluators": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"metrics": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"testCaseCount": 123,
"createdAt": "<string>",
"updatedAt": "<string>",
"description": "<string>"
}
}{
"type": "validation",
"code": "invalid_parameter",
"message": "The request was invalid",
"param": "email"
}{
"type": "authentication",
"code": "unauthorized",
"message": "Authentication required"
}{
"type": "not_found",
"code": "resource_not_found",
"message": "The requested resource could not be found"
}{
"type": "rate_limit",
"code": "too_many_requests",
"message": "Rate limit exceeded"
}{
"type": "internal",
"code": "internal_error",
"message": "Internal server error"
}