Skip to content
Get started

List objective tools

client.Objectives.Tools.List(ctx, workspaceID, objectiveID, query) (*CursorPagination[ObjectiveTool], error)
GET/v1/workspaces/{workspaceId}/objectives/{objectiveId}/tools

Lists all tools that were assigned to an objective

ParametersExpand Collapse
workspaceID string
objectiveID string
query ObjectiveToolListParams
Cursor param.Field[string]Optional

Pagination cursor from previous response

Limit param.Field[int64]Optional

Maximum number of results to return

formatint32
ReturnsExpand Collapse
type ObjectiveTool struct{…}

ObjectiveTool represents a tool that was assigned to an objective.

Metadata BareMetadata

BareMetadata contains the minimal metadata for a resource: the ID and an optional human-readable name. These are used for reference fields where the full metadata (account scoping, timestamps, labels, external IDs) is not needed — e.g., the tool references inside an agent variation spec or the tools assigned to an objective. Both fields are server-populated; clients provide IDs through sibling fields rather than by constructing a BareMetadata themselves.

ID stringOptional
Name stringOptional

Human-readable name of the referenced resource, populated by the server on reads for convenience. Absent on references to resources that do not have a name (e.g., objective tasks).

Snapshot ToolOptional

Snapshot of the tool at the time it was assigned to the objective. Because tools can change over time, snapshots are used to ensure tools don’t change unexpectedly during an objective’s lifecycle.

Standard metadata for persistent, named resources (e.g., agents, tools, prompts)

ID string

Unique identifier for the resource (prefixed ULID, e.g., “agent_01HXK…”)

AccountID string

Account this resource belongs to for multi-tenant isolation (prefixed ULID)

CreatedAt Time

Timestamp when this resource was created

formatdate-time
Name string

Human-readable name for the resource (e.g., “Customer Support Agent”, “Email Tool”) Required for resources that users interact with directly

ProfileID string

ID of the actor (user or service account) that created this resource

WorkspaceID string

Workspace this resource belongs to for organizational grouping (prefixed ULID)

BundleKey stringOptional

Optional bundle ownership key. When set, indicates the resource is managed by a configuration bundle identified by this key. Used by BulkWorkspaceResources.Apply to track which resources belong to which bundle for reconciliation / soft-delete on re-apply.

ExternalID stringOptional

External ID for the resource (e.g., a workflow ID from an external system)

Labels map[string, string]Optional

Arbitrary key-value pairs for categorization and filtering Examples: {“environment”: “production”, “team”: “platform”, “version”: “v2”}

Config defines the adapter to use for the tool. This is used to determine how the tool is called. For example, if the tool is an HTTP tool, the adapter will be Http. If the tool is an inline tool, the adapter will be Inline.

HTTP ConfigHTTPOptional
RequestMethod ConfigHTTPRequestMethod
formatenum
One of the following:
const ConfigHTTPRequestMethodHTTPMethodUnspecified ConfigHTTPRequestMethod = "HTTP_METHOD_UNSPECIFIED"
const ConfigHTTPRequestMethodGet ConfigHTTPRequestMethod = "GET"
const ConfigHTTPRequestMethodPost ConfigHTTPRequestMethod = "POST"
const ConfigHTTPRequestMethodPut ConfigHTTPRequestMethod = "PUT"
const ConfigHTTPRequestMethodPatch ConfigHTTPRequestMethod = "PATCH"
const ConfigHTTPRequestMethodDelete ConfigHTTPRequestMethod = "DELETE"
Headers map[string, string]Optional
Path stringOptional
Query stringOptional
RequestBodyContentType stringOptional
RequestBodyTemplate stringOptional

These are only used when the request method is a POST, PUT, or PATCH

ToolName stringOptional

The tool name (commonly an “operation id” in OpenAPI specs) to call on the HTTP adapter. This is used to match the tool spec to the correct endpoint on the HTTP adapter. it will be derived from the name of the tool if not provided.

Mcp ConfigMcpOptional
ToolDescription stringOptional
ToolName stringOptional
ToolTitle stringOptional
OpenAPI ConfigOpenAPIOptional
Method stringOptional
OperationID stringOptional
Path stringOptional
Description string
Parameters map[string, unknown]
Status ToolSpecStatus
formatenum
One of the following:
const ToolSpecStatusToolStatusUnspecified ToolSpecStatus = "TOOL_STATUS_UNSPECIFIED"
const ToolSpecStatusToolStatusAvailable ToolSpecStatus = "TOOL_STATUS_AVAILABLE"
const ToolSpecStatusToolStatusOmitted ToolSpecStatus = "TOOL_STATUS_OMITTED"
const ToolSpecStatusToolStatusArchived ToolSpecStatus = "TOOL_STATUS_ARCHIVED"
RequiresApproval boolOptional
Info ToolInfoOptional
CreatedBy ProfileOptional

A profile identifies a user or non-human principal (such as an API key) at the account level. Profiles are account-scoped and can be granted access to multiple workspaces.

AccountResourceMetadata is used to represent a resource that is associated to an account but not to a workspace.

ID string

Unique identifier for the resource (prefixed ULID, e.g., “apikey_01HXK…”)

AccountID string

Account this resource belongs to for multi-tenant isolation (prefixed ULID)

Name string

Human-readable name for the resource (e.g., “Customer Support Agent”, “Email Tool”) Required for resources that users interact with directly

ProfileID string
ExternalID stringOptional

External ID for the resource (e.g., a workflow ID from an external system)

Labels map[string, string]Optional

Arbitrary key-value pairs for categorization and filtering Examples: {“environment”: “production”, “team”: “platform”, “version”: “v2”}

Configuration for a profile.

Type ProfileSpecType

Whether this profile represents a human user, an API key, or a system principal.

formatenum
One of the following:
const ProfileSpecTypeProfileTypeUnspecified ProfileSpecType = "PROFILE_TYPE_UNSPECIFIED"
const ProfileSpecTypeProfileTypeUser ProfileSpecType = "PROFILE_TYPE_USER"
const ProfileSpecTypeProfileTypeAPIKey ProfileSpecType = "PROFILE_TYPE_API_KEY"
const ProfileSpecTypeProfileTypeSystem ProfileSpecType = "PROFILE_TYPE_SYSTEM"
Email stringOptional

Email address of the profile. Required and unique within an account for user profiles.

Name stringOptional

Display name (e.g., “Bobby Tables”).

ToolSet ResourceMetadataOptional

Standard metadata for persistent, named resources (e.g., agents, tools, prompts)

ID string

Unique identifier for the resource (prefixed ULID, e.g., “agent_01HXK…”)

AccountID string

Account this resource belongs to for multi-tenant isolation (prefixed ULID)

CreatedAt Time

Timestamp when this resource was created

formatdate-time
Name string

Human-readable name for the resource (e.g., “Customer Support Agent”, “Email Tool”) Required for resources that users interact with directly

ProfileID string

ID of the actor (user or service account) that created this resource

WorkspaceID string

Workspace this resource belongs to for organizational grouping (prefixed ULID)

BundleKey stringOptional

Optional bundle ownership key. When set, indicates the resource is managed by a configuration bundle identified by this key. Used by BulkWorkspaceResources.Apply to track which resources belong to which bundle for reconciliation / soft-delete on re-apply.

ExternalID stringOptional

External ID for the resource (e.g., a workflow ID from an external system)

Labels map[string, string]Optional

Arbitrary key-value pairs for categorization and filtering Examples: {“environment”: “production”, “team”: “platform”, “version”: “v2”}

List objective tools

package main

import (
  "context"
  "fmt"

  "github.com/cadenya/cadenya-go"
  "github.com/cadenya/cadenya-go/option"
)

func main() {
  client := cadenya.NewClient(
    option.WithAPIKey("My API Key"),
  )
  page, err := client.Objectives.Tools.List(
    context.TODO(),
    "workspaceId",
    "objectiveId",
    cadenya.ObjectiveToolListParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
{
  "items": [
    {
      "metadata": {
        "id": "id",
        "name": "name"
      },
      "snapshot": {
        "metadata": {
          "id": "id",
          "accountId": "accountId",
          "createdAt": "2019-12-27T18:11:19.117Z",
          "name": "name",
          "profileId": "profileId",
          "workspaceId": "workspaceId",
          "bundleKey": "bundleKey",
          "externalId": "externalId",
          "labels": {
            "foo": "string"
          }
        },
        "spec": {
          "config": {
            "http": {
              "requestMethod": "HTTP_METHOD_UNSPECIFIED",
              "headers": {
                "foo": "string"
              },
              "path": "path",
              "query": "query",
              "requestBodyContentType": "requestBodyContentType",
              "requestBodyTemplate": "requestBodyTemplate",
              "toolName": "toolName"
            },
            "mcp": {
              "toolDescription": "toolDescription",
              "toolName": "toolName",
              "toolTitle": "toolTitle"
            },
            "openapi": {
              "method": "method",
              "operationId": "operationId",
              "path": "path"
            }
          },
          "description": "description",
          "parameters": {
            "foo": "bar"
          },
          "status": "TOOL_STATUS_UNSPECIFIED",
          "requiresApproval": true
        },
        "info": {
          "createdBy": {
            "metadata": {
              "id": "id",
              "accountId": "accountId",
              "name": "name",
              "profileId": "profileId",
              "externalId": "externalId",
              "labels": {
                "foo": "string"
              }
            },
            "spec": {
              "type": "PROFILE_TYPE_UNSPECIFIED",
              "email": "email",
              "name": "name"
            }
          },
          "toolSet": {
            "id": "id",
            "accountId": "accountId",
            "createdAt": "2019-12-27T18:11:19.117Z",
            "name": "name",
            "profileId": "profileId",
            "workspaceId": "workspaceId",
            "bundleKey": "bundleKey",
            "externalId": "externalId",
            "labels": {
              "foo": "string"
            }
          }
        }
      }
    }
  ],
  "pagination": {
    "nextCursor": "nextCursor",
    "total": 0
  }
}
Returns Examples
{
  "items": [
    {
      "metadata": {
        "id": "id",
        "name": "name"
      },
      "snapshot": {
        "metadata": {
          "id": "id",
          "accountId": "accountId",
          "createdAt": "2019-12-27T18:11:19.117Z",
          "name": "name",
          "profileId": "profileId",
          "workspaceId": "workspaceId",
          "bundleKey": "bundleKey",
          "externalId": "externalId",
          "labels": {
            "foo": "string"
          }
        },
        "spec": {
          "config": {
            "http": {
              "requestMethod": "HTTP_METHOD_UNSPECIFIED",
              "headers": {
                "foo": "string"
              },
              "path": "path",
              "query": "query",
              "requestBodyContentType": "requestBodyContentType",
              "requestBodyTemplate": "requestBodyTemplate",
              "toolName": "toolName"
            },
            "mcp": {
              "toolDescription": "toolDescription",
              "toolName": "toolName",
              "toolTitle": "toolTitle"
            },
            "openapi": {
              "method": "method",
              "operationId": "operationId",
              "path": "path"
            }
          },
          "description": "description",
          "parameters": {
            "foo": "bar"
          },
          "status": "TOOL_STATUS_UNSPECIFIED",
          "requiresApproval": true
        },
        "info": {
          "createdBy": {
            "metadata": {
              "id": "id",
              "accountId": "accountId",
              "name": "name",
              "profileId": "profileId",
              "externalId": "externalId",
              "labels": {
                "foo": "string"
              }
            },
            "spec": {
              "type": "PROFILE_TYPE_UNSPECIFIED",
              "email": "email",
              "name": "name"
            }
          },
          "toolSet": {
            "id": "id",
            "accountId": "accountId",
            "createdAt": "2019-12-27T18:11:19.117Z",
            "name": "name",
            "profileId": "profileId",
            "workspaceId": "workspaceId",
            "bundleKey": "bundleKey",
            "externalId": "externalId",
            "labels": {
              "foo": "string"
            }
          }
        }
      }
    }
  ],
  "pagination": {
    "nextCursor": "nextCursor",
    "total": 0
  }
}