{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/beam-ai/main/json-schema/beam-ai-agent-graph-node-schema.json",
  "title": "AgentGraphNode",
  "x-generated": "2026-10-14",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/beam-ai-openapi.json#/components/schemas/AgentGraphNode",
  "type": "object",
  "properties": {
    "evaluationCriteria": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "agentToolConfigurationId": {
      "type": "string"
    },
    "toolConfiguration": {
      "$ref": "#/$defs/AgentToolConfiguration"
    },
    "objective": {
      "type": "string"
    },
    "customId": {
      "type": "string"
    },
    "isExitNode": {
      "type": "boolean"
    },
    "isEntryNode": {
      "type": "boolean"
    },
    "agentGraphId": {
      "type": "string"
    },
    "xCoordinate": {
      "type": "number"
    },
    "yCoordinate": {
      "type": "number"
    },
    "onError": {
      "enum": [
        "CONTINUE",
        "STOP"
      ],
      "type": "string"
    },
    "isEvaluationEnabled": {
      "type": "boolean"
    },
    "autoRetryWhenAccuracyLessThan": {
      "type": "number"
    },
    "autoRetryLimitWhenAccuracyIsLow": {
      "type": "number"
    },
    "enableAutoRetryWhenAccuracyIsLow": {
      "type": "boolean"
    },
    "enableAutoRetryWhenFailure": {
      "type": "boolean"
    },
    "autoRetryCountWhenFailure": {
      "type": "number"
    },
    "autoRetryWaitTimeWhenFailureInMs": {
      "type": "number"
    },
    "isAttachmentDataPulledIn": {
      "type": "boolean"
    },
    "nodeType": {
      "enum": [
        "executionNode",
        "conditionNode",
        "waitingNode",
        "entryNode",
        "exitNode"
      ],
      "type": "string"
    },
    "nodeConfigurations": {
      "$ref": "#/$defs/NodeConfigurations"
    },
    "saveAsVersion": {
      "type": "boolean"
    },
    "isEdited": {
      "type": "boolean"
    },
    "isActiveNodeVersion": {
      "type": "boolean"
    },
    "userId": {
      "type": "string"
    },
    "autoRetryDescription": {
      "type": "string"
    },
    "enableAutoRetryDescription": {
      "type": "boolean"
    },
    "id": {
      "type": "string"
    },
    "createdAt": {
      "format": "date-time",
      "type": "string"
    },
    "updatedAt": {
      "format": "date-time",
      "type": "string"
    }
  },
  "required": [
    "evaluationCriteria",
    "toolConfiguration",
    "objective",
    "customId",
    "isExitNode",
    "isEntryNode",
    "agentGraphId",
    "onError",
    "isEvaluationEnabled",
    "autoRetryWhenAccuracyLessThan",
    "autoRetryLimitWhenAccuracyIsLow",
    "enableAutoRetryWhenAccuracyIsLow",
    "enableAutoRetryWhenFailure",
    "autoRetryCountWhenFailure",
    "autoRetryWaitTimeWhenFailureInMs",
    "isAttachmentDataPulledIn",
    "nodeType",
    "saveAsVersion",
    "isEdited",
    "isActiveNodeVersion",
    "autoRetryDescription",
    "enableAutoRetryDescription",
    "id",
    "createdAt",
    "updatedAt"
  ],
  "$defs": {
    "AgentCategoryInfo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      }
    },
    "AgentToolConfiguration": {
      "type": "object",
      "properties": {
        "toolFunctionName": {
          "type": "string",
          "description": "Function name used to invoke this tool."
        },
        "integrationProviderId": {
          "type": "string",
          "description": "UUID of the integration provider for this tool."
        },
        "inputParams": {
          "description": "Input parameter configurations for this tool.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/AgentToolConfigurationInputParams"
          }
        },
        "outputParamsData": {
          "description": "JSON representation of output parameters.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/CustomToolOutput"
          }
        },
        "inputParamsData": {
          "description": "JSON representation of input parameters.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/UserInputParamConfigDto"
          }
        },
        "agentId": {
          "type": "string",
          "description": "UUID of the agent this tool configuration belongs to."
        },
        "requiresConsent": {
          "type": "boolean",
          "description": "Whether user consent is required before executing this tool."
        },
        "isBackgroundTool": {
          "type": "boolean",
          "description": "Whether this tool runs in the background without blocking workflow execution."
        },
        "isMemoryTool": {
          "type": "boolean",
          "description": "Whether this tool accesses or stores data in memory."
        },
        "isBatchExecutionEnabled": {
          "type": "boolean",
          "description": "Whether this tool supports batch processing of multiple items."
        },
        "accuracyScore": {
          "type": "number",
          "description": "Accuracy score for this tool configuration."
        },
        "memoryLookupInstruction": {
          "type": "string",
          "description": "Instructions for how the tool should look up data from memory."
        },
        "preferredModel": {
          "type": "string",
          "description": "Preferred LLM model for this tool configuration"
        },
        "fallbackModels": {
          "type": "string",
          "description": "Comma-separated list of fallback models to use if preferred model fails"
        },
        "dynamicPropsId": {
          "type": [
            "string",
            "null"
          ],
          "description": "ID for dynamic properties configuration."
        },
        "outputParams": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AgentToolConfigurationOutputParams"
          }
        },
        "codeLanguage": {
          "type": "string"
        },
        "code": {
          "type": "string"
        },
        "originalTool": {
          "$ref": "#/$defs/ToolsViewWithIntegrationConnectionStatus"
        },
        "id": {
          "type": "string"
        },
        "createdAt": {
          "format": "date-time",
          "type": "string"
        },
        "updatedAt": {
          "format": "date-time",
          "type": "string"
        }
      },
      "required": [
        "toolFunctionName",
        "inputParams",
        "agentId",
        "outputParams",
        "originalTool",
        "id",
        "createdAt",
        "updatedAt"
      ]
    },
    "AgentToolConfigurationInputParams": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for the input parameter."
        },
        "paramName": {
          "type": "string",
          "description": "Name of the input parameter."
        },
        "position": {
          "type": "number",
          "description": "Position/order of the parameter in the input list."
        },
        "fillType": {
          "enum": [
            "ai_fill",
            "static",
            "user_fill",
            "from_memory",
            "from_task_attachment",
            "linked"
          ],
          "type": "string",
          "description": "How the parameter value should be filled."
        },
        "agentToolConfigurationId": {
          "type": "string",
          "description": "UUID of the parent tool configuration."
        },
        "question": {
          "type": "string",
          "description": "Question to ask the user when fillType is USER_FILL."
        },
        "linkParamOutputId": {
          "type": "string",
          "description": "ID of the linked output parameter for data flow."
        },
        "paramDescription": {
          "type": "string",
          "description": "Human-readable description of what this parameter represents."
        },
        "paramTip": {
          "type": [
            "string",
            "null"
          ],
          "description": "Helpful tip or hint for providing this parameter value."
        },
        "staticValue": {
          "type": "string",
          "description": "Static value to use when fillType is STATIC."
        },
        "required": {
          "type": "boolean",
          "description": "Whether this parameter is required."
        },
        "dataType": {
          "type": "string",
          "description": "Data type of the parameter."
        },
        "outputExample": {
          "type": "string",
          "description": "Example value demonstrating the expected input format."
        },
        "reloadProps": {
          "type": "boolean",
          "description": "Whether to reload dynamic properties when this parameter changes."
        },
        "remoteOptions": {
          "type": "boolean",
          "description": "Whether options are loaded from a remote source."
        },
        "options": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            }
          },
          "description": "Available options for selection-type parameters."
        },
        "createdAt": {
          "format": "date-time",
          "type": "string",
          "description": "Timestamp when the parameter was created."
        },
        "updatedAt": {
          "format": "date-time",
          "type": "string",
          "description": "Timestamp when the parameter was last updated."
        },
        "linkOutputParam": {
          "$ref": "#/$defs/AgentToolConfigurationOutputParams"
        },
        "linkedOutputParamRules": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/LinkedOutputParamRules"
          }
        },
        "linkedParamRulePrompt": {
          "type": "string"
        },
        "ruleConditionConfig": {
          "$ref": "#/$defs/ParamRuleConditionConfig"
        }
      },
      "required": [
        "id",
        "paramName",
        "fillType",
        "agentToolConfigurationId",
        "createdAt",
        "updatedAt",
        "linkOutputParam",
        "linkedOutputParamRules"
      ]
    },
    "AgentToolConfigurationOutputParams": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for the output parameter."
        },
        "paramName": {
          "type": "string",
          "description": "Name of the output parameter."
        },
        "position": {
          "type": "number",
          "description": "Position/order of the parameter in the output list."
        },
        "paramDescription": {
          "type": "string",
          "description": "Human-readable description of what this output parameter represents."
        },
        "agentToolConfigurationId": {
          "type": "string",
          "description": "UUID of the parent tool configuration."
        },
        "parentId": {
          "type": "string",
          "description": "UUID of the parent parameter for nested structures."
        },
        "paramPath": {
          "type": "string",
          "description": "JSON path to this parameter in the output structure."
        },
        "outputExample": {
          "type": "string",
          "description": "Example value demonstrating the expected output format."
        },
        "dataType": {
          "enum": [
            "string",
            "number",
            "boolean",
            "object",
            "enum"
          ],
          "type": [
            "string",
            "null"
          ],
          "description": "Data type of the output parameter."
        },
        "isArray": {
          "type": "boolean",
          "default": false,
          "description": "Whether this parameter returns an array of values."
        },
        "typeOptions": {
          "type": [
            "object",
            "null"
          ],
          "description": "Additional type-specific configuration options."
        },
        "createdAt": {
          "format": "date-time",
          "type": "string",
          "description": "Timestamp when the parameter was created."
        },
        "updatedAt": {
          "format": "date-time",
          "type": "string",
          "description": "Timestamp when the parameter was last updated."
        }
      },
      "required": [
        "id",
        "agentToolConfigurationId",
        "isArray",
        "createdAt",
        "updatedAt"
      ]
    },
    "AgentTriggerConfigurationFiltersConditions": {
      "type": "object",
      "properties": {
        "condition": {
          "enum": [
            "is",
            "is_not",
            "contain",
            "does_not_contain",
            "any",
            "all",
            "less_than",
            "GREATER_than",
            "count",
            "exist",
            "does_not_exist"
          ],
          "type": "string"
        },
        "operator": {
          "enum": [
            "AND",
            "OR"
          ],
          "type": "string"
        },
        "property": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "required": [
        "condition",
        "operator",
        "property",
        "value"
      ]
    },
    "AgentTriggerConfigurationFiltersGroup": {
      "type": "object",
      "properties": {
        "operator": {
          "enum": [
            "AND",
            "OR"
          ],
          "type": "string"
        },
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AgentTriggerConfigurationFiltersConditions"
          }
        }
      },
      "required": [
        "operator",
        "conditions"
      ]
    },
    "CustomIntegrationAuthenticationMetaDTO": {
      "type": "object",
      "properties": {
        "clientId": {
          "type": "string"
        },
        "customOAuthUrl": {
          "type": "string"
        },
        "clientSecret": {
          "type": "string"
        },
        "authorizationUrl": {
          "type": "string"
        },
        "accessTokenUrl": {
          "type": "string"
        },
        "refreshTokenUrl": {
          "type": "string"
        },
        "scopes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "apiKeyType": {
          "type": "string",
          "enum": [
            "default",
            "bearer",
            "header",
            "query"
          ]
        },
        "grantType": {
          "type": "string",
          "enum": [
            "client_credentials",
            "authorization_code"
          ]
        },
        "parameter": {
          "type": "string"
        },
        "clientAuthentication": {
          "type": "string",
          "enum": [
            "headers",
            "body"
          ]
        }
      },
      "required": [
        "clientId",
        "clientSecret",
        "authorizationUrl",
        "accessTokenUrl",
        "refreshTokenUrl",
        "scopes",
        "apiKeyType",
        "grantType",
        "parameter",
        "clientAuthentication"
      ]
    },
    "CustomIntegrationToolBodyParamsDTO": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "parameterHint": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "required": {
          "type": "boolean"
        }
      },
      "required": [
        "key",
        "parameterHint",
        "type",
        "required"
      ]
    },
    "CustomIntegrationToolQueryParamsDTO": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "parameterHint": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "required": {
          "type": "boolean"
        }
      },
      "required": [
        "key",
        "parameterHint",
        "required"
      ]
    },
    "CustomIntegrationToolUrlParamsDTO": {
      "type": "object",
      "properties": {
        "key": {
          "type": "string"
        },
        "parameterHint": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "required": {
          "type": "boolean"
        }
      },
      "required": [
        "key",
        "parameterHint",
        "required"
      ]
    },
    "CustomToolOutput": {
      "type": "object",
      "properties": {
        "position": {
          "type": "number"
        },
        "paramName": {
          "type": "string"
        },
        "paramDescription": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "agentToolConfigurationId": {
          "type": "string"
        },
        "dataType": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "string",
            "number",
            "boolean",
            "object",
            "enum"
          ]
        },
        "isArray": {
          "type": "boolean"
        },
        "typeOptions": {
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": true
        },
        "parentId": {
          "type": "string"
        },
        "paramPath": {
          "type": "string"
        },
        "outputExample": {
          "type": "string"
        }
      }
    },
    "GetToolsMetaDto": {
      "type": "object",
      "properties": {
        "integration_provider_details": {
          "$ref": "#/$defs/IntegrationProviderDetails"
        },
        "agent_category": {
          "$ref": "#/$defs/AgentCategoryInfo"
        },
        "payload": {
          "type": "string"
        },
        "tool_name": {
          "type": "string"
        },
        "function_name": {
          "type": "string"
        },
        "requires_consent": {
          "type": "boolean"
        },
        "requires_translation": {
          "type": "boolean"
        },
        "description": {
          "type": "string"
        },
        "required_extracted_args": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "optional_extracted_args": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "content": {
          "type": "string"
        },
        "prompt": {
          "type": "string"
        },
        "type": {
          "enum": [
            "beam_tool",
            "gpt_tool",
            "custom_gpt_tool",
            "custom_integration_tool",
            "code_executor_tool"
          ],
          "type": "string"
        },
        "integrationIdentifier": {
          "type": "string"
        },
        "categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "icon_src": {
          "type": "string"
        },
        "integration_provider_auth": {
          "type": "string"
        },
        "integration_provider_executor": {
          "type": "string"
        },
        "preferred_model": {
          "type": "string"
        },
        "integration_id": {
          "type": "string"
        },
        "apiKeyType": {
          "type": "string"
        },
        "parameter": {
          "type": "string"
        },
        "tool_category_id": {
          "type": "string"
        },
        "isActive": {
          "type": "boolean"
        },
        "agent_categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "required_generated_args": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "optional_generated_args": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "is_memory_tool": {
          "type": "boolean"
        },
        "memory_lookup_instruction": {
          "type": "string"
        },
        "workspace_id": {
          "type": "string"
        }
      },
      "required": [
        "tool_name",
        "function_name",
        "requires_consent",
        "requires_translation",
        "description",
        "required_extracted_args",
        "content",
        "prompt",
        "type",
        "isActive"
      ]
    },
    "IntegrationCategory": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "Title of the integration category."
        },
        "id": {
          "type": "string"
        },
        "createdAt": {
          "format": "date-time",
          "type": "string"
        },
        "updatedAt": {
          "format": "date-time",
          "type": "string"
        }
      },
      "required": [
        "title",
        "id",
        "createdAt",
        "updatedAt"
      ]
    },
    "IntegrationProvider": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string"
        },
        "credentialId": {
          "type": "string"
        },
        "connectionName": {
          "type": "string"
        },
        "integration": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "integrationId": {
          "type": "string"
        },
        "isOAuth2": {
          "type": "boolean"
        },
        "provider": {
          "enum": [
            "custom",
            "nango",
            "nango_cloud",
            "pipedream",
            "none"
          ],
          "type": "string"
        },
        "workspace": {
          "type": "string"
        },
        "tokenExpiresIn": {
          "type": "number"
        },
        "credentials": {
          "type": "object"
        },
        "isDefault": {
          "type": "boolean"
        },
        "creator": {
          "$ref": "#/$defs/User"
        },
        "id": {
          "type": "string"
        },
        "createdAt": {
          "format": "date-time",
          "type": "string"
        },
        "updatedAt": {
          "format": "date-time",
          "type": "string"
        }
      },
      "required": [
        "userId",
        "credentialId",
        "connectionName",
        "integration",
        "status",
        "isOAuth2",
        "provider",
        "workspace",
        "tokenExpiresIn",
        "credentials",
        "isDefault",
        "creator",
        "id",
        "createdAt",
        "updatedAt"
      ]
    },
    "IntegrationProviderDetails": {
      "type": "object",
      "properties": {
        "request": {
          "$ref": "#/$defs/IntegrationProviderRequest"
        },
        "response": {
          "type": "object"
        }
      }
    },
    "IntegrationProviderRequest": {
      "type": "object",
      "properties": {
        "endpoint": {
          "type": "string"
        },
        "method": {
          "type": "string"
        },
        "query": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "body": {
          "type": "object"
        },
        "bypassTLS": {
          "type": "boolean"
        }
      }
    },
    "IntegrationsViewEntity": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier for the integration."
        },
        "name": {
          "type": "string",
          "description": "Name of the integration."
        },
        "description": {
          "type": "string",
          "description": "Description of the integration."
        },
        "systemIntegrationIdentifier": {
          "type": "string",
          "description": "System integration identifier."
        },
        "integrationCategoryId": {
          "type": "string",
          "description": "UUID of the integration category."
        },
        "iconSrc": {
          "type": "string",
          "description": "Icon source URL."
        },
        "type": {
          "enum": [
            "integration",
            "custom_integration"
          ],
          "type": "string",
          "description": "Type of integration."
        },
        "userId": {
          "type": "string",
          "description": "UUID of the user."
        },
        "workspaceId": {
          "type": "string",
          "description": "UUID of the workspace."
        },
        "privacyPolicyUrl": {
          "type": "string",
          "description": "Privacy policy URL."
        },
        "shortDescription": {
          "type": "string",
          "description": "Short description of the integration."
        },
        "longDescription": {
          "type": "string",
          "description": "Detailed description of the integration."
        },
        "systemIntegrationProvider": {
          "type": "string",
          "description": "System integration provider."
        },
        "customAuthParameters": {
          "type": "object",
          "description": "Custom authentication parameters."
        },
        "category": {
          "type": "string",
          "description": "Category of the integration."
        },
        "authenticationMeta": {
          "description": "Authentication metadata.",
          "allOf": [
            {
              "$ref": "#/$defs/CustomIntegrationAuthenticationMetaDTO"
            }
          ]
        },
        "syncModels": {
          "type": "object",
          "description": "Sync models configuration."
        },
        "isPublished": {
          "type": "boolean",
          "description": "Whether the integration is published."
        },
        "attributes": {
          "type": "object",
          "description": "Integration attributes."
        },
        "status": {
          "type": "string",
          "description": "Current status of the integration."
        },
        "customHeaders": {
          "type": "object",
          "description": "Custom headers for API requests."
        },
        "allowWaiting": {
          "type": "boolean",
          "description": "Whether the integration allows waiting."
        },
        "authType": {
          "type": "string"
        },
        "provider": {
          "$ref": "#/$defs/IntegrationProvider"
        },
        "providers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/IntegrationProvider"
          }
        },
        "integrationCategory": {
          "$ref": "#/$defs/IntegrationCategory"
        },
        "actions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Tool"
          }
        }
      },
      "required": [
        "id",
        "type",
        "provider",
        "providers",
        "integrationCategory",
        "actions"
      ]
    },
    "LinkParamsDto": {
      "type": "object",
      "properties": {
        "toolId": {
          "type": "string"
        },
        "toolFunctionName": {
          "type": "string"
        },
        "outputParam": {
          "type": "string"
        },
        "outputId": {
          "type": "string"
        }
      }
    },
    "LinkedOutputParamRuleDto": {
      "type": "object",
      "properties": {
        "elementKey": {
          "type": "string",
          "description": "Element key for the rule."
        },
        "operator": {
          "enum": [
            "equals",
            "not_equals",
            "greater_than",
            "less_than",
            "contains",
            "does_not_contain",
            "starts_with",
            "ends_with",
            "is_empty",
            "is_not_empty"
          ],
          "type": "string",
          "description": "Comparison operator for the rule."
        },
        "comparisonValueType": {
          "enum": [
            "static",
            "output_param"
          ],
          "type": "string",
          "description": "Type of the comparison value."
        },
        "comparisonValue": {
          "type": [
            "string",
            "null"
          ],
          "description": "Value to compare against."
        },
        "nextRuleOperator": {
          "enum": [
            "AND",
            "OR"
          ],
          "type": "string",
          "description": "Logical operator linking to the next rule."
        }
      },
      "required": [
        "elementKey",
        "operator",
        "comparisonValueType"
      ]
    },
    "LinkedOutputParamRules": {
      "type": "object",
      "properties": {
        "elementKey": {
          "type": "string"
        },
        "agentToolConfigurationInputParamsId": {
          "type": "string"
        },
        "operator": {
          "enum": [
            "equals",
            "not_equals",
            "greater_than",
            "less_than",
            "contains",
            "does_not_contain",
            "starts_with",
            "ends_with",
            "is_empty",
            "is_not_empty"
          ],
          "type": "string"
        },
        "comparisonValueType": {
          "enum": [
            "static",
            "output_param"
          ],
          "type": "string"
        },
        "comparisonValue": {
          "type": "string"
        },
        "nextRuleOperator": {
          "enum": [
            "AND",
            "OR"
          ],
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "createdAt": {
          "format": "date-time",
          "type": "string"
        },
        "updatedAt": {
          "format": "date-time",
          "type": "string"
        }
      },
      "required": [
        "elementKey",
        "agentToolConfigurationInputParamsId",
        "operator",
        "comparisonValueType",
        "id",
        "createdAt",
        "updatedAt"
      ]
    },
    "LinkedOutputParamRulesDto": {
      "type": "object",
      "properties": {
        "rules": {
          "description": "Array of linked output param rules.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/LinkedOutputParamRuleDto"
          }
        },
        "linkedParamRulePrompt": {
          "type": "string",
          "description": "Prompt for the linked param rule."
        },
        "linkedParamConfigurations": {
          "description": "Configuration for linked param nodes.",
          "allOf": [
            {
              "$ref": "#/$defs/ParamRuleConditionConfig"
            }
          ]
        }
      },
      "required": [
        "linkedParamConfigurations"
      ]
    },
    "NodeConfigurations": {
      "type": "object",
      "properties": {
        "conditionType": {
          "enum": [
            "llm_based",
            "rule_based"
          ],
          "type": "string"
        },
        "llmModel": {
          "type": "string"
        },
        "fallbackModels": {
          "type": "string"
        },
        "waitType": {
          "enum": [
            "time_based",
            "condition_based"
          ],
          "type": "string"
        },
        "timeToWaitValue": {
          "type": "number"
        },
        "timeToWaitUnit": {
          "enum": [
            "minutes",
            "hours",
            "days",
            "months"
          ],
          "type": "string"
        },
        "linkedAgentGraphNodeId": {
          "type": "string"
        },
        "rule": {
          "type": "string"
        },
        "conditions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AgentTriggerConfigurationFiltersGroup"
          }
        },
        "timeoutType": {
          "enum": [
            "no_timeout",
            "set_timeout"
          ],
          "type": "string"
        },
        "timeoutValue": {
          "type": "number"
        },
        "timeoutUnit": {
          "enum": [
            "minutes",
            "hours",
            "days",
            "months"
          ],
          "type": "string"
        },
        "onTimeout": {
          "enum": [
            "continue",
            "fail"
          ],
          "type": "string"
        }
      }
    },
    "ParamRuleConditionConfig": {
      "type": "object",
      "properties": {
        "conditionType": {
          "type": "string",
          "enum": [
            "llm_based",
            "rule_based"
          ]
        }
      }
    },
    "Question": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "question": {
          "type": "string"
        },
        "keywordInPrompt": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "question",
        "keywordInPrompt"
      ]
    },
    "Tool": {
      "type": "object",
      "properties": {
        "toolFunctionName": {
          "type": "string",
          "description": "Function name used to invoke this tool."
        },
        "toolName": {
          "type": "string",
          "description": "Display name of the tool."
        },
        "iconSrc": {
          "type": [
            "string",
            "null"
          ],
          "description": "Icon source URL."
        },
        "type": {
          "enum": [
            "beam_tool",
            "gpt_tool",
            "custom_gpt_tool",
            "custom_integration_tool",
            "code_executor_tool"
          ],
          "type": "string",
          "description": "Type of tool."
        },
        "isVisibleOnUi": {
          "type": "boolean",
          "description": "Whether this tool is visible on the UI."
        },
        "integrationId": {
          "type": [
            "string",
            "null"
          ],
          "description": "UUID of the associated integration."
        },
        "meta": {
          "description": "Tool metadata.",
          "allOf": [
            {
              "$ref": "#/$defs/GetToolsMetaDto"
            }
          ]
        },
        "outputId": {
          "type": "string",
          "description": "UUID of the output configuration."
        },
        "prompt": {
          "type": "string",
          "description": "Prompt template for the tool."
        },
        "inputParams": {
          "description": "Input parameters configuration.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/UserInputParamConfigDto"
          }
        },
        "requiresConsent": {
          "type": "boolean",
          "description": "Whether user consent is required before execution."
        },
        "isMemoryTool": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Whether this tool accesses or stores data in memory."
        },
        "isBackgroundTool": {
          "type": "boolean",
          "description": "Whether this tool runs in the background."
        },
        "memoryLookupInstruction": {
          "type": [
            "string",
            "null"
          ],
          "description": "Instructions for memory lookup."
        },
        "outputParams": {
          "description": "Output parameters configuration.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/CustomToolOutput"
          }
        },
        "isBatchExecutionEnabled": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Whether batch execution is enabled."
        },
        "description": {
          "type": [
            "string",
            "null"
          ],
          "description": "Description of the tool."
        },
        "isActive": {
          "type": "boolean",
          "description": "Whether the tool is active."
        },
        "workspaceId": {
          "type": [
            "string",
            "null"
          ],
          "description": "UUID of the workspace."
        },
        "userId": {
          "type": [
            "string",
            "null"
          ],
          "description": "UUID of the user."
        },
        "agentId": {
          "type": [
            "string",
            "null"
          ],
          "description": "UUID of the agent."
        },
        "httpMethod": {
          "enum": [
            "post",
            "get",
            "delete",
            "patch",
            "put"
          ],
          "type": [
            "string",
            "null"
          ],
          "description": "HTTP method for custom integration tools."
        },
        "url": {
          "type": [
            "string",
            "null"
          ],
          "description": "URL for custom integration tools."
        },
        "isAvailableToWorkspace": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Whether the tool is available to the workspace."
        },
        "preferredModel": {
          "type": "string",
          "description": "Preferred model for the tool."
        },
        "shortDescription": {
          "type": "string",
          "description": "Short description of the tool."
        },
        "isSharable": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Whether the tool is sharable."
        },
        "systemIntegrationIdentifier": {
          "type": [
            "string",
            "null"
          ],
          "description": "System integration identifier."
        },
        "apiKeyType": {
          "type": [
            "string",
            "null"
          ],
          "description": "API key type."
        },
        "parameter": {
          "type": [
            "string",
            "null"
          ],
          "description": "Parameter configuration."
        },
        "allowWaiting": {
          "type": "boolean",
          "description": "Whether the tool allows waiting."
        },
        "queryParams": {
          "description": "Query parameters for custom integration tools.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/CustomIntegrationToolQueryParamsDTO"
          }
        },
        "bodyParams": {
          "description": "Body parameters for custom integration tools.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/CustomIntegrationToolBodyParamsDTO"
          }
        },
        "urlParams": {
          "description": "URL parameters for custom integration tools.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/CustomIntegrationToolUrlParamsDTO"
          }
        },
        "createdAt": {
          "format": "date-time",
          "type": "string",
          "description": "Timestamp when the tool was created."
        },
        "updatedAt": {
          "format": "date-time",
          "type": "string",
          "description": "Timestamp when the tool was last updated."
        },
        "deletedAt": {
          "format": "date-time",
          "type": "string",
          "description": "Timestamp when the tool was deleted."
        },
        "toolConfigurations": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AgentToolConfiguration"
          }
        },
        "questions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Question"
          }
        },
        "embedding": {
          "type": [
            "string",
            "null"
          ]
        },
        "integration": {
          "$ref": "#/$defs/IntegrationsViewEntity"
        },
        "toolConfiguration": {
          "$ref": "#/$defs/AgentToolConfiguration"
        },
        "id": {
          "type": "string"
        }
      },
      "required": [
        "toolFunctionName",
        "toolName",
        "type",
        "meta",
        "requiresConsent",
        "isBackgroundTool",
        "isActive",
        "createdAt",
        "updatedAt",
        "id"
      ]
    },
    "ToolsViewWithIntegrationConnectionStatus": {
      "type": "object",
      "properties": {
        "toolFunctionName": {
          "type": "string",
          "description": "Function name used to invoke this tool."
        },
        "toolName": {
          "type": "string",
          "description": "Display name of the tool."
        },
        "iconSrc": {
          "type": [
            "string",
            "null"
          ],
          "description": "Icon source URL."
        },
        "type": {
          "enum": [
            "beam_tool",
            "gpt_tool",
            "custom_gpt_tool",
            "custom_integration_tool",
            "code_executor_tool"
          ],
          "type": "string",
          "description": "Type of tool."
        },
        "isVisibleOnUi": {
          "type": "boolean",
          "description": "Whether this tool is visible on the UI."
        },
        "integrationId": {
          "type": [
            "string",
            "null"
          ],
          "description": "UUID of the associated integration."
        },
        "meta": {
          "description": "Tool metadata.",
          "allOf": [
            {
              "$ref": "#/$defs/GetToolsMetaDto"
            }
          ]
        },
        "outputId": {
          "type": "string",
          "description": "UUID of the output configuration."
        },
        "prompt": {
          "type": "string",
          "description": "Prompt template for the tool."
        },
        "inputParams": {
          "description": "Input parameters configuration.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/UserInputParamConfigDto"
          }
        },
        "requiresConsent": {
          "type": "boolean",
          "description": "Whether user consent is required before execution."
        },
        "isMemoryTool": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Whether this tool accesses or stores data in memory."
        },
        "isBackgroundTool": {
          "type": "boolean",
          "description": "Whether this tool runs in the background."
        },
        "memoryLookupInstruction": {
          "type": [
            "string",
            "null"
          ],
          "description": "Instructions for memory lookup."
        },
        "outputParams": {
          "description": "Output parameters configuration.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/CustomToolOutput"
          }
        },
        "isBatchExecutionEnabled": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Whether batch execution is enabled."
        },
        "description": {
          "type": [
            "string",
            "null"
          ],
          "description": "Description of the tool."
        },
        "isActive": {
          "type": "boolean",
          "description": "Whether the tool is active."
        },
        "workspaceId": {
          "type": [
            "string",
            "null"
          ],
          "description": "UUID of the workspace."
        },
        "userId": {
          "type": [
            "string",
            "null"
          ],
          "description": "UUID of the user."
        },
        "agentId": {
          "type": [
            "string",
            "null"
          ],
          "description": "UUID of the agent."
        },
        "httpMethod": {
          "enum": [
            "post",
            "get",
            "delete",
            "patch",
            "put"
          ],
          "type": [
            "string",
            "null"
          ],
          "description": "HTTP method for custom integration tools."
        },
        "url": {
          "type": [
            "string",
            "null"
          ],
          "description": "URL for custom integration tools."
        },
        "isAvailableToWorkspace": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Whether the tool is available to the workspace."
        },
        "preferredModel": {
          "type": "string",
          "description": "Preferred model for the tool."
        },
        "shortDescription": {
          "type": "string",
          "description": "Short description of the tool."
        },
        "isSharable": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Whether the tool is sharable."
        },
        "systemIntegrationIdentifier": {
          "type": [
            "string",
            "null"
          ],
          "description": "System integration identifier."
        },
        "apiKeyType": {
          "type": [
            "string",
            "null"
          ],
          "description": "API key type."
        },
        "parameter": {
          "type": [
            "string",
            "null"
          ],
          "description": "Parameter configuration."
        },
        "allowWaiting": {
          "type": "boolean",
          "description": "Whether the tool allows waiting."
        },
        "queryParams": {
          "description": "Query parameters for custom integration tools.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/CustomIntegrationToolQueryParamsDTO"
          }
        },
        "bodyParams": {
          "description": "Body parameters for custom integration tools.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/CustomIntegrationToolBodyParamsDTO"
          }
        },
        "urlParams": {
          "description": "URL parameters for custom integration tools.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/CustomIntegrationToolUrlParamsDTO"
          }
        },
        "createdAt": {
          "format": "date-time",
          "type": "string",
          "description": "Timestamp when the tool was created."
        },
        "updatedAt": {
          "format": "date-time",
          "type": "string",
          "description": "Timestamp when the tool was last updated."
        },
        "deletedAt": {
          "format": "date-time",
          "type": "string",
          "description": "Timestamp when the tool was deleted."
        },
        "toolConfigurations": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AgentToolConfiguration"
          }
        },
        "questions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Question"
          }
        },
        "isIntegrationRequired": {
          "type": "boolean",
          "default": false
        },
        "isIntegrationConnected": {
          "type": "boolean",
          "default": false
        },
        "integrationProvider": {
          "type": "string"
        },
        "integrationIdentifier": {
          "type": "string"
        },
        "integrationCustomAuthParameters": {
          "type": "object"
        },
        "embedding": {
          "type": [
            "string",
            "null"
          ]
        },
        "integration": {
          "$ref": "#/$defs/IntegrationsViewEntity"
        },
        "toolConfiguration": {
          "$ref": "#/$defs/AgentToolConfiguration"
        },
        "id": {
          "type": "string"
        }
      },
      "required": [
        "toolFunctionName",
        "toolName",
        "type",
        "meta",
        "requiresConsent",
        "isBackgroundTool",
        "isActive",
        "createdAt",
        "updatedAt",
        "id"
      ]
    },
    "User": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Full name of the user."
        },
        "avatarSrc": {
          "type": "string",
          "description": "URL to the user profile avatar image."
        },
        "email": {
          "type": "string"
        },
        "cognitoUserId": {
          "type": "string"
        },
        "socialProvider": {
          "type": "string"
        },
        "socialProviderId": {
          "type": "string"
        },
        "password": {
          "type": "string"
        },
        "paymentProviderCustomerId": {
          "type": "string"
        },
        "rememberToken": {
          "type": "string"
        },
        "emailVerified": {
          "type": "boolean"
        },
        "referralCode": {
          "type": "string"
        },
        "role_name": {
          "type": "string"
        },
        "isInternalUser": {
          "type": "boolean"
        },
        "id": {
          "type": "string"
        },
        "createdAt": {
          "format": "date-time",
          "type": "string"
        },
        "updatedAt": {
          "format": "date-time",
          "type": "string"
        }
      },
      "required": [
        "name",
        "email",
        "cognitoUserId",
        "role_name",
        "isInternalUser",
        "id",
        "createdAt",
        "updatedAt"
      ]
    },
    "UserInputParamConfigDto": {
      "type": "object",
      "properties": {
        "position": {
          "type": "number",
          "description": "Position/order of the parameter in the input list."
        },
        "paramName": {
          "type": "string",
          "description": "Name of the input parameter."
        },
        "fillType": {
          "default": "ai_fill",
          "enum": [
            "ai_fill",
            "static",
            "user_fill",
            "from_memory",
            "from_task_attachment",
            "linked"
          ],
          "type": "string",
          "description": "How the parameter value should be filled."
        },
        "question": {
          "type": [
            "string",
            "null"
          ],
          "description": "Question to ask the user when fillType is USER_FILL."
        },
        "linkParams": {
          "description": "Configuration for linking this parameter to another tool output.",
          "allOf": [
            {
              "$ref": "#/$defs/LinkParamsDto"
            }
          ]
        },
        "linkParamOutputId": {
          "type": [
            "string",
            "null"
          ],
          "description": "ID of the linked output parameter for data flow."
        },
        "paramDescription": {
          "type": "string",
          "description": "Human-readable description of what this parameter represents."
        },
        "paramTip": {
          "type": [
            "string",
            "null"
          ],
          "description": "Helpful tip or hint for providing this parameter value."
        },
        "staticValue": {
          "type": [
            "string",
            "null"
          ],
          "description": "Static value to use when fillType is STATIC."
        },
        "required": {
          "type": "boolean",
          "default": true,
          "description": "Whether this parameter is required."
        },
        "dataType": {
          "type": "string",
          "default": "string",
          "description": "Data type of the parameter."
        },
        "isArray": {
          "type": "boolean",
          "default": false,
          "description": "Whether this parameter accepts an array of values."
        },
        "typeOptions": {
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": true,
          "description": "Additional type-specific configuration options."
        },
        "outputExample": {
          "type": "string",
          "description": "Example value demonstrating the expected input format."
        },
        "reloadProps": {
          "type": "boolean",
          "description": "Whether to reload dynamic properties when this parameter changes."
        },
        "remoteOptions": {
          "type": "boolean",
          "description": "Whether options are loaded from a remote source."
        },
        "options": {
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            }
          },
          "description": "Available options for selection-type parameters."
        },
        "linkedOutputParamRulesData": {
          "description": "Rules for linked output parameters.",
          "allOf": [
            {
              "$ref": "#/$defs/LinkedOutputParamRulesDto"
            }
          ]
        }
      },
      "required": [
        "paramName",
        "fillType"
      ]
    }
  }
}