import Cadenya from '@cadenya/cadenya';
const client = new Cadenya({
apiKey: process.env['CADENYA_API_KEY'], // This is the default and can be omitted
});
const tool = await client.toolSets.tools.create('toolset_01HXKD2E5NQM3T9AYWCFNRMN74', {
workspaceId: 'workspace_01HXKD2E5NQM3T9AYWCF133E3Q',
metadata: { name: 'name' },
spec: {
config: {
http: { requestMethod: 'HTTP_METHOD_UNSPECIFIED' },
type: 'http',
},
description: 'description',
parameters: { foo: 'bar' },
requiresApproval: true,
},
});
console.log(tool.metadata);import os
from cadenya import Cadenya
client = Cadenya(
api_key=os.environ.get("CADENYA_API_KEY"), # This is the default and can be omitted
)
tool = client.tool_sets.tools.create(
tool_set_id="toolset_01HXKD2E5NQM3T9AYWCFNRMN74",
workspace_id="workspace_01HXKD2E5NQM3T9AYWCF133E3Q",
metadata={
"name": "name"
},
spec={
"config": {
"http": {
"request_method": "HTTP_METHOD_UNSPECIFIED"
},
"type": "http",
},
"description": "description",
"parameters": {
"foo": "bar"
},
"requires_approval": True,
},
)
print(tool.metadata)package main
import (
"context"
"fmt"
"go.cadenya.com/cadenya-go"
"go.cadenya.com/cadenya-go/option"
"go.cadenya.com/cadenya-go/shared"
)
func main() {
client := cadenya.NewClient(
option.WithAPIKey("My API Key"),
)
tool, err := client.ToolSets.Tools.New(
context.TODO(),
"toolset_01HXKD2E5NQM3T9AYWCFNRMN74",
cadenya.ToolSetToolNewParams{
WorkspaceID: cadenya.String("workspace_01HXKD2E5NQM3T9AYWCF133E3Q"),
Metadata: shared.CreateResourceMetadataParam{
Name: "name",
},
Spec: cadenya.ToolSpecParam{
Config: cadenya.ToolSpecConfigUnionParam{
OfHTTP: &cadenya.ToolSpecConfigHTTPParam{
HTTP: cadenya.ConfigHTTPParam{
RequestMethod: cadenya.ConfigHTTPRequestMethodHTTPMethodUnspecified,
},
Type: cadenya.ToolSpecConfigHTTPTypeHTTP,
},
},
Description: "description",
Parameters: map[string]any{
"foo": "bar",
},
RequiresApproval: true,
},
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", tool.Metadata)
}
require "cadenya"
cadenya = Cadenya::Client.new(api_key: "My API Key")
tool = cadenya.tool_sets.tools.create(
"toolset_01HXKD2E5NQM3T9AYWCFNRMN74",
workspace_id: "workspace_01HXKD2E5NQM3T9AYWCF133E3Q",
metadata: {name: "name"},
spec: {
config: {http: {requestMethod: :HTTP_METHOD_UNSPECIFIED}, type: :http},
description: "description",
parameters: {foo: "bar"},
requiresApproval: true
}
)
puts(tool)cadenya tool-sets:tools create \
--api-key 'My API Key' \
--workspace-id workspace_01HXKD2E5NQM3T9AYWCF133E3Q \
--tool-set-id toolset_01HXKD2E5NQM3T9AYWCFNRMN74 \
--metadata '{name: name}' \
--spec '{config: {http: {requestMethod: HTTP_METHOD_UNSPECIFIED}, type: http}, description: description, parameters: {foo: bar}, requiresApproval: true}'curl --request POST \
--url https://api.cadenya.com/v1/workspaces/{workspaceId}/tool_sets/{toolSetId}/tools \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "<string>",
"externalId": "<string>",
"labels": {}
},
"spec": {
"description": "<string>",
"requiresApproval": true,
"parameters": {},
"config": {
"type": "http",
"http": {
"path": "<string>",
"query": "<string>",
"headers": {},
"requestBodyTemplate": "<string>",
"requestBodyContentType": "<string>"
}
},
"llmToolName": "<string>"
}
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cadenya.com/v1/workspaces/{workspaceId}/tool_sets/{toolSetId}/tools",
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([
'metadata' => [
'name' => '<string>',
'externalId' => '<string>',
'labels' => [
]
],
'spec' => [
'description' => '<string>',
'requiresApproval' => true,
'parameters' => [
],
'config' => [
'type' => 'http',
'http' => [
'path' => '<string>',
'query' => '<string>',
'headers' => [
],
'requestBodyTemplate' => '<string>',
'requestBodyContentType' => '<string>'
]
],
'llmToolName' => '<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;
}HttpResponse<String> response = Unirest.post("https://api.cadenya.com/v1/workspaces/{workspaceId}/tool_sets/{toolSetId}/tools")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"<string>\",\n \"externalId\": \"<string>\",\n \"labels\": {}\n },\n \"spec\": {\n \"description\": \"<string>\",\n \"requiresApproval\": true,\n \"parameters\": {},\n \"config\": {\n \"type\": \"http\",\n \"http\": {\n \"path\": \"<string>\",\n \"query\": \"<string>\",\n \"headers\": {},\n \"requestBodyTemplate\": \"<string>\",\n \"requestBodyContentType\": \"<string>\"\n }\n },\n \"llmToolName\": \"<string>\"\n }\n}")
.asString();{
"metadata": {
"id": "<string>",
"accountId": "account_01HXKD2E5NQM3T9AYWCFTJHJVF",
"workspaceId": "workspace_01HXKD2E5NQM3T9AYWCF133E3Q",
"name": "<string>",
"profileId": "profile_01HXKD2E5NQM3T9AYWCFS0AP08",
"createdAt": "2023-11-07T05:31:56Z",
"externalId": "<string>",
"labels": {},
"updatedAt": "2023-11-07T05:31:56Z"
},
"spec": {
"description": "<string>",
"requiresApproval": true,
"parameters": {},
"config": {
"type": "http",
"http": {
"path": "<string>",
"query": "<string>",
"headers": {},
"requestBodyTemplate": "<string>",
"requestBodyContentType": "<string>"
}
},
"llmToolName": "<string>"
},
"info": {
"toolSet": {
"id": "<string>",
"accountId": "account_01HXKD2E5NQM3T9AYWCFTJHJVF",
"workspaceId": "workspace_01HXKD2E5NQM3T9AYWCF133E3Q",
"name": "<string>",
"profileId": "profile_01HXKD2E5NQM3T9AYWCFS0AP08",
"createdAt": "2023-11-07T05:31:56Z",
"externalId": "<string>",
"labels": {},
"updatedAt": "2023-11-07T05:31:56Z"
},
"createdBy": {
"metadata": {
"id": "<string>",
"accountId": "account_01HXKD2E5NQM3T9AYWCFTJHJVF",
"name": "<string>",
"profileId": "profile_01HXKD2E5NQM3T9AYWCFS0AP08",
"externalId": "<string>",
"labels": {},
"createdAt": "2023-11-07T05:31:56Z"
},
"spec": {
"email": "<string>",
"name": "<string>"
}
},
"signature": "<string>"
}
}{
"code": 123,
"message": "<string>",
"details": [
{
"@type": "<string>"
}
]
}Create a new tool
Creates a new tool in the tool set
import Cadenya from '@cadenya/cadenya';
const client = new Cadenya({
apiKey: process.env['CADENYA_API_KEY'], // This is the default and can be omitted
});
const tool = await client.toolSets.tools.create('toolset_01HXKD2E5NQM3T9AYWCFNRMN74', {
workspaceId: 'workspace_01HXKD2E5NQM3T9AYWCF133E3Q',
metadata: { name: 'name' },
spec: {
config: {
http: { requestMethod: 'HTTP_METHOD_UNSPECIFIED' },
type: 'http',
},
description: 'description',
parameters: { foo: 'bar' },
requiresApproval: true,
},
});
console.log(tool.metadata);import os
from cadenya import Cadenya
client = Cadenya(
api_key=os.environ.get("CADENYA_API_KEY"), # This is the default and can be omitted
)
tool = client.tool_sets.tools.create(
tool_set_id="toolset_01HXKD2E5NQM3T9AYWCFNRMN74",
workspace_id="workspace_01HXKD2E5NQM3T9AYWCF133E3Q",
metadata={
"name": "name"
},
spec={
"config": {
"http": {
"request_method": "HTTP_METHOD_UNSPECIFIED"
},
"type": "http",
},
"description": "description",
"parameters": {
"foo": "bar"
},
"requires_approval": True,
},
)
print(tool.metadata)package main
import (
"context"
"fmt"
"go.cadenya.com/cadenya-go"
"go.cadenya.com/cadenya-go/option"
"go.cadenya.com/cadenya-go/shared"
)
func main() {
client := cadenya.NewClient(
option.WithAPIKey("My API Key"),
)
tool, err := client.ToolSets.Tools.New(
context.TODO(),
"toolset_01HXKD2E5NQM3T9AYWCFNRMN74",
cadenya.ToolSetToolNewParams{
WorkspaceID: cadenya.String("workspace_01HXKD2E5NQM3T9AYWCF133E3Q"),
Metadata: shared.CreateResourceMetadataParam{
Name: "name",
},
Spec: cadenya.ToolSpecParam{
Config: cadenya.ToolSpecConfigUnionParam{
OfHTTP: &cadenya.ToolSpecConfigHTTPParam{
HTTP: cadenya.ConfigHTTPParam{
RequestMethod: cadenya.ConfigHTTPRequestMethodHTTPMethodUnspecified,
},
Type: cadenya.ToolSpecConfigHTTPTypeHTTP,
},
},
Description: "description",
Parameters: map[string]any{
"foo": "bar",
},
RequiresApproval: true,
},
},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", tool.Metadata)
}
require "cadenya"
cadenya = Cadenya::Client.new(api_key: "My API Key")
tool = cadenya.tool_sets.tools.create(
"toolset_01HXKD2E5NQM3T9AYWCFNRMN74",
workspace_id: "workspace_01HXKD2E5NQM3T9AYWCF133E3Q",
metadata: {name: "name"},
spec: {
config: {http: {requestMethod: :HTTP_METHOD_UNSPECIFIED}, type: :http},
description: "description",
parameters: {foo: "bar"},
requiresApproval: true
}
)
puts(tool)cadenya tool-sets:tools create \
--api-key 'My API Key' \
--workspace-id workspace_01HXKD2E5NQM3T9AYWCF133E3Q \
--tool-set-id toolset_01HXKD2E5NQM3T9AYWCFNRMN74 \
--metadata '{name: name}' \
--spec '{config: {http: {requestMethod: HTTP_METHOD_UNSPECIFIED}, type: http}, description: description, parameters: {foo: bar}, requiresApproval: true}'curl --request POST \
--url https://api.cadenya.com/v1/workspaces/{workspaceId}/tool_sets/{toolSetId}/tools \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"metadata": {
"name": "<string>",
"externalId": "<string>",
"labels": {}
},
"spec": {
"description": "<string>",
"requiresApproval": true,
"parameters": {},
"config": {
"type": "http",
"http": {
"path": "<string>",
"query": "<string>",
"headers": {},
"requestBodyTemplate": "<string>",
"requestBodyContentType": "<string>"
}
},
"llmToolName": "<string>"
}
}
'<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.cadenya.com/v1/workspaces/{workspaceId}/tool_sets/{toolSetId}/tools",
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([
'metadata' => [
'name' => '<string>',
'externalId' => '<string>',
'labels' => [
]
],
'spec' => [
'description' => '<string>',
'requiresApproval' => true,
'parameters' => [
],
'config' => [
'type' => 'http',
'http' => [
'path' => '<string>',
'query' => '<string>',
'headers' => [
],
'requestBodyTemplate' => '<string>',
'requestBodyContentType' => '<string>'
]
],
'llmToolName' => '<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;
}HttpResponse<String> response = Unirest.post("https://api.cadenya.com/v1/workspaces/{workspaceId}/tool_sets/{toolSetId}/tools")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"metadata\": {\n \"name\": \"<string>\",\n \"externalId\": \"<string>\",\n \"labels\": {}\n },\n \"spec\": {\n \"description\": \"<string>\",\n \"requiresApproval\": true,\n \"parameters\": {},\n \"config\": {\n \"type\": \"http\",\n \"http\": {\n \"path\": \"<string>\",\n \"query\": \"<string>\",\n \"headers\": {},\n \"requestBodyTemplate\": \"<string>\",\n \"requestBodyContentType\": \"<string>\"\n }\n },\n \"llmToolName\": \"<string>\"\n }\n}")
.asString();{
"metadata": {
"id": "<string>",
"accountId": "account_01HXKD2E5NQM3T9AYWCFTJHJVF",
"workspaceId": "workspace_01HXKD2E5NQM3T9AYWCF133E3Q",
"name": "<string>",
"profileId": "profile_01HXKD2E5NQM3T9AYWCFS0AP08",
"createdAt": "2023-11-07T05:31:56Z",
"externalId": "<string>",
"labels": {},
"updatedAt": "2023-11-07T05:31:56Z"
},
"spec": {
"description": "<string>",
"requiresApproval": true,
"parameters": {},
"config": {
"type": "http",
"http": {
"path": "<string>",
"query": "<string>",
"headers": {},
"requestBodyTemplate": "<string>",
"requestBodyContentType": "<string>"
}
},
"llmToolName": "<string>"
},
"info": {
"toolSet": {
"id": "<string>",
"accountId": "account_01HXKD2E5NQM3T9AYWCFTJHJVF",
"workspaceId": "workspace_01HXKD2E5NQM3T9AYWCF133E3Q",
"name": "<string>",
"profileId": "profile_01HXKD2E5NQM3T9AYWCFS0AP08",
"createdAt": "2023-11-07T05:31:56Z",
"externalId": "<string>",
"labels": {},
"updatedAt": "2023-11-07T05:31:56Z"
},
"createdBy": {
"metadata": {
"id": "<string>",
"accountId": "account_01HXKD2E5NQM3T9AYWCFTJHJVF",
"name": "<string>",
"profileId": "profile_01HXKD2E5NQM3T9AYWCFS0AP08",
"externalId": "<string>",
"labels": {},
"createdAt": "2023-11-07T05:31:56Z"
},
"spec": {
"email": "<string>",
"name": "<string>"
}
},
"signature": "<string>"
}
}{
"code": 123,
"message": "<string>",
"details": [
{
"@type": "<string>"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Workspace ID.
"workspace_01HXKD2E5NQM3T9AYWCF133E3Q"
Tool set ID. Accepts the canonical ts_… form or the external_id: form.
"toolset_01HXKD2E5NQM3T9AYWCFNRMN74"
Body
CreateResourceMetadata contains the user-provided fields for creating a workspace-scoped resource. Read-only fields (id, account_id, workspace_id, profile_id, created_at) are excluded since they are set by the server.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
OK
Standard metadata for persistent, named resources (e.g., agents, tools, prompts)
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The current lifecycle state of the tool. Output only. Use the :omit and :restore actions to transition; tool set syncs may also update it.
STATE_UNSPECIFIED, STATE_AVAILABLE, STATE_OMITTED, STATE_ARCHIVED Show child attributes
Show child attributes