From 6bba3284a49c1216ec8f6443d1c07aa858a4ee0a Mon Sep 17 00:00:00 2001 From: jottakka Date: Tue, 21 Oct 2025 15:50:26 -0300 Subject: [PATCH] [MOAR][Weaviate] Weaviate Starter Toolkits (#639) Co-authored-by: Francisco Liberal --- toolkits/weaviate_api/.pre-commit-config.yaml | 18 + toolkits/weaviate_api/.ruff.toml | 45 + toolkits/weaviate_api/LICENSE | 21 + toolkits/weaviate_api/Makefile | 54 + .../arcade_weaviate_api/__init__.py | 0 .../arcade_weaviate_api/tools/__init__.py | 5134 +++++++++++++ .../tools/request_body_schemas.py | 6514 +++++++++++++++++ .../wrapper_tools/ActivateDatabaseUser.json | 115 + .../wrapper_tools/AddPermissionsToRole.json | 738 ++ .../AddPropertyToCollection.json | 480 ++ .../wrapper_tools/AddReferenceToObject.json | 524 ++ .../wrapper_tools/AssignRoleToGroup.json | 185 + .../wrapper_tools/AssignRolesToUser.json | 187 + .../wrapper_tools/BatchCreateReferences.json | 198 + .../wrapper_tools/BatchRegisterObjects.json | 344 + .../wrapper_tools/CancelBackup.json | 214 + .../wrapper_tools/CancelReplication.json | 115 + .../CancelReplicationOperation.json | 115 + .../CheckBackupRestoreStatus.json | 214 + .../wrapper_tools/CheckBackupStatus.json | 214 + .../wrapper_tools/CheckRolePermission.json | 720 ++ .../wrapper_tools/CheckWeaviateLiveness.json | 80 + .../wrapper_tools/CheckWeaviateReadiness.json | 80 + .../wrapper_tools/CreateAliasMapping.json | 148 + .../wrapper_tools/CreateBackup.json | 420 ++ .../wrapper_tools/CreateDatabaseUser.json | 181 + .../wrapper_tools/CreateObjectInWeaviate.json | 310 + .../CreateRoleWithPermissions.json | 721 ++ .../wrapper_tools/CreateSchemaObject.json | 947 +++ .../wrapper_tools/CreateTenants.json | 204 + .../wrapper_tools/DeactivateDatabaseUser.json | 148 + .../wrapper_tools/DeleteAlias.json | 115 + .../wrapper_tools/DeleteAllReplications.json | 80 + .../wrapper_tools/DeleteDataObject.json | 214 + .../wrapper_tools/DeleteDatabaseUser.json | 115 + .../wrapper_tools/DeleteMultipleObjects.json | 657 ++ .../DeleteReferenceFromObject.json | 524 ++ .../wrapper_tools/DeleteRole.json | 115 + .../wrapper_tools/DeleteSchemaCollection.json | 115 + .../wrapper_tools/DeleteTenants.json | 148 + .../wrapper_tools/DiscoverApiEndpoints.json | 80 + .../ExecuteGraphqlBatchQueries.json | 165 + .../wrapper_tools/ExecuteGraphqlQuery.json | 181 + .../wrapper_tools/FetchReplicationStatus.json | 148 + .../wrapper_tools/FetchRoleByName.json | 115 + .../wrapper_tools/FetchShardingState.json | 148 + .../ForceDeleteReplications.json | 247 + .../GetAuthenticatedUserInfo.json | 80 + .../GetClassificationStatus.json | 115 + .../wrapper_tools/GetClusterNodeStatus.json | 115 + .../GetCollectionShardStatus.json | 148 + .../wrapper_tools/GetCollectionTenants.json | 148 + .../wrapper_tools/GetDataObject.json | 280 + .../wrapper_tools/GetDatabaseUserInfo.json | 148 + .../wrapper_tools/GetGroupsForRole.json | 115 + .../wrapper_tools/GetOidcDiscovery.json | 80 + .../wrapper_tools/GetRolesAndPermissions.json | 80 + .../wrapper_tools/GetRolesForGroup.json | 185 + .../GetShardHostNodesStatus.json | 181 + .../wrapper_tools/GetTenantDetails.json | 181 + .../wrapper_tools/GetUserRoles.json | 187 + .../wrapper_tools/GetUsersByRole.json | 115 + .../GetWeaviateClusterStatistics.json | 80 + .../GetWeaviateInstanceMeta.json | 80 + .../InitiateClassificationTask.json | 1545 ++++ .../wrapper_tools/ListBackups.json | 115 + .../wrapper_tools/ListDataObjects.json | 346 + .../wrapper_tools/ListDbUsers.json | 115 + .../wrapper_tools/ListDistributedTasks.json | 80 + .../wrapper_tools/ListReplicationStatus.json | 214 + .../ReplaceObjectReferences.json | 524 ++ .../wrapper_tools/ReplicateShardReplica.json | 253 + .../wrapper_tools/RestoreBackup.json | 373 + .../wrapper_tools/RetrieveAliasDetails.json | 115 + .../wrapper_tools/RetrieveAliases.json | 115 + .../RetrieveCollectionSchema.json | 148 + .../wrapper_tools/RetrieveDatabaseSchema.json | 115 + .../wrapper_tools/RetrieveGroupNames.json | 119 + .../wrapper_tools/RevokeRoleFromGroup.json | 185 + .../wrapper_tools/RevokeRolePermissions.json | 738 ++ .../wrapper_tools/RevokeUserRole.json | 187 + .../wrapper_tools/RotateUserApiKey.json | 115 + .../wrapper_tools/UpdateCollectionAlias.json | 148 + .../UpdateCollectionSettings.json | 980 +++ .../wrapper_tools/UpdateDataObject.json | 376 + .../wrapper_tools/UpdateObjectProperties.json | 376 + .../wrapper_tools/UpdateShardStatus.json | 181 + .../wrapper_tools/UpdateTenantStatus.json | 204 + .../ValidateDataObjectStructure.json | 277 + toolkits/weaviate_api/pyproject.toml | 59 + toolkits/weaviate_api/tests/__init__.py | 0 91 files changed, 32876 insertions(+) create mode 100644 toolkits/weaviate_api/.pre-commit-config.yaml create mode 100644 toolkits/weaviate_api/.ruff.toml create mode 100644 toolkits/weaviate_api/LICENSE create mode 100644 toolkits/weaviate_api/Makefile create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/__init__.py create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/tools/__init__.py create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/tools/request_body_schemas.py create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ActivateDatabaseUser.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AddPermissionsToRole.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AddPropertyToCollection.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AddReferenceToObject.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AssignRoleToGroup.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AssignRolesToUser.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/BatchCreateReferences.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/BatchRegisterObjects.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CancelBackup.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CancelReplication.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CancelReplicationOperation.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckBackupRestoreStatus.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckBackupStatus.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckRolePermission.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckWeaviateLiveness.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckWeaviateReadiness.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateAliasMapping.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateBackup.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateDatabaseUser.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateObjectInWeaviate.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateRoleWithPermissions.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateSchemaObject.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateTenants.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeactivateDatabaseUser.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteAlias.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteAllReplications.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteDataObject.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteDatabaseUser.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteMultipleObjects.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteReferenceFromObject.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteRole.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteSchemaCollection.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteTenants.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DiscoverApiEndpoints.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ExecuteGraphqlBatchQueries.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ExecuteGraphqlQuery.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/FetchReplicationStatus.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/FetchRoleByName.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/FetchShardingState.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ForceDeleteReplications.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetAuthenticatedUserInfo.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetClassificationStatus.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetClusterNodeStatus.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetCollectionShardStatus.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetCollectionTenants.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetDataObject.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetDatabaseUserInfo.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetGroupsForRole.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetOidcDiscovery.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetRolesAndPermissions.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetRolesForGroup.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetShardHostNodesStatus.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetTenantDetails.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetUserRoles.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetUsersByRole.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetWeaviateClusterStatistics.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetWeaviateInstanceMeta.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/InitiateClassificationTask.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListBackups.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListDataObjects.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListDbUsers.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListDistributedTasks.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListReplicationStatus.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ReplaceObjectReferences.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ReplicateShardReplica.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RestoreBackup.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveAliasDetails.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveAliases.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveCollectionSchema.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveDatabaseSchema.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveGroupNames.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RevokeRoleFromGroup.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RevokeRolePermissions.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RevokeUserRole.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RotateUserApiKey.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateCollectionAlias.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateCollectionSettings.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateDataObject.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateObjectProperties.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateShardStatus.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateTenantStatus.json create mode 100644 toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ValidateDataObjectStructure.json create mode 100644 toolkits/weaviate_api/pyproject.toml create mode 100644 toolkits/weaviate_api/tests/__init__.py diff --git a/toolkits/weaviate_api/.pre-commit-config.yaml b/toolkits/weaviate_api/.pre-commit-config.yaml new file mode 100644 index 00000000..e4d66e83 --- /dev/null +++ b/toolkits/weaviate_api/.pre-commit-config.yaml @@ -0,0 +1,18 @@ +files: ^.*/weaviate_api/.* +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: "v4.4.0" + hooks: + - id: check-case-conflict + - id: check-merge-conflict + - id: check-toml + - id: check-yaml + - id: end-of-file-fixer + - id: trailing-whitespace + + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.6.7 + hooks: + - id: ruff + args: [--fix] + - id: ruff-format diff --git a/toolkits/weaviate_api/.ruff.toml b/toolkits/weaviate_api/.ruff.toml new file mode 100644 index 00000000..4d51e2fd --- /dev/null +++ b/toolkits/weaviate_api/.ruff.toml @@ -0,0 +1,45 @@ +target-version = "py310" +line-length = 100 +fix = true + +[lint] +select = [ + # flake8-2020 + "YTT", + # flake8-bandit + "S", + # flake8-bugbear + "B", + # flake8-builtins + "A", + # flake8-comprehensions + "C4", + # flake8-debugger + "T10", + # flake8-simplify + "SIM", + # isort + "I", + # mccabe + "C90", + # pycodestyle + "E", "W", + # pyflakes + "F", + # pygrep-hooks + "PGH", + # pyupgrade + "UP", + # ruff + "RUF", + # tryceratops + "TRY", +] + +[lint.per-file-ignores] +"**/tests/*" = ["S101"] +"**/tools/request_body_schemas.py" = ["E501"] + +[format] +preview = true +skip-magic-trailing-comma = false diff --git a/toolkits/weaviate_api/LICENSE b/toolkits/weaviate_api/LICENSE new file mode 100644 index 00000000..dfbb8b76 --- /dev/null +++ b/toolkits/weaviate_api/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025, Arcade AI + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/toolkits/weaviate_api/Makefile b/toolkits/weaviate_api/Makefile new file mode 100644 index 00000000..86da492a --- /dev/null +++ b/toolkits/weaviate_api/Makefile @@ -0,0 +1,54 @@ +.PHONY: help + +help: + @echo "🛠️ github Commands:\n" + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +.PHONY: install +install: ## Install the uv environment and install all packages with dependencies + @echo "🚀 Creating virtual environment and installing all packages using uv" + @uv sync --active --all-extras --no-sources + @if [ -f .pre-commit-config.yaml ]; then uv run --no-sources pre-commit install; fi + @echo "✅ All packages and dependencies installed via uv" + +.PHONY: install-local +install-local: ## Install the uv environment and install all packages with dependencies with local Arcade sources + @echo "🚀 Creating virtual environment and installing all packages using uv" + @uv sync --active --all-extras + @if [ -f .pre-commit-config.yaml ]; then uv run pre-commit install; fi + @echo "✅ All packages and dependencies installed via uv" +.PHONY: build +build: clean-build ## Build wheel file using poetry + @echo "🚀 Creating wheel file" + uv build + +.PHONY: clean-build +clean-build: ## clean build artifacts + @echo "🗑️ Cleaning dist directory" + rm -rf dist + +.PHONY: test +test: ## Test the code with pytest + @echo "🚀 Testing code: Running pytest" + @uv run --no-sources pytest -W ignore -v --cov --cov-config=pyproject.toml --cov-report=xml + +.PHONY: coverage +coverage: ## Generate coverage report + @echo "coverage report" + @uv run --no-sources coverage report + @echo "Generating coverage report" + @uv run --no-sources coverage html + +.PHONY: bump-version +bump-version: ## Bump the version in the pyproject.toml file by a patch version + @echo "🚀 Bumping version in pyproject.toml" + uv version --no-sources --bump patch + +.PHONY: check +check: ## Run code quality tools. + @if [ -f .pre-commit-config.yaml ]; then\ + echo "🚀 Linting code: Running pre-commit";\ + uv run --no-sources pre-commit run -a;\ + fi + @echo "🚀 Static type checking: Running mypy" + @uv run --no-sources mypy --config-file=pyproject.toml diff --git a/toolkits/weaviate_api/arcade_weaviate_api/__init__.py b/toolkits/weaviate_api/arcade_weaviate_api/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/toolkits/weaviate_api/arcade_weaviate_api/tools/__init__.py b/toolkits/weaviate_api/arcade_weaviate_api/tools/__init__.py new file mode 100644 index 00000000..e82d5b92 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/tools/__init__.py @@ -0,0 +1,5134 @@ +"""Arcade Starter Tools for Weaviate + +DO NOT EDIT THIS MODULE DIRECTLY. + +THIS MODULE WAS AUTO-GENERATED BY TRANSPILING THE API STARTER TOOL JSON DEFINITIONS +IN THE ../wrapper_tools DIRECTORY INTO PYTHON CODE. ANY CHANGES TO THIS MODULE WILL +BE OVERWRITTEN BY THE TRANSPILER. +""" + +import asyncio +import json +from enum import Enum +from typing import Annotated, Any + +import httpx +import jsonschema +from arcade_tdk import ToolContext, tool +from arcade_tdk.errors import RetryableToolError + +from .request_body_schemas import REQUEST_BODY_SCHEMAS + +# Retry configuration +INITIAL_RETRY_DELAY = 0.5 # seconds + +HTTP_CLIENT = httpx.AsyncClient( + timeout=httpx.Timeout(60.0, connect=10.0), + limits=httpx.Limits(max_keepalive_connections=20, max_connections=100), + transport=httpx.AsyncHTTPTransport(retries=3), + http2=True, + follow_redirects=True, +) + + +class ToolMode(str, Enum): + """Mode for tools with complex request bodies.""" + + GET_REQUEST_SCHEMA = "get_request_schema" + EXECUTE = "execute" + + +def remove_none_values(data: dict[str, Any]) -> dict[str, Any]: + return {k: v for k, v in data.items() if v is not None} + + +async def make_request( + url: str, + method: str, + params: dict[str, Any] | None = None, + headers: dict[str, Any] | None = None, + content: str | None = None, + data: dict[str, Any] | None = None, + auth: tuple[str, str] | None = None, + max_retries: int = 3, +) -> httpx.Response: + """Make an HTTP request with retry logic for 5xx server errors.""" + for attempt in range(max_retries): + try: + response = await HTTP_CLIENT.request( + url=url, + auth=auth, + method=method, + params=params, + headers=headers, + content=content, + ) + response.raise_for_status() + except httpx.HTTPStatusError as e: + # Only retry on 5xx server errors + if e.response.status_code >= 500 and attempt < max_retries - 1: + # Exponential backoff: 0.5s, 1s, 2s + await asyncio.sleep(INITIAL_RETRY_DELAY * (2**attempt)) + continue + # Re-raise for 4xx errors or if max retries reached + raise + except httpx.RequestError: + # Don't retry request errors (network issues are handled by transport) + raise + else: + return response + + # This should never be reached, but satisfies type checker + raise httpx.RequestError("Max retries exceeded") # noqa: TRY003 + + +async def make_request_with_schema_validation( + url: str, + method: str, + request_data: dict[str, Any], + schema: dict[str, Any], + params: dict[str, Any] | None = None, + headers: dict[str, Any] | None = None, + max_retries: int = 3, +) -> httpx.Response: + """Make an HTTP request with schema validation on format errors.""" + try: + response = await make_request( + url=url, + method=method, + params=params, + headers=headers, + content=json.dumps(request_data), + max_retries=max_retries, + ) + except httpx.HTTPStatusError as e: + # Only provide schema validation for format-related errors + if e.response.status_code in (400, 422): + # Run validation to provide additional context + is_valid, validation_error = validate_json_against_schema(request_data, schema) + + api_error_details = f"API returned {e.response.status_code}: {e.response.text}" + + if not is_valid: + # Schema validation found issues - additional context + additional_context = ( + f"{api_error_details}\n\n" + f"Schema validation found the following issues:\n" + f"{validation_error}" + ) + else: + # Schema validation passed - just show API error + additional_context = api_error_details + + raise RetryableToolError( + message=(f"API request failed with validation error: {e.response.status_code}"), + developer_message=api_error_details, + additional_prompt_content=additional_context, + ) from e + else: + # For non-validation errors, re-raise as-is + raise + else: + return response + + +def validate_json_against_schema( + json_data: dict[str, Any], schema: dict[str, Any] +) -> tuple[bool, str | None]: + """Validate JSON data against an OpenAPI/JSON Schema. + + This provides full JSON Schema Draft 7 validation including: + - Required fields, types, enums + - Pattern validation (regex) + - Format validation (email, uuid, date-time, etc.) + - Min/max length and values + - oneOf, anyOf, allOf + - And all other JSON Schema features + + Args: + json_data: The JSON data to validate + schema: The JSON Schema to validate against + + Returns: + Tuple of (is_valid, error_messages). If valid, error_messages is None. + If invalid, error_messages contains all validation errors. + """ + try: + validator = jsonschema.Draft7Validator( + schema, format_checker=jsonschema.Draft7Validator.FORMAT_CHECKER + ) + # Collect ALL validation errors + errors = list(validator.iter_errors(json_data)) + if errors: + # Format all errors with their paths + error_messages = [] + for error in errors: + error_path = ".".join(str(p) for p in error.path) if error.path else "root" + error_messages.append(f"{error.message} at {error_path}") + # Join all errors with newlines + return False, "\n".join(error_messages) + else: + return True, None + except jsonschema.SchemaError as e: + return False, f"Invalid schema: {e.message}" + except Exception as e: + return False, f"Validation error: {e!s}" + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def discover_api_endpoints( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'weaviate.root'."]: + """Retrieve links to available REST API endpoints. + + This tool fetches links to other endpoints within the REST API, aiding in the discovery and navigation of the available API options.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def check_weaviate_liveness( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'weaviate.wellknown.liveness'."]: + """Check if the Weaviate instance is running properly. + + Use this tool to perform a basic health check on a Weaviate instance, ensuring it is running and responding to HTTP requests. Useful for monitoring and maintenance tasks.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/.well-known/live".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def check_weaviate_readiness( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'weaviate.wellknown.readiness'."]: + """Check if the Weaviate instance is ready to accept traffic. + + Use this tool to determine if the Weaviate instance has completed its startup routines and is ready for operations such as data import and queries. Ideal for readiness checks in container orchestration contexts like Kubernetes.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/.well-known/ready".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_oidc_discovery( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint ''."]: + """Fetches OIDC discovery details for Weaviate authentication. + + This tool retrieves OpenID Connect (OIDC) discovery information for Weaviate if OIDC authentication is configured. It provides essential details like the token issuer URL, client ID, and required scopes.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/.well-known/openid-configuration".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def replicate_shard_replica( + context: ToolContext, + shard_name: Annotated[ + str, + "The name of the shard whose replica is to be moved or copied. Specify the shard to initiate the operation.", # noqa: E501 + ], + source_node: Annotated[ + str, + "The name of the Weaviate node currently hosting the shard replica to be moved or copied.", + ], + target_collection_name: Annotated[ + str, + "The name of the collection to which the target shard belongs in the Weaviate database.", + ], + target_weaviate_node: Annotated[ + str, "Name of the Weaviate node for creating the new shard replica during the operation." + ], + replication_operation_type: Annotated[ + str | None, + "Specifies whether to 'COPY' or 'MOVE' the shard replica. Defaults to 'COPY' if not provided.", # noqa: E501 + ] = "COPY", +) -> Annotated[dict[str, Any], "Response from the API endpoint 'replicate'."]: + """Initiates replication of a shard replica to a target node. + + This tool starts an asynchronous process to move or copy a specific shard replica from its current node to a specified target node. It handles data copying, synchronization, and may decommission the source replica.""" # noqa: E501 + request_data: Any = { + "sourceNode": source_node, + "targetNode": target_weaviate_node, + "collection": target_collection_name, + "shard": shard_name, + "type": replication_operation_type, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/replication/replicate".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def delete_all_replications( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteAllReplications'."]: + """Schedule deletion of all replication operations across the system. + + This tool is used to schedule the deletion of all replication operations across all collections, shards, and nodes. It should be called when you need to clear all replication tasks in the system.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/replication/replicate".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def force_delete_replications( + context: ToolContext, + collection_name: Annotated[ + str | None, "The name of the collection associated with the shard being replicated." + ] = None, + dry_run: Annotated[ + bool | None, + "When set to true, the operation simulates the deletion and returns the expected result without executing it.", # noqa: E501 + ] = False, + replication_operation_id: Annotated[ + str | None, + "The unique identifier (ID) of the replication operation to be forcefully deleted.", + ] = None, + shard_identifier: Annotated[ + str | None, "The unique identifier of the shard involved in the replication operations." + ] = None, + target_node_name: Annotated[ + str | None, "The name of the target node where replication operations are registered." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'forceDeleteReplications'."]: + """Forcefully delete replication operations with caution. + + This tool is used to forcefully delete operations from the FSM in Weaviate. It should be called when there is a need to remove replication operations without performing state checks, which may lead to data corruption or loss. Ensure replication engine workers are scaled to 0 before using this to prevent in-flight operations.""" # noqa: E501 + request_data: Any = { + "id": replication_operation_id, + "collection": collection_name, + "shard": shard_identifier, + "node": target_node_name, + "dryRun": dry_run, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/replication/replicate/force-delete".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def fetch_replication_status( + context: ToolContext, + replication_operation_id: Annotated[ + str, "The unique identifier for the replication operation to fetch details for." + ], + include_history: Annotated[ + bool | None, "Set to true to include the history of the replication operation." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'replicationDetails'."]: + """Retrieve the status of a specific replication operation. + + Use this tool to get current status and detailed information about a replication operation by its unique ID. It can optionally include historical progress data of the operation.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/replication/replicate/{id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + id=replication_operation_id, + ), + method="GET", + params=remove_none_values({"includeHistory": include_history}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def cancel_replication_operation( + context: ToolContext, + replication_operation_id: Annotated[ + str, "The unique identifier of the replication operation to be canceled and deleted." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteReplication'."]: + """Cancel an active replication operation. + + Use this tool to remove and cancel a specific replication operation. It ensures that active processes are halted and resources are cleaned up before deletion.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/replication/replicate/{id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + id=replication_operation_id, + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def list_replication_status( + context: ToolContext, + collection_name: Annotated[ + str | None, "Specify the name of the collection for which to retrieve replication details." + ] = None, + include_replication_history: Annotated[ + bool | None, + "Set to true to include the history of the replication operation, false to exclude it.", + ] = None, + shard_name: Annotated[ + str | None, "The specific shard for which to retrieve replication details." + ] = None, + target_node_name: Annotated[ + str | None, "The name of the target node to retrieve replication operation details for." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'listReplication'."]: + """Retrieve registered replication operations and details. + + Call this tool to get information about current replication operations in Weaviate, filtered by collection, shard, or node ID if needed.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/replication/replicate/list".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({ + "targetNode": target_node_name, + "collection": collection_name, + "shard": shard_name, + "includeHistory": include_replication_history, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def cancel_replication( + context: ToolContext, + replication_operation_id: Annotated[ + str, + "The ID of the replication operation you wish to cancel. This is a string identifier for the specific operation.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'cancelReplication'."]: + """Cancel an active replication operation by ID. + + Use this tool to request the cancellation of an ongoing replication operation specified by its ID. The operation is stopped and marked as 'CANCELLED' but is not automatically deleted.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/replication/replicate/{id}/cancel".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + id=replication_operation_id, + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def fetch_sharding_state( + context: ToolContext, + collection_name: Annotated[ + str | None, "The name of the collection to retrieve the sharding state for." + ] = None, + target_shard: Annotated[ + str | None, "Specify the shard name to retrieve its sharding state in a collection." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getCollectionShardingState'."]: + """Fetch the current sharding state and replica details for collections. + + This tool retrieves the current sharding state for all collections or a specified collection, including replica locations and statuses. If needed, it can also provide the state for a specific shard within a collection.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/replication/sharding-state".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({"collection": collection_name, "shard": target_shard}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_authenticated_user_info( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getOwnInfo'."]: + """Retrieve details about the authenticated user and their roles. + + This tool retrieves information about the current user, including their username and assigned roles, from the authenticated session.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/users/own-info".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def list_db_users( + context: ToolContext, + include_last_used_time: Annotated[ + bool | None, "Include the last time users were utilized in the response." + ] = False, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'listAllUsers'."]: + """Retrieve all database users and their roles and statuses. + + Use this tool to obtain a comprehensive list of all users within the database, along with detailed information about their roles and current status. This is useful for auditing and managing user permissions in the database.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/users/db".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({"includeLastUsedTime": include_last_used_time}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_database_user_info( + context: ToolContext, + database_user_name: Annotated[ + str, "The unique identifier or name of the database user to retrieve information for." + ], + include_last_used_time: Annotated[ + bool | None, "Set to true to include the last used time in the user's information." + ] = False, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getUserInfo'."]: + """Retrieve information about a specific database user. + + Use this tool to get detailed information about a database user, including their roles, status, and type. Call this tool when you need to know specific details about a database user's profile or attributes.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/users/db/{user_id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + user_id=database_user_name, + ), + method="GET", + params=remove_none_values({"includeLastUsedTime": include_last_used_time}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def create_database_user( + context: ToolContext, + user_name: Annotated[ + str, + "Specify the name for the new database user. It should be a string that identifies the user.", # noqa: E501 + ], + disable_import_experimental: Annotated[ + bool | None, + "Set to true to prevent importing an API key from a static user. Experimental and will be removed.", # noqa: E501 + ] = False, + set_creation_time_experimental: Annotated[ + str | None, + "EXPERIMENTAL: Set the given time as creation time. This will be removed in future versions.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createUser'."]: + """Create a new database user and obtain an API key. + + This tool is used to create a new database user by specifying a name. It returns an API key for the created user.""" # noqa: E501 + request_data: Any = { + "import": disable_import_experimental, + "createTime": set_creation_time_experimental, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/users/db/{user_id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), user_id=user_name + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def delete_database_user( + context: ToolContext, + user_identifier: Annotated[ + str, "Specify the name of the user you want to delete. This cannot be the current user." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteUser'."]: + """Delete a specific database user. + + This tool deletes a specified user from the database. It should be called when there is a need to remove a user, except the current active user.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/users/db/{user_id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), user_id=user_identifier + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def rotate_user_api_key( + context: ToolContext, + database_user_name: Annotated[ + str, "The name of the database user for which the API key will be rotated." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'rotateUserApiKey'."]: + """Revoke and regenerate the API key for a database user. + + This tool is used to revoke the current API key for a specified database user and generate a new one. It should be called when an API key needs refreshing or if security has been compromised.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/users/db/{user_id}/rotate-key".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + user_id=database_user_name, + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def activate_database_user( + context: ToolContext, + user_name: Annotated[str, "The name of the database user to activate."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'activateUser'."]: + """Activate a deactivated database user account. + + Use this tool to activate a user with a `db` user type in the database. It should be called when re-enabling user access is needed.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/users/db/{user_id}/activate".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), user_id=user_name + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def deactivate_database_user( + context: ToolContext, + database_user_id: Annotated[ + str, "The unique identifier for the database user to be deactivated." + ], + revoke_api_key: Annotated[ + bool | None, "Revoke the user's API key when deactivating. Set to true to enable." + ] = False, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deactivateUser'."]: + """Deactivate a database user account. + + Use this tool to deactivate a user with the type 'db' in the database. Provide the user ID to deactivate their account and prevent access to the database.""" # noqa: E501 + request_data: Any = {"revoke_key": revoke_api_key} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/users/db/{user_id}/deactivate".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), user_id=database_user_id + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_roles_and_permissions( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getRoles'."]: + """Retrieve all roles and their assigned permissions. + + Use this tool to obtain detailed information on all roles and the specific permissions associated with each role.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/authz/roles".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def create_role_with_permissions( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'createRole'."]: + """Create a new role with specified permissions. + + Use this tool to create a new role in the system and define its permissions. It should be called when there is a need to set up access controls for new role-based functionalities. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "CREATEROLEWITHPERMISSIONS_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["CREATEROLEWITHPERMISSIONS_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["CREATEROLEWITHPERMISSIONS_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/authz/roles".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEROLEWITHPERMISSIONS_REQUEST_BODY_SCHEMA"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def add_permissions_to_role( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + role_id: Annotated[ + str | None, + "The ID of the role to which new permissions will be added. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'addPermissions'."]: + """Add new permissions to a role without affecting existing ones. + + Use this tool to assign additional permissions to a specified role within a system, ensuring that current permissions remain unchanged. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ADDPERMISSIONSTOROLE_REQUEST_BODY_SCHEMA"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not role_id: + missing_params.append(("role_id", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["ADDPERMISSIONSTOROLE_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["ADDPERMISSIONSTOROLE_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/authz/roles/{id}/add-permissions".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), id=role_id + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ADDPERMISSIONSTOROLE_REQUEST_BODY_SCHEMA"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def revoke_role_permissions( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + role_name: Annotated[ + str | None, + "The name of the role from which permissions are being revoked. Removing all permissions will delete the role. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'removePermissions'."]: + """Revoke permissions from a specified role. + + This tool is used to revoke permissions from a specified role in the Weaviate system. If all permissions are removed, the role will be deleted. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "REVOKEROLEPERMISSIONS_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not role_name: + missing_params.append(("role_name", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["REVOKEROLEPERMISSIONS_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["REVOKEROLEPERMISSIONS_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/authz/roles/{id}/remove-permissions".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), id=role_name + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["REVOKEROLEPERMISSIONS_REQUEST_BODY_SCHEMA"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def fetch_role_by_name( + context: ToolContext, + role_name: Annotated[str, "The name of the role to fetch details for."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getRole'."]: + """Fetch role details using its name. + + This tool retrieves the details of a specific role by its name from the Weaviate service. It should be called when information about a role is required, typically for authorization or configuration purposes.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/authz/roles/{id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), id=role_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def delete_role( + context: ToolContext, + role_name: Annotated[str, "Specify the name of the role to be deleted and revoked from users."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'deleteRole'."]: + """Delete a role and revoke its permissions system-wide. + + Use this tool to delete a role from the system, removing it and revoking the associated permissions from all users who had it.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/authz/roles/{id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), id=role_name + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def check_role_permission( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + role_name: Annotated[ + str | None, + "The name of the role to check permissions for. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'hasPermission'."]: + """Check if a role has specific permissions in the system. + + Use this tool to verify whether a particular role possesses certain permissions within the system. It should be called when there's a need to confirm role access rights. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CHECKROLEPERMISSION_REQUEST_BODY_SCHEMA"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not role_name: + missing_params.append(("role_name", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["CHECKROLEPERMISSION_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["CHECKROLEPERMISSION_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/authz/roles/{id}/has-permission".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), id=role_name + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CHECKROLEPERMISSION_REQUEST_BODY_SCHEMA"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_users_by_role( + context: ToolContext, + role_id: Annotated[str, "The unique identifier for the role to fetch associated users."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getUsersForRole'."]: + """Retrieve users with a specific role assignment. + + Use to obtain a list of users assigned to a particular role by role ID.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/authz/roles/{id}/user-assignments".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), id=role_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_groups_for_role( + context: ToolContext, + role_name: Annotated[str, "The unique name of the role to retrieve associated groups."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getGroupsForRole'."]: + """Retrieve groups assigned to a specific role. + + Use this tool to get a list of all groups that have been assigned a particular role, identified by the role's name.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/authz/roles/{id}/group-assignments".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), id=role_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_user_roles( + context: ToolContext, + user_id: Annotated[ + str, "The unique name or identifier of the user for whom roles are being retrieved." + ], + user_type: Annotated[ + str, "Specify the user type: 'oidc' for OpenID Connect or 'db' for database." + ], + include_detailed_role_information: Annotated[ + bool | None, "Set to true to include detailed role information like assigned permissions." + ] = False, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getRolesForUser'."]: + """Retrieve all roles assigned to a specific user. + + Use this tool to get a list of all roles for a specified user, identified by their ID and user type (`db` or `oidc`).""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/authz/users/{id}/roles/{userType}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + id=user_id, + userType=user_type, + ), + method="GET", + params=remove_none_values({"includeFullRoles": include_detailed_role_information}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def assign_roles_to_user( + context: ToolContext, + user_name: Annotated[str, "The name or identifier of the user to assign roles to."], + assigned_roles: Annotated[ + list[str] | None, + "List of roles to assign to the specified user. Each role should be a string.", + ] = None, + user_type: Annotated[ + str | None, + "Specify the user type. Choose 'db' for Weaviate managed users or 'oidc' for users managed by an external OIDC provider.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'assignRoleToUser'."]: + """Assign roles to a user in the system. + + Use this tool to assign one or more roles to a specific user, allowing flexibility in user permissions and access control.""" # noqa: E501 + request_data: Any = {"roles": assigned_roles, "userType": user_type} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/authz/users/{id}/assign".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), id=user_name + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def revoke_user_role( + context: ToolContext, + user_id: Annotated[ + str, "The unique identifier or name of the user from whom roles will be revoked." + ], + roles_to_revoke: Annotated[ + list[str] | None, + "A list of roles to be removed from the specified user. Provide each role as a string in the array.", # noqa: E501 + ] = None, + user_type: Annotated[ + str | None, + "Specify the user type: `db` for Weaviate-managed or `oidc` for external OIDC-managed users.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'revokeRoleFromUser'."]: + """Remove roles from a specified user in the system. + + Use this tool to revoke one or more roles assigned to a user by specifying their user ID. It's useful for updating user permissions in the system.""" # noqa: E501 + request_data: Any = {"roles": roles_to_revoke, "userType": user_type} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/authz/users/{id}/revoke".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), id=user_id + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def assign_role_to_group( + context: ToolContext, + group_name: Annotated[str, "The name of the group to which roles will be assigned."], + group_type: Annotated[ + str | None, + "Indicate if the group contains OIDC or database users. Choose 'oidc' for OIDC users.", + ] = None, + roles_to_assign: Annotated[ + list[str] | None, "A list of roles to assign to a specified group. Each role is a string." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'assignRoleToGroup'."]: + """Assign roles to a specific group. + + Use this tool to assign one or more roles to a designated group, identified by its ID.""" + request_data: Any = {"roles": roles_to_assign, "groupType": group_type} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/authz/groups/{id}/assign".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), id=group_name + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def revoke_role_from_group( + context: ToolContext, + group_name: Annotated[str, "The name of the group from which roles will be revoked."], + group_type: Annotated[ + str | None, "Specifies whether the group contains OIDC or database users." + ] = None, + roles_to_revoke: Annotated[ + list[str] | None, "An array of role names to revoke from the specified group." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'revokeRoleFromGroup'."]: + """Revoke roles from a specified group to manage permissions. + + This tool allows the revocation of roles from a specified group, which is useful for managing and updating group permissions within a system using Weaviate.""" # noqa: E501 + request_data: Any = {"roles": roles_to_revoke, "groupType": group_type} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/authz/groups/{id}/revoke".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), id=group_name + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_roles_for_group( + context: ToolContext, + group_name: Annotated[str, "The unique name of the group to retrieve roles for."], + group_type: Annotated[str, "Specifies the type of the group, either 'db' or 'oidc'."], + include_full_role_definitions: Annotated[ + bool | None, + "Include full role definitions with all permissions if true; return only role names if false.", # noqa: E501 + ] = False, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getRolesForGroup'."]: + """Retrieve roles assigned to a specific group. + + Fetches all roles associated with a group identified by its name and type (options: `db` or `oidc`).""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/authz/groups/{id}/roles/{groupType}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + id=group_name, + groupType=group_type, + ), + method="GET", + params=remove_none_values({"includeFullRoles": include_full_role_definitions}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def retrieve_group_names( + context: ToolContext, + group_type: Annotated[str, "Specifies the group type to retrieve, either 'oidc' or 'db'."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'getGroups'."]: + """Retrieve available group names for a specified type. + + This tool retrieves a list of all available group names for a specified group type, either 'oidc' or 'db'. Use it when you need to list groups of a certain type.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/authz/groups/{groupType}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), groupType=group_type + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def list_data_objects( + context: ToolContext, + collection_name: Annotated[ + str | None, + "Specifies the collection name to query objects from. If not provided, no objects will be returned.", # noqa: E501 + ] = None, + include_additional_information: Annotated[ + str | None, + "Include additional information types such as `classification`, `vector`, or `interpretation`.", # noqa: E501 + ] = None, + maximum_items_per_page: Annotated[ + int | None, + "The maximum number of items to be returned per page. The default is 25 unless set otherwise as an environment variable.", # noqa: E501 + ] = None, + query_start_index: Annotated[ + int | None, + "The starting index for the result window. Retrieves `offset+limit` results and returns `limit` results from this index onward. Cannot be used with `after`. Should be used with `limit`.", # noqa: E501 + ] = 0, + sort_order: Annotated[ + str | None, + "Specify how to order the data within the sorted field(s). Use 'asc' for ascending and 'desc' for descending. Should match the order of fields used in `sort`. Multiple values should be separated by commas.", # noqa: E501 + ] = None, + sort_properties: Annotated[ + str | None, "Names of properties to sort by, e.g., 'city' or 'country,city'." + ] = None, + tenant_identifier: Annotated[ + str | None, "Specifies the tenant for requests targeting a multi-tenant collection (class)." + ] = None, + threshold_uuid_after: Annotated[ + str | None, + "A UUID to retrieve objects after, excluding this object. Use with `class` and `limit`. Leave empty for the start.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'objects.list'."]: + """Retrieve a list of data objects from a specified collection. + + Use this tool to get a list of data objects from a particular collection by providing the collection name parameter. The objects are returned in reverse order of creation.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/objects".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({ + "after": threshold_uuid_after, + "offset": query_start_index, + "limit": maximum_items_per_page, + "include": include_additional_information, + "sort": sort_properties, + "order": sort_order, + "class": collection_name, + "tenant": tenant_identifier, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def create_object_in_weaviate( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + consistency_level_replica_acknowledgement: Annotated[ + str | None, + "Specifies the number of replicas that must confirm the request for it to be successful. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'objects.create'."]: + """Create a new data object in Weaviate. + + This tool creates a new data object in Weaviate, ensuring that the object's metadata and schema values are validated. It's useful for adding new data objects when there is no existing object with the same ID. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "CREATEOBJECTINWEAVIATE_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["CREATEOBJECTINWEAVIATE_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["CREATEOBJECTINWEAVIATE_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/objects".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATEOBJECTINWEAVIATE_REQUEST_BODY_SCHEMA"], + params=remove_none_values({"consistency_level": consistency_level_replica_acknowledgement}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_data_object( + context: ToolContext, + collection_name: Annotated[str, "Name of the collection (class) the object belongs to."], + object_uuid: Annotated[ + str, "Unique UUID of the object to be retrieved from the specified collection." + ], + include_additional_information: Annotated[ + str | None, + "Specify additional info to include: `classification`, `vector`, or `interpretation`.", + ] = None, + required_replica_acknowledgment: Annotated[ + str | None, + "Specifies how many replicas must confirm a request for success. Relates to consistency level.", # noqa: E501 + ] = None, + target_node_name: Annotated[ + str | None, "Specify the target node to fulfill the request." + ] = None, + tenant_identifier: Annotated[ + str | None, "Specify the tenant for a multi-tenant collection request." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'objects.class.get'."]: + """Retrieve a data object using collection name and UUID.""" + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/objects/{className}/{id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + className=collection_name, + id=object_uuid, + ), + method="GET", + params=remove_none_values({ + "include": include_additional_information, + "consistency_level": required_replica_acknowledgment, + "node_name": target_node_name, + "tenant": tenant_identifier, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def update_object_properties( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + collection_name: Annotated[ + str | None, + "The name of the class (collection) to which the object belongs. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + object_uuid: Annotated[ + str | None, + "Unique UUID of the object to be replaced. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + required_replica_acknowledgement: Annotated[ + str | None, + "Specifies how many replicas must acknowledge a request for it to be successful. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'objects.class.put'."]: + """Replace properties of a data object using its class and ID. + + This tool updates the properties of an existing object identified by its class name and UUID. The request must include the complete object definition with new values to replace the existing ones. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "UPDATEOBJECTPROPERTIES_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not collection_name: + missing_params.append(("collection_name", "path")) + if not object_uuid: + missing_params.append(("object_uuid", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["UPDATEOBJECTPROPERTIES_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["UPDATEOBJECTPROPERTIES_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/objects/{className}/{id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + className=collection_name, + id=object_uuid, + ), + method="PUT", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEOBJECTPROPERTIES_REQUEST_BODY_SCHEMA"], + params=remove_none_values({"consistency_level": required_replica_acknowledgement}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def delete_data_object( + context: ToolContext, + collection_name: Annotated[str, "Name of the collection (class) the object belongs to."], + object_uuid: Annotated[str, "Unique UUID of the object to be deleted from the collection."], + replica_acknowledgment_level: Annotated[ + str | None, "Specifies the number of replicas needed to confirm request success." + ] = None, + tenant_identifier: Annotated[ + str | None, "Specifies the tenant when targeting a multi-tenant collection (class)." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'objects.class.delete'."]: + """Delete a data object from a specified collection using its UUID. + + Use this tool to remove a specific data object from a Weaviate collection, identified by its `className` and `id` (UUID). Useful for managing data within a Weaviate instance.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/objects/{className}/{id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + className=collection_name, + id=object_uuid, + ), + method="DELETE", + params=remove_none_values({ + "consistency_level": replica_acknowledgment_level, + "tenant": tenant_identifier, + }), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def update_data_object( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + collection_name: Annotated[ + str | None, + "Specifies the name of the collection or class the object belongs to. This identifies where the object is stored. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + object_uuid: Annotated[ + str | None, + "Unique UUID of the object to be patched within the specified collection. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + consistency_level: Annotated[ + str | None, + "Specify the number of replicas that must acknowledge the request for success. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'objects.class.patch'."]: + """Update specific properties of a data object. + + This tool updates properties of an existing object in a specified collection using JSON merge patch semantics. The object is identified by its collection name and UUID. Use this to modify selected fields of a data object while ensuring validation and timestamp updates. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATEDATAOBJECT_REQUEST_BODY_SCHEMA"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not collection_name: + missing_params.append(("collection_name", "path")) + if not object_uuid: + missing_params.append(("object_uuid", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps(REQUEST_BODY_SCHEMAS["UPDATEDATAOBJECT_REQUEST_BODY_SCHEMA"], indent=2) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps(REQUEST_BODY_SCHEMAS["UPDATEDATAOBJECT_REQUEST_BODY_SCHEMA"], indent=2) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/objects/{className}/{id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + className=collection_name, + id=object_uuid, + ), + method="PATCH", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATEDATAOBJECT_REQUEST_BODY_SCHEMA"], + params=remove_none_values({"consistency_level": consistency_level}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def replace_object_references( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + collection_name: Annotated[ + str | None, + "Name of the collection the source object belongs to. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + source_object_uuid: Annotated[ + str | None, + "Unique UUID of the source object to identify it for reference replacement. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + reference_property_name: Annotated[ + str | None, + "Unique name of the reference property for the source object to update. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + consistency_level: Annotated[ + str | None, + "Defines the required number of replica acknowledgements for request success. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + tenant_identifier: Annotated[ + str | None, + "Specifies the tenant in a request targeting a multi-tenant collection (class). Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'objects.class.references.put'."]: + """Replace existing references for an object in Weaviate. + + Use this tool to replace all current references of a specific property for an object in Weaviate. Specify the object's collection name, UUID, and the reference property to update. Useful for updating linked data within a dataset. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "REPLACEOBJECTREFERENCES_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not collection_name: + missing_params.append(("collection_name", "path")) + if not source_object_uuid: + missing_params.append(("source_object_uuid", "path")) + if not reference_property_name: + missing_params.append(("reference_property_name", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["REPLACEOBJECTREFERENCES_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["REPLACEOBJECTREFERENCES_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/objects/{className}/{id}/references/{propertyName}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + className=collection_name, + id=source_object_uuid, + propertyName=reference_property_name, + ), + method="PUT", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["REPLACEOBJECTREFERENCES_REQUEST_BODY_SCHEMA"], + params=remove_none_values({ + "consistency_level": consistency_level, + "tenant": tenant_identifier, + }), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def add_reference_to_object( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + source_class_name: Annotated[ + str | None, + "Name of the collection (class) the source object belongs to. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + source_object_uuid: Annotated[ + str | None, + "Unique UUID identifying the source object to which the reference will be added. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + reference_property_name: Annotated[ + str | None, + "Unique name of the reference property of the source object to which the reference will be added. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + required_consistency_level: Annotated[ + str | None, + "Specifies the number of replicas that must acknowledge a request for it to be successful. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + tenant_identifier: Annotated[ + str | None, + "Specifies the tenant for multi-tenant collection requests in a Weaviate class. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'objects.class.references.create'."]: + """Add a reference to an object's property. + + This tool adds a new reference to a specified property of a data object. The object is identified by its class and UUID. Use this to link related objects within a dataset. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["ADDREFERENCETOOBJECT_REQUEST_BODY_SCHEMA"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not source_class_name: + missing_params.append(("source_class_name", "path")) + if not source_object_uuid: + missing_params.append(("source_object_uuid", "path")) + if not reference_property_name: + missing_params.append(("reference_property_name", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["ADDREFERENCETOOBJECT_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["ADDREFERENCETOOBJECT_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/objects/{className}/{id}/references/{propertyName}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + className=source_class_name, + id=source_object_uuid, + propertyName=reference_property_name, + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["ADDREFERENCETOOBJECT_REQUEST_BODY_SCHEMA"], + params=remove_none_values({ + "consistency_level": required_consistency_level, + "tenant": tenant_identifier, + }), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def delete_reference_from_object( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + collection_name: Annotated[ + str | None, + "Name of the collection (class) the source object belongs to. This identifies where the object is located. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + source_object_uuid: Annotated[ + str | None, + "Unique UUID of the source object from which the reference will be deleted. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + reference_property_name: Annotated[ + str | None, + "Unique name of the reference property of the source object from which to delete the reference. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + required_consistency_level: Annotated[ + str | None, + "Specifies how many replicas must acknowledge the request for success. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + tenant_identifier: Annotated[ + str | None, + "Specifies the tenant in a request targeting a multi-tenant collection (class). Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'objects.class.references.delete'."]: + """Delete a specific reference from an object's property. + + Use this tool to remove a reference from a specific property of a data object in a collection, identified by its class name and UUID. Call this tool when you need to delete a reference from an object's property. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path, query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path, query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "DELETEREFERENCEFROMOBJECT_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path, query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not collection_name: + missing_params.append(("collection_name", "path")) + if not source_object_uuid: + missing_params.append(("source_object_uuid", "path")) + if not reference_property_name: + missing_params.append(("reference_property_name", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["DELETEREFERENCEFROMOBJECT_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["DELETEREFERENCEFROMOBJECT_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/objects/{className}/{id}/references/{propertyName}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + className=collection_name, + id=source_object_uuid, + propertyName=reference_property_name, + ), + method="DELETE", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["DELETEREFERENCEFROMOBJECT_REQUEST_BODY_SCHEMA"], + params=remove_none_values({ + "consistency_level": required_consistency_level, + "tenant": tenant_identifier, + }), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def validate_data_object_structure( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'objects.validate'."]: + """Validate a data object's structure against the schema. + + Use this tool to check if a data object conforms to the specified collection schema and metadata rules without storing it. A successful validation returns a confirmation, while errors provide detailed feedback. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "VALIDATEDATAOBJECTSTRUCTURE_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["VALIDATEDATAOBJECTSTRUCTURE_REQUEST_BODY_SCHEMA"], + indent=2, + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["VALIDATEDATAOBJECTSTRUCTURE_REQUEST_BODY_SCHEMA"], + indent=2, + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/objects/validate".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["VALIDATEDATAOBJECTSTRUCTURE_REQUEST_BODY_SCHEMA"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def batch_register_objects( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + consistency_level: Annotated[ + str | None, + "Specifies how many replicas must confirm a request for it to be successful. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'batch.objects.create'."]: + """Register multiple data objects in a single request. + + This tool registers multiple data objects in one request for efficiency. It validates metadata and schema values for each object. The operation is idempotent, meaning if an object with a given UUID already exists, it will be overwritten. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["BATCHREGISTEROBJECTS_REQUEST_BODY_SCHEMA"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["BATCHREGISTEROBJECTS_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["BATCHREGISTEROBJECTS_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/batch/objects".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["BATCHREGISTEROBJECTS_REQUEST_BODY_SCHEMA"], + params=remove_none_values({"consistency_level": consistency_level}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def delete_multiple_objects( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + replica_acknowledgement_level: Annotated[ + str | None, + "Specifies the number of replicas that must confirm the request for it to be deemed successful. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + target_tenant: Annotated[ + str | None, + "Specifies the tenant when targeting a multi-tenant collection. Use the tenant's unique identifier. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'batch.objects.delete'."]: + """Deletes multiple data objects using specified filter criteria. + + This tool removes data objects based on a filter. Use it when you need to delete multiple objects that match specific criteria within the limit. The deletion is performed in the order objects match the filter. If you need to delete beyond the limit, repeat the process until finished. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "DELETEMULTIPLEOBJECTS_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["DELETEMULTIPLEOBJECTS_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["DELETEMULTIPLEOBJECTS_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request( + url="{weaviate_server_url}/v1/batch/objects".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="DELETE", + params=remove_none_values({ + "consistency_level": replica_acknowledgement_level, + "tenant": target_tenant, + }), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=json.dumps(request_data), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def batch_create_references( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + consistency_level: Annotated[ + str | None, + "Specifies the number of replicas needed to acknowledge a request for it to be deemed successful. Only used when mode is 'execute'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'batch.references.create'."]: + """Batch create cross-references between items in a collection. + + Use this tool to efficiently establish multiple cross-references between items in a collection at once. Ideal for handling large datasets where establishing individual links manually would be inefficient. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires query parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required query parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "BATCHCREATEREFERENCES_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required query parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["BATCHCREATEREFERENCES_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["BATCHCREATEREFERENCES_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/batch/references".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["BATCHCREATEREFERENCES_REQUEST_BODY_SCHEMA"], + params=remove_none_values({"consistency_level": consistency_level}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def execute_graphql_query( + context: ToolContext, + graphql_query: Annotated[ + str | None, "A GraphQL query string to execute on Weaviate, following GraphQL syntax." + ] = None, + operation_name: Annotated[ + str | None, "The name of the operation if multiple operations exist in the GraphQL query." + ] = None, + query_variables: Annotated[ + dict[str, str] | None, + "Additional JSON variables for the GraphQL query used to provide external values for operations.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'graphql.post'."]: + """Executes a GraphQL query on Weaviate. + + Use this tool to perform data queries and exploration on the Weaviate platform by executing a provided GraphQL query.""" # noqa: E501 + request_data: Any = { + "operationName": operation_name, + "query": graphql_query, + "variables": query_variables, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/graphql".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def execute_graphql_batch_queries( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'graphql.batch'."]: + """Execute multiple GraphQL queries in a single request. + + Executes multiple GraphQL queries sent in a single network request for efficiency. Ideal for performing batch queries in Weaviate. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "EXECUTEGRAPHQLBATCHQUERIES_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["EXECUTEGRAPHQLBATCHQUERIES_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["EXECUTEGRAPHQLBATCHQUERIES_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/graphql/batch".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["EXECUTEGRAPHQLBATCHQUERIES_REQUEST_BODY_SCHEMA"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_weaviate_instance_meta( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'meta.get'."]: + """Get meta-information about a Weaviate instance. + + Use this tool to obtain details such as version, modules, and network hostname of a running Weaviate instance. Useful for monitoring, compatibility checks, or communication between instances.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/meta".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def retrieve_database_schema( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'schema.dump'."]: + """Retrieve definitions of all classes in the database schema. + + Use this tool to obtain the definitions of all collections (classes) currently present in the database schema. It provides a comprehensive overview of the database structure.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/schema".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "consistency": "True", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def create_schema_object( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'schema.objects.create'."]: + """Create a new collection (class) in Weaviate. + + This tool is used to define and create a new collection (class) in Weaviate. It provides explicit control over the schema definition, which is essential when `AutoSchema` is not relied upon. Use this tool to ensure accurate schema setup in a Weaviate instance. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATESCHEMAOBJECT_REQUEST_BODY_SCHEMA"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["CREATESCHEMAOBJECT_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["CREATESCHEMAOBJECT_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request( + url="{weaviate_server_url}/v1/schema".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=json.dumps(request_data), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def retrieve_collection_schema( + context: ToolContext, + collection_name: Annotated[str, "The name of the collection to retrieve the schema for."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'schema.objects.get'."]: + """Retrieve the schema of a specified collection. + + Fetches the definition of a specific collection by `className`, detailing its properties, configuration, and vectorizer settings.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/schema/{className}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), className=collection_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "consistency": "True", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def update_collection_settings( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + collection_name_to_update: Annotated[ + str | None, + "The name of the collection to be updated. Specify the collection's class name. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'schema.objects.update'."]: + """Update settings of an existing collection. + + Use this tool to update the configuration settings of an existing collection by specifying the className and the new settings. This tool is useful when you need to change mutable settings of a collection but not its name or properties. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "UPDATECOLLECTIONSETTINGS_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not collection_name_to_update: + missing_params.append(("collection_name_to_update", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["UPDATECOLLECTIONSETTINGS_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["UPDATECOLLECTIONSETTINGS_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request( + url="{weaviate_server_url}/v1/schema/{className}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + className=collection_name_to_update, + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=json.dumps(request_data), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def delete_schema_collection( + context: ToolContext, + collection_name_to_delete: Annotated[ + str, "The name of the collection (class) that will be permanently deleted from the schema." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'schema.objects.delete'."]: + """Permanently delete a collection from the schema. + + Call this tool to remove a collection definition and all its data objects from the schema permanently.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/schema/{className}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + className=collection_name_to_delete, + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def add_property_to_collection( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + collection_name: Annotated[ + str | None, + "The name of the collection (class) to which the property will be added. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'schema.objects.properties.add'."]: + """Add a new property to an existing collection schema. + + Use this tool to add a new property definition to a specified collection (className) within the schema. It is called when a new property needs to be incorporated into an existing data structure. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "ADDPROPERTYTOCOLLECTION_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not collection_name: + missing_params.append(("collection_name", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["ADDPROPERTYTOCOLLECTION_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["ADDPROPERTYTOCOLLECTION_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request( + url="{weaviate_server_url}/v1/schema/{className}/properties".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), className=collection_name + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=json.dumps(request_data), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_collection_shard_status( + context: ToolContext, + collection_name: Annotated[str, "The name of the collection (class) whose shards to query."], + tenant_name: Annotated[ + str | None, + "The name of the tenant for retrieving shard statuses, applicable only for multi-tenant collections.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'schema.objects.shards.get'."]: + """Retrieves status of shards for a specified collection. + + Use this tool to get the status of all shards associated with a specific collection (`className`) in Weaviate. For multi-tenant collections, specify the `tenant` query parameter to retrieve shard status for a particular tenant.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/schema/{className}/shards".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), className=collection_name + ), + method="GET", + params=remove_none_values({"tenant": tenant_name}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def update_shard_status( + context: ToolContext, + collection_name: Annotated[ + str, "The name of the collection or class containing the shard to be updated." + ], + shard_name: Annotated[str, "The specific name of the shard to update in the collection."], + shard_status: Annotated[ + str | None, "The status to set for the shard, such as 'READY' or 'READONLY'." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'schema.objects.shards.update'."]: + """Update the status of a specific shard in a collection. + + Use this tool to update the status of a specific shard within a Weaviate collection. It is typically used to change the shard's status to `READY` or `READONLY` after addressing issues that affected its operation.""" # noqa: E501 + request_data: Any = {"status": shard_status} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/schema/{className}/shards/{shardName}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + className=collection_name, + shardName=shard_name, + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_collection_tenants( + context: ToolContext, + collection_name: Annotated[str, "The name of the collection (class) whose tenants to list."], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'tenants.get'."]: + """Retrieve tenants for a specified collection. + + This tool retrieves a list of all tenants associated with a given collection. Call this tool to obtain tenant information for a specified collection in the Weaviate service.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/schema/{className}/tenants".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), className=collection_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "consistency": "True", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def update_tenant_status( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + collection_name: Annotated[ + str | None, + "The name of the collection (class) containing the tenants whose status is to be updated. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'tenants.update'."]: + """Update the activity status of specified tenants. + + This tool updates the activity status, such as `ACTIVE` or `INACTIVE`, of one or more specified tenants within a collection (specified by `className`). Use this tool to manage tenant statuses efficiently within your system. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["UPDATETENANTSTATUS_REQUEST_BODY_SCHEMA"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not collection_name: + missing_params.append(("collection_name", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["UPDATETENANTSTATUS_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["UPDATETENANTSTATUS_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/schema/{className}/tenants".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), className=collection_name + ), + method="PUT", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["UPDATETENANTSTATUS_REQUEST_BODY_SCHEMA"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def create_tenants( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + collection_name: Annotated[ + str | None, + "The name of the multi-tenant enabled collection for creating tenants. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'tenants.create'."]: + """Create new tenants in a specified collection. + + Use this tool to create one or more new tenants for a specified collection when multi-tenancy is enabled. Useful for managing tenants within a Weaviate database. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["CREATETENANTS_REQUEST_BODY_SCHEMA"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not collection_name: + missing_params.append(("collection_name", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps(REQUEST_BODY_SCHEMAS["CREATETENANTS_REQUEST_BODY_SCHEMA"], indent=2) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps(REQUEST_BODY_SCHEMAS["CREATETENANTS_REQUEST_BODY_SCHEMA"], indent=2) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/schema/{className}/tenants".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), className=collection_name + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["CREATETENANTS_REQUEST_BODY_SCHEMA"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def delete_tenants( + context: ToolContext, + collection_name: Annotated[str, "The name of the collection from which to delete tenants."], + tenant_names_to_delete: Annotated[ + list[str], "An array of tenant names to permanently delete from the specified collection." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'tenants.delete'."]: + """Permanently delete specified tenants from a collection. + + Use this tool to delete one or more tenants from a specified collection in Weaviate. This action is irreversible and will remove all data related to the specified tenants.""" # noqa: E501 + request_data: Any = tenant_names_to_delete + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/schema/{className}/tenants".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), className=collection_name + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_tenant_details( + context: ToolContext, + collection_name: Annotated[str, "The name of the collection (class) that contains the tenant."], + tenant_name: Annotated[ + str, "The name of the tenant to retrieve details about within the specified collection." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'tenants.get.one'."]: + """Retrieve details about a specific tenant's status. + + Call this tool to get information about a specific tenant within a specified collection, including their current activity status.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/schema/{className}/tenants/{tenantName}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + className=collection_name, + tenantName=tenant_name, + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "consistency": "True", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def retrieve_aliases( + context: ToolContext, + filter_by_collection_name: Annotated[ + str | None, + "Optional filter to retrieve aliases for a specific collection (class) only. If not provided, returns all aliases.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'aliases.get'."]: + """Retrieve all aliases from the system. + + Fetches a list of all aliases, with an option to filter by collection (class) name for specific aliases.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/aliases".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({"class": filter_by_collection_name}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def create_alias_mapping( + context: ToolContext, + alias_name: Annotated[ + str | None, + "The unique name of the alias, serving as an alternative identifier for the specified collection.", # noqa: E501 + ] = None, + collection_class_name: Annotated[ + str | None, "The name of the collection (class) to which the alias is mapped." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'aliases.create'."]: + """Create a new alias for a collection in Weaviate. + + This tool creates a new alias mapping between an alias name and a collection (class) in Weaviate. Use it to set up alternative names for accessing collections.""" # noqa: E501 + request_data: Any = {"alias": alias_name, "class": collection_class_name} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/aliases".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def retrieve_alias_details( + context: ToolContext, + alias_name: Annotated[ + str, "The name of the alias to retrieve details for, including its associated collection." + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'aliases.get.alias'."]: + """Retrieve details about a specific alias by its name. + + Use this tool to obtain information about an alias, such as the collection (class) it points to, by specifying the alias name.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/aliases/{aliasName}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), aliasName=alias_name + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def update_collection_alias( + context: ToolContext, + alias_name: Annotated[ + str, "The name of the existing alias that you want to update to point to a new collection." + ], + new_collection_name: Annotated[ + str | None, "Specify the new collection (class) for the alias to point to." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'aliases.update'."]: + """Redirect an alias to a different collection. + + Use this tool to update an existing alias so it points to a new collection. This allows alias redirection without changing its name.""" # noqa: E501 + request_data: Any = {"class": new_collection_name} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/aliases/{aliasName}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), aliasName=alias_name + ), + method="PUT", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def delete_alias( + context: ToolContext, + alias_name: Annotated[ + str, + "The name of the alias to be deleted. This identifier specifies which alias mapping to remove from the system.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'aliases.delete'."]: + """Delete an existing alias from the system. + + This tool removes an alias from the system without affecting the underlying collection. It should be called when an alias is no longer needed.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/aliases/{aliasName}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), aliasName=alias_name + ), + method="DELETE", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def list_backups( + context: ToolContext, + backend_storage_system: Annotated[ + str, + "Specifies the backend storage system to list backups from (e.g., `filesystem`, `gcs`, `s3`, `azure`).", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'backups.list'."]: + """Retrieve all backup IDs and their statuses. + + Use this tool to get a list of all created backup IDs along with their current statuses. Useful for monitoring or managing backup data.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/backups/{backend}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + backend=backend_storage_system, + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def create_backup( + context: ToolContext, + backend_storage_system: Annotated[ + str, + "Specifies the backend storage system where the backup will be stored, such as `filesystem`, `gcs`, `s3`, or `azure`.", # noqa: E501 + ], + backup_chunk_size: Annotated[ + int | None, + "Set the chunk size for the backup with a minimum of 2MB, default of 128MB, and a maximum of 512MB.", # noqa: E501 + ] = None, + backup_id: Annotated[ + str | None, + "The ID of the backup. Must be URL-safe, using only lowercase, numbers, underscore, and minus characters.", # noqa: E501 + ] = None, + bucket_name: Annotated[ + str | None, "Name of the bucket, container, or volume where the backup will be stored." + ] = None, + bucket_path: Annotated[ + str | None, + "Specifies the path or key within the storage bucket. This helps in locating where the backup will be stored within the bucket.", # noqa: E501 + ] = None, + collections_to_include_in_backup: Annotated[ + list[str] | None, + "List of collections to include in the backup. If not set, all collections are included. Cannot be used with `collections_to_exclude_in_backup`.", # noqa: E501 + ] = None, + compression_level: Annotated[ + str | None, + "Specifies the compression level for the backup: DefaultCompression, BestSpeed, or BestCompression.", # noqa: E501 + ] = "DefaultCompression", + cpu_utilization_percentage: Annotated[ + int | None, + "Sets desired CPU core utilization, ranging from 1% to 80%, during backup creation.", + ] = None, + exclude_collections: Annotated[ + list[str] | None, + "List of collections to exclude from the backup. Overrides include if both are set.", + ] = None, + storage_endpoint_name: Annotated[ + str | None, + "Name of the storage endpoint, such as s3.amazonaws.com, where the backup will be stored.", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'backups.create'."]: + """Initiates backup creation for specified collections. + + This tool starts the process of creating a backup for the specified collections on a designated backend storage using Weaviate. The backup is compressed using gzip by default, and the system remains operational during the backup process. Use this tool when you need to ensure data is safely backed up without interrupting service.""" # noqa: E501 + request_data: Any = { + "id": backup_id, + "config": { + "Endpoint": storage_endpoint_name, + "Bucket": bucket_name, + "Path": bucket_path, + "CPUPercentage": cpu_utilization_percentage, + "ChunkSize": backup_chunk_size, + "CompressionLevel": compression_level, + }, + "include": collections_to_include_in_backup, + "exclude": exclude_collections, + } + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/backups/{backend}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + backend=backend_storage_system, + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def check_backup_status( + context: ToolContext, + backup_backend_system: Annotated[ + str, + "Specifies the backend storage system where the backup resides, such as 'filesystem', 'gcs', 's3', or 'azure'.", # noqa: E501 + ], + backup_identifier: Annotated[ + str, + "The unique identifier of the backup. Use only lowercase, numbers, underscores, and minus characters.", # noqa: E501 + ], + backup_storage_path: Annotated[ + str | None, + "Specifies the path within the bucket/container/volume if the backup is not at the root. Optional.", # noqa: E501 + ] = None, + bucket_name: Annotated[ + str | None, "Specifies the bucket, container, or volume name if required by the backend." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'backups.create.status'."]: + """Get the current status of a backup creation process. + + Use this tool to manually check the status of a backup creation process by its ID on the specified backend. Ideal for when waiting for completion is disabled or not suitable.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/backups/{backend}/{id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + backend=backup_backend_system, + id=backup_identifier, + ), + method="GET", + params=remove_none_values({"bucket": bucket_name, "path": backup_storage_path}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def cancel_backup( + context: ToolContext, + backup_id: Annotated[ + str, + "The unique ID of the backup to delete. Must be URL-safe, using lowercase, numbers, underscores, and minus characters.", # noqa: E501 + ], + storage_backend_system: Annotated[ + str, + "Specifies the backend storage system where the backup resides (e.g., 'filesystem', 'gcs', 's3', 'azure').", # noqa: E501 + ], + backup_subpath: Annotated[ + str | None, + "Specifies the optional path within the storage if the backup is not at the root.", + ] = None, + specified_bucket_name: Annotated[ + str | None, + "Specifies the bucket, container, or volume name if required by the backend storage system. Optional parameter.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'backups.cancel'."]: + """Cancel a backup by its ID from a specified backend storage. + + Use this tool to delete a backup using its unique ID from a specified backend storage location, ensuring the backup is no longer retrievable.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/backups/{backend}/{id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + backend=storage_backend_system, + id=backup_id, + ), + method="DELETE", + params=remove_none_values({"bucket": specified_bucket_name, "path": backup_subpath}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def check_backup_restore_status( + context: ToolContext, + backend_storage_system: Annotated[ + str, + "Specifies the backend storage system where the backup resides, such as 'filesystem', 'gcs', 's3', or 'azure'.", # noqa: E501 + ], + backup_id: Annotated[ + str, + "The URL-safe unique identifier of the backup being restored. Use lowercase, numbers, underscores, and minus characters only.", # noqa: E501 + ], + backup_bucket_name: Annotated[ + str | None, "Specifies the bucket, container, or volume name if required by the backend." + ] = None, + bucket_path: Annotated[ + str | None, "Specifies the path within the bucket, optional based on backend requirements." + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'backups.restore.status'."]: + """Check the status of a backup restoration process. + + Use this tool to manually check the status of a specific backup restoration on a given backend, using the backup ID. Ideal when automatic polling is disabled.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/backups/{backend}/{id}/restore".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + backend=backend_storage_system, + id=backup_id, + ), + method="GET", + params=remove_none_values({"bucket": backup_bucket_name, "path": bucket_path}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def restore_backup( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + backup_backend_storage: Annotated[ + str | None, + "Specifies the backend storage system where the backup resides, such as `filesystem`, `gcs`, `s3`, or `azure`. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + backup_identifier: Annotated[ + str | None, + "The unique identifier for the backup to restore. It must be URL-safe and compatible with filesystem paths, using only lowercase letters, numbers, underscores, and minus characters. Required when mode is 'execute', ignored when mode is 'get_request_schema'.", # noqa: E501 + ] = None, + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'backups.restore'."]: + """Restore collections from a specified backup. + + Initiates the restoration of collections from a backup stored on a designated backend. Ensure the target cluster has identical node configurations as the source cluster, and that the collections do not already exist on the target. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution.\n\nThis operation also requires path parameters. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON.\n Note: You must also provide the required path parameters when executing. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS["RESTOREBACKUP_REQUEST_BODY_SCHEMA"], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter along with the required path parameters. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + # Validate required parameters + missing_params = [] + if not backup_backend_storage: + missing_params.append(("backup_backend_storage", "path")) + if not backup_identifier: + missing_params.append(("backup_identifier", "path")) + + if missing_params: + param_names = [p[0] for p in missing_params] + param_details = ", ".join([f"{p[0]} ({p[1]})" for p in missing_params]) + raise RetryableToolError( + message=f"Missing required parameters: {param_names}", + developer_message=(f"Required parameters validation failed: {param_details}"), + additional_prompt_content=( + f"The following required parameters are missing: " + f"{param_details}. Please call this tool again with all " + "required parameters." + ), + ) + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps(REQUEST_BODY_SCHEMAS["RESTOREBACKUP_REQUEST_BODY_SCHEMA"], indent=2) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps(REQUEST_BODY_SCHEMAS["RESTOREBACKUP_REQUEST_BODY_SCHEMA"], indent=2) + ), + ) from e + + response = await make_request_with_schema_validation( + url="{weaviate_server_url}/v1/backups/{backend}/{id}/restore".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + backend=backup_backend_storage, + id=backup_identifier, + ), + method="POST", + request_data=request_data, + schema=REQUEST_BODY_SCHEMAS["RESTOREBACKUP_REQUEST_BODY_SCHEMA"], + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_weaviate_cluster_statistics( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'cluster.get.statistics'."]: + """Get Weaviate cluster Raft protocol statistics. + + Use this tool to retrieve detailed statistics about the internal Raft consensus protocol state for a Weaviate cluster. This can help monitor the cluster's status and performance.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/cluster/statistics".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_cluster_node_status( + context: ToolContext, + output_verbosity: Annotated[ + str | None, + "Controls the verbosity of the output for node status information. Accepted values: `minimal`, `verbose`. Defaults to `minimal`.", # noqa: E501 + ] = "minimal", +) -> Annotated[dict[str, Any], "Response from the API endpoint 'nodes.get'."]: + """Retrieve status information about all nodes in a cluster. + + Fetches status details for all nodes in the cluster, with adjustable detail level using the output parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/nodes".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({"output": output_verbosity}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_shard_host_nodes_status( + context: ToolContext, + collection_class_name: Annotated[ + str, "The name of the collection (class) for which to retrieve node status." + ], + output_verbosity: Annotated[ + str | None, + "Set the verbosity of the output. Possible values: 'minimal', 'verbose'. Defaults to 'minimal'.", # noqa: E501 + ] = "minimal", + shard_name: Annotated[ + str | None, + "Specifies the name of the shard for which to retrieve node status information. This helps to focus the request on specific shards within a collection.", # noqa: E501 + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'nodes.get.class'."]: + """Retrieve status of nodes hosting shards for a collection. + + This tool fetches status information for nodes that host shards of a specified collection. Use it to monitor or diagnose the nodes in a distributed database cluster, customizing the level of detail with the `output` query parameter.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/nodes/{className}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), + className=collection_class_name, + ), + method="GET", + params=remove_none_values({"shardName": shard_name, "output": output_verbosity}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def list_distributed_tasks( + context: ToolContext, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'distributedTasks.get'."]: + """Retrieve all distributed tasks in the cluster. + + Use this tool to get an overview of all distributed tasks currently active or available within the cluster.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/tasks".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def initiate_classification_task( + context: ToolContext, + mode: Annotated[ + ToolMode, + "Operation mode: 'get_request_schema' returns the OpenAPI spec " + "for the request body, 'execute' performs the actual operation", + ], + request_body: Annotated[ + str | None, + "Stringified JSON representing the request body. Required when " + "mode is 'execute', ignored when mode is 'get_request_schema'", + ] = None, +) -> Annotated[dict[str, Any], "Response from the API endpoint 'classifications.post'."]: + """Initiate a classification task in the background. + + Use this tool to start a background classification task with specific parameters. This will initiate the process, and you can monitor its status and retrieve results using the GET /classifications/{id} endpoint. + + Note: Understanding the request schema is necessary to properly create + the stringified JSON input object for execution. + + Modes: + - GET_REQUEST_SCHEMA: Returns the schema. Only call if you don't + already have it. Do NOT call repeatedly if you already received + the schema. + - EXECUTE: Performs the operation with the provided request body + JSON. + + If you need the schema, call with mode='get_request_schema' ONCE, then execute. + """ # noqa: E501 + if mode == ToolMode.GET_REQUEST_SCHEMA: + return { + "request_body_schema": REQUEST_BODY_SCHEMAS[ + "INITIATECLASSIFICATIONTASK_REQUEST_BODY_SCHEMA" + ], + "instructions": ( + "Use the request_body_schema to construct a valid JSON object. " + "Once you have populated the object following the schema " + "structure and requirements, call this tool again with " + "mode='execute' and the stringified JSON as the " + "request_body parameter. " + "Do NOT call the schema mode again - you already have " + "the schema now." + ), + } + + # Mode is EXECUTE - validate parameters + + # Validate request body is provided (not None or empty string) + # Note: Empty objects like {} are allowed - schema validation will check if valid + if request_body is None or request_body.strip() == "": + raise RetryableToolError( + message="Request body is required when mode is 'execute'", + developer_message="The request_body parameter was null or empty string", + additional_prompt_content=( + "The request body is required to perform this operation. " + "Use the schema below to construct a valid JSON object, " + "then call this tool again in execute mode with the " + "stringified JSON as the request_body parameter.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["INITIATECLASSIFICATIONTASK_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) + + # Parse JSON + try: + request_data = json.loads(request_body) + except json.JSONDecodeError as e: + raise RetryableToolError( + message=f"Invalid JSON in request body: {e!s}", + developer_message=f"JSON parsing failed: {e!s}", + additional_prompt_content=( + f"The request body contains invalid JSON. Error: {e!s}\n\n" + "Please provide a valid JSON string that matches the schema " + "below, then call this tool again in execute mode.\n\n" + "Schema:\n\n" + + json.dumps( + REQUEST_BODY_SCHEMAS["INITIATECLASSIFICATIONTASK_REQUEST_BODY_SCHEMA"], indent=2 + ) + ), + ) from e + + response = await make_request( + url="{weaviate_server_url}/v1/classifications/".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL") + ), + method="POST", + params=remove_none_values({}), + headers=remove_none_values({ + "Content-Type": "application/json", + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ), + }), + content=json.dumps(request_data), + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} + + +@tool(requires_secrets=["WEAVIATE_API_KEY", "WEAVIATE_SERVER_URL"]) +async def get_classification_status( + context: ToolContext, + classification_task_id: Annotated[ + str, + "The unique identifier (UUID) of the classification task to retrieve its status and results.", # noqa: E501 + ], +) -> Annotated[dict[str, Any], "Response from the API endpoint 'classifications.get'."]: + """Retrieve status and results of a classification task. + + Use this tool to obtain the status, metadata, and results of an ongoing or completed classification task by providing its unique ID.""" # noqa: E501 + request_data: Any = {} + if isinstance(request_data, dict): + request_data = remove_none_values(request_data) + content = json.dumps(request_data) if request_data else None + response = await make_request( + url="{weaviate_server_url}/v1/classifications/{id}".format( + weaviate_server_url=context.get_secret("WEAVIATE_SERVER_URL"), id=classification_task_id + ), + method="GET", + params=remove_none_values({}), + headers=remove_none_values({ + "Authorization": "Bearer {authorization}".format( + authorization=context.get_secret("WEAVIATE_API_KEY") + ) + }), + content=content, + ) + try: + return {"response_json": response.json()} + except Exception: + return {"response_text": response.text} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/tools/request_body_schemas.py b/toolkits/weaviate_api/arcade_weaviate_api/tools/request_body_schemas.py new file mode 100644 index 00000000..433ef4b6 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/tools/request_body_schemas.py @@ -0,0 +1,6514 @@ +"""Request Body Schemas for API Tools + +DO NOT EDIT THIS MODULE DIRECTLY. + +THIS MODULE WAS AUTO-GENERATED AND CONTAINS OpenAPI REQUEST BODY SCHEMAS +FOR TOOLS WITH COMPLEX REQUEST BODIES. ANY CHANGES TO THIS MODULE WILL +BE OVERWRITTEN BY THE TRANSPILER. +""" + +from typing import Any + +REQUEST_BODY_SCHEMAS: dict[str, Any] = { + "CREATEROLEWITHPERMISSIONS_REQUEST_BODY_SCHEMA": { + "properties": { + "name": {"description": "The name (ID) of the role.", "type": "string"}, + "permissions": { + "items": { + "description": "Permissions attached to a role.", + "properties": { + "action": { + "description": "Allowed actions in weaviate.", + "enum": [ + "manage_backups", + "read_cluster", + "create_data", + "read_data", + "update_data", + "delete_data", + "read_nodes", + "create_roles", + "read_roles", + "update_roles", + "delete_roles", + "create_collections", + "read_collections", + "update_collections", + "delete_collections", + "assign_and_revoke_users", + "create_users", + "read_users", + "update_users", + "delete_users", + "create_tenants", + "read_tenants", + "update_tenants", + "delete_tenants", + "create_replicate", + "read_replicate", + "update_replicate", + "delete_replicate", + "create_aliases", + "read_aliases", + "update_aliases", + "delete_aliases", + "assign_and_revoke_groups", + "read_groups", + ], + "type": "string", + }, + "aliases": { + "description": "Resource " + "definition " + "for " + "alias-related " + "actions " + "and " + "permissions. " + "Used " + "to " + "specify " + "which " + "aliases " + "and " + "collections " + "can " + "be " + "accessed " + "or " + "modified.", + "properties": { + "alias": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "aliases " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "alias " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "aliases.", + "type": "string", + }, + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + }, + }, + "type": "object", + }, + "backups": { + "description": "Resources applicable for backup actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + } + }, + "type": "object", + }, + "collections": { + "description": "Resources " + "applicable " + "for " + "collection " + "and/or " + "tenant " + "actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + } + }, + "type": "object", + }, + "data": { + "description": "Resources applicable for data actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + }, + "object": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "objects " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "object " + "ID " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "objects.", + "type": "string", + }, + "tenant": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "tenants " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "tenant " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "tenants.", + "type": "string", + }, + }, + "type": "object", + }, + "groups": { + "description": "Resources applicable for group actions.", + "properties": { + "group": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "groups " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "group " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "groups.", + "type": "string", + }, + "groupType": { + "description": "If the group contains OIDC or database users.", + "enum": ["oidc"], + "type": "string", + }, + }, + "type": "object", + }, + "nodes": { + "description": "Resources applicable for cluster actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + }, + "verbosity": { + "default": "minimal", + "description": "Whether " + "to " + "allow " + "(verbose) " + "returning " + "shards " + "and " + "stats " + "data " + "in " + "the " + "response.", + "enum": ["verbose", "minimal"], + "type": "string", + }, + }, + "type": "object", + }, + "replicate": { + "description": "resources applicable for replicate actions", + "properties": { + "collection": { + "default": "*", + "description": "string " + "or " + "regex. " + "if " + "a " + "specific " + "collection " + "name, " + "if " + "left " + "empty " + "it " + "will " + "be " + "ALL " + "or " + "*", + "type": "string", + }, + "shard": { + "default": "*", + "description": "string " + "or " + "regex. " + "if " + "a " + "specific " + "shard " + "name, " + "if " + "left " + "empty " + "it " + "will " + "be " + "ALL " + "or " + "*", + "type": "string", + }, + }, + "type": "object", + }, + "roles": { + "description": "Resources applicable for role actions.", + "properties": { + "role": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "roles " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "role " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "roles.", + "type": "string", + }, + "scope": { + "default": "match", + "description": "Set the scope for the manage role permission.", + "enum": ["all", "match"], + "type": "string", + }, + }, + "type": "object", + }, + "tenants": { + "description": "Resources applicable for tenant actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + }, + "tenant": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "tenants " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "tenant " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "tenants.", + "type": "string", + }, + }, + "type": "object", + }, + "users": { + "description": "Resources applicable for user actions.", + "properties": { + "users": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "users " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "user " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "users.", + "type": "string", + } + }, + "type": "object", + }, + }, + "required": ["action"], + "type": "object", + }, + "type": "array", + }, + }, + "required": ["name", "permissions"], + "type": "object", + }, + "ADDPERMISSIONSTOROLE_REQUEST_BODY_SCHEMA": { + "properties": { + "permissions": { + "description": "Permissions to be added to the role.", + "items": { + "description": "Permissions attached to a role.", + "properties": { + "action": { + "description": "Allowed actions in weaviate.", + "enum": [ + "manage_backups", + "read_cluster", + "create_data", + "read_data", + "update_data", + "delete_data", + "read_nodes", + "create_roles", + "read_roles", + "update_roles", + "delete_roles", + "create_collections", + "read_collections", + "update_collections", + "delete_collections", + "assign_and_revoke_users", + "create_users", + "read_users", + "update_users", + "delete_users", + "create_tenants", + "read_tenants", + "update_tenants", + "delete_tenants", + "create_replicate", + "read_replicate", + "update_replicate", + "delete_replicate", + "create_aliases", + "read_aliases", + "update_aliases", + "delete_aliases", + "assign_and_revoke_groups", + "read_groups", + ], + "type": "string", + }, + "aliases": { + "description": "Resource " + "definition " + "for " + "alias-related " + "actions " + "and " + "permissions. " + "Used " + "to " + "specify " + "which " + "aliases " + "and " + "collections " + "can " + "be " + "accessed " + "or " + "modified.", + "properties": { + "alias": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "aliases " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "alias " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "aliases.", + "type": "string", + }, + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + }, + }, + "type": "object", + }, + "backups": { + "description": "Resources applicable for backup actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + } + }, + "type": "object", + }, + "collections": { + "description": "Resources " + "applicable " + "for " + "collection " + "and/or " + "tenant " + "actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + } + }, + "type": "object", + }, + "data": { + "description": "Resources applicable for data actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + }, + "object": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "objects " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "object " + "ID " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "objects.", + "type": "string", + }, + "tenant": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "tenants " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "tenant " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "tenants.", + "type": "string", + }, + }, + "type": "object", + }, + "groups": { + "description": "Resources applicable for group actions.", + "properties": { + "group": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "groups " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "group " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "groups.", + "type": "string", + }, + "groupType": { + "description": "If the group contains OIDC or database users.", + "enum": ["oidc"], + "type": "string", + }, + }, + "type": "object", + }, + "nodes": { + "description": "Resources applicable for cluster actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + }, + "verbosity": { + "default": "minimal", + "description": "Whether " + "to " + "allow " + "(verbose) " + "returning " + "shards " + "and " + "stats " + "data " + "in " + "the " + "response.", + "enum": ["verbose", "minimal"], + "type": "string", + }, + }, + "type": "object", + }, + "replicate": { + "description": "resources applicable for replicate actions", + "properties": { + "collection": { + "default": "*", + "description": "string " + "or " + "regex. " + "if " + "a " + "specific " + "collection " + "name, " + "if " + "left " + "empty " + "it " + "will " + "be " + "ALL " + "or " + "*", + "type": "string", + }, + "shard": { + "default": "*", + "description": "string " + "or " + "regex. " + "if " + "a " + "specific " + "shard " + "name, " + "if " + "left " + "empty " + "it " + "will " + "be " + "ALL " + "or " + "*", + "type": "string", + }, + }, + "type": "object", + }, + "roles": { + "description": "Resources applicable for role actions.", + "properties": { + "role": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "roles " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "role " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "roles.", + "type": "string", + }, + "scope": { + "default": "match", + "description": "Set the scope for the manage role permission.", + "enum": ["all", "match"], + "type": "string", + }, + }, + "type": "object", + }, + "tenants": { + "description": "Resources applicable for tenant actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + }, + "tenant": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "tenants " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "tenant " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "tenants.", + "type": "string", + }, + }, + "type": "object", + }, + "users": { + "description": "Resources applicable for user actions.", + "properties": { + "users": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "users " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "user " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "users.", + "type": "string", + } + }, + "type": "object", + }, + }, + "required": ["action"], + "type": "object", + }, + "type": "array", + } + }, + "required": ["permissions"], + "type": "object", + }, + "REVOKEROLEPERMISSIONS_REQUEST_BODY_SCHEMA": { + "properties": { + "permissions": { + "description": "Permissions to remove from the role.", + "items": { + "description": "Permissions attached to a role.", + "properties": { + "action": { + "description": "Allowed actions in weaviate.", + "enum": [ + "manage_backups", + "read_cluster", + "create_data", + "read_data", + "update_data", + "delete_data", + "read_nodes", + "create_roles", + "read_roles", + "update_roles", + "delete_roles", + "create_collections", + "read_collections", + "update_collections", + "delete_collections", + "assign_and_revoke_users", + "create_users", + "read_users", + "update_users", + "delete_users", + "create_tenants", + "read_tenants", + "update_tenants", + "delete_tenants", + "create_replicate", + "read_replicate", + "update_replicate", + "delete_replicate", + "create_aliases", + "read_aliases", + "update_aliases", + "delete_aliases", + "assign_and_revoke_groups", + "read_groups", + ], + "type": "string", + }, + "aliases": { + "description": "Resource " + "definition " + "for " + "alias-related " + "actions " + "and " + "permissions. " + "Used " + "to " + "specify " + "which " + "aliases " + "and " + "collections " + "can " + "be " + "accessed " + "or " + "modified.", + "properties": { + "alias": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "aliases " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "alias " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "aliases.", + "type": "string", + }, + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + }, + }, + "type": "object", + }, + "backups": { + "description": "Resources applicable for backup actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + } + }, + "type": "object", + }, + "collections": { + "description": "Resources " + "applicable " + "for " + "collection " + "and/or " + "tenant " + "actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + } + }, + "type": "object", + }, + "data": { + "description": "Resources applicable for data actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + }, + "object": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "objects " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "object " + "ID " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "objects.", + "type": "string", + }, + "tenant": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "tenants " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "tenant " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "tenants.", + "type": "string", + }, + }, + "type": "object", + }, + "groups": { + "description": "Resources applicable for group actions.", + "properties": { + "group": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "groups " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "group " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "groups.", + "type": "string", + }, + "groupType": { + "description": "If the group contains OIDC or database users.", + "enum": ["oidc"], + "type": "string", + }, + }, + "type": "object", + }, + "nodes": { + "description": "Resources applicable for cluster actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + }, + "verbosity": { + "default": "minimal", + "description": "Whether " + "to " + "allow " + "(verbose) " + "returning " + "shards " + "and " + "stats " + "data " + "in " + "the " + "response.", + "enum": ["verbose", "minimal"], + "type": "string", + }, + }, + "type": "object", + }, + "replicate": { + "description": "resources applicable for replicate actions", + "properties": { + "collection": { + "default": "*", + "description": "string " + "or " + "regex. " + "if " + "a " + "specific " + "collection " + "name, " + "if " + "left " + "empty " + "it " + "will " + "be " + "ALL " + "or " + "*", + "type": "string", + }, + "shard": { + "default": "*", + "description": "string " + "or " + "regex. " + "if " + "a " + "specific " + "shard " + "name, " + "if " + "left " + "empty " + "it " + "will " + "be " + "ALL " + "or " + "*", + "type": "string", + }, + }, + "type": "object", + }, + "roles": { + "description": "Resources applicable for role actions.", + "properties": { + "role": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "roles " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "role " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "roles.", + "type": "string", + }, + "scope": { + "default": "match", + "description": "Set the scope for the manage role permission.", + "enum": ["all", "match"], + "type": "string", + }, + }, + "type": "object", + }, + "tenants": { + "description": "Resources applicable for tenant actions.", + "properties": { + "collection": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "collection " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "collections.", + "type": "string", + }, + "tenant": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "tenants " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "tenant " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "tenants.", + "type": "string", + }, + }, + "type": "object", + }, + "users": { + "description": "Resources applicable for user actions.", + "properties": { + "users": { + "default": "*", + "description": "A " + "string " + "that " + "specifies " + "which " + "users " + "this " + "permission " + "applies " + "to. " + "Can " + "be " + "an " + "exact " + "user " + "name " + "or " + "a " + "regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to " + "all " + "users.", + "type": "string", + } + }, + "type": "object", + }, + }, + "required": ["action"], + "type": "object", + }, + "type": "array", + } + }, + "required": ["permissions"], + "type": "object", + }, + "CHECKROLEPERMISSION_REQUEST_BODY_SCHEMA": { + "description": "Permissions attached to a role.", + "properties": { + "action": { + "description": "Allowed actions in weaviate.", + "enum": [ + "manage_backups", + "read_cluster", + "create_data", + "read_data", + "update_data", + "delete_data", + "read_nodes", + "create_roles", + "read_roles", + "update_roles", + "delete_roles", + "create_collections", + "read_collections", + "update_collections", + "delete_collections", + "assign_and_revoke_users", + "create_users", + "read_users", + "update_users", + "delete_users", + "create_tenants", + "read_tenants", + "update_tenants", + "delete_tenants", + "create_replicate", + "read_replicate", + "update_replicate", + "delete_replicate", + "create_aliases", + "read_aliases", + "update_aliases", + "delete_aliases", + "assign_and_revoke_groups", + "read_groups", + ], + "type": "string", + }, + "aliases": { + "description": "Resource definition for alias-related " + "actions and permissions. Used to specify " + "which aliases and collections can be " + "accessed or modified.", + "properties": { + "alias": { + "default": "*", + "description": "A string that " + "specifies which " + "aliases this " + "permission " + "applies to. Can " + "be an exact alias " + "name or a regex " + "pattern. The " + "default value `*` " + "applies the " + "permission to all " + "aliases.", + "type": "string", + }, + "collection": { + "default": "*", + "description": "A string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies to. " + "Can be an " + "exact " + "collection " + "name or a " + "regex " + "pattern. The " + "default " + "value `*` " + "applies the " + "permission " + "to all " + "collections.", + "type": "string", + }, + }, + "type": "object", + }, + "backups": { + "description": "Resources applicable for backup actions.", + "properties": { + "collection": { + "default": "*", + "description": "A string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies to. " + "Can be an " + "exact " + "collection " + "name or a " + "regex " + "pattern. The " + "default " + "value `*` " + "applies the " + "permission " + "to all " + "collections.", + "type": "string", + } + }, + "type": "object", + }, + "collections": { + "description": "Resources applicable for collection and/or tenant actions.", + "properties": { + "collection": { + "default": "*", + "description": "A string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies " + "to. Can " + "be an " + "exact " + "collection " + "name or " + "a regex " + "pattern. " + "The " + "default " + "value " + "`*` " + "applies " + "the " + "permission " + "to all " + "collections.", + "type": "string", + } + }, + "type": "object", + }, + "data": { + "description": "Resources applicable for data actions.", + "properties": { + "collection": { + "default": "*", + "description": "A string that " + "specifies which " + "collections " + "this permission " + "applies to. Can " + "be an exact " + "collection name " + "or a regex " + "pattern. The " + "default value " + "`*` applies the " + "permission to " + "all " + "collections.", + "type": "string", + }, + "object": { + "default": "*", + "description": "A string that " + "specifies which " + "objects this " + "permission applies " + "to. Can be an exact " + "object ID or a " + "regex pattern. The " + "default value `*` " + "applies the " + "permission to all " + "objects.", + "type": "string", + }, + "tenant": { + "default": "*", + "description": "A string that " + "specifies which " + "tenants this " + "permission applies " + "to. Can be an exact " + "tenant name or a " + "regex pattern. The " + "default value `*` " + "applies the " + "permission to all " + "tenants.", + "type": "string", + }, + }, + "type": "object", + }, + "groups": { + "description": "Resources applicable for group actions.", + "properties": { + "group": { + "default": "*", + "description": "A string that " + "specifies which " + "groups this " + "permission applies " + "to. Can be an " + "exact group name " + "or a regex " + "pattern. The " + "default value `*` " + "applies the " + "permission to all " + "groups.", + "type": "string", + }, + "groupType": { + "description": "If the group contains OIDC or database users.", + "enum": ["oidc"], + "type": "string", + }, + }, + "type": "object", + }, + "nodes": { + "description": "Resources applicable for cluster actions.", + "properties": { + "collection": { + "default": "*", + "description": "A string that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies to. " + "Can be an " + "exact " + "collection " + "name or a " + "regex pattern. " + "The default " + "value `*` " + "applies the " + "permission to " + "all " + "collections.", + "type": "string", + }, + "verbosity": { + "default": "minimal", + "description": "Whether to " + "allow (verbose) " + "returning " + "shards and " + "stats data in " + "the response.", + "enum": ["verbose", "minimal"], + "type": "string", + }, + }, + "type": "object", + }, + "replicate": { + "description": "resources applicable for replicate actions", + "properties": { + "collection": { + "default": "*", + "description": "string or " + "regex. if " + "a specific " + "collection " + "name, if " + "left empty " + "it will be " + "ALL or *", + "type": "string", + }, + "shard": { + "default": "*", + "description": "string or " + "regex. if a " + "specific shard " + "name, if left " + "empty it will " + "be ALL or *", + "type": "string", + }, + }, + "type": "object", + }, + "roles": { + "description": "Resources applicable for role actions.", + "properties": { + "role": { + "default": "*", + "description": "A string that " + "specifies which " + "roles this " + "permission applies " + "to. Can be an exact " + "role name or a regex " + "pattern. The default " + "value `*` applies " + "the permission to " + "all roles.", + "type": "string", + }, + "scope": { + "default": "match", + "description": "Set the scope for the manage role permission.", + "enum": ["all", "match"], + "type": "string", + }, + }, + "type": "object", + }, + "tenants": { + "description": "Resources applicable for tenant actions.", + "properties": { + "collection": { + "default": "*", + "description": "A string " + "that " + "specifies " + "which " + "collections " + "this " + "permission " + "applies to. " + "Can be an " + "exact " + "collection " + "name or a " + "regex " + "pattern. The " + "default " + "value `*` " + "applies the " + "permission " + "to all " + "collections.", + "type": "string", + }, + "tenant": { + "default": "*", + "description": "A string that " + "specifies which " + "tenants this " + "permission " + "applies to. Can " + "be an exact " + "tenant name or a " + "regex pattern. " + "The default " + "value `*` " + "applies the " + "permission to " + "all tenants.", + "type": "string", + }, + }, + "type": "object", + }, + "users": { + "description": "Resources applicable for user actions.", + "properties": { + "users": { + "default": "*", + "description": "A string that " + "specifies which " + "users this " + "permission applies " + "to. Can be an exact " + "user name or a " + "regex pattern. The " + "default value `*` " + "applies the " + "permission to all " + "users.", + "type": "string", + } + }, + "type": "object", + }, + }, + "required": ["action"], + "type": "object", + }, + "CREATEOBJECTINWEAVIATE_REQUEST_BODY_SCHEMA": { + "properties": { + "additional": { + "additionalProperties": {"properties": {}, "type": "object"}, + "description": "(Response only) Additional meta information about a single object.", + "type": "object", + }, + "class": { + "description": "Name of the collection (class) the object belongs to.", + "type": "string", + }, + "creationTimeUnix": { + "description": "(Response only) Timestamp of " + "creation of this object in " + "milliseconds since epoch UTC.", + "format": "int64", + "type": "integer", + }, + "id": {"description": "The UUID of the object.", "format": "uuid", "type": "string"}, + "lastUpdateTimeUnix": { + "description": "(Response only) Timestamp of " + "the last object update in " + "milliseconds since epoch UTC.", + "format": "int64", + "type": "integer", + }, + "properties": { + "description": "Names and values of an individual " + "property. A returned response may also " + "contain additional metadata, such as " + "from classification or feature " + "projection.", + "type": "object", + }, + "tenant": { + "description": "The name of the tenant the object belongs to.", + "type": "string", + }, + "vector": { + "description": "A vector representation of the object in " + "the Contextionary. If provided at object " + "creation, this wil take precedence over any " + "vectorizer setting.", + "items": {"format": "float", "type": "number"}, + "type": "array", + }, + "vectorWeights": { + "description": "Allow custom overrides of vector " + "weights as math expressions. E.g. " + "`pancake`: `7` will set the weight " + "for the word pancake to 7 in the " + "vectorization, whereas `w * 3` would " + "triple the originally calculated " + "word. This is an open object, with " + "OpenAPI Specification 3.0 this will " + "be more detailed. See Weaviate docs " + "for more info. In the future this " + "will become a key/value " + "(string/string) object.", + "type": "object", + }, + "vectors": { + "additionalProperties": { + "description": "A vector " + "representation of " + "the object. If " + "provided at " + "object creation, " + "this wil take " + "precedence over " + "any vectorizer " + "setting.", + "type": "object", + }, + "description": "A map of named vectors for multi-vector representations.", + "type": "object", + }, + }, + "type": "object", + }, + "UPDATEOBJECTPROPERTIES_REQUEST_BODY_SCHEMA": { + "properties": { + "additional": { + "additionalProperties": {"properties": {}, "type": "object"}, + "description": "(Response only) Additional meta information about a single object.", + "type": "object", + }, + "class": { + "description": "Name of the collection (class) the object belongs to.", + "type": "string", + }, + "creationTimeUnix": { + "description": "(Response only) Timestamp of " + "creation of this object in " + "milliseconds since epoch UTC.", + "format": "int64", + "type": "integer", + }, + "id": {"description": "The UUID of the object.", "format": "uuid", "type": "string"}, + "lastUpdateTimeUnix": { + "description": "(Response only) Timestamp of " + "the last object update in " + "milliseconds since epoch UTC.", + "format": "int64", + "type": "integer", + }, + "properties": { + "description": "Names and values of an individual " + "property. A returned response may also " + "contain additional metadata, such as " + "from classification or feature " + "projection.", + "type": "object", + }, + "tenant": { + "description": "The name of the tenant the object belongs to.", + "type": "string", + }, + "vector": { + "description": "A vector representation of the object in " + "the Contextionary. If provided at object " + "creation, this wil take precedence over any " + "vectorizer setting.", + "items": {"format": "float", "type": "number"}, + "type": "array", + }, + "vectorWeights": { + "description": "Allow custom overrides of vector " + "weights as math expressions. E.g. " + "`pancake`: `7` will set the weight " + "for the word pancake to 7 in the " + "vectorization, whereas `w * 3` would " + "triple the originally calculated " + "word. This is an open object, with " + "OpenAPI Specification 3.0 this will " + "be more detailed. See Weaviate docs " + "for more info. In the future this " + "will become a key/value " + "(string/string) object.", + "type": "object", + }, + "vectors": { + "additionalProperties": { + "description": "A vector " + "representation of " + "the object. If " + "provided at " + "object creation, " + "this wil take " + "precedence over " + "any vectorizer " + "setting.", + "type": "object", + }, + "description": "A map of named vectors for multi-vector representations.", + "type": "object", + }, + }, + "type": "object", + }, + "UPDATEDATAOBJECT_REQUEST_BODY_SCHEMA": { + "properties": { + "additional": { + "additionalProperties": {"properties": {}, "type": "object"}, + "description": "(Response only) Additional meta information about a single object.", + "type": "object", + }, + "class": { + "description": "Name of the collection (class) the object belongs to.", + "type": "string", + }, + "creationTimeUnix": { + "description": "(Response only) Timestamp of " + "creation of this object in " + "milliseconds since epoch UTC.", + "format": "int64", + "type": "integer", + }, + "id": {"description": "The UUID of the object.", "format": "uuid", "type": "string"}, + "lastUpdateTimeUnix": { + "description": "(Response only) Timestamp of " + "the last object update in " + "milliseconds since epoch UTC.", + "format": "int64", + "type": "integer", + }, + "properties": { + "description": "Names and values of an individual " + "property. A returned response may also " + "contain additional metadata, such as " + "from classification or feature " + "projection.", + "type": "object", + }, + "tenant": { + "description": "The name of the tenant the object belongs to.", + "type": "string", + }, + "vector": { + "description": "A vector representation of the object in " + "the Contextionary. If provided at object " + "creation, this wil take precedence over any " + "vectorizer setting.", + "items": {"format": "float", "type": "number"}, + "type": "array", + }, + "vectorWeights": { + "description": "Allow custom overrides of vector " + "weights as math expressions. E.g. " + "`pancake`: `7` will set the weight " + "for the word pancake to 7 in the " + "vectorization, whereas `w * 3` would " + "triple the originally calculated " + "word. This is an open object, with " + "OpenAPI Specification 3.0 this will " + "be more detailed. See Weaviate docs " + "for more info. In the future this " + "will become a key/value " + "(string/string) object.", + "type": "object", + }, + "vectors": { + "additionalProperties": { + "description": "A vector " + "representation of " + "the object. If " + "provided at " + "object creation, " + "this wil take " + "precedence over " + "any vectorizer " + "setting.", + "type": "object", + }, + "description": "A map of named vectors for multi-vector representations.", + "type": "object", + }, + }, + "type": "object", + }, + "REPLACEOBJECTREFERENCES_REQUEST_BODY_SCHEMA": { + "description": "Multiple instances of references to other objects.", + "items": { + "description": "Either set beacon (direct reference) or set collection " + "(class) and schema (concept reference)", + "properties": { + "beacon": { + "description": "If using a direct reference, " + "specify the URI to point to the " + "cross-reference here. Should be " + "in the form of " + "weaviate://localhost/ for " + "the example of a local " + "cross-reference to an object", + "format": "uri", + "type": "string", + }, + "class": { + "description": "If using a concept reference " + "(rather than a direct reference), " + "specify the desired collection " + "(class) name here.", + "format": "uri", + "type": "string", + }, + "classification": { + "description": "This meta field contains " + "additional info about the " + "classified reference " + "property", + "properties": { + "closestLosingDistance": { + "description": "The " + "lowest " + "distance " + "of " + "a " + "neighbor " + "in " + "the " + "losing " + "group. " + "Optional. " + "If " + "k " + "equals " + "the " + "size " + "of " + "the " + "winning " + "group, " + "there " + "is " + "no " + "losing " + "group", + "format": "float32", + "nullable": True, + "type": "number", + }, + "closestOverallDistance": { + "description": "The " + "lowest " + "distance " + "of " + "any " + "neighbor, " + "regardless " + "of " + "whether " + "they " + "were " + "in " + "the " + "winning " + "or " + "losing " + "group", + "format": "float32", + "type": "number", + }, + "closestWinningDistance": { + "description": "Closest distance of a neighbor from the winning group", + "format": "float32", + "type": "number", + }, + "losingCount": { + "description": "size " + "of " + "the " + "losing " + "group, " + "can " + "be " + "0 " + "if " + "the " + "winning " + "group " + "size " + "equals " + "k", + "format": "int64", + "type": "number", + }, + "losingDistance": { + "description": "deprecated - do not use, to be removed in 0.23.0", + "format": "float32", + "nullable": True, + "type": "number", + }, + "meanLosingDistance": { + "description": "Mean " + "distance " + "of " + "all " + "neighbors " + "from " + "the " + "losing " + "group. " + "Optional. " + "If " + "k " + "equals " + "the " + "size " + "of " + "the " + "winning " + "group, " + "there " + "is " + "no " + "losing " + "group.", + "format": "float32", + "nullable": True, + "type": "number", + }, + "meanWinningDistance": { + "description": "Mean distance of all neighbors from the winning group", + "format": "float32", + "type": "number", + }, + "overallCount": { + "description": "overall " + "neighbors " + "checked " + "as " + "part " + "of " + "the " + "classification. " + "In " + "most " + "cases " + "this " + "will " + "equal " + "k, " + "but " + "could " + "be " + "lower " + "than " + "k " + "- " + "for " + "example " + "if " + "not " + "enough " + "data " + "was " + "present", + "format": "int64", + "type": "number", + }, + "winningCount": { + "description": "size of the winning group, a number between 1..k", + "format": "int64", + "type": "number", + }, + "winningDistance": { + "description": "deprecated - do not use, to be removed in 0.23.0", + "format": "float32", + "type": "number", + }, + }, + "type": "object", + }, + "href": { + "description": "If using a direct reference, this " + "read-only fields provides a link to " + "the referenced resource. If " + "'origin' is globally configured, an " + "absolute URI is shown - a relative " + "URI otherwise.", + "format": "uri", + "type": "string", + }, + "schema": { + "description": "Names and values of an individual " + "property. A returned response may " + "also contain additional metadata, " + "such as from classification or " + "feature projection.", + "type": "object", + }, + }, + "type": "object", + }, + "type": "array", + }, + "ADDREFERENCETOOBJECT_REQUEST_BODY_SCHEMA": { + "description": "Either set beacon (direct reference) or set collection (class) and " + "schema (concept reference)", + "properties": { + "beacon": { + "description": "If using a direct reference, specify the " + "URI to point to the cross-reference here. " + "Should be in the form of " + "weaviate://localhost/ for the example " + "of a local cross-reference to an object", + "format": "uri", + "type": "string", + }, + "class": { + "description": "If using a concept reference (rather than a " + "direct reference), specify the desired " + "collection (class) name here.", + "format": "uri", + "type": "string", + }, + "classification": { + "description": "This meta field contains additional " + "info about the classified reference " + "property", + "properties": { + "closestLosingDistance": { + "description": "The " + "lowest " + "distance " + "of " + "a " + "neighbor " + "in " + "the " + "losing " + "group. " + "Optional. " + "If " + "k " + "equals " + "the " + "size " + "of " + "the " + "winning " + "group, " + "there " + "is " + "no " + "losing " + "group", + "format": "float32", + "nullable": True, + "type": "number", + }, + "closestOverallDistance": { + "description": "The " + "lowest " + "distance " + "of " + "any " + "neighbor, " + "regardless " + "of " + "whether " + "they " + "were " + "in " + "the " + "winning " + "or " + "losing " + "group", + "format": "float32", + "type": "number", + }, + "closestWinningDistance": { + "description": "Closest distance of a neighbor from the winning group", + "format": "float32", + "type": "number", + }, + "losingCount": { + "description": "size " + "of " + "the " + "losing " + "group, " + "can " + "be 0 " + "if " + "the " + "winning " + "group " + "size " + "equals " + "k", + "format": "int64", + "type": "number", + }, + "losingDistance": { + "description": "deprecated - do not use, to be removed in 0.23.0", + "format": "float32", + "nullable": True, + "type": "number", + }, + "meanLosingDistance": { + "description": "Mean " + "distance " + "of " + "all " + "neighbors " + "from " + "the " + "losing " + "group. " + "Optional. " + "If " + "k " + "equals " + "the " + "size " + "of " + "the " + "winning " + "group, " + "there " + "is " + "no " + "losing " + "group.", + "format": "float32", + "nullable": True, + "type": "number", + }, + "meanWinningDistance": { + "description": "Mean distance of all neighbors from the winning group", + "format": "float32", + "type": "number", + }, + "overallCount": { + "description": "overall " + "neighbors " + "checked " + "as " + "part " + "of " + "the " + "classification. " + "In " + "most " + "cases " + "this " + "will " + "equal " + "k, " + "but " + "could " + "be " + "lower " + "than " + "k - " + "for " + "example " + "if " + "not " + "enough " + "data " + "was " + "present", + "format": "int64", + "type": "number", + }, + "winningCount": { + "description": "size of the winning group, a number between 1..k", + "format": "int64", + "type": "number", + }, + "winningDistance": { + "description": "deprecated - do not use, to be removed in 0.23.0", + "format": "float32", + "type": "number", + }, + }, + "type": "object", + }, + "href": { + "description": "If using a direct reference, this read-only " + "fields provides a link to the referenced " + "resource. If 'origin' is globally configured, " + "an absolute URI is shown - a relative URI " + "otherwise.", + "format": "uri", + "type": "string", + }, + "schema": { + "description": "Names and values of an individual property. " + "A returned response may also contain " + "additional metadata, such as from " + "classification or feature projection.", + "type": "object", + }, + }, + "type": "object", + }, + "DELETEREFERENCEFROMOBJECT_REQUEST_BODY_SCHEMA": { + "description": "Either set beacon (direct reference) or set collection (class) and " + "schema (concept reference)", + "properties": { + "beacon": { + "description": "If using a direct reference, specify the " + "URI to point to the cross-reference here. " + "Should be in the form of " + "weaviate://localhost/ for the example " + "of a local cross-reference to an object", + "format": "uri", + "type": "string", + }, + "class": { + "description": "If using a concept reference (rather than a " + "direct reference), specify the desired " + "collection (class) name here.", + "format": "uri", + "type": "string", + }, + "classification": { + "description": "This meta field contains additional " + "info about the classified reference " + "property", + "properties": { + "closestLosingDistance": { + "description": "The " + "lowest " + "distance " + "of " + "a " + "neighbor " + "in " + "the " + "losing " + "group. " + "Optional. " + "If " + "k " + "equals " + "the " + "size " + "of " + "the " + "winning " + "group, " + "there " + "is " + "no " + "losing " + "group", + "format": "float32", + "nullable": True, + "type": "number", + }, + "closestOverallDistance": { + "description": "The " + "lowest " + "distance " + "of " + "any " + "neighbor, " + "regardless " + "of " + "whether " + "they " + "were " + "in " + "the " + "winning " + "or " + "losing " + "group", + "format": "float32", + "type": "number", + }, + "closestWinningDistance": { + "description": "Closest distance of a neighbor from the winning group", + "format": "float32", + "type": "number", + }, + "losingCount": { + "description": "size " + "of " + "the " + "losing " + "group, " + "can " + "be 0 " + "if " + "the " + "winning " + "group " + "size " + "equals " + "k", + "format": "int64", + "type": "number", + }, + "losingDistance": { + "description": "deprecated - do not use, to be removed in 0.23.0", + "format": "float32", + "nullable": True, + "type": "number", + }, + "meanLosingDistance": { + "description": "Mean " + "distance " + "of " + "all " + "neighbors " + "from " + "the " + "losing " + "group. " + "Optional. " + "If " + "k " + "equals " + "the " + "size " + "of " + "the " + "winning " + "group, " + "there " + "is " + "no " + "losing " + "group.", + "format": "float32", + "nullable": True, + "type": "number", + }, + "meanWinningDistance": { + "description": "Mean distance of all neighbors from the winning group", + "format": "float32", + "type": "number", + }, + "overallCount": { + "description": "overall " + "neighbors " + "checked " + "as " + "part " + "of " + "the " + "classification. " + "In " + "most " + "cases " + "this " + "will " + "equal " + "k, " + "but " + "could " + "be " + "lower " + "than " + "k - " + "for " + "example " + "if " + "not " + "enough " + "data " + "was " + "present", + "format": "int64", + "type": "number", + }, + "winningCount": { + "description": "size of the winning group, a number between 1..k", + "format": "int64", + "type": "number", + }, + "winningDistance": { + "description": "deprecated - do not use, to be removed in 0.23.0", + "format": "float32", + "type": "number", + }, + }, + "type": "object", + }, + "href": { + "description": "If using a direct reference, this read-only " + "fields provides a link to the referenced " + "resource. If 'origin' is globally configured, " + "an absolute URI is shown - a relative URI " + "otherwise.", + "format": "uri", + "type": "string", + }, + "schema": { + "description": "Names and values of an individual property. " + "A returned response may also contain " + "additional metadata, such as from " + "classification or feature projection.", + "type": "object", + }, + }, + "type": "object", + }, + "VALIDATEDATAOBJECTSTRUCTURE_REQUEST_BODY_SCHEMA": { + "properties": { + "additional": { + "additionalProperties": {"properties": {}, "type": "object"}, + "description": "(Response only) Additional meta information about a single object.", + "type": "object", + }, + "class": { + "description": "Name of the collection (class) the object belongs to.", + "type": "string", + }, + "creationTimeUnix": { + "description": "(Response only) Timestamp of " + "creation of this object in " + "milliseconds since epoch UTC.", + "format": "int64", + "type": "integer", + }, + "id": {"description": "The UUID of the object.", "format": "uuid", "type": "string"}, + "lastUpdateTimeUnix": { + "description": "(Response only) Timestamp of " + "the last object update in " + "milliseconds since epoch UTC.", + "format": "int64", + "type": "integer", + }, + "properties": { + "description": "Names and values of an individual " + "property. A returned response may also " + "contain additional metadata, such as " + "from classification or feature " + "projection.", + "type": "object", + }, + "tenant": { + "description": "The name of the tenant the object belongs to.", + "type": "string", + }, + "vector": { + "description": "A vector representation of the object in " + "the Contextionary. If provided at object " + "creation, this wil take precedence over any " + "vectorizer setting.", + "items": {"format": "float", "type": "number"}, + "type": "array", + }, + "vectorWeights": { + "description": "Allow custom overrides of vector " + "weights as math expressions. E.g. " + "`pancake`: `7` will set the weight " + "for the word pancake to 7 in the " + "vectorization, whereas `w * 3` would " + "triple the originally calculated " + "word. This is an open object, with " + "OpenAPI Specification 3.0 this will " + "be more detailed. See Weaviate docs " + "for more info. In the future this " + "will become a key/value " + "(string/string) object.", + "type": "object", + }, + "vectors": { + "additionalProperties": { + "description": "A vector " + "representation of " + "the object. If " + "provided at " + "object creation, " + "this wil take " + "precedence over " + "any vectorizer " + "setting.", + "type": "object", + }, + "description": "A map of named vectors for multi-vector representations.", + "type": "object", + }, + }, + "type": "object", + }, + "BATCHREGISTEROBJECTS_REQUEST_BODY_SCHEMA": { + "properties": { + "fields": { + "description": "Controls which fields are returned in the " + "response for each object. Default is `ALL`.", + "items": { + "default": "ALL", + "enum": ["ALL", "class", "schema", "id", "creationTimeUnix"], + "type": "string", + }, + "type": "array", + }, + "objects": { + "description": "Array of objects to be created.", + "items": { + "properties": { + "additional": { + "additionalProperties": {"properties": {}, "type": "object"}, + "description": "(Response " + "only) " + "Additional " + "meta " + "information " + "about " + "a " + "single " + "object.", + "type": "object", + }, + "class": { + "description": "Name of the collection (class) the object belongs to.", + "type": "string", + }, + "creationTimeUnix": { + "description": "(Response " + "only) " + "Timestamp " + "of " + "creation " + "of " + "this " + "object " + "in " + "milliseconds " + "since " + "epoch " + "UTC.", + "format": "int64", + "type": "integer", + }, + "id": { + "description": "The UUID of the object.", + "format": "uuid", + "type": "string", + }, + "lastUpdateTimeUnix": { + "description": "(Response " + "only) " + "Timestamp " + "of " + "the " + "last " + "object " + "update " + "in " + "milliseconds " + "since " + "epoch " + "UTC.", + "format": "int64", + "type": "integer", + }, + "properties": { + "description": "Names " + "and " + "values " + "of " + "an " + "individual " + "property. " + "A " + "returned " + "response " + "may " + "also " + "contain " + "additional " + "metadata, " + "such " + "as " + "from " + "classification " + "or " + "feature " + "projection.", + "type": "object", + }, + "tenant": { + "description": "The name of the tenant the object belongs to.", + "type": "string", + }, + "vector": { + "description": "A " + "vector " + "representation " + "of the " + "object " + "in the " + "Contextionary. " + "If " + "provided " + "at " + "object " + "creation, " + "this " + "wil " + "take " + "precedence " + "over " + "any " + "vectorizer " + "setting.", + "items": {"format": "float", "type": "number"}, + "type": "array", + }, + "vectorWeights": { + "description": "Allow " + "custom " + "overrides " + "of " + "vector " + "weights " + "as " + "math " + "expressions. " + "E.g. " + "`pancake`: " + "`7` " + "will " + "set " + "the " + "weight " + "for " + "the " + "word " + "pancake " + "to " + "7 " + "in " + "the " + "vectorization, " + "whereas " + "`w " + "* " + "3` " + "would " + "triple " + "the " + "originally " + "calculated " + "word. " + "This " + "is " + "an " + "open " + "object, " + "with " + "OpenAPI " + "Specification " + "3.0 " + "this " + "will " + "be " + "more " + "detailed. " + "See " + "Weaviate " + "docs " + "for " + "more " + "info. " + "In " + "the " + "future " + "this " + "will " + "become " + "a " + "key/value " + "(string/string) " + "object.", + "type": "object", + }, + "vectors": { + "additionalProperties": { + "description": "A " + "vector " + "representation " + "of " + "the " + "object. " + "If " + "provided " + "at " + "object " + "creation, " + "this " + "wil " + "take " + "precedence " + "over " + "any " + "vectorizer " + "setting.", + "type": "object", + }, + "description": "A map " + "of " + "named " + "vectors " + "for " + "multi-vector " + "representations.", + "type": "object", + }, + }, + "type": "object", + }, + "type": "array", + }, + }, + "type": "object", + }, + "DELETEMULTIPLEOBJECTS_REQUEST_BODY_SCHEMA": { + "properties": { + "deletionTimeUnixMilli": { + "description": "Timestamp of deletion in milliseconds since epoch UTC.", + "format": "int64", + "nullable": True, + "type": "integer", + }, + "dryRun": { + "default": False, + "description": "If true, the call will show which objects " + "would be matched using the specified filter " + "without deleting any objects. " + "

Depending on the configured " + "verbosity, you will either receive a count " + "of affected objects, or a list of IDs.", + "type": "boolean", + }, + "match": { + "description": "Outlines how to find the objects to be deleted.", + "properties": { + "class": { + "description": "The name of the " + "collection (class) " + "from which to " + "delete objects.", + "example": "City", + "type": "string", + }, + "where": { + "description": "Filter search results using a where filter.", + "properties": { + "operands": { + "description": "Combine " + "multiple " + "where " + "filters, " + "requires " + "'And' " + "or " + "'Or' " + "operator.", + "items": { + "$ref": "#/components/schemas/WhereFilter", + "has_circular_reference": True, + }, + "type": "array", + }, + "operator": { + "description": "Operator to use.", + "enum": [ + "And", + "Or", + "Equal", + "Like", + "NotEqual", + "GreaterThan", + "GreaterThanEqual", + "LessThan", + "LessThanEqual", + "WithinGeoRange", + "IsNull", + "ContainsAny", + "ContainsAll", + "ContainsNone", + "Not", + ], + "example": "GreaterThanEqual", + "type": "string", + }, + "path": { + "description": "Path to the property currently being filtered.", + "example": ["inCity", "city", "name"], + "items": {"type": "string"}, + "type": "array", + }, + "valueBoolean": { + "description": "value as boolean", + "example": False, + "nullable": True, + "type": "boolean", + }, + "valueBooleanArray": { + "description": "value as boolean", + "example": [True, False], + "items": {"type": "boolean"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueDate": { + "description": "value as date (as string)", + "example": "TODO", + "nullable": True, + "type": "string", + }, + "valueDateArray": { + "description": "value as date (as string)", + "example": "TODO", + "items": {"type": "string"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueGeoRange": { + "description": "Filter within a distance of a georange.", + "properties": { + "distance": { + "properties": { + "max": {"format": "float64", "type": "number"} + }, + "type": "object", + }, + "geoCoordinates": { + "properties": { + "latitude": { + "description": "The " + "latitude " + "of " + "the " + "point " + "on " + "earth " + "in " + "decimal " + "form.", + "format": "float", + "nullable": True, + "type": "number", + }, + "longitude": { + "description": "The " + "longitude " + "of " + "the " + "point " + "on " + "earth " + "in " + "decimal " + "form.", + "format": "float", + "nullable": True, + "type": "number", + }, + }, + "type": "object", + }, + }, + "type": "object", + }, + "valueInt": { + "description": "value as integer", + "example": 2000, + "format": "int64", + "nullable": True, + "type": "integer", + }, + "valueIntArray": { + "description": "value as integer", + "example": "[100, 200]", + "items": {"format": "int64", "type": "integer"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueNumber": { + "description": "value as number/float", + "example": 3.14, + "format": "float64", + "nullable": True, + "type": "number", + }, + "valueNumberArray": { + "description": "value as number/float", + "example": [3.14], + "items": {"format": "float64", "type": "number"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueString": { + "description": "value " + "as " + "text " + "(deprecated " + "as " + "of " + "v1.19; " + "alias " + "for " + "valueText)", + "example": "my search term", + "nullable": True, + "type": "string", + }, + "valueStringArray": { + "description": "value " + "as " + "text " + "(deprecated " + "as " + "of " + "v1.19; " + "alias " + "for " + "valueText)", + "example": ["my search term"], + "items": {"type": "string"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueText": { + "description": "value as text", + "example": "my search term", + "nullable": True, + "type": "string", + }, + "valueTextArray": { + "description": "value as text", + "example": ["my search term"], + "items": {"type": "string"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + }, + "type": "object", + }, + }, + "type": "object", + }, + "output": { + "default": "minimal", + "description": "Controls the verbosity of the output, " + "possible values are: `minimal`, `verbose`. " + "Defaults to `minimal`.", + "type": "string", + }, + }, + "type": "object", + }, + "BATCHCREATEREFERENCES_REQUEST_BODY_SCHEMA": { + "items": { + "properties": { + "from": { + "description": "Long-form beacon-style URI to " + "identify the source of the " + "cross-reference, including the " + "property name. Should be in the " + "form of " + "`weaviate://localhost/objects///`, " + "where `` and " + "`` must represent the " + "cross-reference property of the " + "source class to be used.", + "example": "weaviate://localhost/Zoo/a5d09582-4239-4702-81c9-92a6e0122bb4/hasAnimals", + "format": "uri", + "type": "string", + }, + "tenant": {"description": "Name of the reference tenant.", "type": "string"}, + "to": { + "description": "Short-form URI to point to the " + "cross-reference. Should be in the " + "form of `weaviate://localhost/` " + "for the example of a local " + "cross-reference to an object.", + "example": "weaviate://localhost/97525810-a9a5-4eb0-858a-71449aeb007f", + "format": "uri", + "type": "string", + }, + }, + "type": "object", + }, + "type": "array", + }, + "EXECUTEGRAPHQLBATCHQUERIES_REQUEST_BODY_SCHEMA": { + "description": "A list of GraphQL queries.", + "items": { + "description": "GraphQL query based on: http://facebook.github.io/graphql/.", + "properties": { + "operationName": { + "description": "The name of the operation if multiple exist in the query.", + "type": "string", + }, + "query": {"description": "Query based on GraphQL syntax.", "type": "string"}, + "variables": { + "description": "Additional variables for the query.", + "properties": {}, + "type": "object", + }, + }, + "type": "object", + }, + "type": "array", + }, + "CREATESCHEMAOBJECT_REQUEST_BODY_SCHEMA": { + "properties": { + "class": { + "description": "Name of the collection (formerly 'class') " + "(required). Multiple words should be " + "concatenated in CamelCase, e.g. " + "`ArticleAuthor`.", + "type": "string", + }, + "description": { + "description": "Description of the collection for metadata purposes.", + "type": "string", + }, + "invertedIndexConfig": { + "description": "Configure the inverted index " + "built into Weaviate. See " + "[Reference: Inverted " + "index](https://docs.weaviate.io/weaviate/config-refs/indexing/inverted-index#inverted-index-parameters) " + "for details.", + "properties": { + "bm25": { + "description": "Tuning parameters for the BM25 algorithm.", + "properties": { + "b": { + "description": "Calibrates " + "term-weight " + "scaling " + "based " + "on " + "the " + "document " + "length " + "(default: " + "0.75).", + "format": "float", + "type": "number", + }, + "k1": { + "description": "Calibrates " + "term-weight " + "scaling " + "based " + "on " + "the " + "term " + "frequency " + "within " + "a " + "document " + "(default: " + "1.2).", + "format": "float", + "type": "number", + }, + }, + "type": "object", + }, + "cleanupIntervalSeconds": { + "description": "Asynchronous " + "index " + "clean " + "up " + "happens " + "every " + "n " + "seconds " + "(default: " + "60).", + "format": "int", + "type": "number", + }, + "indexNullState": { + "description": "Index each object with the null state (default: `false`).", + "type": "boolean", + }, + "indexPropertyLength": { + "description": "Index length of properties (default: `false`).", + "type": "boolean", + }, + "indexTimestamps": { + "description": "Index " + "each " + "object " + "by " + "its " + "internal " + "timestamps " + "(default: " + "`false`).", + "type": "boolean", + }, + "stopwords": { + "description": "Fine-grained control over stopword list usage.", + "properties": { + "additions": { + "description": "Stopwords " + "to " + "be " + "considered " + "additionally " + "(default: " + "[]). " + "Can " + "be " + "any " + "array " + "of " + "custom " + "strings.", + "items": {"type": "string"}, + "type": "array", + }, + "preset": { + "description": "Pre-existing " + "list " + "of " + "common " + "words " + "by " + "language " + "(default: " + "`en`). " + "Options: " + "[`en`, " + "`none`].", + "type": "string", + }, + "removals": { + "description": "Stopwords " + "to " + "be " + "removed " + "from " + "consideration " + "(default: " + "[]). " + "Can " + "be " + "any " + "array " + "of " + "custom " + "strings.", + "items": {"type": "string"}, + "type": "array", + }, + }, + "type": "object", + }, + "usingBlockMaxWAND": { + "description": "Using " + "BlockMax " + "WAND " + "for " + "query " + "execution " + "(default: " + "`false`, " + "will " + "be " + "`true` " + "for " + "new " + "collections " + "created " + "after " + "1.30).", + "type": "boolean", + }, + }, + "type": "object", + }, + "moduleConfig": { + "description": "Configuration specific to modules in a collection context.", + "properties": {}, + "type": "object", + }, + "multiTenancyConfig": { + "description": "Configuration related to multi-tenancy within a collection (class)", + "properties": { + "autoTenantActivation": { + "description": "Existing " + "tenants " + "should " + "(not) " + "be " + "turned " + "HOT " + "implicitly " + "when " + "they " + "are " + "accessed " + "and " + "in " + "another " + "activity " + "status " + "(default: " + "`false`).", + "type": "boolean", + "x-omitempty": False, + }, + "autoTenantCreation": { + "description": "Nonexistent " + "tenants " + "should " + "(not) " + "be " + "created " + "implicitly " + "(default: " + "`false`).", + "type": "boolean", + "x-omitempty": False, + }, + "enabled": { + "description": "Whether " + "or " + "not " + "multi-tenancy " + "is " + "enabled " + "for " + "this " + "collection " + "(class) " + "(default: " + "`false`).", + "type": "boolean", + "x-omitempty": False, + }, + }, + "type": "object", + }, + "properties": { + "description": "Define properties of the collection.", + "items": { + "properties": { + "dataType": { + "description": "Data " + "type " + "of " + "the " + "property " + "(required). " + "If " + "it " + "starts " + "with " + "a " + "capital " + "(for " + "example " + "Person), " + "may " + "be " + "a " + "reference " + "to " + "another " + "type.", + "items": {"type": "string"}, + "type": "array", + }, + "description": { + "description": "Description of the property.", + "type": "string", + }, + "indexFilterable": { + "description": "Whether " + "to " + "include " + "this " + "property " + "in " + "the " + "filterable, " + "Roaring " + "Bitmap " + "index. " + "If " + "`false`, " + "this " + "property " + "cannot " + "be " + "used " + "in " + "`where` " + "filters. " + "

Note: " + "Unrelated " + "to " + "vectorization " + "behavior.", + "nullable": True, + "type": "boolean", + }, + "indexInverted": { + "description": "(Deprecated). " + "Whether " + "to " + "include " + "this " + "property " + "in " + "the " + "inverted " + "index. " + "If " + "`false`, " + "this " + "property " + "cannot " + "be " + "used " + "in " + "`where` " + "filters, " + "`bm25` " + "or " + "`hybrid` " + "search. " + "

Unrelated " + "to " + "vectorization " + "behavior " + "(deprecated " + "as " + "of " + "v1.19; " + "use " + "indexFilterable " + "or/and " + "indexSearchable " + "instead)", + "nullable": True, + "type": "boolean", + }, + "indexRangeFilters": { + "description": "Whether " + "to " + "include " + "this " + "property " + "in " + "the " + "filterable, " + "range-based " + "Roaring " + "Bitmap " + "index. " + "Provides " + "better " + "performance " + "for " + "range " + "queries " + "compared " + "to " + "filterable " + "index " + "in " + "large " + "datasets. " + "Applicable " + "only " + "to " + "properties " + "of " + "data " + "type " + "int, " + "number, " + "date.", + "nullable": True, + "type": "boolean", + }, + "indexSearchable": { + "description": "Optional. " + "Should " + "this " + "property " + "be " + "indexed " + "in " + "the " + "inverted " + "index. " + "Defaults " + "to " + "true. " + "Applicable " + "only " + "to " + "properties " + "of " + "data " + "type " + "text " + "and " + "text[]. " + "If " + "you " + "choose " + "false, " + "you " + "will " + "not " + "be " + "able " + "to " + "use " + "this " + "property " + "in " + "bm25 " + "or " + "hybrid " + "search. " + "This " + "property " + "has " + "no " + "affect " + "on " + "vectorization " + "decisions " + "done " + "by " + "modules", + "nullable": True, + "type": "boolean", + }, + "moduleConfig": { + "description": "Configuration " + "specific " + "to " + "modules " + "in " + "a " + "collection " + "context.", + "properties": {}, + "type": "object", + }, + "name": { + "description": "The " + "name " + "of " + "the " + "property " + "(required). " + "Multiple " + "words " + "should " + "be " + "concatenated " + "in " + "camelCase, " + "e.g. " + "`nameOfAuthor`.", + "type": "string", + }, + "nestedProperties": { + "description": "The " + "properties " + "of " + "the " + "nested " + "object(s). " + "Applies " + "to " + "object " + "and " + "object[] " + "data " + "types.", + "items": { + "properties": { + "dataType": {"items": {"type": "string"}, "type": "array"}, + "description": {"type": "string"}, + "indexFilterable": {"nullable": True, "type": "boolean"}, + "indexRangeFilters": {"nullable": True, "type": "boolean"}, + "indexSearchable": {"nullable": True, "type": "boolean"}, + "name": {"type": "string"}, + "nestedProperties": { + "description": "The " + "properties " + "of " + "the " + "nested " + "object(s). " + "Applies " + "to " + "object " + "and " + "object[] " + "data " + "types.", + "items": { + "$ref": "#/components/schemas/NestedProperty", + "has_circular_reference": True, + }, + "type": "array", + "x-omitempty": True, + }, + "tokenization": { + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch", + ], + "type": "string", + }, + }, + "type": "object", + }, + "type": "array", + "x-omitempty": True, + }, + "tokenization": { + "description": "Determines " + "how " + "a " + "property " + "is " + "indexed. " + "This " + "setting " + "applies " + "to " + "`text` " + "and " + "`text[]` " + "data " + "types. " + "The " + "following " + "tokenization " + "methods " + "are " + "available:

- " + "`word` " + "(default): " + "Splits " + "the " + "text " + "on " + "any " + "non-alphanumeric " + "characters " + "and " + "lowercases " + "the " + "tokens.
- " + "`lowercase`: " + "Splits " + "the " + "text " + "on " + "whitespace " + "and " + "lowercases " + "the " + "tokens.
- " + "`whitespace`: " + "Splits " + "the " + "text " + "on " + "whitespace. " + "This " + "tokenization " + "is " + "case-sensitive.
- " + "`field`: " + "Indexes " + "the " + "entire " + "property " + "value " + "as " + "a " + "single " + "token " + "after " + "trimming " + "whitespace.
- " + "`trigram`: " + "Splits " + "the " + "property " + "into " + "rolling " + "trigrams " + "(three-character " + "sequences).
- " + "`gse`: " + "Uses " + "the " + "`gse` " + "tokenizer, " + "suitable " + "for " + "Chinese " + "language " + "text. " + "[See " + "`gse` " + "docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- " + "`kagome_ja`: " + "Uses " + "the " + "`Kagome` " + "tokenizer " + "with " + "a " + "Japanese " + "(IPA) " + "dictionary. " + "[See " + "`kagome` " + "docs](https://github.com/ikawaha/kagome).
- " + "`kagome_kr`: " + "Uses " + "the " + "`Kagome` " + "tokenizer " + "with " + "a " + "Korean " + "dictionary. " + "[See " + "`kagome` " + "docs](https://github.com/ikawaha/kagome).

See " + "[Reference: " + "Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) " + "for " + "details.", + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch", + ], + "type": "string", + }, + }, + "type": "object", + }, + "type": "array", + }, + "replicationConfig": { + "description": "Configure how replication is executed in a cluster", + "properties": { + "asyncEnabled": { + "description": "Enable asynchronous replication (default: `false`).", + "type": "boolean", + "x-omitempty": False, + }, + "deletionStrategy": { + "description": "Conflict resolution strategy for deleted objects.", + "enum": [ + "NoAutomatedResolution", + "DeleteOnConflict", + "TimeBasedResolution", + ], + "type": "string", + "x-omitempty": True, + }, + "factor": { + "description": "Number " + "of " + "times " + "a " + "collection " + "(class) " + "is " + "replicated " + "(default: " + "1).", + "type": "integer", + }, + }, + "type": "object", + }, + "shardingConfig": { + "description": "Manage how the index should be " + "sharded and distributed in the " + "cluster", + "properties": {}, + "type": "object", + }, + "vectorConfig": { + "additionalProperties": { + "properties": { + "vectorIndexConfig": { + "description": "Vector-index " + "config, " + "that " + "is " + "specific " + "to " + "the " + "type " + "of " + "index " + "selected " + "in " + "vectorIndexType", + "properties": {}, + "type": "object", + }, + "vectorIndexType": { + "description": "Name of the vector index to use, eg. (HNSW)", + "type": "string", + }, + "vectorizer": { + "description": "Configuration " + "of " + "a " + "specific " + "vectorizer " + "used " + "by " + "this " + "vector", + "properties": {}, + "type": "object", + }, + }, + "type": "object", + }, + "description": "Configure named vectors. Either use " + "this field or `vectorizer`, " + "`vectorIndexType`, and " + "`vectorIndexConfig` fields. Available " + "from `v1.24.0`.", + "type": "object", + }, + "vectorIndexConfig": { + "description": "Vector-index config, that is " + "specific to the type of index " + "selected in vectorIndexType", + "properties": {}, + "type": "object", + }, + "vectorIndexType": { + "description": "Name of the vector index type to " + "use for the collection (e.g. " + "`hnsw` or `flat`).", + "type": "string", + }, + "vectorizer": { + "description": "Specify how the vectors for this " + "collection should be determined. The " + "options are either `none` - this means " + "you have to import a vector with each " + "object yourself - or the name of a " + "module that provides vectorization " + "capabilities, such as " + "`text2vec-weaviate`. If left empty, it " + "will use the globally configured " + "default " + "([`DEFAULT_VECTORIZER_MODULE`](https://docs.weaviate.io/deploy/configuration/env-vars)) " + "which can itself either be `none` or a " + "specific module.", + "type": "string", + }, + }, + "type": "object", + }, + "UPDATECOLLECTIONSETTINGS_REQUEST_BODY_SCHEMA": { + "properties": { + "class": { + "description": "Name of the collection (formerly 'class') " + "(required). Multiple words should be " + "concatenated in CamelCase, e.g. " + "`ArticleAuthor`.", + "type": "string", + }, + "description": { + "description": "Description of the collection for metadata purposes.", + "type": "string", + }, + "invertedIndexConfig": { + "description": "Configure the inverted index " + "built into Weaviate. See " + "[Reference: Inverted " + "index](https://docs.weaviate.io/weaviate/config-refs/indexing/inverted-index#inverted-index-parameters) " + "for details.", + "properties": { + "bm25": { + "description": "Tuning parameters for the BM25 algorithm.", + "properties": { + "b": { + "description": "Calibrates " + "term-weight " + "scaling " + "based " + "on " + "the " + "document " + "length " + "(default: " + "0.75).", + "format": "float", + "type": "number", + }, + "k1": { + "description": "Calibrates " + "term-weight " + "scaling " + "based " + "on " + "the " + "term " + "frequency " + "within " + "a " + "document " + "(default: " + "1.2).", + "format": "float", + "type": "number", + }, + }, + "type": "object", + }, + "cleanupIntervalSeconds": { + "description": "Asynchronous " + "index " + "clean " + "up " + "happens " + "every " + "n " + "seconds " + "(default: " + "60).", + "format": "int", + "type": "number", + }, + "indexNullState": { + "description": "Index each object with the null state (default: `false`).", + "type": "boolean", + }, + "indexPropertyLength": { + "description": "Index length of properties (default: `false`).", + "type": "boolean", + }, + "indexTimestamps": { + "description": "Index " + "each " + "object " + "by " + "its " + "internal " + "timestamps " + "(default: " + "`false`).", + "type": "boolean", + }, + "stopwords": { + "description": "Fine-grained control over stopword list usage.", + "properties": { + "additions": { + "description": "Stopwords " + "to " + "be " + "considered " + "additionally " + "(default: " + "[]). " + "Can " + "be " + "any " + "array " + "of " + "custom " + "strings.", + "items": {"type": "string"}, + "type": "array", + }, + "preset": { + "description": "Pre-existing " + "list " + "of " + "common " + "words " + "by " + "language " + "(default: " + "`en`). " + "Options: " + "[`en`, " + "`none`].", + "type": "string", + }, + "removals": { + "description": "Stopwords " + "to " + "be " + "removed " + "from " + "consideration " + "(default: " + "[]). " + "Can " + "be " + "any " + "array " + "of " + "custom " + "strings.", + "items": {"type": "string"}, + "type": "array", + }, + }, + "type": "object", + }, + "usingBlockMaxWAND": { + "description": "Using " + "BlockMax " + "WAND " + "for " + "query " + "execution " + "(default: " + "`false`, " + "will " + "be " + "`true` " + "for " + "new " + "collections " + "created " + "after " + "1.30).", + "type": "boolean", + }, + }, + "type": "object", + }, + "moduleConfig": { + "description": "Configuration specific to modules in a collection context.", + "properties": {}, + "type": "object", + }, + "multiTenancyConfig": { + "description": "Configuration related to multi-tenancy within a collection (class)", + "properties": { + "autoTenantActivation": { + "description": "Existing " + "tenants " + "should " + "(not) " + "be " + "turned " + "HOT " + "implicitly " + "when " + "they " + "are " + "accessed " + "and " + "in " + "another " + "activity " + "status " + "(default: " + "`false`).", + "type": "boolean", + "x-omitempty": False, + }, + "autoTenantCreation": { + "description": "Nonexistent " + "tenants " + "should " + "(not) " + "be " + "created " + "implicitly " + "(default: " + "`false`).", + "type": "boolean", + "x-omitempty": False, + }, + "enabled": { + "description": "Whether " + "or " + "not " + "multi-tenancy " + "is " + "enabled " + "for " + "this " + "collection " + "(class) " + "(default: " + "`false`).", + "type": "boolean", + "x-omitempty": False, + }, + }, + "type": "object", + }, + "properties": { + "description": "Define properties of the collection.", + "items": { + "properties": { + "dataType": { + "description": "Data " + "type " + "of " + "the " + "property " + "(required). " + "If " + "it " + "starts " + "with " + "a " + "capital " + "(for " + "example " + "Person), " + "may " + "be " + "a " + "reference " + "to " + "another " + "type.", + "items": {"type": "string"}, + "type": "array", + }, + "description": { + "description": "Description of the property.", + "type": "string", + }, + "indexFilterable": { + "description": "Whether " + "to " + "include " + "this " + "property " + "in " + "the " + "filterable, " + "Roaring " + "Bitmap " + "index. " + "If " + "`false`, " + "this " + "property " + "cannot " + "be " + "used " + "in " + "`where` " + "filters. " + "

Note: " + "Unrelated " + "to " + "vectorization " + "behavior.", + "nullable": True, + "type": "boolean", + }, + "indexInverted": { + "description": "(Deprecated). " + "Whether " + "to " + "include " + "this " + "property " + "in " + "the " + "inverted " + "index. " + "If " + "`false`, " + "this " + "property " + "cannot " + "be " + "used " + "in " + "`where` " + "filters, " + "`bm25` " + "or " + "`hybrid` " + "search. " + "

Unrelated " + "to " + "vectorization " + "behavior " + "(deprecated " + "as " + "of " + "v1.19; " + "use " + "indexFilterable " + "or/and " + "indexSearchable " + "instead)", + "nullable": True, + "type": "boolean", + }, + "indexRangeFilters": { + "description": "Whether " + "to " + "include " + "this " + "property " + "in " + "the " + "filterable, " + "range-based " + "Roaring " + "Bitmap " + "index. " + "Provides " + "better " + "performance " + "for " + "range " + "queries " + "compared " + "to " + "filterable " + "index " + "in " + "large " + "datasets. " + "Applicable " + "only " + "to " + "properties " + "of " + "data " + "type " + "int, " + "number, " + "date.", + "nullable": True, + "type": "boolean", + }, + "indexSearchable": { + "description": "Optional. " + "Should " + "this " + "property " + "be " + "indexed " + "in " + "the " + "inverted " + "index. " + "Defaults " + "to " + "true. " + "Applicable " + "only " + "to " + "properties " + "of " + "data " + "type " + "text " + "and " + "text[]. " + "If " + "you " + "choose " + "false, " + "you " + "will " + "not " + "be " + "able " + "to " + "use " + "this " + "property " + "in " + "bm25 " + "or " + "hybrid " + "search. " + "This " + "property " + "has " + "no " + "affect " + "on " + "vectorization " + "decisions " + "done " + "by " + "modules", + "nullable": True, + "type": "boolean", + }, + "moduleConfig": { + "description": "Configuration " + "specific " + "to " + "modules " + "in " + "a " + "collection " + "context.", + "properties": {}, + "type": "object", + }, + "name": { + "description": "The " + "name " + "of " + "the " + "property " + "(required). " + "Multiple " + "words " + "should " + "be " + "concatenated " + "in " + "camelCase, " + "e.g. " + "`nameOfAuthor`.", + "type": "string", + }, + "nestedProperties": { + "description": "The " + "properties " + "of " + "the " + "nested " + "object(s). " + "Applies " + "to " + "object " + "and " + "object[] " + "data " + "types.", + "items": { + "properties": { + "dataType": {"items": {"type": "string"}, "type": "array"}, + "description": {"type": "string"}, + "indexFilterable": {"nullable": True, "type": "boolean"}, + "indexRangeFilters": {"nullable": True, "type": "boolean"}, + "indexSearchable": {"nullable": True, "type": "boolean"}, + "name": {"type": "string"}, + "nestedProperties": { + "description": "The " + "properties " + "of " + "the " + "nested " + "object(s). " + "Applies " + "to " + "object " + "and " + "object[] " + "data " + "types.", + "items": { + "$ref": "#/components/schemas/NestedProperty", + "has_circular_reference": True, + }, + "type": "array", + "x-omitempty": True, + }, + "tokenization": { + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch", + ], + "type": "string", + }, + }, + "type": "object", + }, + "type": "array", + "x-omitempty": True, + }, + "tokenization": { + "description": "Determines " + "how " + "a " + "property " + "is " + "indexed. " + "This " + "setting " + "applies " + "to " + "`text` " + "and " + "`text[]` " + "data " + "types. " + "The " + "following " + "tokenization " + "methods " + "are " + "available:

- " + "`word` " + "(default): " + "Splits " + "the " + "text " + "on " + "any " + "non-alphanumeric " + "characters " + "and " + "lowercases " + "the " + "tokens.
- " + "`lowercase`: " + "Splits " + "the " + "text " + "on " + "whitespace " + "and " + "lowercases " + "the " + "tokens.
- " + "`whitespace`: " + "Splits " + "the " + "text " + "on " + "whitespace. " + "This " + "tokenization " + "is " + "case-sensitive.
- " + "`field`: " + "Indexes " + "the " + "entire " + "property " + "value " + "as " + "a " + "single " + "token " + "after " + "trimming " + "whitespace.
- " + "`trigram`: " + "Splits " + "the " + "property " + "into " + "rolling " + "trigrams " + "(three-character " + "sequences).
- " + "`gse`: " + "Uses " + "the " + "`gse` " + "tokenizer, " + "suitable " + "for " + "Chinese " + "language " + "text. " + "[See " + "`gse` " + "docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- " + "`kagome_ja`: " + "Uses " + "the " + "`Kagome` " + "tokenizer " + "with " + "a " + "Japanese " + "(IPA) " + "dictionary. " + "[See " + "`kagome` " + "docs](https://github.com/ikawaha/kagome).
- " + "`kagome_kr`: " + "Uses " + "the " + "`Kagome` " + "tokenizer " + "with " + "a " + "Korean " + "dictionary. " + "[See " + "`kagome` " + "docs](https://github.com/ikawaha/kagome).

See " + "[Reference: " + "Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) " + "for " + "details.", + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch", + ], + "type": "string", + }, + }, + "type": "object", + }, + "type": "array", + }, + "replicationConfig": { + "description": "Configure how replication is executed in a cluster", + "properties": { + "asyncEnabled": { + "description": "Enable asynchronous replication (default: `false`).", + "type": "boolean", + "x-omitempty": False, + }, + "deletionStrategy": { + "description": "Conflict resolution strategy for deleted objects.", + "enum": [ + "NoAutomatedResolution", + "DeleteOnConflict", + "TimeBasedResolution", + ], + "type": "string", + "x-omitempty": True, + }, + "factor": { + "description": "Number " + "of " + "times " + "a " + "collection " + "(class) " + "is " + "replicated " + "(default: " + "1).", + "type": "integer", + }, + }, + "type": "object", + }, + "shardingConfig": { + "description": "Manage how the index should be " + "sharded and distributed in the " + "cluster", + "properties": {}, + "type": "object", + }, + "vectorConfig": { + "additionalProperties": { + "properties": { + "vectorIndexConfig": { + "description": "Vector-index " + "config, " + "that " + "is " + "specific " + "to " + "the " + "type " + "of " + "index " + "selected " + "in " + "vectorIndexType", + "properties": {}, + "type": "object", + }, + "vectorIndexType": { + "description": "Name of the vector index to use, eg. (HNSW)", + "type": "string", + }, + "vectorizer": { + "description": "Configuration " + "of " + "a " + "specific " + "vectorizer " + "used " + "by " + "this " + "vector", + "properties": {}, + "type": "object", + }, + }, + "type": "object", + }, + "description": "Configure named vectors. Either use " + "this field or `vectorizer`, " + "`vectorIndexType`, and " + "`vectorIndexConfig` fields. Available " + "from `v1.24.0`.", + "type": "object", + }, + "vectorIndexConfig": { + "description": "Vector-index config, that is " + "specific to the type of index " + "selected in vectorIndexType", + "properties": {}, + "type": "object", + }, + "vectorIndexType": { + "description": "Name of the vector index type to " + "use for the collection (e.g. " + "`hnsw` or `flat`).", + "type": "string", + }, + "vectorizer": { + "description": "Specify how the vectors for this " + "collection should be determined. The " + "options are either `none` - this means " + "you have to import a vector with each " + "object yourself - or the name of a " + "module that provides vectorization " + "capabilities, such as " + "`text2vec-weaviate`. If left empty, it " + "will use the globally configured " + "default " + "([`DEFAULT_VECTORIZER_MODULE`](https://docs.weaviate.io/deploy/configuration/env-vars)) " + "which can itself either be `none` or a " + "specific module.", + "type": "string", + }, + }, + "type": "object", + }, + "ADDPROPERTYTOCOLLECTION_REQUEST_BODY_SCHEMA": { + "properties": { + "dataType": { + "description": "Data type of the property (required). If " + "it starts with a capital (for example " + "Person), may be a reference to another " + "type.", + "items": {"type": "string"}, + "type": "array", + }, + "description": {"description": "Description of the property.", "type": "string"}, + "indexFilterable": { + "description": "Whether to include this property " + "in the filterable, Roaring Bitmap " + "index. If `false`, this property " + "cannot be used in `where` filters. " + "

Note: Unrelated to " + "vectorization behavior.", + "nullable": True, + "type": "boolean", + }, + "indexInverted": { + "description": "(Deprecated). Whether to include " + "this property in the inverted index. " + "If `false`, this property cannot be " + "used in `where` filters, `bm25` or " + "`hybrid` search.

Unrelated " + "to vectorization behavior " + "(deprecated as of v1.19; use " + "indexFilterable or/and " + "indexSearchable instead)", + "nullable": True, + "type": "boolean", + }, + "indexRangeFilters": { + "description": "Whether to include this property " + "in the filterable, range-based " + "Roaring Bitmap index. Provides " + "better performance for range " + "queries compared to filterable " + "index in large datasets. " + "Applicable only to properties of " + "data type int, number, date.", + "nullable": True, + "type": "boolean", + }, + "indexSearchable": { + "description": "Optional. Should this property be " + "indexed in the inverted index. " + "Defaults to true. Applicable only " + "to properties of data type text " + "and text[]. If you choose false, " + "you will not be able to use this " + "property in bm25 or hybrid search. " + "This property has no affect on " + "vectorization decisions done by " + "modules", + "nullable": True, + "type": "boolean", + }, + "moduleConfig": { + "description": "Configuration specific to modules in a collection context.", + "properties": {}, + "type": "object", + }, + "name": { + "description": "The name of the property (required). Multiple " + "words should be concatenated in camelCase, " + "e.g. `nameOfAuthor`.", + "type": "string", + }, + "nestedProperties": { + "description": "The properties of the nested " + "object(s). Applies to object and " + "object[] data types.", + "items": { + "properties": { + "dataType": {"items": {"type": "string"}, "type": "array"}, + "description": {"type": "string"}, + "indexFilterable": {"nullable": True, "type": "boolean"}, + "indexRangeFilters": {"nullable": True, "type": "boolean"}, + "indexSearchable": {"nullable": True, "type": "boolean"}, + "name": {"type": "string"}, + "nestedProperties": { + "description": "The " + "properties " + "of " + "the " + "nested " + "object(s). " + "Applies " + "to " + "object " + "and " + "object[] " + "data " + "types.", + "items": { + "$ref": "#/components/schemas/NestedProperty", + "has_circular_reference": True, + }, + "type": "array", + "x-omitempty": True, + }, + "tokenization": { + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch", + ], + "type": "string", + }, + }, + "type": "object", + }, + "type": "array", + "x-omitempty": True, + }, + "tokenization": { + "description": "Determines how a property is indexed. " + "This setting applies to `text` and " + "`text[]` data types. The following " + "tokenization methods are " + "available:

- `word` " + "(default): Splits the text on any " + "non-alphanumeric characters and " + "lowercases the tokens.
- " + "`lowercase`: Splits the text on " + "whitespace and lowercases the " + "tokens.
- `whitespace`: Splits " + "the text on whitespace. This " + "tokenization is case-sensitive.
- " + "`field`: Indexes the entire property " + "value as a single token after " + "trimming whitespace.
- `trigram`: " + "Splits the property into rolling " + "trigrams (three-character " + "sequences).
- `gse`: Uses the " + "`gse` tokenizer, suitable for Chinese " + "language text. [See `gse` " + "docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- " + "`kagome_ja`: Uses the `Kagome` " + "tokenizer with a Japanese (IPA) " + "dictionary. [See `kagome` " + "docs](https://github.com/ikawaha/kagome).
- " + "`kagome_kr`: Uses the `Kagome` " + "tokenizer with a Korean dictionary. " + "[See `kagome` " + "docs](https://github.com/ikawaha/kagome).

See " + "[Reference: " + "Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) " + "for details.", + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch", + ], + "type": "string", + }, + }, + "type": "object", + }, + "UPDATETENANTSTATUS_REQUEST_BODY_SCHEMA": { + "items": { + "description": "Attributes representing a single tenant within Weaviate.", + "properties": { + "activityStatus": { + "description": "The activity status of " + "the tenant, which " + "determines if it is " + "queryable and where its " + "data is " + "stored.

Available " + "Statuses:
- " + "`ACTIVE`: The tenant is " + "fully operational and " + "ready for queries. Data " + "is stored on local, hot " + "storage.
- " + "`INACTIVE`: The tenant is " + "not queryable. Data is " + "stored locally.
- " + "`OFFLOADED`: The tenant " + "is inactive and its data " + "is stored in a remote " + "cloud " + "backend.

Usage " + "Rules:
- On " + "Create: This field is " + "optional and defaults to " + "`ACTIVE`. Allowed values " + "are `ACTIVE` and " + "`INACTIVE`.
- On " + "Update: This field is " + "required. Allowed values " + "are `ACTIVE`, `INACTIVE`, " + "and " + "`OFFLOADED`.

Read-Only " + "Statuses:
The " + "following statuses are " + "set by the server and " + "indicate a tenant is " + "transitioning between " + "states:
- " + "`OFFLOADING`
- " + "`ONLOADING`

Note " + "on Deprecated " + "Names:
For " + "backward compatibility, " + "deprecated names are " + "still accepted and are " + "mapped to their modern " + "equivalents: `HOT` (now " + "`ACTIVE`), `COLD` (now " + "`INACTIVE`), `FROZEN` " + "(now `OFFLOADED`), " + "`FREEZING` (now " + "`OFFLOADING`), " + "`UNFREEZING` (now " + "`ONLOADING`).", + "enum": [ + "ACTIVE", + "INACTIVE", + "OFFLOADED", + "OFFLOADING", + "ONLOADING", + "HOT", + "COLD", + "FROZEN", + "FREEZING", + "UNFREEZING", + ], + "type": "string", + }, + "name": {"description": "The name of the tenant (required).", "type": "string"}, + }, + "type": "object", + }, + "type": "array", + }, + "CREATETENANTS_REQUEST_BODY_SCHEMA": { + "items": { + "description": "Attributes representing a single tenant within Weaviate.", + "properties": { + "activityStatus": { + "description": "The activity status of " + "the tenant, which " + "determines if it is " + "queryable and where its " + "data is " + "stored.

Available " + "Statuses:
- " + "`ACTIVE`: The tenant is " + "fully operational and " + "ready for queries. Data " + "is stored on local, hot " + "storage.
- " + "`INACTIVE`: The tenant is " + "not queryable. Data is " + "stored locally.
- " + "`OFFLOADED`: The tenant " + "is inactive and its data " + "is stored in a remote " + "cloud " + "backend.

Usage " + "Rules:
- On " + "Create: This field is " + "optional and defaults to " + "`ACTIVE`. Allowed values " + "are `ACTIVE` and " + "`INACTIVE`.
- On " + "Update: This field is " + "required. Allowed values " + "are `ACTIVE`, `INACTIVE`, " + "and " + "`OFFLOADED`.

Read-Only " + "Statuses:
The " + "following statuses are " + "set by the server and " + "indicate a tenant is " + "transitioning between " + "states:
- " + "`OFFLOADING`
- " + "`ONLOADING`

Note " + "on Deprecated " + "Names:
For " + "backward compatibility, " + "deprecated names are " + "still accepted and are " + "mapped to their modern " + "equivalents: `HOT` (now " + "`ACTIVE`), `COLD` (now " + "`INACTIVE`), `FROZEN` " + "(now `OFFLOADED`), " + "`FREEZING` (now " + "`OFFLOADING`), " + "`UNFREEZING` (now " + "`ONLOADING`).", + "enum": [ + "ACTIVE", + "INACTIVE", + "OFFLOADED", + "OFFLOADING", + "ONLOADING", + "HOT", + "COLD", + "FROZEN", + "FREEZING", + "UNFREEZING", + ], + "type": "string", + }, + "name": {"description": "The name of the tenant (required).", "type": "string"}, + }, + "type": "object", + }, + "type": "array", + }, + "RESTOREBACKUP_REQUEST_BODY_SCHEMA": { + "description": "Request body for restoring a backup for a set of collections (classes).", + "properties": { + "config": { + "description": "Backup custom configuration", + "properties": { + "Bucket": { + "description": "Name of the bucket, container, volume, etc", + "type": "string", + }, + "CPUPercentage": { + "description": "Desired CPU core utilization ranging from 1%-80%", + "maximum": 80, + "minimum": 1, + "nullable": False, + "type": "integer", + }, + "Endpoint": { + "description": "name of the endpoint, e.g. s3.amazonaws.com", + "type": "string", + }, + "Path": {"description": "Path within the bucket", "type": "string"}, + "rolesOptions": { + "default": "noRestore", + "description": "How roles should be restored", + "enum": ["noRestore", "all"], + "type": "string", + }, + "usersOptions": { + "default": "noRestore", + "description": "How users should be restored", + "enum": ["noRestore", "all"], + "type": "string", + }, + }, + "type": "object", + }, + "exclude": { + "description": "List of collections (classes) to exclude " + "from the backup restoration process.", + "items": {"type": "string"}, + "type": "array", + }, + "include": { + "description": "List of collections (classes) to include " + "in the backup restoration process.", + "items": {"type": "string"}, + "type": "array", + }, + "node_mapping": { + "additionalProperties": {"type": "string"}, + "description": "Allows overriding the node names " + "stored in the backup with different " + "ones. Useful when restoring backups " + "to a different environment.", + "type": "object", + }, + "overwriteAlias": { + "description": "Allows ovewriting the collection alias if there is a conflict", + "type": "boolean", + }, + }, + "type": "object", + }, + "INITIATECLASSIFICATIONTASK_REQUEST_BODY_SCHEMA": { + "description": "Manage classifications, trigger them and view status of past " + "classifications.", + "properties": { + "basedOnProperties": { + "description": "Base the text-based classification on these fields (of type text).", + "example": ["description"], + "items": {"type": "string"}, + "type": "array", + }, + "class": { + "description": "The name of the collection (class) which is " + "used in this classification.", + "example": "City", + "type": "string", + }, + "classifyProperties": { + "description": "Which ref-property to set as part of the classification.", + "example": ["inCountry"], + "items": {"type": "string"}, + "type": "array", + }, + "error": { + "default": "", + "description": "Error message if status == failed.", + "example": "classify xzy: something went wrong", + "type": "string", + }, + "filters": { + "properties": { + "sourceWhere": { + "description": "Filter search results using a where filter.", + "properties": { + "operands": { + "description": "Combine " + "multiple " + "where " + "filters, " + "requires " + "'And' " + "or " + "'Or' " + "operator.", + "items": { + "$ref": "#/components/schemas/WhereFilter", + "has_circular_reference": True, + }, + "type": "array", + }, + "operator": { + "description": "Operator to use.", + "enum": [ + "And", + "Or", + "Equal", + "Like", + "NotEqual", + "GreaterThan", + "GreaterThanEqual", + "LessThan", + "LessThanEqual", + "WithinGeoRange", + "IsNull", + "ContainsAny", + "ContainsAll", + "ContainsNone", + "Not", + ], + "example": "GreaterThanEqual", + "type": "string", + }, + "path": { + "description": "Path to the property currently being filtered.", + "example": ["inCity", "city", "name"], + "items": {"type": "string"}, + "type": "array", + }, + "valueBoolean": { + "description": "value as boolean", + "example": False, + "nullable": True, + "type": "boolean", + }, + "valueBooleanArray": { + "description": "value as boolean", + "example": [True, False], + "items": {"type": "boolean"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueDate": { + "description": "value as date (as string)", + "example": "TODO", + "nullable": True, + "type": "string", + }, + "valueDateArray": { + "description": "value as date (as string)", + "example": "TODO", + "items": {"type": "string"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueGeoRange": { + "description": "Filter within a distance of a georange.", + "properties": { + "distance": { + "properties": { + "max": {"format": "float64", "type": "number"} + }, + "type": "object", + }, + "geoCoordinates": { + "properties": { + "latitude": { + "description": "The " + "latitude " + "of " + "the " + "point " + "on " + "earth " + "in " + "decimal " + "form.", + "format": "float", + "nullable": True, + "type": "number", + }, + "longitude": { + "description": "The " + "longitude " + "of " + "the " + "point " + "on " + "earth " + "in " + "decimal " + "form.", + "format": "float", + "nullable": True, + "type": "number", + }, + }, + "type": "object", + }, + }, + "type": "object", + }, + "valueInt": { + "description": "value as integer", + "example": 2000, + "format": "int64", + "nullable": True, + "type": "integer", + }, + "valueIntArray": { + "description": "value as integer", + "example": "[100, 200]", + "items": {"format": "int64", "type": "integer"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueNumber": { + "description": "value as number/float", + "example": 3.14, + "format": "float64", + "nullable": True, + "type": "number", + }, + "valueNumberArray": { + "description": "value as number/float", + "example": [3.14], + "items": {"format": "float64", "type": "number"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueString": { + "description": "value " + "as " + "text " + "(deprecated " + "as " + "of " + "v1.19; " + "alias " + "for " + "valueText)", + "example": "my search term", + "nullable": True, + "type": "string", + }, + "valueStringArray": { + "description": "value " + "as " + "text " + "(deprecated " + "as " + "of " + "v1.19; " + "alias " + "for " + "valueText)", + "example": ["my search term"], + "items": {"type": "string"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueText": { + "description": "value as text", + "example": "my search term", + "nullable": True, + "type": "string", + }, + "valueTextArray": { + "description": "value as text", + "example": ["my search term"], + "items": {"type": "string"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + }, + "type": "object", + }, + "targetWhere": { + "description": "Filter search results using a where filter.", + "properties": { + "operands": { + "description": "Combine " + "multiple " + "where " + "filters, " + "requires " + "'And' " + "or " + "'Or' " + "operator.", + "items": { + "$ref": "#/components/schemas/WhereFilter", + "has_circular_reference": True, + }, + "type": "array", + }, + "operator": { + "description": "Operator to use.", + "enum": [ + "And", + "Or", + "Equal", + "Like", + "NotEqual", + "GreaterThan", + "GreaterThanEqual", + "LessThan", + "LessThanEqual", + "WithinGeoRange", + "IsNull", + "ContainsAny", + "ContainsAll", + "ContainsNone", + "Not", + ], + "example": "GreaterThanEqual", + "type": "string", + }, + "path": { + "description": "Path to the property currently being filtered.", + "example": ["inCity", "city", "name"], + "items": {"type": "string"}, + "type": "array", + }, + "valueBoolean": { + "description": "value as boolean", + "example": False, + "nullable": True, + "type": "boolean", + }, + "valueBooleanArray": { + "description": "value as boolean", + "example": [True, False], + "items": {"type": "boolean"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueDate": { + "description": "value as date (as string)", + "example": "TODO", + "nullable": True, + "type": "string", + }, + "valueDateArray": { + "description": "value as date (as string)", + "example": "TODO", + "items": {"type": "string"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueGeoRange": { + "description": "Filter within a distance of a georange.", + "properties": { + "distance": { + "properties": { + "max": {"format": "float64", "type": "number"} + }, + "type": "object", + }, + "geoCoordinates": { + "properties": { + "latitude": { + "description": "The " + "latitude " + "of " + "the " + "point " + "on " + "earth " + "in " + "decimal " + "form.", + "format": "float", + "nullable": True, + "type": "number", + }, + "longitude": { + "description": "The " + "longitude " + "of " + "the " + "point " + "on " + "earth " + "in " + "decimal " + "form.", + "format": "float", + "nullable": True, + "type": "number", + }, + }, + "type": "object", + }, + }, + "type": "object", + }, + "valueInt": { + "description": "value as integer", + "example": 2000, + "format": "int64", + "nullable": True, + "type": "integer", + }, + "valueIntArray": { + "description": "value as integer", + "example": "[100, 200]", + "items": {"format": "int64", "type": "integer"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueNumber": { + "description": "value as number/float", + "example": 3.14, + "format": "float64", + "nullable": True, + "type": "number", + }, + "valueNumberArray": { + "description": "value as number/float", + "example": [3.14], + "items": {"format": "float64", "type": "number"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueString": { + "description": "value " + "as " + "text " + "(deprecated " + "as " + "of " + "v1.19; " + "alias " + "for " + "valueText)", + "example": "my search term", + "nullable": True, + "type": "string", + }, + "valueStringArray": { + "description": "value " + "as " + "text " + "(deprecated " + "as " + "of " + "v1.19; " + "alias " + "for " + "valueText)", + "example": ["my search term"], + "items": {"type": "string"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueText": { + "description": "value as text", + "example": "my search term", + "nullable": True, + "type": "string", + }, + "valueTextArray": { + "description": "value as text", + "example": ["my search term"], + "items": {"type": "string"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + }, + "type": "object", + }, + "trainingSetWhere": { + "description": "Filter search results using a where filter.", + "properties": { + "operands": { + "description": "Combine " + "multiple " + "where " + "filters, " + "requires " + "'And' " + "or " + "'Or' " + "operator.", + "items": { + "$ref": "#/components/schemas/WhereFilter", + "has_circular_reference": True, + }, + "type": "array", + }, + "operator": { + "description": "Operator to use.", + "enum": [ + "And", + "Or", + "Equal", + "Like", + "NotEqual", + "GreaterThan", + "GreaterThanEqual", + "LessThan", + "LessThanEqual", + "WithinGeoRange", + "IsNull", + "ContainsAny", + "ContainsAll", + "ContainsNone", + "Not", + ], + "example": "GreaterThanEqual", + "type": "string", + }, + "path": { + "description": "Path to the property currently being filtered.", + "example": ["inCity", "city", "name"], + "items": {"type": "string"}, + "type": "array", + }, + "valueBoolean": { + "description": "value as boolean", + "example": False, + "nullable": True, + "type": "boolean", + }, + "valueBooleanArray": { + "description": "value as boolean", + "example": [True, False], + "items": {"type": "boolean"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueDate": { + "description": "value as date (as string)", + "example": "TODO", + "nullable": True, + "type": "string", + }, + "valueDateArray": { + "description": "value as date (as string)", + "example": "TODO", + "items": {"type": "string"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueGeoRange": { + "description": "Filter within a distance of a georange.", + "properties": { + "distance": { + "properties": { + "max": {"format": "float64", "type": "number"} + }, + "type": "object", + }, + "geoCoordinates": { + "properties": { + "latitude": { + "description": "The " + "latitude " + "of " + "the " + "point " + "on " + "earth " + "in " + "decimal " + "form.", + "format": "float", + "nullable": True, + "type": "number", + }, + "longitude": { + "description": "The " + "longitude " + "of " + "the " + "point " + "on " + "earth " + "in " + "decimal " + "form.", + "format": "float", + "nullable": True, + "type": "number", + }, + }, + "type": "object", + }, + }, + "type": "object", + }, + "valueInt": { + "description": "value as integer", + "example": 2000, + "format": "int64", + "nullable": True, + "type": "integer", + }, + "valueIntArray": { + "description": "value as integer", + "example": "[100, 200]", + "items": {"format": "int64", "type": "integer"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueNumber": { + "description": "value as number/float", + "example": 3.14, + "format": "float64", + "nullable": True, + "type": "number", + }, + "valueNumberArray": { + "description": "value as number/float", + "example": [3.14], + "items": {"format": "float64", "type": "number"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueString": { + "description": "value " + "as " + "text " + "(deprecated " + "as " + "of " + "v1.19; " + "alias " + "for " + "valueText)", + "example": "my search term", + "nullable": True, + "type": "string", + }, + "valueStringArray": { + "description": "value " + "as " + "text " + "(deprecated " + "as " + "of " + "v1.19; " + "alias " + "for " + "valueText)", + "example": ["my search term"], + "items": {"type": "string"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + "valueText": { + "description": "value as text", + "example": "my search term", + "nullable": True, + "type": "string", + }, + "valueTextArray": { + "description": "value as text", + "example": ["my search term"], + "items": {"type": "string"}, + "nullable": True, + "type": "array", + "x-omitempty": True, + }, + }, + "type": "object", + }, + }, + "type": "object", + }, + "id": { + "description": "ID to uniquely identify this classification run.", + "example": "ee722219-b8ec-4db1-8f8d-5150bb1a9e0c", + "format": "uuid", + "type": "string", + }, + "meta": { + "description": "Additional information to a specific classification.", + "properties": { + "completed": { + "description": "Time when this classification finished.", + "example": "2017-07-21T17:32:28Z", + "format": "date-time", + "type": "string", + }, + "count": { + "description": "Number of objects " + "which were taken " + "into consideration " + "for classification.", + "example": 147, + "type": "integer", + }, + "countFailed": { + "description": "Number of " + "objects which " + "could not be " + "classified - " + "see error " + "message for " + "details.", + "example": 7, + "type": "integer", + }, + "countSucceeded": { + "description": "Number of objects successfully classified.", + "example": 140, + "type": "integer", + }, + "started": { + "description": "Time when this classification was started.", + "example": "2017-07-21T17:32:28Z", + "format": "date-time", + "type": "string", + }, + }, + "type": "object", + }, + "settings": { + "description": "Classification-type specific settings.", + "properties": {}, + "type": "object", + }, + "status": { + "description": "Status of this classification.", + "enum": ["running", "completed", "failed"], + "example": "running", + "type": "string", + }, + "type": { + "description": "Which algorithm to use for classifications.", + "type": "string", + }, + }, + "type": "object", + }, +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ActivateDatabaseUser.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ActivateDatabaseUser.json new file mode 100644 index 00000000..8df77959 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ActivateDatabaseUser.json @@ -0,0 +1,115 @@ +{ + "name": "ActivateDatabaseUser", + "fully_qualified_name": "WeaviateApi.ActivateDatabaseUser@0.1.0", + "description": "Activate a deactivated database user account.\n\nUse this tool to activate a user with a `db` user type in the database. It should be called when re-enabling user access is needed.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_name", + "required": true, + "description": "The name of the database user to activate.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'activateUser'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/users/db/{user_id}/activate", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "user_id", + "tool_parameter_name": "user_name", + "description": "The name of the user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AddPermissionsToRole.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AddPermissionsToRole.json new file mode 100644 index 00000000..52cdb316 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AddPermissionsToRole.json @@ -0,0 +1,738 @@ +{ + "name": "AddPermissionsToRole", + "fully_qualified_name": "WeaviateApi.AddPermissionsToRole@0.1.0", + "description": "Add new permissions to a role without affecting existing ones.\n\nUse this tool to assign additional permissions to a specified role within a system, ensuring that current permissions remain unchanged.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "role_id", + "required": true, + "description": "The ID of the role to which new permissions will be added.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name (ID) of the role being modified." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "permissions_to_add", + "required": true, + "description": "The permissions to be added to the specified role, structured as JSON. Includes details like applicable collections, users, actions, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "permissions": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "backups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for backup actions." + }, + "data": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + }, + "object": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects." + } + }, + "inner_properties": null, + "description": "Resources applicable for data actions." + }, + "nodes": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "verbosity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "verbose", + "minimal" + ], + "properties": null, + "inner_properties": null, + "description": "Whether to allow (verbose) returning shards and stats data in the response." + }, + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for cluster actions." + }, + "users": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "users": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users." + } + }, + "inner_properties": null, + "description": "Resources applicable for user actions." + }, + "groups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "group": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups." + }, + "groupType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "If the group contains OIDC or database users." + } + }, + "inner_properties": null, + "description": "Resources applicable for group actions." + }, + "tenants": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + } + }, + "inner_properties": null, + "description": "Resources applicable for tenant actions." + }, + "roles": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "role": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles." + }, + "scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "all", + "match" + ], + "properties": null, + "inner_properties": null, + "description": "Set the scope for the manage role permission." + } + }, + "inner_properties": null, + "description": "Resources applicable for role actions." + }, + "collections": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for collection and/or tenant actions." + }, + "replicate": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific collection name, if left empty it will be ALL or *" + }, + "shard": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific shard name, if left empty it will be ALL or *" + } + }, + "inner_properties": null, + "description": "resources applicable for replicate actions" + }, + "aliases": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "alias": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases." + } + }, + "inner_properties": null, + "description": "Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified." + }, + "action": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "manage_backups", + "read_cluster", + "create_data", + "read_data", + "update_data", + "delete_data", + "read_nodes", + "create_roles", + "read_roles", + "update_roles", + "delete_roles", + "create_collections", + "read_collections", + "update_collections", + "delete_collections", + "assign_and_revoke_users", + "create_users", + "read_users", + "update_users", + "delete_users", + "create_tenants", + "read_tenants", + "update_tenants", + "delete_tenants", + "create_replicate", + "read_replicate", + "update_replicate", + "delete_replicate", + "create_aliases", + "read_aliases", + "update_aliases", + "delete_aliases", + "assign_and_revoke_groups", + "read_groups" + ], + "properties": null, + "inner_properties": null, + "description": "Allowed actions in weaviate." + } + }, + "description": "Permissions to be added to the role." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'addPermissions'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/roles/{id}/add-permissions", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "role_id", + "description": "The name (ID) of the role being modified.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name (ID) of the role being modified." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "permissions_to_add", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "permissions": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "backups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for backup actions." + }, + "data": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + }, + "object": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects." + } + }, + "inner_properties": null, + "description": "Resources applicable for data actions." + }, + "nodes": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "verbosity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "verbose", + "minimal" + ], + "properties": null, + "inner_properties": null, + "description": "Whether to allow (verbose) returning shards and stats data in the response." + }, + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for cluster actions." + }, + "users": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "users": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users." + } + }, + "inner_properties": null, + "description": "Resources applicable for user actions." + }, + "groups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "group": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups." + }, + "groupType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "If the group contains OIDC or database users." + } + }, + "inner_properties": null, + "description": "Resources applicable for group actions." + }, + "tenants": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + } + }, + "inner_properties": null, + "description": "Resources applicable for tenant actions." + }, + "roles": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "role": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles." + }, + "scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "all", + "match" + ], + "properties": null, + "inner_properties": null, + "description": "Set the scope for the manage role permission." + } + }, + "inner_properties": null, + "description": "Resources applicable for role actions." + }, + "collections": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for collection and/or tenant actions." + }, + "replicate": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific collection name, if left empty it will be ALL or *" + }, + "shard": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific shard name, if left empty it will be ALL or *" + } + }, + "inner_properties": null, + "description": "resources applicable for replicate actions" + }, + "aliases": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "alias": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases." + } + }, + "inner_properties": null, + "description": "Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified." + }, + "action": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "manage_backups", + "read_cluster", + "create_data", + "read_data", + "update_data", + "delete_data", + "read_nodes", + "create_roles", + "read_roles", + "update_roles", + "delete_roles", + "create_collections", + "read_collections", + "update_collections", + "delete_collections", + "assign_and_revoke_users", + "create_users", + "read_users", + "update_users", + "delete_users", + "create_tenants", + "read_tenants", + "update_tenants", + "delete_tenants", + "create_replicate", + "read_replicate", + "update_replicate", + "delete_replicate", + "create_aliases", + "read_aliases", + "update_aliases", + "delete_aliases", + "assign_and_revoke_groups", + "read_groups" + ], + "properties": null, + "inner_properties": null, + "description": "Allowed actions in weaviate." + } + }, + "description": "Permissions to be added to the role." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"required\": [\n \"permissions\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"permissions\": {\n \"type\": \"array\",\n \"description\": \"Permissions to be added to the role.\",\n \"items\": {\n \"required\": [\n \"action\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"backups\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for backup actions.\"\n },\n \"data\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n },\n \"object\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for data actions.\"\n },\n \"nodes\": {\n \"type\": \"object\",\n \"properties\": {\n \"verbosity\": {\n \"type\": \"string\",\n \"description\": \"Whether to allow (verbose) returning shards and stats data in the response.\",\n \"default\": \"minimal\",\n \"enum\": [\n \"verbose\",\n \"minimal\"\n ]\n },\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for cluster actions.\"\n },\n \"users\": {\n \"type\": \"object\",\n \"properties\": {\n \"users\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for user actions.\"\n },\n \"groups\": {\n \"type\": \"object\",\n \"properties\": {\n \"group\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups.\",\n \"default\": \"*\"\n },\n \"groupType\": {\n \"type\": \"string\",\n \"description\": \"If the group contains OIDC or database users.\",\n \"enum\": [\n \"oidc\"\n ]\n }\n },\n \"description\": \"Resources applicable for group actions.\"\n },\n \"tenants\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for tenant actions.\"\n },\n \"roles\": {\n \"type\": \"object\",\n \"properties\": {\n \"role\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles.\",\n \"default\": \"*\"\n },\n \"scope\": {\n \"type\": \"string\",\n \"description\": \"Set the scope for the manage role permission.\",\n \"default\": \"match\",\n \"enum\": [\n \"all\",\n \"match\"\n ]\n }\n },\n \"description\": \"Resources applicable for role actions.\"\n },\n \"collections\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for collection and/or tenant actions.\"\n },\n \"replicate\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific collection name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n },\n \"shard\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific shard name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n }\n },\n \"description\": \"resources applicable for replicate actions\"\n },\n \"aliases\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"alias\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified.\"\n },\n \"action\": {\n \"type\": \"string\",\n \"description\": \"Allowed actions in weaviate.\",\n \"enum\": [\n \"manage_backups\",\n \"read_cluster\",\n \"create_data\",\n \"read_data\",\n \"update_data\",\n \"delete_data\",\n \"read_nodes\",\n \"create_roles\",\n \"read_roles\",\n \"update_roles\",\n \"delete_roles\",\n \"create_collections\",\n \"read_collections\",\n \"update_collections\",\n \"delete_collections\",\n \"assign_and_revoke_users\",\n \"create_users\",\n \"read_users\",\n \"update_users\",\n \"delete_users\",\n \"create_tenants\",\n \"read_tenants\",\n \"update_tenants\",\n \"delete_tenants\",\n \"create_replicate\",\n \"read_replicate\",\n \"update_replicate\",\n \"delete_replicate\",\n \"create_aliases\",\n \"read_aliases\",\n \"update_aliases\",\n \"delete_aliases\",\n \"assign_and_revoke_groups\",\n \"read_groups\"\n ]\n }\n },\n \"description\": \"Permissions attached to a role.\"\n }\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"permissions\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"permissions\": {\n \"type\": \"array\",\n \"description\": \"Permissions to be added to the role.\",\n \"items\": {\n \"required\": [\n \"action\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"backups\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for backup actions.\"\n },\n \"data\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n },\n \"object\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for data actions.\"\n },\n \"nodes\": {\n \"type\": \"object\",\n \"properties\": {\n \"verbosity\": {\n \"type\": \"string\",\n \"description\": \"Whether to allow (verbose) returning shards and stats data in the response.\",\n \"default\": \"minimal\",\n \"enum\": [\n \"verbose\",\n \"minimal\"\n ]\n },\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for cluster actions.\"\n },\n \"users\": {\n \"type\": \"object\",\n \"properties\": {\n \"users\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for user actions.\"\n },\n \"groups\": {\n \"type\": \"object\",\n \"properties\": {\n \"group\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups.\",\n \"default\": \"*\"\n },\n \"groupType\": {\n \"type\": \"string\",\n \"description\": \"If the group contains OIDC or database users.\",\n \"enum\": [\n \"oidc\"\n ]\n }\n },\n \"description\": \"Resources applicable for group actions.\"\n },\n \"tenants\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for tenant actions.\"\n },\n \"roles\": {\n \"type\": \"object\",\n \"properties\": {\n \"role\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles.\",\n \"default\": \"*\"\n },\n \"scope\": {\n \"type\": \"string\",\n \"description\": \"Set the scope for the manage role permission.\",\n \"default\": \"match\",\n \"enum\": [\n \"all\",\n \"match\"\n ]\n }\n },\n \"description\": \"Resources applicable for role actions.\"\n },\n \"collections\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for collection and/or tenant actions.\"\n },\n \"replicate\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific collection name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n },\n \"shard\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific shard name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n }\n },\n \"description\": \"resources applicable for replicate actions\"\n },\n \"aliases\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"alias\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified.\"\n },\n \"action\": {\n \"type\": \"string\",\n \"description\": \"Allowed actions in weaviate.\",\n \"enum\": [\n \"manage_backups\",\n \"read_cluster\",\n \"create_data\",\n \"read_data\",\n \"update_data\",\n \"delete_data\",\n \"read_nodes\",\n \"create_roles\",\n \"read_roles\",\n \"update_roles\",\n \"delete_roles\",\n \"create_collections\",\n \"read_collections\",\n \"update_collections\",\n \"delete_collections\",\n \"assign_and_revoke_users\",\n \"create_users\",\n \"read_users\",\n \"update_users\",\n \"delete_users\",\n \"create_tenants\",\n \"read_tenants\",\n \"update_tenants\",\n \"delete_tenants\",\n \"create_replicate\",\n \"read_replicate\",\n \"update_replicate\",\n \"delete_replicate\",\n \"create_aliases\",\n \"read_aliases\",\n \"update_aliases\",\n \"delete_aliases\",\n \"assign_and_revoke_groups\",\n \"read_groups\"\n ]\n }\n },\n \"description\": \"Permissions attached to a role.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AddPropertyToCollection.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AddPropertyToCollection.json new file mode 100644 index 00000000..a0547022 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AddPropertyToCollection.json @@ -0,0 +1,480 @@ +{ + "name": "AddPropertyToCollection", + "fully_qualified_name": "WeaviateApi.AddPropertyToCollection@0.1.0", + "description": "Add a new property to an existing collection schema.\n\nUse this tool to add a new property definition to a specified collection (className) within the schema. It is called when a new property needs to be incorporated into an existing data structure.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "The name of the collection (class) to which the property will be added.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) to add the property to." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "property_definition", + "required": true, + "description": "The JSON structure defining the new property to add, including data type, description, and configuration options.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "dataType": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Data type of the property (required). If it starts with a capital (for example Person), may be a reference to another type." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the property." + }, + "moduleConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configuration specific to modules in a collection context." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property (required). Multiple words should be concatenated in camelCase, e.g. `nameOfAuthor`." + }, + "indexInverted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Deprecated). Whether to include this property in the inverted index. If `false`, this property cannot be used in `where` filters, `bm25` or `hybrid` search.

Unrelated to vectorization behavior (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)" + }, + "indexFilterable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include this property in the filterable, Roaring Bitmap index. If `false`, this property cannot be used in `where` filters.

Note: Unrelated to vectorization behavior." + }, + "indexSearchable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules" + }, + "indexRangeFilters": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include this property in the filterable, range-based Roaring Bitmap index. Provides better performance for range queries compared to filterable index in large datasets. Applicable only to properties of data type int, number, date." + }, + "tokenization": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch" + ], + "properties": null, + "inner_properties": null, + "description": "Determines how a property is indexed. This setting applies to `text` and `text[]` data types. The following tokenization methods are available:

- `word` (default): Splits the text on any non-alphanumeric characters and lowercases the tokens.
- `lowercase`: Splits the text on whitespace and lowercases the tokens.
- `whitespace`: Splits the text on whitespace. This tokenization is case-sensitive.
- `field`: Indexes the entire property value as a single token after trimming whitespace.
- `trigram`: Splits the property into rolling trigrams (three-character sequences).
- `gse`: Uses the `gse` tokenizer, suitable for Chinese language text. [See `gse` docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- `kagome_ja`: Uses the `Kagome` tokenizer with a Japanese (IPA) dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).
- `kagome_kr`: Uses the `Kagome` tokenizer with a Korean dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).

See [Reference: Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) for details." + }, + "nestedProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "dataType": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexFilterable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexSearchable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexRangeFilters": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "tokenization": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "nestedProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "The properties of the nested object(s). Applies to object and object[] data types." + } + }, + "description": "The properties of the nested object(s). Applies to object and object[] data types." + } + }, + "inner_properties": null, + "description": "The definition of the property to add." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'schema.objects.properties.add'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema/{className}/properties", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "The name of the collection (class) to add the property to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) to add the property to." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "property_definition", + "description": "The definition of the property to add.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "dataType": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Data type of the property (required). If it starts with a capital (for example Person), may be a reference to another type." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the property." + }, + "moduleConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configuration specific to modules in a collection context." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property (required). Multiple words should be concatenated in camelCase, e.g. `nameOfAuthor`." + }, + "indexInverted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Deprecated). Whether to include this property in the inverted index. If `false`, this property cannot be used in `where` filters, `bm25` or `hybrid` search.

Unrelated to vectorization behavior (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)" + }, + "indexFilterable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include this property in the filterable, Roaring Bitmap index. If `false`, this property cannot be used in `where` filters.

Note: Unrelated to vectorization behavior." + }, + "indexSearchable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules" + }, + "indexRangeFilters": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include this property in the filterable, range-based Roaring Bitmap index. Provides better performance for range queries compared to filterable index in large datasets. Applicable only to properties of data type int, number, date." + }, + "tokenization": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch" + ], + "properties": null, + "inner_properties": null, + "description": "Determines how a property is indexed. This setting applies to `text` and `text[]` data types. The following tokenization methods are available:

- `word` (default): Splits the text on any non-alphanumeric characters and lowercases the tokens.
- `lowercase`: Splits the text on whitespace and lowercases the tokens.
- `whitespace`: Splits the text on whitespace. This tokenization is case-sensitive.
- `field`: Indexes the entire property value as a single token after trimming whitespace.
- `trigram`: Splits the property into rolling trigrams (three-character sequences).
- `gse`: Uses the `gse` tokenizer, suitable for Chinese language text. [See `gse` docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- `kagome_ja`: Uses the `Kagome` tokenizer with a Japanese (IPA) dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).
- `kagome_kr`: Uses the `Kagome` tokenizer with a Korean dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).

See [Reference: Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) for details." + }, + "nestedProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "dataType": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexFilterable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexSearchable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexRangeFilters": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "tokenization": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "nestedProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "The properties of the nested object(s). Applies to object and object[] data types." + } + }, + "description": "The properties of the nested object(s). Applies to object and object[] data types." + } + }, + "inner_properties": null, + "description": "The definition of the property to add." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The definition of the property to add.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"dataType\": {\n \"type\": \"array\",\n \"description\": \"Data type of the property (required). If it starts with a capital (for example Person), may be a reference to another type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the property.\"\n },\n \"moduleConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration specific to modules in a collection context.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the property (required). Multiple words should be concatenated in camelCase, e.g. `nameOfAuthor`.\"\n },\n \"indexInverted\": {\n \"type\": \"boolean\",\n \"description\": \"(Deprecated). Whether to include this property in the inverted index. If `false`, this property cannot be used in `where` filters, `bm25` or `hybrid` search.

Unrelated to vectorization behavior (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)\",\n \"nullable\": true\n },\n \"indexFilterable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to include this property in the filterable, Roaring Bitmap index. If `false`, this property cannot be used in `where` filters.

Note: Unrelated to vectorization behavior.\",\n \"nullable\": true\n },\n \"indexSearchable\": {\n \"type\": \"boolean\",\n \"description\": \"Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules\",\n \"nullable\": true\n },\n \"indexRangeFilters\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to include this property in the filterable, range-based Roaring Bitmap index. Provides better performance for range queries compared to filterable index in large datasets. Applicable only to properties of data type int, number, date.\",\n \"nullable\": true\n },\n \"tokenization\": {\n \"type\": \"string\",\n \"description\": \"Determines how a property is indexed. This setting applies to `text` and `text[]` data types. The following tokenization methods are available:

- `word` (default): Splits the text on any non-alphanumeric characters and lowercases the tokens.
- `lowercase`: Splits the text on whitespace and lowercases the tokens.
- `whitespace`: Splits the text on whitespace. This tokenization is case-sensitive.
- `field`: Indexes the entire property value as a single token after trimming whitespace.
- `trigram`: Splits the property into rolling trigrams (three-character sequences).
- `gse`: Uses the `gse` tokenizer, suitable for Chinese language text. [See `gse` docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- `kagome_ja`: Uses the `Kagome` tokenizer with a Japanese (IPA) dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).
- `kagome_kr`: Uses the `Kagome` tokenizer with a Korean dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).

See [Reference: Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) for details.\",\n \"enum\": [\n \"word\",\n \"lowercase\",\n \"whitespace\",\n \"field\",\n \"trigram\",\n \"gse\",\n \"kagome_kr\",\n \"kagome_ja\",\n \"gse_ch\"\n ]\n },\n \"nestedProperties\": {\n \"type\": \"array\",\n \"description\": \"The properties of the nested object(s). Applies to object and object[] data types.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"dataType\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"indexFilterable\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"indexSearchable\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"indexRangeFilters\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"tokenization\": {\n \"type\": \"string\",\n \"enum\": [\n \"word\",\n \"lowercase\",\n \"whitespace\",\n \"field\",\n \"trigram\",\n \"gse\",\n \"kagome_kr\",\n \"kagome_ja\",\n \"gse_ch\"\n ]\n },\n \"nestedProperties\": {\n \"type\": \"array\",\n \"description\": \"The properties of the nested object(s). Applies to object and object[] data types.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/NestedProperty\",\n \"has_circular_reference\": true\n },\n \"x-omitempty\": true\n }\n }\n },\n \"x-omitempty\": true\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"dataType\": {\n \"type\": \"array\",\n \"description\": \"Data type of the property (required). If it starts with a capital (for example Person), may be a reference to another type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the property.\"\n },\n \"moduleConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration specific to modules in a collection context.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the property (required). Multiple words should be concatenated in camelCase, e.g. `nameOfAuthor`.\"\n },\n \"indexInverted\": {\n \"type\": \"boolean\",\n \"description\": \"(Deprecated). Whether to include this property in the inverted index. If `false`, this property cannot be used in `where` filters, `bm25` or `hybrid` search.

Unrelated to vectorization behavior (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)\",\n \"nullable\": true\n },\n \"indexFilterable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to include this property in the filterable, Roaring Bitmap index. If `false`, this property cannot be used in `where` filters.

Note: Unrelated to vectorization behavior.\",\n \"nullable\": true\n },\n \"indexSearchable\": {\n \"type\": \"boolean\",\n \"description\": \"Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules\",\n \"nullable\": true\n },\n \"indexRangeFilters\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to include this property in the filterable, range-based Roaring Bitmap index. Provides better performance for range queries compared to filterable index in large datasets. Applicable only to properties of data type int, number, date.\",\n \"nullable\": true\n },\n \"tokenization\": {\n \"type\": \"string\",\n \"description\": \"Determines how a property is indexed. This setting applies to `text` and `text[]` data types. The following tokenization methods are available:

- `word` (default): Splits the text on any non-alphanumeric characters and lowercases the tokens.
- `lowercase`: Splits the text on whitespace and lowercases the tokens.
- `whitespace`: Splits the text on whitespace. This tokenization is case-sensitive.
- `field`: Indexes the entire property value as a single token after trimming whitespace.
- `trigram`: Splits the property into rolling trigrams (three-character sequences).
- `gse`: Uses the `gse` tokenizer, suitable for Chinese language text. [See `gse` docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- `kagome_ja`: Uses the `Kagome` tokenizer with a Japanese (IPA) dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).
- `kagome_kr`: Uses the `Kagome` tokenizer with a Korean dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).

See [Reference: Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) for details.\",\n \"enum\": [\n \"word\",\n \"lowercase\",\n \"whitespace\",\n \"field\",\n \"trigram\",\n \"gse\",\n \"kagome_kr\",\n \"kagome_ja\",\n \"gse_ch\"\n ]\n },\n \"nestedProperties\": {\n \"type\": \"array\",\n \"description\": \"The properties of the nested object(s). Applies to object and object[] data types.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"dataType\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"indexFilterable\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"indexSearchable\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"indexRangeFilters\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"tokenization\": {\n \"type\": \"string\",\n \"enum\": [\n \"word\",\n \"lowercase\",\n \"whitespace\",\n \"field\",\n \"trigram\",\n \"gse\",\n \"kagome_kr\",\n \"kagome_ja\",\n \"gse_ch\"\n ]\n },\n \"nestedProperties\": {\n \"type\": \"array\",\n \"description\": \"The properties of the nested object(s). Applies to object and object[] data types.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/NestedProperty\",\n \"has_circular_reference\": true\n },\n \"x-omitempty\": true\n }\n }\n },\n \"x-omitempty\": true\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AddReferenceToObject.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AddReferenceToObject.json new file mode 100644 index 00000000..3b16ee5f --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AddReferenceToObject.json @@ -0,0 +1,524 @@ +{ + "name": "AddReferenceToObject", + "fully_qualified_name": "WeaviateApi.AddReferenceToObject@0.1.0", + "description": "Add a reference to an object's property.\n\nThis tool adds a new reference to a specified property of a data object. The object is identified by its class and UUID. Use this to link related objects within a dataset.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "source_class_name", + "required": true, + "description": "Name of the collection (class) the source object belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the source object belongs to." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "source_object_uuid", + "required": true, + "description": "Unique UUID identifying the source object to which the reference will be added.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the source object." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "reference_property_name", + "required": true, + "description": "Unique name of the reference property of the source object to which the reference will be added.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique name of the reference property of the source object." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertyName" + }, + { + "name": "reference_to_add", + "required": true, + "description": "JSON object detailing the reference to add, specifying properties such as class, schema, beacon URI, and optional classification metadata.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a concept reference (rather than a direct reference), specify the desired collection (class) name here." + }, + "schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "beacon": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a direct reference, specify the URI to point to the cross-reference here. Should be in the form of weaviate://localhost/ for the example of a local cross-reference to an object" + }, + "href": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise." + }, + "classification": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "overallCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present" + }, + "winningCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "size of the winning group, a number between 1..k" + }, + "losingCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "size of the losing group, can be 0 if the winning group size equals k" + }, + "closestOverallDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The lowest distance of any neighbor, regardless of whether they were in the winning or losing group" + }, + "winningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "deprecated - do not use, to be removed in 0.23.0" + }, + "meanWinningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mean distance of all neighbors from the winning group" + }, + "closestWinningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closest distance of a neighbor from the winning group" + }, + "closestLosingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group" + }, + "losingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "deprecated - do not use, to be removed in 0.23.0" + }, + "meanLosingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group." + } + }, + "inner_properties": null, + "description": "This meta field contains additional info about the classified reference property" + } + }, + "inner_properties": null, + "description": "The reference to add." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "required_consistency_level", + "required": false, + "description": "Specifies the number of replicas that must acknowledge a request for it to be successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency_level" + }, + { + "name": "tenant_identifier", + "required": false, + "description": "Specifies the tenant for multi-tenant collection requests in a Weaviate class.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "tenant" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'objects.class.references.create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/objects/{className}/{id}/references/{propertyName}", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "consistency_level", + "tool_parameter_name": "required_consistency_level", + "description": "Determines how many replicas must acknowledge a request before it is considered successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "tenant", + "tool_parameter_name": "tenant_identifier", + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "className", + "tool_parameter_name": "source_class_name", + "description": "Name of the collection (class) the source object belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the source object belongs to." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "source_object_uuid", + "description": "Unique UUID of the source object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the source object." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertyName", + "tool_parameter_name": "reference_property_name", + "description": "Unique name of the reference property of the source object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique name of the reference property of the source object." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "reference_to_add", + "description": "The reference to add.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a concept reference (rather than a direct reference), specify the desired collection (class) name here." + }, + "schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "beacon": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a direct reference, specify the URI to point to the cross-reference here. Should be in the form of weaviate://localhost/ for the example of a local cross-reference to an object" + }, + "href": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise." + }, + "classification": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "overallCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present" + }, + "winningCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "size of the winning group, a number between 1..k" + }, + "losingCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "size of the losing group, can be 0 if the winning group size equals k" + }, + "closestOverallDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The lowest distance of any neighbor, regardless of whether they were in the winning or losing group" + }, + "winningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "deprecated - do not use, to be removed in 0.23.0" + }, + "meanWinningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mean distance of all neighbors from the winning group" + }, + "closestWinningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closest distance of a neighbor from the winning group" + }, + "closestLosingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group" + }, + "losingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "deprecated - do not use, to be removed in 0.23.0" + }, + "meanLosingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group." + } + }, + "inner_properties": null, + "description": "This meta field contains additional info about the classified reference property" + } + }, + "inner_properties": null, + "description": "The reference to add." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The reference to add.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"If using a concept reference (rather than a direct reference), specify the desired collection (class) name here.\",\n \"format\": \"uri\"\n },\n \"schema\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"beacon\": {\n \"type\": \"string\",\n \"description\": \"If using a direct reference, specify the URI to point to the cross-reference here. Should be in the form of weaviate://localhost/ for the example of a local cross-reference to an object\",\n \"format\": \"uri\"\n },\n \"href\": {\n \"type\": \"string\",\n \"description\": \"If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise.\",\n \"format\": \"uri\"\n },\n \"classification\": {\n \"type\": \"object\",\n \"properties\": {\n \"overallCount\": {\n \"type\": \"number\",\n \"description\": \"overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present\",\n \"format\": \"int64\"\n },\n \"winningCount\": {\n \"type\": \"number\",\n \"description\": \"size of the winning group, a number between 1..k\",\n \"format\": \"int64\"\n },\n \"losingCount\": {\n \"type\": \"number\",\n \"description\": \"size of the losing group, can be 0 if the winning group size equals k\",\n \"format\": \"int64\"\n },\n \"closestOverallDistance\": {\n \"type\": \"number\",\n \"description\": \"The lowest distance of any neighbor, regardless of whether they were in the winning or losing group\",\n \"format\": \"float32\"\n },\n \"winningDistance\": {\n \"type\": \"number\",\n \"description\": \"deprecated - do not use, to be removed in 0.23.0\",\n \"format\": \"float32\"\n },\n \"meanWinningDistance\": {\n \"type\": \"number\",\n \"description\": \"Mean distance of all neighbors from the winning group\",\n \"format\": \"float32\"\n },\n \"closestWinningDistance\": {\n \"type\": \"number\",\n \"description\": \"Closest distance of a neighbor from the winning group\",\n \"format\": \"float32\"\n },\n \"closestLosingDistance\": {\n \"type\": \"number\",\n \"description\": \"The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group\",\n \"format\": \"float32\",\n \"nullable\": true\n },\n \"losingDistance\": {\n \"type\": \"number\",\n \"description\": \"deprecated - do not use, to be removed in 0.23.0\",\n \"format\": \"float32\",\n \"nullable\": true\n },\n \"meanLosingDistance\": {\n \"type\": \"number\",\n \"description\": \"Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group.\",\n \"format\": \"float32\",\n \"nullable\": true\n }\n },\n \"description\": \"This meta field contains additional info about the classified reference property\"\n }\n },\n \"description\": \"Either set beacon (direct reference) or set collection (class) and schema (concept reference)\"\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"If using a concept reference (rather than a direct reference), specify the desired collection (class) name here.\",\n \"format\": \"uri\"\n },\n \"schema\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"beacon\": {\n \"type\": \"string\",\n \"description\": \"If using a direct reference, specify the URI to point to the cross-reference here. Should be in the form of weaviate://localhost/ for the example of a local cross-reference to an object\",\n \"format\": \"uri\"\n },\n \"href\": {\n \"type\": \"string\",\n \"description\": \"If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise.\",\n \"format\": \"uri\"\n },\n \"classification\": {\n \"type\": \"object\",\n \"properties\": {\n \"overallCount\": {\n \"type\": \"number\",\n \"description\": \"overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present\",\n \"format\": \"int64\"\n },\n \"winningCount\": {\n \"type\": \"number\",\n \"description\": \"size of the winning group, a number between 1..k\",\n \"format\": \"int64\"\n },\n \"losingCount\": {\n \"type\": \"number\",\n \"description\": \"size of the losing group, can be 0 if the winning group size equals k\",\n \"format\": \"int64\"\n },\n \"closestOverallDistance\": {\n \"type\": \"number\",\n \"description\": \"The lowest distance of any neighbor, regardless of whether they were in the winning or losing group\",\n \"format\": \"float32\"\n },\n \"winningDistance\": {\n \"type\": \"number\",\n \"description\": \"deprecated - do not use, to be removed in 0.23.0\",\n \"format\": \"float32\"\n },\n \"meanWinningDistance\": {\n \"type\": \"number\",\n \"description\": \"Mean distance of all neighbors from the winning group\",\n \"format\": \"float32\"\n },\n \"closestWinningDistance\": {\n \"type\": \"number\",\n \"description\": \"Closest distance of a neighbor from the winning group\",\n \"format\": \"float32\"\n },\n \"closestLosingDistance\": {\n \"type\": \"number\",\n \"description\": \"The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group\",\n \"format\": \"float32\",\n \"nullable\": true\n },\n \"losingDistance\": {\n \"type\": \"number\",\n \"description\": \"deprecated - do not use, to be removed in 0.23.0\",\n \"format\": \"float32\",\n \"nullable\": true\n },\n \"meanLosingDistance\": {\n \"type\": \"number\",\n \"description\": \"Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group.\",\n \"format\": \"float32\",\n \"nullable\": true\n }\n },\n \"description\": \"This meta field contains additional info about the classified reference property\"\n }\n },\n \"description\": \"Either set beacon (direct reference) or set collection (class) and schema (concept reference)\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AssignRoleToGroup.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AssignRoleToGroup.json new file mode 100644 index 00000000..7d01c64f --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AssignRoleToGroup.json @@ -0,0 +1,185 @@ +{ + "name": "AssignRoleToGroup", + "fully_qualified_name": "WeaviateApi.AssignRoleToGroup@0.1.0", + "description": "Assign roles to a specific group.\n\nUse this tool to assign one or more roles to a designated group, identified by its ID.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "group_name", + "required": true, + "description": "The name of the group to which roles will be assigned.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the group." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "roles_to_assign", + "required": false, + "description": "A list of roles to assign to a specified group. Each role is a string.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The roles to assign to the specified group." + }, + "inferrable": true, + "http_endpoint_parameter_name": "roles" + }, + { + "name": "group_type", + "required": false, + "description": "Indicate if the group contains OIDC or database users. Choose 'oidc' for OIDC users.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "If the group contains OIDC or database users." + }, + "inferrable": true, + "http_endpoint_parameter_name": "groupType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'assignRoleToGroup'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/groups/{id}/assign", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "group_name", + "description": "The name of the group.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the group." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "roles", + "tool_parameter_name": "roles_to_assign", + "description": "The roles to assign to the specified group.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The roles to assign to the specified group." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "groupType", + "tool_parameter_name": "group_type", + "description": "If the group contains OIDC or database users.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "If the group contains OIDC or database users." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"roles\": {\n \"type\": \"array\",\n \"description\": \"The roles to assign to the specified group.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"groupType\": {\n \"type\": \"string\",\n \"description\": \"If the group contains OIDC or database users.\",\n \"enum\": [\n \"oidc\"\n ]\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"roles\": {\n \"type\": \"array\",\n \"description\": \"The roles to assign to the specified group.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"groupType\": {\n \"type\": \"string\",\n \"description\": \"If the group contains OIDC or database users.\",\n \"enum\": [\n \"oidc\"\n ]\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AssignRolesToUser.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AssignRolesToUser.json new file mode 100644 index 00000000..368190e5 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/AssignRolesToUser.json @@ -0,0 +1,187 @@ +{ + "name": "AssignRolesToUser", + "fully_qualified_name": "WeaviateApi.AssignRolesToUser@0.1.0", + "description": "Assign roles to a user in the system.\n\nUse this tool to assign one or more roles to a specific user, allowing flexibility in user permissions and access control.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_name", + "required": true, + "description": "The name or identifier of the user to assign roles to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "assigned_roles", + "required": false, + "description": "List of roles to assign to the specified user. Each role should be a string.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The roles that are assigned to the specified user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "roles" + }, + { + "name": "user_type", + "required": false, + "description": "Specify the user type. Choose 'db' for Weaviate managed users or 'oidc' for users managed by an external OIDC provider.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "db", + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "The type of the user. `db` users are managed by Weaviate, `oidc` users are managed by an external OIDC provider." + }, + "inferrable": true, + "http_endpoint_parameter_name": "userType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'assignRoleToUser'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/users/{id}/assign", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "user_name", + "description": "The name of the user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "roles", + "tool_parameter_name": "assigned_roles", + "description": "The roles that are assigned to the specified user.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The roles that are assigned to the specified user." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "userType", + "tool_parameter_name": "user_type", + "description": "The type of the user. `db` users are managed by Weaviate, `oidc` users are managed by an external OIDC provider.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "db", + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "The type of the user. `db` users are managed by Weaviate, `oidc` users are managed by an external OIDC provider." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"roles\": {\n \"type\": \"array\",\n \"description\": \"The roles that are assigned to the specified user.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"userType\": {\n \"type\": \"string\",\n \"description\": \"The type of the user. `db` users are managed by Weaviate, `oidc` users are managed by an external OIDC provider.\",\n \"enum\": [\n \"db\",\n \"oidc\"\n ]\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"roles\": {\n \"type\": \"array\",\n \"description\": \"The roles that are assigned to the specified user.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"userType\": {\n \"type\": \"string\",\n \"description\": \"The type of the user. `db` users are managed by Weaviate, `oidc` users are managed by an external OIDC provider.\",\n \"enum\": [\n \"db\",\n \"oidc\"\n ]\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/BatchCreateReferences.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/BatchCreateReferences.json new file mode 100644 index 00000000..deef5196 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/BatchCreateReferences.json @@ -0,0 +1,198 @@ +{ + "name": "BatchCreateReferences", + "fully_qualified_name": "WeaviateApi.BatchCreateReferences@0.1.0", + "description": "Batch create cross-references between items in a collection.\n\nUse this tool to efficiently establish multiple cross-references between items in a collection at once. Ideal for handling large datasets where establishing individual links manually would be inefficient.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "reference_batch_list", + "required": true, + "description": "A list of references to batch, with each comprising 'from', 'to', and optional 'tenant'. Use the URI format specified in the API documentation.", + "value_schema": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Long-form beacon-style URI to identify the source of the cross-reference, including the property name. Should be in the form of `weaviate://localhost/objects///`, where `` and `` must represent the cross-reference property of the source class to be used." + }, + "to": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short-form URI to point to the cross-reference. Should be in the form of `weaviate://localhost/` for the example of a local cross-reference to an object." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the reference tenant." + } + }, + "description": "A list of references to be batched. The ideal size depends on the used database connector. Please see the documentation of the used connector for help." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "consistency_level", + "required": false, + "description": "Specifies the number of replicas needed to acknowledge a request for it to be deemed successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency_level" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'batch.references.create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/batch/references", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "consistency_level", + "tool_parameter_name": "consistency_level", + "description": "Determines how many replicas must acknowledge a request before it is considered successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "reference_batch_list", + "description": "A list of references to be batched. The ideal size depends on the used database connector. Please see the documentation of the used connector for help.", + "value_schema": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "from": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Long-form beacon-style URI to identify the source of the cross-reference, including the property name. Should be in the form of `weaviate://localhost/objects///`, where `` and `` must represent the cross-reference property of the source class to be used." + }, + "to": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Short-form URI to point to the cross-reference. Should be in the form of `weaviate://localhost/` for the example of a local cross-reference to an object." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the reference tenant." + } + }, + "description": "A list of references to be batched. The ideal size depends on the used database connector. Please see the documentation of the used connector for help." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"A list of references to be batched. The ideal size depends on the used database connector. Please see the documentation of the used connector for help.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"from\": {\n \"type\": \"string\",\n \"description\": \"Long-form beacon-style URI to identify the source of the cross-reference, including the property name. Should be in the form of `weaviate://localhost/objects///`, where `` and `` must represent the cross-reference property of the source class to be used.\",\n \"format\": \"uri\",\n \"example\": \"weaviate://localhost/Zoo/a5d09582-4239-4702-81c9-92a6e0122bb4/hasAnimals\"\n },\n \"to\": {\n \"type\": \"string\",\n \"description\": \"Short-form URI to point to the cross-reference. Should be in the form of `weaviate://localhost/` for the example of a local cross-reference to an object.\",\n \"format\": \"uri\",\n \"example\": \"weaviate://localhost/97525810-a9a5-4eb0-858a-71449aeb007f\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"Name of the reference tenant.\"\n }\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"from\": {\n \"type\": \"string\",\n \"description\": \"Long-form beacon-style URI to identify the source of the cross-reference, including the property name. Should be in the form of `weaviate://localhost/objects///`, where `` and `` must represent the cross-reference property of the source class to be used.\",\n \"format\": \"uri\",\n \"example\": \"weaviate://localhost/Zoo/a5d09582-4239-4702-81c9-92a6e0122bb4/hasAnimals\"\n },\n \"to\": {\n \"type\": \"string\",\n \"description\": \"Short-form URI to point to the cross-reference. Should be in the form of `weaviate://localhost/` for the example of a local cross-reference to an object.\",\n \"format\": \"uri\",\n \"example\": \"weaviate://localhost/97525810-a9a5-4eb0-858a-71449aeb007f\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"Name of the reference tenant.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/BatchRegisterObjects.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/BatchRegisterObjects.json new file mode 100644 index 00000000..3f068044 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/BatchRegisterObjects.json @@ -0,0 +1,344 @@ +{ + "name": "BatchRegisterObjects", + "fully_qualified_name": "WeaviateApi.BatchRegisterObjects@0.1.0", + "description": "Register multiple data objects in a single request.\n\nThis tool registers multiple data objects in one request for efficiency. It validates metadata and schema values for each object. The operation is idempotent, meaning if an object with a given UUID already exists, it will be overwritten.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "data_objects_to_register", + "required": true, + "description": "A JSON array containing objects to be created. Each object includes details like class name, properties, UUID, vectors, and optional vector weights.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "fields": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Controls which fields are returned in the response for each object. Default is `ALL`." + }, + "objects": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "vectorWeights": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The UUID of the object." + }, + "creationTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of creation of this object in milliseconds since epoch UTC." + }, + "lastUpdateTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of the last object update in milliseconds since epoch UTC." + }, + "vector": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting." + }, + "vectors": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A map of named vectors for multi-vector representations." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant the object belongs to." + }, + "additional": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Additional meta information about a single object." + } + }, + "description": "Array of objects to be created." + } + }, + "inner_properties": null, + "description": "The request body containing the objects to be created." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "consistency_level", + "required": false, + "description": "Specifies how many replicas must confirm a request for it to be successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency_level" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'batch.objects.create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/batch/objects", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "consistency_level", + "tool_parameter_name": "consistency_level", + "description": "Determines how many replicas must acknowledge a request before it is considered successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "data_objects_to_register", + "description": "The request body containing the objects to be created.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "fields": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Controls which fields are returned in the response for each object. Default is `ALL`." + }, + "objects": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "vectorWeights": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The UUID of the object." + }, + "creationTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of creation of this object in milliseconds since epoch UTC." + }, + "lastUpdateTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of the last object update in milliseconds since epoch UTC." + }, + "vector": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting." + }, + "vectors": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A map of named vectors for multi-vector representations." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant the object belongs to." + }, + "additional": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Additional meta information about a single object." + } + }, + "description": "Array of objects to be created." + } + }, + "inner_properties": null, + "description": "The request body containing the objects to be created." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The request body containing the objects to be created.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"fields\": {\n \"type\": \"array\",\n \"description\": \"Controls which fields are returned in the response for each object. Default is `ALL`.\",\n \"items\": {\n \"type\": \"string\",\n \"default\": \"ALL\",\n \"enum\": [\n \"ALL\",\n \"class\",\n \"schema\",\n \"id\",\n \"creationTimeUnix\"\n ]\n }\n },\n \"objects\": {\n \"type\": \"array\",\n \"description\": \"Array of objects to be created.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (class) the object belongs to.\"\n },\n \"vectorWeights\": {\n \"type\": \"object\",\n \"description\": \"Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The UUID of the object.\",\n \"format\": \"uuid\"\n },\n \"creationTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of creation of this object in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"lastUpdateTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of the last object update in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"vector\": {\n \"type\": \"array\",\n \"description\": \"A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting.\",\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float\"\n }\n },\n \"vectors\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"description\": \"A vector representation of the object. If provided at object creation, this wil take precedence over any vectorizer setting.\"\n },\n \"description\": \"A map of named vectors for multi-vector representations.\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant the object belongs to.\"\n },\n \"additional\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"(Response only) Additional meta information about a single object.\"\n }\n }\n }\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"fields\": {\n \"type\": \"array\",\n \"description\": \"Controls which fields are returned in the response for each object. Default is `ALL`.\",\n \"items\": {\n \"type\": \"string\",\n \"default\": \"ALL\",\n \"enum\": [\n \"ALL\",\n \"class\",\n \"schema\",\n \"id\",\n \"creationTimeUnix\"\n ]\n }\n },\n \"objects\": {\n \"type\": \"array\",\n \"description\": \"Array of objects to be created.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (class) the object belongs to.\"\n },\n \"vectorWeights\": {\n \"type\": \"object\",\n \"description\": \"Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The UUID of the object.\",\n \"format\": \"uuid\"\n },\n \"creationTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of creation of this object in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"lastUpdateTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of the last object update in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"vector\": {\n \"type\": \"array\",\n \"description\": \"A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting.\",\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float\"\n }\n },\n \"vectors\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"description\": \"A vector representation of the object. If provided at object creation, this wil take precedence over any vectorizer setting.\"\n },\n \"description\": \"A map of named vectors for multi-vector representations.\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant the object belongs to.\"\n },\n \"additional\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"(Response only) Additional meta information about a single object.\"\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CancelBackup.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CancelBackup.json new file mode 100644 index 00000000..6f4192fe --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CancelBackup.json @@ -0,0 +1,214 @@ +{ + "name": "CancelBackup", + "fully_qualified_name": "WeaviateApi.CancelBackup@0.1.0", + "description": "Cancel a backup by its ID from a specified backend storage.\n\nUse this tool to delete a backup using its unique ID from a specified backend storage location, ensuring the backup is no longer retrievable.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "storage_backend_system", + "required": true, + "description": "Specifies the backend storage system where the backup resides (e.g., 'filesystem', 'gcs', 's3', 'azure').", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the backend storage system where the backup resides (e.g., `filesystem`, `gcs`, `s3`, `azure`)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "backend" + }, + { + "name": "backup_id", + "required": true, + "description": "The unique ID of the backup to delete. Must be URL-safe, using lowercase, numbers, underscores, and minus characters.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the backup to delete. Must be URL-safe and compatible with filesystem paths (only lowercase, numbers, underscore, minus characters allowed)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "specified_bucket_name", + "required": false, + "description": "Specifies the bucket, container, or volume name if required by the backend storage system. Optional parameter.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional: Specifies the bucket, container, or volume name if required by the backend." + }, + "inferrable": true, + "http_endpoint_parameter_name": "bucket" + }, + { + "name": "backup_subpath", + "required": false, + "description": "Specifies the optional path within the storage if the backup is not at the root.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional: Specifies the path within the bucket/container/volume if the backup is not at the root." + }, + "inferrable": true, + "http_endpoint_parameter_name": "path" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'backups.cancel'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/backups/{backend}/{id}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "bucket", + "tool_parameter_name": "specified_bucket_name", + "description": "Optional: Specifies the bucket, container, or volume name if required by the backend.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional: Specifies the bucket, container, or volume name if required by the backend." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "path", + "tool_parameter_name": "backup_subpath", + "description": "Optional: Specifies the path within the bucket/container/volume if the backup is not at the root.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional: Specifies the path within the bucket/container/volume if the backup is not at the root." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "backend", + "tool_parameter_name": "storage_backend_system", + "description": "Specifies the backend storage system where the backup resides (e.g., `filesystem`, `gcs`, `s3`, `azure`).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the backend storage system where the backup resides (e.g., `filesystem`, `gcs`, `s3`, `azure`)." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "backup_id", + "description": "The unique identifier of the backup to delete. Must be URL-safe and compatible with filesystem paths (only lowercase, numbers, underscore, minus characters allowed).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the backup to delete. Must be URL-safe and compatible with filesystem paths (only lowercase, numbers, underscore, minus characters allowed)." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CancelReplication.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CancelReplication.json new file mode 100644 index 00000000..3bae5ef5 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CancelReplication.json @@ -0,0 +1,115 @@ +{ + "name": "CancelReplication", + "fully_qualified_name": "WeaviateApi.CancelReplication@0.1.0", + "description": "Cancel an active replication operation by ID.\n\nUse this tool to request the cancellation of an ongoing replication operation specified by its ID. The operation is stopped and marked as 'CANCELLED' but is not automatically deleted.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "replication_operation_id", + "required": true, + "description": "The ID of the replication operation you wish to cancel. This is a string identifier for the specific operation.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the replication operation to cancel." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'cancelReplication'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/replication/replicate/{id}/cancel", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "replication_operation_id", + "description": "The ID of the replication operation to cancel.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the replication operation to cancel." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CancelReplicationOperation.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CancelReplicationOperation.json new file mode 100644 index 00000000..555ff302 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CancelReplicationOperation.json @@ -0,0 +1,115 @@ +{ + "name": "CancelReplicationOperation", + "fully_qualified_name": "WeaviateApi.CancelReplicationOperation@0.1.0", + "description": "Cancel an active replication operation.\n\nUse this tool to remove and cancel a specific replication operation. It ensures that active processes are halted and resources are cleaned up before deletion.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "replication_operation_id", + "required": true, + "description": "The unique identifier of the replication operation to be canceled and deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the replication operation to delete." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteReplication'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/replication/replicate/{id}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "replication_operation_id", + "description": "The ID of the replication operation to delete.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the replication operation to delete." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckBackupRestoreStatus.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckBackupRestoreStatus.json new file mode 100644 index 00000000..e9404343 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckBackupRestoreStatus.json @@ -0,0 +1,214 @@ +{ + "name": "CheckBackupRestoreStatus", + "fully_qualified_name": "WeaviateApi.CheckBackupRestoreStatus@0.1.0", + "description": "Check the status of a backup restoration process.\n\nUse this tool to manually check the status of a specific backup restoration on a given backend, using the backup ID. Ideal when automatic polling is disabled.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "backend_storage_system", + "required": true, + "description": "Specifies the backend storage system where the backup resides, such as 'filesystem', 'gcs', 's3', or 'azure'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the backend storage system where the backup resides (e.g., `filesystem`, `gcs`, `s3`, `azure`)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "backend" + }, + { + "name": "backup_id", + "required": true, + "description": "The URL-safe unique identifier of the backup being restored. Use lowercase, numbers, underscores, and minus characters only.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the backup being restored. Must be URL-safe and compatible with filesystem paths (only lowercase, numbers, underscore, minus characters allowed)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "backup_bucket_name", + "required": false, + "description": "Specifies the bucket, container, or volume name if required by the backend.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional: Specifies the bucket, container, or volume name if required by the backend." + }, + "inferrable": true, + "http_endpoint_parameter_name": "bucket" + }, + { + "name": "bucket_path", + "required": false, + "description": "Specifies the path within the bucket, optional based on backend requirements.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional: Specifies the path within the bucket." + }, + "inferrable": true, + "http_endpoint_parameter_name": "path" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'backups.restore.status'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/backups/{backend}/{id}/restore", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "bucket", + "tool_parameter_name": "backup_bucket_name", + "description": "Optional: Specifies the bucket, container, or volume name if required by the backend.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional: Specifies the bucket, container, or volume name if required by the backend." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "path", + "tool_parameter_name": "bucket_path", + "description": "Optional: Specifies the path within the bucket.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional: Specifies the path within the bucket." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "backend", + "tool_parameter_name": "backend_storage_system", + "description": "Specifies the backend storage system where the backup resides (e.g., `filesystem`, `gcs`, `s3`, `azure`).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the backend storage system where the backup resides (e.g., `filesystem`, `gcs`, `s3`, `azure`)." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "backup_id", + "description": "The unique identifier of the backup being restored. Must be URL-safe and compatible with filesystem paths (only lowercase, numbers, underscore, minus characters allowed).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the backup being restored. Must be URL-safe and compatible with filesystem paths (only lowercase, numbers, underscore, minus characters allowed)." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckBackupStatus.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckBackupStatus.json new file mode 100644 index 00000000..b3bf53da --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckBackupStatus.json @@ -0,0 +1,214 @@ +{ + "name": "CheckBackupStatus", + "fully_qualified_name": "WeaviateApi.CheckBackupStatus@0.1.0", + "description": "Get the current status of a backup creation process.\n\nUse this tool to manually check the status of a backup creation process by its ID on the specified backend. Ideal for when waiting for completion is disabled or not suitable.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "backup_backend_system", + "required": true, + "description": "Specifies the backend storage system where the backup resides, such as 'filesystem', 'gcs', 's3', or 'azure'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the backend storage system where the backup resides (e.g., `filesystem`, `gcs`, `s3`, `azure`)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "backend" + }, + { + "name": "backup_identifier", + "required": true, + "description": "The unique identifier of the backup. Use only lowercase, numbers, underscores, and minus characters.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the backup. Must be URL-safe and compatible with filesystem paths (only lowercase, numbers, underscore, minus characters allowed)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "bucket_name", + "required": false, + "description": "Specifies the bucket, container, or volume name if required by the backend.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional: Specifies the bucket, container, or volume name if required by the backend." + }, + "inferrable": true, + "http_endpoint_parameter_name": "bucket" + }, + { + "name": "backup_storage_path", + "required": false, + "description": "Specifies the path within the bucket/container/volume if the backup is not at the root. Optional.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional: Specifies the path within the bucket/container/volume if the backup is not at the root." + }, + "inferrable": true, + "http_endpoint_parameter_name": "path" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'backups.create.status'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/backups/{backend}/{id}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "bucket", + "tool_parameter_name": "bucket_name", + "description": "Optional: Specifies the bucket, container, or volume name if required by the backend.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional: Specifies the bucket, container, or volume name if required by the backend." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "path", + "tool_parameter_name": "backup_storage_path", + "description": "Optional: Specifies the path within the bucket/container/volume if the backup is not at the root.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional: Specifies the path within the bucket/container/volume if the backup is not at the root." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "backend", + "tool_parameter_name": "backup_backend_system", + "description": "Specifies the backend storage system where the backup resides (e.g., `filesystem`, `gcs`, `s3`, `azure`).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the backend storage system where the backup resides (e.g., `filesystem`, `gcs`, `s3`, `azure`)." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "backup_identifier", + "description": "The unique identifier of the backup. Must be URL-safe and compatible with filesystem paths (only lowercase, numbers, underscore, minus characters allowed).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the backup. Must be URL-safe and compatible with filesystem paths (only lowercase, numbers, underscore, minus characters allowed)." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckRolePermission.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckRolePermission.json new file mode 100644 index 00000000..a45fb198 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckRolePermission.json @@ -0,0 +1,720 @@ +{ + "name": "CheckRolePermission", + "fully_qualified_name": "WeaviateApi.CheckRolePermission@0.1.0", + "description": "Check if a role has specific permissions in the system.\n\nUse this tool to verify whether a particular role possesses certain permissions within the system. It should be called when there's a need to confirm role access rights.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "role_name", + "required": true, + "description": "The name of the role to check permissions for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the role." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "permissions_data", + "required": true, + "description": "JSON object specifying the permissions to be checked, including resources and actions like collections, tenants, roles, etc. Use specific names or regex patterns.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for backup actions." + }, + "data": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + }, + "object": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects." + } + }, + "inner_properties": null, + "description": "Resources applicable for data actions." + }, + "nodes": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "verbosity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "verbose", + "minimal" + ], + "properties": null, + "inner_properties": null, + "description": "Whether to allow (verbose) returning shards and stats data in the response." + }, + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for cluster actions." + }, + "users": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "users": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users." + } + }, + "inner_properties": null, + "description": "Resources applicable for user actions." + }, + "groups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "group": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups." + }, + "groupType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "If the group contains OIDC or database users." + } + }, + "inner_properties": null, + "description": "Resources applicable for group actions." + }, + "tenants": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + } + }, + "inner_properties": null, + "description": "Resources applicable for tenant actions." + }, + "roles": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "role": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles." + }, + "scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "all", + "match" + ], + "properties": null, + "inner_properties": null, + "description": "Set the scope for the manage role permission." + } + }, + "inner_properties": null, + "description": "Resources applicable for role actions." + }, + "collections": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for collection and/or tenant actions." + }, + "replicate": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific collection name, if left empty it will be ALL or *" + }, + "shard": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific shard name, if left empty it will be ALL or *" + } + }, + "inner_properties": null, + "description": "resources applicable for replicate actions" + }, + "aliases": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "alias": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases." + } + }, + "inner_properties": null, + "description": "Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified." + }, + "action": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "manage_backups", + "read_cluster", + "create_data", + "read_data", + "update_data", + "delete_data", + "read_nodes", + "create_roles", + "read_roles", + "update_roles", + "delete_roles", + "create_collections", + "read_collections", + "update_collections", + "delete_collections", + "assign_and_revoke_users", + "create_users", + "read_users", + "update_users", + "delete_users", + "create_tenants", + "read_tenants", + "update_tenants", + "delete_tenants", + "create_replicate", + "read_replicate", + "update_replicate", + "delete_replicate", + "create_aliases", + "read_aliases", + "update_aliases", + "delete_aliases", + "assign_and_revoke_groups", + "read_groups" + ], + "properties": null, + "inner_properties": null, + "description": "Allowed actions in weaviate." + } + }, + "inner_properties": null, + "description": "The permissions to be checked." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'hasPermission'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/roles/{id}/has-permission", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "role_name", + "description": "The name of the role.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the role." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "permissions_data", + "description": "The permissions to be checked.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "backups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for backup actions." + }, + "data": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + }, + "object": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects." + } + }, + "inner_properties": null, + "description": "Resources applicable for data actions." + }, + "nodes": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "verbosity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "verbose", + "minimal" + ], + "properties": null, + "inner_properties": null, + "description": "Whether to allow (verbose) returning shards and stats data in the response." + }, + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for cluster actions." + }, + "users": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "users": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users." + } + }, + "inner_properties": null, + "description": "Resources applicable for user actions." + }, + "groups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "group": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups." + }, + "groupType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "If the group contains OIDC or database users." + } + }, + "inner_properties": null, + "description": "Resources applicable for group actions." + }, + "tenants": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + } + }, + "inner_properties": null, + "description": "Resources applicable for tenant actions." + }, + "roles": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "role": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles." + }, + "scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "all", + "match" + ], + "properties": null, + "inner_properties": null, + "description": "Set the scope for the manage role permission." + } + }, + "inner_properties": null, + "description": "Resources applicable for role actions." + }, + "collections": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for collection and/or tenant actions." + }, + "replicate": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific collection name, if left empty it will be ALL or *" + }, + "shard": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific shard name, if left empty it will be ALL or *" + } + }, + "inner_properties": null, + "description": "resources applicable for replicate actions" + }, + "aliases": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "alias": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases." + } + }, + "inner_properties": null, + "description": "Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified." + }, + "action": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "manage_backups", + "read_cluster", + "create_data", + "read_data", + "update_data", + "delete_data", + "read_nodes", + "create_roles", + "read_roles", + "update_roles", + "delete_roles", + "create_collections", + "read_collections", + "update_collections", + "delete_collections", + "assign_and_revoke_users", + "create_users", + "read_users", + "update_users", + "delete_users", + "create_tenants", + "read_tenants", + "update_tenants", + "delete_tenants", + "create_replicate", + "read_replicate", + "update_replicate", + "delete_replicate", + "create_aliases", + "read_aliases", + "update_aliases", + "delete_aliases", + "assign_and_revoke_groups", + "read_groups" + ], + "properties": null, + "inner_properties": null, + "description": "Allowed actions in weaviate." + } + }, + "inner_properties": null, + "description": "The permissions to be checked." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The permissions to be checked.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"required\": [\n \"action\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"backups\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for backup actions.\"\n },\n \"data\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n },\n \"object\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for data actions.\"\n },\n \"nodes\": {\n \"type\": \"object\",\n \"properties\": {\n \"verbosity\": {\n \"type\": \"string\",\n \"description\": \"Whether to allow (verbose) returning shards and stats data in the response.\",\n \"default\": \"minimal\",\n \"enum\": [\n \"verbose\",\n \"minimal\"\n ]\n },\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for cluster actions.\"\n },\n \"users\": {\n \"type\": \"object\",\n \"properties\": {\n \"users\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for user actions.\"\n },\n \"groups\": {\n \"type\": \"object\",\n \"properties\": {\n \"group\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups.\",\n \"default\": \"*\"\n },\n \"groupType\": {\n \"type\": \"string\",\n \"description\": \"If the group contains OIDC or database users.\",\n \"enum\": [\n \"oidc\"\n ]\n }\n },\n \"description\": \"Resources applicable for group actions.\"\n },\n \"tenants\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for tenant actions.\"\n },\n \"roles\": {\n \"type\": \"object\",\n \"properties\": {\n \"role\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles.\",\n \"default\": \"*\"\n },\n \"scope\": {\n \"type\": \"string\",\n \"description\": \"Set the scope for the manage role permission.\",\n \"default\": \"match\",\n \"enum\": [\n \"all\",\n \"match\"\n ]\n }\n },\n \"description\": \"Resources applicable for role actions.\"\n },\n \"collections\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for collection and/or tenant actions.\"\n },\n \"replicate\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific collection name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n },\n \"shard\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific shard name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n }\n },\n \"description\": \"resources applicable for replicate actions\"\n },\n \"aliases\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"alias\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified.\"\n },\n \"action\": {\n \"type\": \"string\",\n \"description\": \"Allowed actions in weaviate.\",\n \"enum\": [\n \"manage_backups\",\n \"read_cluster\",\n \"create_data\",\n \"read_data\",\n \"update_data\",\n \"delete_data\",\n \"read_nodes\",\n \"create_roles\",\n \"read_roles\",\n \"update_roles\",\n \"delete_roles\",\n \"create_collections\",\n \"read_collections\",\n \"update_collections\",\n \"delete_collections\",\n \"assign_and_revoke_users\",\n \"create_users\",\n \"read_users\",\n \"update_users\",\n \"delete_users\",\n \"create_tenants\",\n \"read_tenants\",\n \"update_tenants\",\n \"delete_tenants\",\n \"create_replicate\",\n \"read_replicate\",\n \"update_replicate\",\n \"delete_replicate\",\n \"create_aliases\",\n \"read_aliases\",\n \"update_aliases\",\n \"delete_aliases\",\n \"assign_and_revoke_groups\",\n \"read_groups\"\n ]\n }\n },\n \"description\": \"Permissions attached to a role.\"\n }\n },\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"action\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"backups\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for backup actions.\"\n },\n \"data\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n },\n \"object\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for data actions.\"\n },\n \"nodes\": {\n \"type\": \"object\",\n \"properties\": {\n \"verbosity\": {\n \"type\": \"string\",\n \"description\": \"Whether to allow (verbose) returning shards and stats data in the response.\",\n \"default\": \"minimal\",\n \"enum\": [\n \"verbose\",\n \"minimal\"\n ]\n },\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for cluster actions.\"\n },\n \"users\": {\n \"type\": \"object\",\n \"properties\": {\n \"users\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for user actions.\"\n },\n \"groups\": {\n \"type\": \"object\",\n \"properties\": {\n \"group\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups.\",\n \"default\": \"*\"\n },\n \"groupType\": {\n \"type\": \"string\",\n \"description\": \"If the group contains OIDC or database users.\",\n \"enum\": [\n \"oidc\"\n ]\n }\n },\n \"description\": \"Resources applicable for group actions.\"\n },\n \"tenants\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for tenant actions.\"\n },\n \"roles\": {\n \"type\": \"object\",\n \"properties\": {\n \"role\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles.\",\n \"default\": \"*\"\n },\n \"scope\": {\n \"type\": \"string\",\n \"description\": \"Set the scope for the manage role permission.\",\n \"default\": \"match\",\n \"enum\": [\n \"all\",\n \"match\"\n ]\n }\n },\n \"description\": \"Resources applicable for role actions.\"\n },\n \"collections\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for collection and/or tenant actions.\"\n },\n \"replicate\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific collection name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n },\n \"shard\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific shard name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n }\n },\n \"description\": \"resources applicable for replicate actions\"\n },\n \"aliases\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"alias\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified.\"\n },\n \"action\": {\n \"type\": \"string\",\n \"description\": \"Allowed actions in weaviate.\",\n \"enum\": [\n \"manage_backups\",\n \"read_cluster\",\n \"create_data\",\n \"read_data\",\n \"update_data\",\n \"delete_data\",\n \"read_nodes\",\n \"create_roles\",\n \"read_roles\",\n \"update_roles\",\n \"delete_roles\",\n \"create_collections\",\n \"read_collections\",\n \"update_collections\",\n \"delete_collections\",\n \"assign_and_revoke_users\",\n \"create_users\",\n \"read_users\",\n \"update_users\",\n \"delete_users\",\n \"create_tenants\",\n \"read_tenants\",\n \"update_tenants\",\n \"delete_tenants\",\n \"create_replicate\",\n \"read_replicate\",\n \"update_replicate\",\n \"delete_replicate\",\n \"create_aliases\",\n \"read_aliases\",\n \"update_aliases\",\n \"delete_aliases\",\n \"assign_and_revoke_groups\",\n \"read_groups\"\n ]\n }\n },\n \"description\": \"Permissions attached to a role.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckWeaviateLiveness.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckWeaviateLiveness.json new file mode 100644 index 00000000..6e18da42 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckWeaviateLiveness.json @@ -0,0 +1,80 @@ +{ + "name": "CheckWeaviateLiveness", + "fully_qualified_name": "WeaviateApi.CheckWeaviateLiveness@0.1.0", + "description": "Check if the Weaviate instance is running properly.\n\nUse this tool to perform a basic health check on a Weaviate instance, ensuring it is running and responding to HTTP requests. Useful for monitoring and maintenance tasks.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'weaviate.wellknown.liveness'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/.well-known/live", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckWeaviateReadiness.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckWeaviateReadiness.json new file mode 100644 index 00000000..73f78ee7 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CheckWeaviateReadiness.json @@ -0,0 +1,80 @@ +{ + "name": "CheckWeaviateReadiness", + "fully_qualified_name": "WeaviateApi.CheckWeaviateReadiness@0.1.0", + "description": "Check if the Weaviate instance is ready to accept traffic.\n\nUse this tool to determine if the Weaviate instance has completed its startup routines and is ready for operations such as data import and queries. Ideal for readiness checks in container orchestration contexts like Kubernetes.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'weaviate.wellknown.readiness'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/.well-known/ready", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateAliasMapping.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateAliasMapping.json new file mode 100644 index 00000000..b29a850e --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateAliasMapping.json @@ -0,0 +1,148 @@ +{ + "name": "CreateAliasMapping", + "fully_qualified_name": "WeaviateApi.CreateAliasMapping@0.1.0", + "description": "Create a new alias for a collection in Weaviate.\n\nThis tool creates a new alias mapping between an alias name and a collection (class) in Weaviate. Use it to set up alternative names for accessing collections.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "alias_name", + "required": false, + "description": "The unique name of the alias, serving as an alternative identifier for the specified collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique name of the alias that serves as an alternative identifier for the collection." + }, + "inferrable": true, + "http_endpoint_parameter_name": "alias" + }, + { + "name": "collection_class_name", + "required": false, + "description": "The name of the collection (class) to which the alias is mapped.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) to which this alias is mapped." + }, + "inferrable": true, + "http_endpoint_parameter_name": "class" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'aliases.create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/aliases", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "alias", + "tool_parameter_name": "alias_name", + "description": "The unique name of the alias that serves as an alternative identifier for the collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique name of the alias that serves as an alternative identifier for the collection." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "class", + "tool_parameter_name": "collection_class_name", + "description": "The name of the collection (class) to which this alias is mapped.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) to which this alias is mapped." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"alias\": {\n \"type\": \"string\",\n \"description\": \"The unique name of the alias that serves as an alternative identifier for the collection.\"\n },\n \"class\": {\n \"type\": \"string\",\n \"description\": \"The name of the collection (class) to which this alias is mapped.\"\n }\n },\n \"description\": \"Represents the mapping between an alias name and a collection. An alias provides an alternative name for accessing a collection.\"\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"alias\": {\n \"type\": \"string\",\n \"description\": \"The unique name of the alias that serves as an alternative identifier for the collection.\"\n },\n \"class\": {\n \"type\": \"string\",\n \"description\": \"The name of the collection (class) to which this alias is mapped.\"\n }\n },\n \"description\": \"Represents the mapping between an alias name and a collection. An alias provides an alternative name for accessing a collection.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateBackup.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateBackup.json new file mode 100644 index 00000000..255e0f87 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateBackup.json @@ -0,0 +1,420 @@ +{ + "name": "CreateBackup", + "fully_qualified_name": "WeaviateApi.CreateBackup@0.1.0", + "description": "Initiates backup creation for specified collections.\n\nThis tool starts the process of creating a backup for the specified collections on a designated backend storage using Weaviate. The backup is compressed using gzip by default, and the system remains operational during the backup process. Use this tool when you need to ensure data is safely backed up without interrupting service.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "backend_storage_system", + "required": true, + "description": "Specifies the backend storage system where the backup will be stored, such as `filesystem`, `gcs`, `s3`, or `azure`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the backend storage system where the backup will be stored (e.g., `filesystem`, `gcs`, `s3`, `azure`)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "backend" + }, + { + "name": "backup_id", + "required": false, + "description": "The ID of the backup. Must be URL-safe, using only lowercase, numbers, underscore, and minus characters.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the backup (required). Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "storage_endpoint_name", + "required": false, + "description": "Name of the storage endpoint, such as s3.amazonaws.com, where the backup will be stored.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the endpoint, e.g. s3.amazonaws.com." + }, + "inferrable": true, + "http_endpoint_parameter_name": "config.Endpoint" + }, + { + "name": "bucket_name", + "required": false, + "description": "Name of the bucket, container, or volume where the backup will be stored.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the bucket, container, volume, etc." + }, + "inferrable": true, + "http_endpoint_parameter_name": "config.Bucket" + }, + { + "name": "bucket_path", + "required": false, + "description": "Specifies the path or key within the storage bucket. This helps in locating where the backup will be stored within the bucket.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Path or key within the bucket." + }, + "inferrable": true, + "http_endpoint_parameter_name": "config.Path" + }, + { + "name": "cpu_utilization_percentage", + "required": false, + "description": "Sets desired CPU core utilization, ranging from 1% to 80%, during backup creation.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Desired CPU core utilization ranging from 1%-80%" + }, + "inferrable": true, + "http_endpoint_parameter_name": "config.CPUPercentage" + }, + { + "name": "backup_chunk_size", + "required": false, + "description": "Set the chunk size for the backup with a minimum of 2MB, default of 128MB, and a maximum of 512MB.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Aimed chunk size, with a minimum of 2MB, default of 128MB, and a maximum of 512MB. The actual chunk size may vary." + }, + "inferrable": true, + "http_endpoint_parameter_name": "config.ChunkSize" + }, + { + "name": "compression_level", + "required": false, + "description": "Specifies the compression level for the backup: DefaultCompression, BestSpeed, or BestCompression.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "DefaultCompression", + "BestSpeed", + "BestCompression" + ], + "properties": null, + "inner_properties": null, + "description": "compression level used by compression algorithm" + }, + "inferrable": true, + "http_endpoint_parameter_name": "config.CompressionLevel" + }, + { + "name": "collections_to_include_in_backup", + "required": false, + "description": "List of collections to include in the backup. If not set, all collections are included. Cannot be used with `collections_to_exclude_in_backup`.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of collections to include in the backup creation process. If not set, all collections are included. Cannot be used together with `exclude`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "include" + }, + { + "name": "exclude_collections", + "required": false, + "description": "List of collections to exclude from the backup. Overrides include if both are set.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of collections to exclude from the backup creation process. If not set, all collections are included. Cannot be used together with `include`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "exclude" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'backups.create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/backups/{backend}", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "backend", + "tool_parameter_name": "backend_storage_system", + "description": "Specifies the backend storage system where the backup will be stored (e.g., `filesystem`, `gcs`, `s3`, `azure`).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the backend storage system where the backup will be stored (e.g., `filesystem`, `gcs`, `s3`, `azure`)." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "backup_id", + "description": "The ID of the backup (required). Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the backup (required). Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "config.Endpoint", + "tool_parameter_name": "storage_endpoint_name", + "description": "Name of the endpoint, e.g. s3.amazonaws.com.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the endpoint, e.g. s3.amazonaws.com." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "config.Bucket", + "tool_parameter_name": "bucket_name", + "description": "Name of the bucket, container, volume, etc.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the bucket, container, volume, etc." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "config.Path", + "tool_parameter_name": "bucket_path", + "description": "Path or key within the bucket.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Path or key within the bucket." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "config.CPUPercentage", + "tool_parameter_name": "cpu_utilization_percentage", + "description": "Desired CPU core utilization ranging from 1%-80%", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Desired CPU core utilization ranging from 1%-80%" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "config.ChunkSize", + "tool_parameter_name": "backup_chunk_size", + "description": "Aimed chunk size, with a minimum of 2MB, default of 128MB, and a maximum of 512MB. The actual chunk size may vary.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Aimed chunk size, with a minimum of 2MB, default of 128MB, and a maximum of 512MB. The actual chunk size may vary." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "config.CompressionLevel", + "tool_parameter_name": "compression_level", + "description": "compression level used by compression algorithm", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "DefaultCompression", + "BestSpeed", + "BestCompression" + ], + "properties": null, + "inner_properties": null, + "description": "compression level used by compression algorithm" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": "DefaultCompression", + "documentation_urls": [] + }, + { + "name": "include", + "tool_parameter_name": "collections_to_include_in_backup", + "description": "List of collections to include in the backup creation process. If not set, all collections are included. Cannot be used together with `exclude`.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of collections to include in the backup creation process. If not set, all collections are included. Cannot be used together with `exclude`." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "exclude", + "tool_parameter_name": "exclude_collections", + "description": "List of collections to exclude from the backup creation process. If not set, all collections are included. Cannot be used together with `include`.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of collections to exclude from the backup creation process. If not set, all collections are included. Cannot be used together with `include`." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Details of the backup request, including the backup ID and collections to include or exclude.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The ID of the backup (required). Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed.\"\n },\n \"config\": {\n \"type\": \"object\",\n \"properties\": {\n \"Endpoint\": {\n \"type\": \"string\",\n \"description\": \"Name of the endpoint, e.g. s3.amazonaws.com.\"\n },\n \"Bucket\": {\n \"type\": \"string\",\n \"description\": \"Name of the bucket, container, volume, etc.\"\n },\n \"Path\": {\n \"type\": \"string\",\n \"description\": \"Path or key within the bucket.\"\n },\n \"CPUPercentage\": {\n \"maximum\": 80,\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Desired CPU core utilization ranging from 1%-80%\",\n \"nullable\": false\n },\n \"ChunkSize\": {\n \"maximum\": 512,\n \"minimum\": 2,\n \"type\": \"integer\",\n \"description\": \"Aimed chunk size, with a minimum of 2MB, default of 128MB, and a maximum of 512MB. The actual chunk size may vary.\",\n \"nullable\": false\n },\n \"CompressionLevel\": {\n \"type\": \"string\",\n \"description\": \"compression level used by compression algorithm\",\n \"nullable\": false,\n \"default\": \"DefaultCompression\",\n \"enum\": [\n \"DefaultCompression\",\n \"BestSpeed\",\n \"BestCompression\"\n ]\n }\n },\n \"description\": \"Backup custom configuration.\"\n },\n \"include\": {\n \"type\": \"array\",\n \"description\": \"List of collections to include in the backup creation process. If not set, all collections are included. Cannot be used together with `exclude`.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"List of collections to exclude from the backup creation process. If not set, all collections are included. Cannot be used together with `include`.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Request body for creating a backup for a set of collections.\"\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The ID of the backup (required). Must be URL-safe and work as a filesystem path, only lowercase, numbers, underscore, minus characters allowed.\"\n },\n \"config\": {\n \"type\": \"object\",\n \"properties\": {\n \"Endpoint\": {\n \"type\": \"string\",\n \"description\": \"Name of the endpoint, e.g. s3.amazonaws.com.\"\n },\n \"Bucket\": {\n \"type\": \"string\",\n \"description\": \"Name of the bucket, container, volume, etc.\"\n },\n \"Path\": {\n \"type\": \"string\",\n \"description\": \"Path or key within the bucket.\"\n },\n \"CPUPercentage\": {\n \"maximum\": 80,\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Desired CPU core utilization ranging from 1%-80%\",\n \"nullable\": false\n },\n \"ChunkSize\": {\n \"maximum\": 512,\n \"minimum\": 2,\n \"type\": \"integer\",\n \"description\": \"Aimed chunk size, with a minimum of 2MB, default of 128MB, and a maximum of 512MB. The actual chunk size may vary.\",\n \"nullable\": false\n },\n \"CompressionLevel\": {\n \"type\": \"string\",\n \"description\": \"compression level used by compression algorithm\",\n \"nullable\": false,\n \"default\": \"DefaultCompression\",\n \"enum\": [\n \"DefaultCompression\",\n \"BestSpeed\",\n \"BestCompression\"\n ]\n }\n },\n \"description\": \"Backup custom configuration.\"\n },\n \"include\": {\n \"type\": \"array\",\n \"description\": \"List of collections to include in the backup creation process. If not set, all collections are included. Cannot be used together with `exclude`.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"List of collections to exclude from the backup creation process. If not set, all collections are included. Cannot be used together with `include`.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Request body for creating a backup for a set of collections.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateDatabaseUser.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateDatabaseUser.json new file mode 100644 index 00000000..336d8d48 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateDatabaseUser.json @@ -0,0 +1,181 @@ +{ + "name": "CreateDatabaseUser", + "fully_qualified_name": "WeaviateApi.CreateDatabaseUser@0.1.0", + "description": "Create a new database user and obtain an API key.\n\nThis tool is used to create a new database user by specifying a name. It returns an API key for the created user.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_name", + "required": true, + "description": "Specify the name for the new database user. It should be a string that identifies the user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "set_creation_time_experimental", + "required": false, + "description": "EXPERIMENTAL: Set the given time as creation time. This will be removed in future versions.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "EXPERIMENTAL, DONT USE. THIS WILL BE REMOVED AGAIN. - set the given time as creation time" + }, + "inferrable": true, + "http_endpoint_parameter_name": "createTime" + }, + { + "name": "disable_import_experimental", + "required": false, + "description": "Set to true to prevent importing an API key from a static user. Experimental and will be removed.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "EXPERIMENTAL, DONT USE. THIS WILL BE REMOVED AGAIN. - import api key from static user" + }, + "inferrable": true, + "http_endpoint_parameter_name": "import" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createUser'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/users/db/{user_id}", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "user_id", + "tool_parameter_name": "user_name", + "description": "The name of the user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "import", + "tool_parameter_name": "disable_import_experimental", + "description": "EXPERIMENTAL, DONT USE. THIS WILL BE REMOVED AGAIN. - import api key from static user", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "EXPERIMENTAL, DONT USE. THIS WILL BE REMOVED AGAIN. - import api key from static user" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "createTime", + "tool_parameter_name": "set_creation_time_experimental", + "description": "EXPERIMENTAL, DONT USE. THIS WILL BE REMOVED AGAIN. - set the given time as creation time", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "EXPERIMENTAL, DONT USE. THIS WILL BE REMOVED AGAIN. - set the given time as creation time" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"import\": {\n \"type\": \"boolean\",\n \"description\": \"EXPERIMENTAL, DONT USE. THIS WILL BE REMOVED AGAIN. - import api key from static user\",\n \"default\": false\n },\n \"createTime\": {\n \"type\": \"string\",\n \"description\": \"EXPERIMENTAL, DONT USE. THIS WILL BE REMOVED AGAIN. - set the given time as creation time\",\n \"format\": \"date-time\"\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"import\": {\n \"type\": \"boolean\",\n \"description\": \"EXPERIMENTAL, DONT USE. THIS WILL BE REMOVED AGAIN. - import api key from static user\",\n \"default\": false\n },\n \"createTime\": {\n \"type\": \"string\",\n \"description\": \"EXPERIMENTAL, DONT USE. THIS WILL BE REMOVED AGAIN. - set the given time as creation time\",\n \"format\": \"date-time\"\n }\n }\n }\n }\n },\n \"required\": false\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateObjectInWeaviate.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateObjectInWeaviate.json new file mode 100644 index 00000000..cc5afef6 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateObjectInWeaviate.json @@ -0,0 +1,310 @@ +{ + "name": "CreateObjectInWeaviate", + "fully_qualified_name": "WeaviateApi.CreateObjectInWeaviate@0.1.0", + "description": "Create a new data object in Weaviate.\n\nThis tool creates a new data object in Weaviate, ensuring that the object's metadata and schema values are validated. It's useful for adding new data objects when there is no existing object with the same ID.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "object_data", + "required": true, + "description": "The JSON object containing details such as class, properties, and other metadata for the object to be created in Weaviate.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "vectorWeights": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The UUID of the object." + }, + "creationTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of creation of this object in milliseconds since epoch UTC." + }, + "lastUpdateTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of the last object update in milliseconds since epoch UTC." + }, + "vector": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting." + }, + "vectors": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A map of named vectors for multi-vector representations." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant the object belongs to." + }, + "additional": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Additional meta information about a single object." + } + }, + "inner_properties": null, + "description": "The object to be created." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "consistency_level_replica_acknowledgement", + "required": false, + "description": "Specifies the number of replicas that must confirm the request for it to be successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency_level" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'objects.create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/objects", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "consistency_level", + "tool_parameter_name": "consistency_level_replica_acknowledgement", + "description": "Determines how many replicas must acknowledge a request before it is considered successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "object_data", + "description": "The object to be created.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "vectorWeights": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The UUID of the object." + }, + "creationTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of creation of this object in milliseconds since epoch UTC." + }, + "lastUpdateTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of the last object update in milliseconds since epoch UTC." + }, + "vector": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting." + }, + "vectors": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A map of named vectors for multi-vector representations." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant the object belongs to." + }, + "additional": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Additional meta information about a single object." + } + }, + "inner_properties": null, + "description": "The object to be created." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The object to be created.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (class) the object belongs to.\"\n },\n \"vectorWeights\": {\n \"type\": \"object\",\n \"description\": \"Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The UUID of the object.\",\n \"format\": \"uuid\"\n },\n \"creationTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of creation of this object in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"lastUpdateTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of the last object update in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"vector\": {\n \"type\": \"array\",\n \"description\": \"A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting.\",\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float\"\n }\n },\n \"vectors\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"description\": \"A vector representation of the object. If provided at object creation, this wil take precedence over any vectorizer setting.\"\n },\n \"description\": \"A map of named vectors for multi-vector representations.\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant the object belongs to.\"\n },\n \"additional\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"(Response only) Additional meta information about a single object.\"\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (class) the object belongs to.\"\n },\n \"vectorWeights\": {\n \"type\": \"object\",\n \"description\": \"Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The UUID of the object.\",\n \"format\": \"uuid\"\n },\n \"creationTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of creation of this object in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"lastUpdateTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of the last object update in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"vector\": {\n \"type\": \"array\",\n \"description\": \"A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting.\",\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float\"\n }\n },\n \"vectors\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"description\": \"A vector representation of the object. If provided at object creation, this wil take precedence over any vectorizer setting.\"\n },\n \"description\": \"A map of named vectors for multi-vector representations.\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant the object belongs to.\"\n },\n \"additional\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"(Response only) Additional meta information about a single object.\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateRoleWithPermissions.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateRoleWithPermissions.json new file mode 100644 index 00000000..2d397a51 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateRoleWithPermissions.json @@ -0,0 +1,721 @@ +{ + "name": "CreateRoleWithPermissions", + "fully_qualified_name": "WeaviateApi.CreateRoleWithPermissions@0.1.0", + "description": "Create a new role with specified permissions.\n\nUse this tool to create a new role in the system and define its permissions. It should be called when there is a need to set up access controls for new role-based functionalities.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "role_permissions_data", + "required": true, + "description": "JSON object specifying the role name and permissions. Includes collections, tenants, and actions defined via regex or specific names.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name (ID) of the role." + }, + "permissions": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "backups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for backup actions." + }, + "data": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + }, + "object": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects." + } + }, + "inner_properties": null, + "description": "Resources applicable for data actions." + }, + "nodes": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "verbosity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "verbose", + "minimal" + ], + "properties": null, + "inner_properties": null, + "description": "Whether to allow (verbose) returning shards and stats data in the response." + }, + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for cluster actions." + }, + "users": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "users": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users." + } + }, + "inner_properties": null, + "description": "Resources applicable for user actions." + }, + "groups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "group": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups." + }, + "groupType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "If the group contains OIDC or database users." + } + }, + "inner_properties": null, + "description": "Resources applicable for group actions." + }, + "tenants": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + } + }, + "inner_properties": null, + "description": "Resources applicable for tenant actions." + }, + "roles": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "role": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles." + }, + "scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "all", + "match" + ], + "properties": null, + "inner_properties": null, + "description": "Set the scope for the manage role permission." + } + }, + "inner_properties": null, + "description": "Resources applicable for role actions." + }, + "collections": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for collection and/or tenant actions." + }, + "replicate": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific collection name, if left empty it will be ALL or *" + }, + "shard": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific shard name, if left empty it will be ALL or *" + } + }, + "inner_properties": null, + "description": "resources applicable for replicate actions" + }, + "aliases": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "alias": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases." + } + }, + "inner_properties": null, + "description": "Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified." + }, + "action": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "manage_backups", + "read_cluster", + "create_data", + "read_data", + "update_data", + "delete_data", + "read_nodes", + "create_roles", + "read_roles", + "update_roles", + "delete_roles", + "create_collections", + "read_collections", + "update_collections", + "delete_collections", + "assign_and_revoke_users", + "create_users", + "read_users", + "update_users", + "delete_users", + "create_tenants", + "read_tenants", + "update_tenants", + "delete_tenants", + "create_replicate", + "read_replicate", + "update_replicate", + "delete_replicate", + "create_aliases", + "read_aliases", + "update_aliases", + "delete_aliases", + "assign_and_revoke_groups", + "read_groups" + ], + "properties": null, + "inner_properties": null, + "description": "Allowed actions in weaviate." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'createRole'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/roles", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "role_permissions_data", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name (ID) of the role." + }, + "permissions": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "backups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for backup actions." + }, + "data": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + }, + "object": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects." + } + }, + "inner_properties": null, + "description": "Resources applicable for data actions." + }, + "nodes": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "verbosity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "verbose", + "minimal" + ], + "properties": null, + "inner_properties": null, + "description": "Whether to allow (verbose) returning shards and stats data in the response." + }, + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for cluster actions." + }, + "users": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "users": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users." + } + }, + "inner_properties": null, + "description": "Resources applicable for user actions." + }, + "groups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "group": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups." + }, + "groupType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "If the group contains OIDC or database users." + } + }, + "inner_properties": null, + "description": "Resources applicable for group actions." + }, + "tenants": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + } + }, + "inner_properties": null, + "description": "Resources applicable for tenant actions." + }, + "roles": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "role": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles." + }, + "scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "all", + "match" + ], + "properties": null, + "inner_properties": null, + "description": "Set the scope for the manage role permission." + } + }, + "inner_properties": null, + "description": "Resources applicable for role actions." + }, + "collections": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for collection and/or tenant actions." + }, + "replicate": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific collection name, if left empty it will be ALL or *" + }, + "shard": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific shard name, if left empty it will be ALL or *" + } + }, + "inner_properties": null, + "description": "resources applicable for replicate actions" + }, + "aliases": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "alias": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases." + } + }, + "inner_properties": null, + "description": "Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified." + }, + "action": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "manage_backups", + "read_cluster", + "create_data", + "read_data", + "update_data", + "delete_data", + "read_nodes", + "create_roles", + "read_roles", + "update_roles", + "delete_roles", + "create_collections", + "read_collections", + "update_collections", + "delete_collections", + "assign_and_revoke_users", + "create_users", + "read_users", + "update_users", + "delete_users", + "create_tenants", + "read_tenants", + "update_tenants", + "delete_tenants", + "create_replicate", + "read_replicate", + "update_replicate", + "delete_replicate", + "create_aliases", + "read_aliases", + "update_aliases", + "delete_aliases", + "assign_and_revoke_groups", + "read_groups" + ], + "properties": null, + "inner_properties": null, + "description": "Allowed actions in weaviate." + } + }, + "description": null + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"required\": [\n \"name\",\n \"permissions\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name (ID) of the role.\"\n },\n \"permissions\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"action\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"backups\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for backup actions.\"\n },\n \"data\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n },\n \"object\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for data actions.\"\n },\n \"nodes\": {\n \"type\": \"object\",\n \"properties\": {\n \"verbosity\": {\n \"type\": \"string\",\n \"description\": \"Whether to allow (verbose) returning shards and stats data in the response.\",\n \"default\": \"minimal\",\n \"enum\": [\n \"verbose\",\n \"minimal\"\n ]\n },\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for cluster actions.\"\n },\n \"users\": {\n \"type\": \"object\",\n \"properties\": {\n \"users\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for user actions.\"\n },\n \"groups\": {\n \"type\": \"object\",\n \"properties\": {\n \"group\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups.\",\n \"default\": \"*\"\n },\n \"groupType\": {\n \"type\": \"string\",\n \"description\": \"If the group contains OIDC or database users.\",\n \"enum\": [\n \"oidc\"\n ]\n }\n },\n \"description\": \"Resources applicable for group actions.\"\n },\n \"tenants\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for tenant actions.\"\n },\n \"roles\": {\n \"type\": \"object\",\n \"properties\": {\n \"role\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles.\",\n \"default\": \"*\"\n },\n \"scope\": {\n \"type\": \"string\",\n \"description\": \"Set the scope for the manage role permission.\",\n \"default\": \"match\",\n \"enum\": [\n \"all\",\n \"match\"\n ]\n }\n },\n \"description\": \"Resources applicable for role actions.\"\n },\n \"collections\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for collection and/or tenant actions.\"\n },\n \"replicate\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific collection name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n },\n \"shard\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific shard name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n }\n },\n \"description\": \"resources applicable for replicate actions\"\n },\n \"aliases\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"alias\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified.\"\n },\n \"action\": {\n \"type\": \"string\",\n \"description\": \"Allowed actions in weaviate.\",\n \"enum\": [\n \"manage_backups\",\n \"read_cluster\",\n \"create_data\",\n \"read_data\",\n \"update_data\",\n \"delete_data\",\n \"read_nodes\",\n \"create_roles\",\n \"read_roles\",\n \"update_roles\",\n \"delete_roles\",\n \"create_collections\",\n \"read_collections\",\n \"update_collections\",\n \"delete_collections\",\n \"assign_and_revoke_users\",\n \"create_users\",\n \"read_users\",\n \"update_users\",\n \"delete_users\",\n \"create_tenants\",\n \"read_tenants\",\n \"update_tenants\",\n \"delete_tenants\",\n \"create_replicate\",\n \"read_replicate\",\n \"update_replicate\",\n \"delete_replicate\",\n \"create_aliases\",\n \"read_aliases\",\n \"update_aliases\",\n \"delete_aliases\",\n \"assign_and_revoke_groups\",\n \"read_groups\"\n ]\n }\n },\n \"description\": \"Permissions attached to a role.\"\n }\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"name\",\n \"permissions\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name (ID) of the role.\"\n },\n \"permissions\": {\n \"type\": \"array\",\n \"items\": {\n \"required\": [\n \"action\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"backups\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for backup actions.\"\n },\n \"data\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n },\n \"object\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for data actions.\"\n },\n \"nodes\": {\n \"type\": \"object\",\n \"properties\": {\n \"verbosity\": {\n \"type\": \"string\",\n \"description\": \"Whether to allow (verbose) returning shards and stats data in the response.\",\n \"default\": \"minimal\",\n \"enum\": [\n \"verbose\",\n \"minimal\"\n ]\n },\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for cluster actions.\"\n },\n \"users\": {\n \"type\": \"object\",\n \"properties\": {\n \"users\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for user actions.\"\n },\n \"groups\": {\n \"type\": \"object\",\n \"properties\": {\n \"group\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups.\",\n \"default\": \"*\"\n },\n \"groupType\": {\n \"type\": \"string\",\n \"description\": \"If the group contains OIDC or database users.\",\n \"enum\": [\n \"oidc\"\n ]\n }\n },\n \"description\": \"Resources applicable for group actions.\"\n },\n \"tenants\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for tenant actions.\"\n },\n \"roles\": {\n \"type\": \"object\",\n \"properties\": {\n \"role\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles.\",\n \"default\": \"*\"\n },\n \"scope\": {\n \"type\": \"string\",\n \"description\": \"Set the scope for the manage role permission.\",\n \"default\": \"match\",\n \"enum\": [\n \"all\",\n \"match\"\n ]\n }\n },\n \"description\": \"Resources applicable for role actions.\"\n },\n \"collections\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for collection and/or tenant actions.\"\n },\n \"replicate\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific collection name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n },\n \"shard\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific shard name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n }\n },\n \"description\": \"resources applicable for replicate actions\"\n },\n \"aliases\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"alias\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified.\"\n },\n \"action\": {\n \"type\": \"string\",\n \"description\": \"Allowed actions in weaviate.\",\n \"enum\": [\n \"manage_backups\",\n \"read_cluster\",\n \"create_data\",\n \"read_data\",\n \"update_data\",\n \"delete_data\",\n \"read_nodes\",\n \"create_roles\",\n \"read_roles\",\n \"update_roles\",\n \"delete_roles\",\n \"create_collections\",\n \"read_collections\",\n \"update_collections\",\n \"delete_collections\",\n \"assign_and_revoke_users\",\n \"create_users\",\n \"read_users\",\n \"update_users\",\n \"delete_users\",\n \"create_tenants\",\n \"read_tenants\",\n \"update_tenants\",\n \"delete_tenants\",\n \"create_replicate\",\n \"read_replicate\",\n \"update_replicate\",\n \"delete_replicate\",\n \"create_aliases\",\n \"read_aliases\",\n \"update_aliases\",\n \"delete_aliases\",\n \"assign_and_revoke_groups\",\n \"read_groups\"\n ]\n }\n },\n \"description\": \"Permissions attached to a role.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateSchemaObject.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateSchemaObject.json new file mode 100644 index 00000000..32e952b0 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateSchemaObject.json @@ -0,0 +1,947 @@ +{ + "name": "CreateSchemaObject", + "fully_qualified_name": "WeaviateApi.CreateSchemaObject@0.1.0", + "description": "Create a new collection (class) in Weaviate.\n\nThis tool is used to define and create a new collection (class) in Weaviate. It provides explicit control over the schema definition, which is essential when `AutoSchema` is not relied upon. Use this tool to ensure accurate schema setup in a Weaviate instance.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_definition", + "required": true, + "description": "JSON object defining the collection to create, including class name and configurations.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (formerly 'class') (required). Multiple words should be concatenated in CamelCase, e.g. `ArticleAuthor`." + }, + "vectorConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configure named vectors. Either use this field or `vectorizer`, `vectorIndexType`, and `vectorIndexConfig` fields. Available from `v1.24.0`." + }, + "vectorIndexType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the vector index type to use for the collection (e.g. `hnsw` or `flat`)." + }, + "vectorIndexConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Vector-index config, that is specific to the type of index selected in vectorIndexType" + }, + "shardingConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manage how the index should be sharded and distributed in the cluster" + }, + "replicationConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "factor": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of times a collection (class) is replicated (default: 1)." + }, + "asyncEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Enable asynchronous replication (default: `false`)." + }, + "deletionStrategy": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "NoAutomatedResolution", + "DeleteOnConflict", + "TimeBasedResolution" + ], + "properties": null, + "inner_properties": null, + "description": "Conflict resolution strategy for deleted objects." + } + }, + "inner_properties": null, + "description": "Configure how replication is executed in a cluster" + }, + "invertedIndexConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cleanupIntervalSeconds": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asynchronous index clean up happens every n seconds (default: 60)." + }, + "bm25": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "k1": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Calibrates term-weight scaling based on the term frequency within a document (default: 1.2)." + }, + "b": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Calibrates term-weight scaling based on the document length (default: 0.75)." + } + }, + "inner_properties": null, + "description": "Tuning parameters for the BM25 algorithm." + }, + "stopwords": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "preset": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Pre-existing list of common words by language (default: `en`). Options: [`en`, `none`]." + }, + "additions": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Stopwords to be considered additionally (default: []). Can be any array of custom strings." + }, + "removals": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Stopwords to be removed from consideration (default: []). Can be any array of custom strings." + } + }, + "inner_properties": null, + "description": "Fine-grained control over stopword list usage." + }, + "indexTimestamps": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Index each object by its internal timestamps (default: `false`)." + }, + "indexNullState": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Index each object with the null state (default: `false`)." + }, + "indexPropertyLength": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Index length of properties (default: `false`)." + }, + "usingBlockMaxWAND": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Using BlockMax WAND for query execution (default: `false`, will be `true` for new collections created after 1.30)." + } + }, + "inner_properties": null, + "description": "Configure the inverted index built into Weaviate. See [Reference: Inverted index](https://docs.weaviate.io/weaviate/config-refs/indexing/inverted-index#inverted-index-parameters) for details." + }, + "multiTenancyConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not multi-tenancy is enabled for this collection (class) (default: `false`)." + }, + "autoTenantCreation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Nonexistent tenants should (not) be created implicitly (default: `false`)." + }, + "autoTenantActivation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Existing tenants should (not) be turned HOT implicitly when they are accessed and in another activity status (default: `false`)." + } + }, + "inner_properties": null, + "description": "Configuration related to multi-tenancy within a collection (class)" + }, + "vectorizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specify how the vectors for this collection should be determined. The options are either `none` - this means you have to import a vector with each object yourself - or the name of a module that provides vectorization capabilities, such as `text2vec-weaviate`. If left empty, it will use the globally configured default ([`DEFAULT_VECTORIZER_MODULE`](https://docs.weaviate.io/deploy/configuration/env-vars)) which can itself either be `none` or a specific module." + }, + "moduleConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configuration specific to modules in a collection context." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the collection for metadata purposes." + }, + "properties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "dataType": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Data type of the property (required). If it starts with a capital (for example Person), may be a reference to another type." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the property." + }, + "moduleConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configuration specific to modules in a collection context." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property (required). Multiple words should be concatenated in camelCase, e.g. `nameOfAuthor`." + }, + "indexInverted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Deprecated). Whether to include this property in the inverted index. If `false`, this property cannot be used in `where` filters, `bm25` or `hybrid` search.

Unrelated to vectorization behavior (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)" + }, + "indexFilterable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include this property in the filterable, Roaring Bitmap index. If `false`, this property cannot be used in `where` filters.

Note: Unrelated to vectorization behavior." + }, + "indexSearchable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules" + }, + "indexRangeFilters": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include this property in the filterable, range-based Roaring Bitmap index. Provides better performance for range queries compared to filterable index in large datasets. Applicable only to properties of data type int, number, date." + }, + "tokenization": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch" + ], + "properties": null, + "inner_properties": null, + "description": "Determines how a property is indexed. This setting applies to `text` and `text[]` data types. The following tokenization methods are available:

- `word` (default): Splits the text on any non-alphanumeric characters and lowercases the tokens.
- `lowercase`: Splits the text on whitespace and lowercases the tokens.
- `whitespace`: Splits the text on whitespace. This tokenization is case-sensitive.
- `field`: Indexes the entire property value as a single token after trimming whitespace.
- `trigram`: Splits the property into rolling trigrams (three-character sequences).
- `gse`: Uses the `gse` tokenizer, suitable for Chinese language text. [See `gse` docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- `kagome_ja`: Uses the `Kagome` tokenizer with a Japanese (IPA) dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).
- `kagome_kr`: Uses the `Kagome` tokenizer with a Korean dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).

See [Reference: Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) for details." + }, + "nestedProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "dataType": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexFilterable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexSearchable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexRangeFilters": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "tokenization": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "nestedProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "The properties of the nested object(s). Applies to object and object[] data types." + } + }, + "description": "The properties of the nested object(s). Applies to object and object[] data types." + } + }, + "description": "Define properties of the collection." + } + }, + "inner_properties": null, + "description": "The definition of the collection (class) to create." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'schema.objects.create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "collection_definition", + "description": "The definition of the collection (class) to create.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (formerly 'class') (required). Multiple words should be concatenated in CamelCase, e.g. `ArticleAuthor`." + }, + "vectorConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configure named vectors. Either use this field or `vectorizer`, `vectorIndexType`, and `vectorIndexConfig` fields. Available from `v1.24.0`." + }, + "vectorIndexType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the vector index type to use for the collection (e.g. `hnsw` or `flat`)." + }, + "vectorIndexConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Vector-index config, that is specific to the type of index selected in vectorIndexType" + }, + "shardingConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manage how the index should be sharded and distributed in the cluster" + }, + "replicationConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "factor": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of times a collection (class) is replicated (default: 1)." + }, + "asyncEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Enable asynchronous replication (default: `false`)." + }, + "deletionStrategy": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "NoAutomatedResolution", + "DeleteOnConflict", + "TimeBasedResolution" + ], + "properties": null, + "inner_properties": null, + "description": "Conflict resolution strategy for deleted objects." + } + }, + "inner_properties": null, + "description": "Configure how replication is executed in a cluster" + }, + "invertedIndexConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cleanupIntervalSeconds": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asynchronous index clean up happens every n seconds (default: 60)." + }, + "bm25": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "k1": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Calibrates term-weight scaling based on the term frequency within a document (default: 1.2)." + }, + "b": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Calibrates term-weight scaling based on the document length (default: 0.75)." + } + }, + "inner_properties": null, + "description": "Tuning parameters for the BM25 algorithm." + }, + "stopwords": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "preset": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Pre-existing list of common words by language (default: `en`). Options: [`en`, `none`]." + }, + "additions": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Stopwords to be considered additionally (default: []). Can be any array of custom strings." + }, + "removals": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Stopwords to be removed from consideration (default: []). Can be any array of custom strings." + } + }, + "inner_properties": null, + "description": "Fine-grained control over stopword list usage." + }, + "indexTimestamps": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Index each object by its internal timestamps (default: `false`)." + }, + "indexNullState": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Index each object with the null state (default: `false`)." + }, + "indexPropertyLength": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Index length of properties (default: `false`)." + }, + "usingBlockMaxWAND": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Using BlockMax WAND for query execution (default: `false`, will be `true` for new collections created after 1.30)." + } + }, + "inner_properties": null, + "description": "Configure the inverted index built into Weaviate. See [Reference: Inverted index](https://docs.weaviate.io/weaviate/config-refs/indexing/inverted-index#inverted-index-parameters) for details." + }, + "multiTenancyConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not multi-tenancy is enabled for this collection (class) (default: `false`)." + }, + "autoTenantCreation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Nonexistent tenants should (not) be created implicitly (default: `false`)." + }, + "autoTenantActivation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Existing tenants should (not) be turned HOT implicitly when they are accessed and in another activity status (default: `false`)." + } + }, + "inner_properties": null, + "description": "Configuration related to multi-tenancy within a collection (class)" + }, + "vectorizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specify how the vectors for this collection should be determined. The options are either `none` - this means you have to import a vector with each object yourself - or the name of a module that provides vectorization capabilities, such as `text2vec-weaviate`. If left empty, it will use the globally configured default ([`DEFAULT_VECTORIZER_MODULE`](https://docs.weaviate.io/deploy/configuration/env-vars)) which can itself either be `none` or a specific module." + }, + "moduleConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configuration specific to modules in a collection context." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the collection for metadata purposes." + }, + "properties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "dataType": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Data type of the property (required). If it starts with a capital (for example Person), may be a reference to another type." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the property." + }, + "moduleConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configuration specific to modules in a collection context." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property (required). Multiple words should be concatenated in camelCase, e.g. `nameOfAuthor`." + }, + "indexInverted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Deprecated). Whether to include this property in the inverted index. If `false`, this property cannot be used in `where` filters, `bm25` or `hybrid` search.

Unrelated to vectorization behavior (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)" + }, + "indexFilterable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include this property in the filterable, Roaring Bitmap index. If `false`, this property cannot be used in `where` filters.

Note: Unrelated to vectorization behavior." + }, + "indexSearchable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules" + }, + "indexRangeFilters": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include this property in the filterable, range-based Roaring Bitmap index. Provides better performance for range queries compared to filterable index in large datasets. Applicable only to properties of data type int, number, date." + }, + "tokenization": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch" + ], + "properties": null, + "inner_properties": null, + "description": "Determines how a property is indexed. This setting applies to `text` and `text[]` data types. The following tokenization methods are available:

- `word` (default): Splits the text on any non-alphanumeric characters and lowercases the tokens.
- `lowercase`: Splits the text on whitespace and lowercases the tokens.
- `whitespace`: Splits the text on whitespace. This tokenization is case-sensitive.
- `field`: Indexes the entire property value as a single token after trimming whitespace.
- `trigram`: Splits the property into rolling trigrams (three-character sequences).
- `gse`: Uses the `gse` tokenizer, suitable for Chinese language text. [See `gse` docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- `kagome_ja`: Uses the `Kagome` tokenizer with a Japanese (IPA) dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).
- `kagome_kr`: Uses the `Kagome` tokenizer with a Korean dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).

See [Reference: Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) for details." + }, + "nestedProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "dataType": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexFilterable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexSearchable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexRangeFilters": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "tokenization": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "nestedProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "The properties of the nested object(s). Applies to object and object[] data types." + } + }, + "description": "The properties of the nested object(s). Applies to object and object[] data types." + } + }, + "description": "Define properties of the collection." + } + }, + "inner_properties": null, + "description": "The definition of the collection (class) to create." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The definition of the collection (class) to create.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (formerly 'class') (required). Multiple words should be concatenated in CamelCase, e.g. `ArticleAuthor`.\"\n },\n \"vectorConfig\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"vectorizer\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration of a specific vectorizer used by this vector\"\n },\n \"vectorIndexType\": {\n \"type\": \"string\",\n \"description\": \"Name of the vector index to use, eg. (HNSW)\"\n },\n \"vectorIndexConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Vector-index config, that is specific to the type of index selected in vectorIndexType\"\n }\n }\n },\n \"description\": \"Configure named vectors. Either use this field or `vectorizer`, `vectorIndexType`, and `vectorIndexConfig` fields. Available from `v1.24.0`.\"\n },\n \"vectorIndexType\": {\n \"type\": \"string\",\n \"description\": \"Name of the vector index type to use for the collection (e.g. `hnsw` or `flat`).\"\n },\n \"vectorIndexConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Vector-index config, that is specific to the type of index selected in vectorIndexType\"\n },\n \"shardingConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Manage how the index should be sharded and distributed in the cluster\"\n },\n \"replicationConfig\": {\n \"type\": \"object\",\n \"properties\": {\n \"factor\": {\n \"type\": \"integer\",\n \"description\": \"Number of times a collection (class) is replicated (default: 1).\"\n },\n \"asyncEnabled\": {\n \"type\": \"boolean\",\n \"description\": \"Enable asynchronous replication (default: `false`).\",\n \"x-omitempty\": false\n },\n \"deletionStrategy\": {\n \"type\": \"string\",\n \"description\": \"Conflict resolution strategy for deleted objects.\",\n \"enum\": [\n \"NoAutomatedResolution\",\n \"DeleteOnConflict\",\n \"TimeBasedResolution\"\n ],\n \"x-omitempty\": true\n }\n },\n \"description\": \"Configure how replication is executed in a cluster\"\n },\n \"invertedIndexConfig\": {\n \"type\": \"object\",\n \"properties\": {\n \"cleanupIntervalSeconds\": {\n \"type\": \"number\",\n \"description\": \"Asynchronous index clean up happens every n seconds (default: 60).\",\n \"format\": \"int\"\n },\n \"bm25\": {\n \"type\": \"object\",\n \"properties\": {\n \"k1\": {\n \"type\": \"number\",\n \"description\": \"Calibrates term-weight scaling based on the term frequency within a document (default: 1.2).\",\n \"format\": \"float\"\n },\n \"b\": {\n \"type\": \"number\",\n \"description\": \"Calibrates term-weight scaling based on the document length (default: 0.75).\",\n \"format\": \"float\"\n }\n },\n \"description\": \"Tuning parameters for the BM25 algorithm.\"\n },\n \"stopwords\": {\n \"type\": \"object\",\n \"properties\": {\n \"preset\": {\n \"type\": \"string\",\n \"description\": \"Pre-existing list of common words by language (default: `en`). Options: [`en`, `none`].\"\n },\n \"additions\": {\n \"type\": \"array\",\n \"description\": \"Stopwords to be considered additionally (default: []). Can be any array of custom strings.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"removals\": {\n \"type\": \"array\",\n \"description\": \"Stopwords to be removed from consideration (default: []). Can be any array of custom strings.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Fine-grained control over stopword list usage.\"\n },\n \"indexTimestamps\": {\n \"type\": \"boolean\",\n \"description\": \"Index each object by its internal timestamps (default: `false`).\"\n },\n \"indexNullState\": {\n \"type\": \"boolean\",\n \"description\": \"Index each object with the null state (default: `false`).\"\n },\n \"indexPropertyLength\": {\n \"type\": \"boolean\",\n \"description\": \"Index length of properties (default: `false`).\"\n },\n \"usingBlockMaxWAND\": {\n \"type\": \"boolean\",\n \"description\": \"Using BlockMax WAND for query execution (default: `false`, will be `true` for new collections created after 1.30).\"\n }\n },\n \"description\": \"Configure the inverted index built into Weaviate. See [Reference: Inverted index](https://docs.weaviate.io/weaviate/config-refs/indexing/inverted-index#inverted-index-parameters) for details.\"\n },\n \"multiTenancyConfig\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not multi-tenancy is enabled for this collection (class) (default: `false`).\",\n \"x-omitempty\": false\n },\n \"autoTenantCreation\": {\n \"type\": \"boolean\",\n \"description\": \"Nonexistent tenants should (not) be created implicitly (default: `false`).\",\n \"x-omitempty\": false\n },\n \"autoTenantActivation\": {\n \"type\": \"boolean\",\n \"description\": \"Existing tenants should (not) be turned HOT implicitly when they are accessed and in another activity status (default: `false`).\",\n \"x-omitempty\": false\n }\n },\n \"description\": \"Configuration related to multi-tenancy within a collection (class)\"\n },\n \"vectorizer\": {\n \"type\": \"string\",\n \"description\": \"Specify how the vectors for this collection should be determined. The options are either `none` - this means you have to import a vector with each object yourself - or the name of a module that provides vectorization capabilities, such as `text2vec-weaviate`. If left empty, it will use the globally configured default ([`DEFAULT_VECTORIZER_MODULE`](https://docs.weaviate.io/deploy/configuration/env-vars)) which can itself either be `none` or a specific module.\"\n },\n \"moduleConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration specific to modules in a collection context.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the collection for metadata purposes.\"\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Define properties of the collection.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"dataType\": {\n \"type\": \"array\",\n \"description\": \"Data type of the property (required). If it starts with a capital (for example Person), may be a reference to another type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the property.\"\n },\n \"moduleConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration specific to modules in a collection context.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the property (required). Multiple words should be concatenated in camelCase, e.g. `nameOfAuthor`.\"\n },\n \"indexInverted\": {\n \"type\": \"boolean\",\n \"description\": \"(Deprecated). Whether to include this property in the inverted index. If `false`, this property cannot be used in `where` filters, `bm25` or `hybrid` search.

Unrelated to vectorization behavior (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)\",\n \"nullable\": true\n },\n \"indexFilterable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to include this property in the filterable, Roaring Bitmap index. If `false`, this property cannot be used in `where` filters.

Note: Unrelated to vectorization behavior.\",\n \"nullable\": true\n },\n \"indexSearchable\": {\n \"type\": \"boolean\",\n \"description\": \"Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules\",\n \"nullable\": true\n },\n \"indexRangeFilters\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to include this property in the filterable, range-based Roaring Bitmap index. Provides better performance for range queries compared to filterable index in large datasets. Applicable only to properties of data type int, number, date.\",\n \"nullable\": true\n },\n \"tokenization\": {\n \"type\": \"string\",\n \"description\": \"Determines how a property is indexed. This setting applies to `text` and `text[]` data types. The following tokenization methods are available:

- `word` (default): Splits the text on any non-alphanumeric characters and lowercases the tokens.
- `lowercase`: Splits the text on whitespace and lowercases the tokens.
- `whitespace`: Splits the text on whitespace. This tokenization is case-sensitive.
- `field`: Indexes the entire property value as a single token after trimming whitespace.
- `trigram`: Splits the property into rolling trigrams (three-character sequences).
- `gse`: Uses the `gse` tokenizer, suitable for Chinese language text. [See `gse` docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- `kagome_ja`: Uses the `Kagome` tokenizer with a Japanese (IPA) dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).
- `kagome_kr`: Uses the `Kagome` tokenizer with a Korean dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).

See [Reference: Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) for details.\",\n \"enum\": [\n \"word\",\n \"lowercase\",\n \"whitespace\",\n \"field\",\n \"trigram\",\n \"gse\",\n \"kagome_kr\",\n \"kagome_ja\",\n \"gse_ch\"\n ]\n },\n \"nestedProperties\": {\n \"type\": \"array\",\n \"description\": \"The properties of the nested object(s). Applies to object and object[] data types.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"dataType\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"indexFilterable\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"indexSearchable\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"indexRangeFilters\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"tokenization\": {\n \"type\": \"string\",\n \"enum\": [\n \"word\",\n \"lowercase\",\n \"whitespace\",\n \"field\",\n \"trigram\",\n \"gse\",\n \"kagome_kr\",\n \"kagome_ja\",\n \"gse_ch\"\n ]\n },\n \"nestedProperties\": {\n \"type\": \"array\",\n \"description\": \"The properties of the nested object(s). Applies to object and object[] data types.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/NestedProperty\",\n \"has_circular_reference\": true\n },\n \"x-omitempty\": true\n }\n }\n },\n \"x-omitempty\": true\n }\n }\n }\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (formerly 'class') (required). Multiple words should be concatenated in CamelCase, e.g. `ArticleAuthor`.\"\n },\n \"vectorConfig\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"vectorizer\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration of a specific vectorizer used by this vector\"\n },\n \"vectorIndexType\": {\n \"type\": \"string\",\n \"description\": \"Name of the vector index to use, eg. (HNSW)\"\n },\n \"vectorIndexConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Vector-index config, that is specific to the type of index selected in vectorIndexType\"\n }\n }\n },\n \"description\": \"Configure named vectors. Either use this field or `vectorizer`, `vectorIndexType`, and `vectorIndexConfig` fields. Available from `v1.24.0`.\"\n },\n \"vectorIndexType\": {\n \"type\": \"string\",\n \"description\": \"Name of the vector index type to use for the collection (e.g. `hnsw` or `flat`).\"\n },\n \"vectorIndexConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Vector-index config, that is specific to the type of index selected in vectorIndexType\"\n },\n \"shardingConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Manage how the index should be sharded and distributed in the cluster\"\n },\n \"replicationConfig\": {\n \"type\": \"object\",\n \"properties\": {\n \"factor\": {\n \"type\": \"integer\",\n \"description\": \"Number of times a collection (class) is replicated (default: 1).\"\n },\n \"asyncEnabled\": {\n \"type\": \"boolean\",\n \"description\": \"Enable asynchronous replication (default: `false`).\",\n \"x-omitempty\": false\n },\n \"deletionStrategy\": {\n \"type\": \"string\",\n \"description\": \"Conflict resolution strategy for deleted objects.\",\n \"enum\": [\n \"NoAutomatedResolution\",\n \"DeleteOnConflict\",\n \"TimeBasedResolution\"\n ],\n \"x-omitempty\": true\n }\n },\n \"description\": \"Configure how replication is executed in a cluster\"\n },\n \"invertedIndexConfig\": {\n \"type\": \"object\",\n \"properties\": {\n \"cleanupIntervalSeconds\": {\n \"type\": \"number\",\n \"description\": \"Asynchronous index clean up happens every n seconds (default: 60).\",\n \"format\": \"int\"\n },\n \"bm25\": {\n \"type\": \"object\",\n \"properties\": {\n \"k1\": {\n \"type\": \"number\",\n \"description\": \"Calibrates term-weight scaling based on the term frequency within a document (default: 1.2).\",\n \"format\": \"float\"\n },\n \"b\": {\n \"type\": \"number\",\n \"description\": \"Calibrates term-weight scaling based on the document length (default: 0.75).\",\n \"format\": \"float\"\n }\n },\n \"description\": \"Tuning parameters for the BM25 algorithm.\"\n },\n \"stopwords\": {\n \"type\": \"object\",\n \"properties\": {\n \"preset\": {\n \"type\": \"string\",\n \"description\": \"Pre-existing list of common words by language (default: `en`). Options: [`en`, `none`].\"\n },\n \"additions\": {\n \"type\": \"array\",\n \"description\": \"Stopwords to be considered additionally (default: []). Can be any array of custom strings.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"removals\": {\n \"type\": \"array\",\n \"description\": \"Stopwords to be removed from consideration (default: []). Can be any array of custom strings.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Fine-grained control over stopword list usage.\"\n },\n \"indexTimestamps\": {\n \"type\": \"boolean\",\n \"description\": \"Index each object by its internal timestamps (default: `false`).\"\n },\n \"indexNullState\": {\n \"type\": \"boolean\",\n \"description\": \"Index each object with the null state (default: `false`).\"\n },\n \"indexPropertyLength\": {\n \"type\": \"boolean\",\n \"description\": \"Index length of properties (default: `false`).\"\n },\n \"usingBlockMaxWAND\": {\n \"type\": \"boolean\",\n \"description\": \"Using BlockMax WAND for query execution (default: `false`, will be `true` for new collections created after 1.30).\"\n }\n },\n \"description\": \"Configure the inverted index built into Weaviate. See [Reference: Inverted index](https://docs.weaviate.io/weaviate/config-refs/indexing/inverted-index#inverted-index-parameters) for details.\"\n },\n \"multiTenancyConfig\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not multi-tenancy is enabled for this collection (class) (default: `false`).\",\n \"x-omitempty\": false\n },\n \"autoTenantCreation\": {\n \"type\": \"boolean\",\n \"description\": \"Nonexistent tenants should (not) be created implicitly (default: `false`).\",\n \"x-omitempty\": false\n },\n \"autoTenantActivation\": {\n \"type\": \"boolean\",\n \"description\": \"Existing tenants should (not) be turned HOT implicitly when they are accessed and in another activity status (default: `false`).\",\n \"x-omitempty\": false\n }\n },\n \"description\": \"Configuration related to multi-tenancy within a collection (class)\"\n },\n \"vectorizer\": {\n \"type\": \"string\",\n \"description\": \"Specify how the vectors for this collection should be determined. The options are either `none` - this means you have to import a vector with each object yourself - or the name of a module that provides vectorization capabilities, such as `text2vec-weaviate`. If left empty, it will use the globally configured default ([`DEFAULT_VECTORIZER_MODULE`](https://docs.weaviate.io/deploy/configuration/env-vars)) which can itself either be `none` or a specific module.\"\n },\n \"moduleConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration specific to modules in a collection context.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the collection for metadata purposes.\"\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Define properties of the collection.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"dataType\": {\n \"type\": \"array\",\n \"description\": \"Data type of the property (required). If it starts with a capital (for example Person), may be a reference to another type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the property.\"\n },\n \"moduleConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration specific to modules in a collection context.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the property (required). Multiple words should be concatenated in camelCase, e.g. `nameOfAuthor`.\"\n },\n \"indexInverted\": {\n \"type\": \"boolean\",\n \"description\": \"(Deprecated). Whether to include this property in the inverted index. If `false`, this property cannot be used in `where` filters, `bm25` or `hybrid` search.

Unrelated to vectorization behavior (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)\",\n \"nullable\": true\n },\n \"indexFilterable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to include this property in the filterable, Roaring Bitmap index. If `false`, this property cannot be used in `where` filters.

Note: Unrelated to vectorization behavior.\",\n \"nullable\": true\n },\n \"indexSearchable\": {\n \"type\": \"boolean\",\n \"description\": \"Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules\",\n \"nullable\": true\n },\n \"indexRangeFilters\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to include this property in the filterable, range-based Roaring Bitmap index. Provides better performance for range queries compared to filterable index in large datasets. Applicable only to properties of data type int, number, date.\",\n \"nullable\": true\n },\n \"tokenization\": {\n \"type\": \"string\",\n \"description\": \"Determines how a property is indexed. This setting applies to `text` and `text[]` data types. The following tokenization methods are available:

- `word` (default): Splits the text on any non-alphanumeric characters and lowercases the tokens.
- `lowercase`: Splits the text on whitespace and lowercases the tokens.
- `whitespace`: Splits the text on whitespace. This tokenization is case-sensitive.
- `field`: Indexes the entire property value as a single token after trimming whitespace.
- `trigram`: Splits the property into rolling trigrams (three-character sequences).
- `gse`: Uses the `gse` tokenizer, suitable for Chinese language text. [See `gse` docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- `kagome_ja`: Uses the `Kagome` tokenizer with a Japanese (IPA) dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).
- `kagome_kr`: Uses the `Kagome` tokenizer with a Korean dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).

See [Reference: Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) for details.\",\n \"enum\": [\n \"word\",\n \"lowercase\",\n \"whitespace\",\n \"field\",\n \"trigram\",\n \"gse\",\n \"kagome_kr\",\n \"kagome_ja\",\n \"gse_ch\"\n ]\n },\n \"nestedProperties\": {\n \"type\": \"array\",\n \"description\": \"The properties of the nested object(s). Applies to object and object[] data types.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"dataType\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"indexFilterable\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"indexSearchable\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"indexRangeFilters\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"tokenization\": {\n \"type\": \"string\",\n \"enum\": [\n \"word\",\n \"lowercase\",\n \"whitespace\",\n \"field\",\n \"trigram\",\n \"gse\",\n \"kagome_kr\",\n \"kagome_ja\",\n \"gse_ch\"\n ]\n },\n \"nestedProperties\": {\n \"type\": \"array\",\n \"description\": \"The properties of the nested object(s). Applies to object and object[] data types.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/NestedProperty\",\n \"has_circular_reference\": true\n },\n \"x-omitempty\": true\n }\n }\n },\n \"x-omitempty\": true\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateTenants.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateTenants.json new file mode 100644 index 00000000..e118a43f --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/CreateTenants.json @@ -0,0 +1,204 @@ +{ + "name": "CreateTenants", + "fully_qualified_name": "WeaviateApi.CreateTenants@0.1.0", + "description": "Create new tenants in a specified collection.\n\nUse this tool to create one or more new tenants for a specified collection when multi-tenancy is enabled. Useful for managing tenants within a Weaviate database.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "The name of the multi-tenant enabled collection for creating tenants.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the multi-tenant enabled collection (class)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "tenant_creation_details", + "required": true, + "description": "An array of tenant objects to be created. Each object includes the tenant's name and optional activity status.", + "value_schema": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant (required)." + }, + "activityStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ACTIVE", + "INACTIVE", + "OFFLOADED", + "OFFLOADING", + "ONLOADING", + "HOT", + "COLD", + "FROZEN", + "FREEZING", + "UNFREEZING" + ], + "properties": null, + "inner_properties": null, + "description": "The activity status of the tenant, which determines if it is queryable and where its data is stored.

Available Statuses:
- `ACTIVE`: The tenant is fully operational and ready for queries. Data is stored on local, hot storage.
- `INACTIVE`: The tenant is not queryable. Data is stored locally.
- `OFFLOADED`: The tenant is inactive and its data is stored in a remote cloud backend.

Usage Rules:
- On Create: This field is optional and defaults to `ACTIVE`. Allowed values are `ACTIVE` and `INACTIVE`.
- On Update: This field is required. Allowed values are `ACTIVE`, `INACTIVE`, and `OFFLOADED`.

Read-Only Statuses:
The following statuses are set by the server and indicate a tenant is transitioning between states:
- `OFFLOADING`
- `ONLOADING`

Note on Deprecated Names:
For backward compatibility, deprecated names are still accepted and are mapped to their modern equivalents: `HOT` (now `ACTIVE`), `COLD` (now `INACTIVE`), `FROZEN` (now `OFFLOADED`), `FREEZING` (now `OFFLOADING`), `UNFREEZING` (now `ONLOADING`)." + } + }, + "description": "An array of tenant objects to create." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'tenants.create'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema/{className}/tenants", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "The name of the multi-tenant enabled collection (class).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the multi-tenant enabled collection (class)." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "tenant_creation_details", + "description": "An array of tenant objects to create.", + "value_schema": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant (required)." + }, + "activityStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ACTIVE", + "INACTIVE", + "OFFLOADED", + "OFFLOADING", + "ONLOADING", + "HOT", + "COLD", + "FROZEN", + "FREEZING", + "UNFREEZING" + ], + "properties": null, + "inner_properties": null, + "description": "The activity status of the tenant, which determines if it is queryable and where its data is stored.

Available Statuses:
- `ACTIVE`: The tenant is fully operational and ready for queries. Data is stored on local, hot storage.
- `INACTIVE`: The tenant is not queryable. Data is stored locally.
- `OFFLOADED`: The tenant is inactive and its data is stored in a remote cloud backend.

Usage Rules:
- On Create: This field is optional and defaults to `ACTIVE`. Allowed values are `ACTIVE` and `INACTIVE`.
- On Update: This field is required. Allowed values are `ACTIVE`, `INACTIVE`, and `OFFLOADED`.

Read-Only Statuses:
The following statuses are set by the server and indicate a tenant is transitioning between states:
- `OFFLOADING`
- `ONLOADING`

Note on Deprecated Names:
For backward compatibility, deprecated names are still accepted and are mapped to their modern equivalents: `HOT` (now `ACTIVE`), `COLD` (now `INACTIVE`), `FROZEN` (now `OFFLOADED`), `FREEZING` (now `OFFLOADING`), `UNFREEZING` (now `ONLOADING`)." + } + }, + "description": "An array of tenant objects to create." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"An array of tenant objects to create.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant (required).\"\n },\n \"activityStatus\": {\n \"type\": \"string\",\n \"description\": \"The activity status of the tenant, which determines if it is queryable and where its data is stored.

Available Statuses:
- `ACTIVE`: The tenant is fully operational and ready for queries. Data is stored on local, hot storage.
- `INACTIVE`: The tenant is not queryable. Data is stored locally.
- `OFFLOADED`: The tenant is inactive and its data is stored in a remote cloud backend.

Usage Rules:
- On Create: This field is optional and defaults to `ACTIVE`. Allowed values are `ACTIVE` and `INACTIVE`.
- On Update: This field is required. Allowed values are `ACTIVE`, `INACTIVE`, and `OFFLOADED`.

Read-Only Statuses:
The following statuses are set by the server and indicate a tenant is transitioning between states:
- `OFFLOADING`
- `ONLOADING`

Note on Deprecated Names:
For backward compatibility, deprecated names are still accepted and are mapped to their modern equivalents: `HOT` (now `ACTIVE`), `COLD` (now `INACTIVE`), `FROZEN` (now `OFFLOADED`), `FREEZING` (now `OFFLOADING`), `UNFREEZING` (now `ONLOADING`).\",\n \"enum\": [\n \"ACTIVE\",\n \"INACTIVE\",\n \"OFFLOADED\",\n \"OFFLOADING\",\n \"ONLOADING\",\n \"HOT\",\n \"COLD\",\n \"FROZEN\",\n \"FREEZING\",\n \"UNFREEZING\"\n ]\n }\n },\n \"description\": \"Attributes representing a single tenant within Weaviate.\"\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant (required).\"\n },\n \"activityStatus\": {\n \"type\": \"string\",\n \"description\": \"The activity status of the tenant, which determines if it is queryable and where its data is stored.

Available Statuses:
- `ACTIVE`: The tenant is fully operational and ready for queries. Data is stored on local, hot storage.
- `INACTIVE`: The tenant is not queryable. Data is stored locally.
- `OFFLOADED`: The tenant is inactive and its data is stored in a remote cloud backend.

Usage Rules:
- On Create: This field is optional and defaults to `ACTIVE`. Allowed values are `ACTIVE` and `INACTIVE`.
- On Update: This field is required. Allowed values are `ACTIVE`, `INACTIVE`, and `OFFLOADED`.

Read-Only Statuses:
The following statuses are set by the server and indicate a tenant is transitioning between states:
- `OFFLOADING`
- `ONLOADING`

Note on Deprecated Names:
For backward compatibility, deprecated names are still accepted and are mapped to their modern equivalents: `HOT` (now `ACTIVE`), `COLD` (now `INACTIVE`), `FROZEN` (now `OFFLOADED`), `FREEZING` (now `OFFLOADING`), `UNFREEZING` (now `ONLOADING`).\",\n \"enum\": [\n \"ACTIVE\",\n \"INACTIVE\",\n \"OFFLOADED\",\n \"OFFLOADING\",\n \"ONLOADING\",\n \"HOT\",\n \"COLD\",\n \"FROZEN\",\n \"FREEZING\",\n \"UNFREEZING\"\n ]\n }\n },\n \"description\": \"Attributes representing a single tenant within Weaviate.\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeactivateDatabaseUser.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeactivateDatabaseUser.json new file mode 100644 index 00000000..2fdcc6e5 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeactivateDatabaseUser.json @@ -0,0 +1,148 @@ +{ + "name": "DeactivateDatabaseUser", + "fully_qualified_name": "WeaviateApi.DeactivateDatabaseUser@0.1.0", + "description": "Deactivate a database user account.\n\nUse this tool to deactivate a user with the type 'db' in the database. Provide the user ID to deactivate their account and prevent access to the database.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "database_user_id", + "required": true, + "description": "The unique identifier for the database user to be deactivated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "revoke_api_key", + "required": false, + "description": "Revoke the user's API key when deactivating. Set to true to enable.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the API key should be revoked when deactivating the user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "revoke_key" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deactivateUser'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/users/db/{user_id}/deactivate", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "user_id", + "tool_parameter_name": "database_user_id", + "description": "The name of the user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "revoke_key", + "tool_parameter_name": "revoke_api_key", + "description": "Whether the API key should be revoked when deactivating the user.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether the API key should be revoked when deactivating the user." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"revoke_key\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the API key should be revoked when deactivating the user.\",\n \"default\": false\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"revoke_key\": {\n \"type\": \"boolean\",\n \"description\": \"Whether the API key should be revoked when deactivating the user.\",\n \"default\": false\n }\n }\n }\n }\n },\n \"required\": false\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteAlias.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteAlias.json new file mode 100644 index 00000000..95355a18 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteAlias.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteAlias", + "fully_qualified_name": "WeaviateApi.DeleteAlias@0.1.0", + "description": "Delete an existing alias from the system.\n\nThis tool removes an alias from the system without affecting the underlying collection. It should be called when an alias is no longer needed.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "alias_name", + "required": true, + "description": "The name of the alias to be deleted. This identifier specifies which alias mapping to remove from the system.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "aliasName" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'aliases.delete'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/aliases/{aliasName}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "aliasName", + "tool_parameter_name": "alias_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteAllReplications.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteAllReplications.json new file mode 100644 index 00000000..d5f1ba67 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteAllReplications.json @@ -0,0 +1,80 @@ +{ + "name": "DeleteAllReplications", + "fully_qualified_name": "WeaviateApi.DeleteAllReplications@0.1.0", + "description": "Schedule deletion of all replication operations across the system.\n\nThis tool is used to schedule the deletion of all replication operations across all collections, shards, and nodes. It should be called when you need to clear all replication tasks in the system.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'deleteAllReplications'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/replication/replicate", + "http_method": "DELETE", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteDataObject.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteDataObject.json new file mode 100644 index 00000000..4c52b6f5 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteDataObject.json @@ -0,0 +1,214 @@ +{ + "name": "DeleteDataObject", + "fully_qualified_name": "WeaviateApi.DeleteDataObject@0.1.0", + "description": "Delete a data object from a specified collection using its UUID.\n\nUse this tool to remove a specific data object from a Weaviate collection, identified by its `className` and `id` (UUID). Useful for managing data within a Weaviate instance.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "Name of the collection (class) the object belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "object_uuid", + "required": true, + "description": "Unique UUID of the object to be deleted from the collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the object to be deleted." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "replica_acknowledgment_level", + "required": false, + "description": "Specifies the number of replicas needed to confirm request success.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency_level" + }, + { + "name": "tenant_identifier", + "required": false, + "description": "Specifies the tenant when targeting a multi-tenant collection (class).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "tenant" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'objects.class.delete'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/objects/{className}/{id}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "consistency_level", + "tool_parameter_name": "replica_acknowledgment_level", + "description": "Determines how many replicas must acknowledge a request before it is considered successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "tenant", + "tool_parameter_name": "tenant_identifier", + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "Name of the collection (class) the object belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "object_uuid", + "description": "Unique UUID of the object to be deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the object to be deleted." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteDatabaseUser.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteDatabaseUser.json new file mode 100644 index 00000000..ad76dc97 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteDatabaseUser.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteDatabaseUser", + "fully_qualified_name": "WeaviateApi.DeleteDatabaseUser@0.1.0", + "description": "Delete a specific database user.\n\nThis tool deletes a specified user from the database. It should be called when there is a need to remove a user, except the current active user.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_identifier", + "required": true, + "description": "Specify the name of the user you want to delete. This cannot be the current user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteUser'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/users/db/{user_id}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "user_id", + "tool_parameter_name": "user_identifier", + "description": "The name of the user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteMultipleObjects.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteMultipleObjects.json new file mode 100644 index 00000000..fdab35ed --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteMultipleObjects.json @@ -0,0 +1,657 @@ +{ + "name": "DeleteMultipleObjects", + "fully_qualified_name": "WeaviateApi.DeleteMultipleObjects@0.1.0", + "description": "Deletes multiple data objects using specified filter criteria.\n\nThis tool removes data objects based on a filter. Use it when you need to delete multiple objects that match specific criteria within the limit. The deletion is performed in the order objects match the filter. If you need to delete beyond the limit, repeat the process until finished.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "filter_and_output_configuration", + "required": true, + "description": "The JSON body with match filter and output settings for deletion. It specifies which objects to delete and the verbosity of the output.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "match": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) from which to delete objects." + }, + "where": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "operands": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "Combine multiple where filters, requires 'And' or 'Or' operator." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "And", + "Or", + "Equal", + "Like", + "NotEqual", + "GreaterThan", + "GreaterThanEqual", + "LessThan", + "LessThanEqual", + "WithinGeoRange", + "IsNull", + "ContainsAny", + "ContainsAll", + "ContainsNone", + "Not" + ], + "properties": null, + "inner_properties": null, + "description": "Operator to use." + }, + "path": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Path to the property currently being filtered." + }, + "valueInt": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumber": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBoolean": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueString": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueIntArray": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumberArray": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBooleanArray": { + "val_type": "array", + "inner_val_type": "boolean", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueStringArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueTextArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDateArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueGeoRange": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "geoCoordinates": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "latitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The latitude of the point on earth in decimal form." + }, + "longitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The longitude of the point on earth in decimal form." + } + }, + "inner_properties": null, + "description": null + }, + "distance": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "max": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Filter within a distance of a georange." + } + }, + "inner_properties": null, + "description": "Filter search results using a where filter." + } + }, + "inner_properties": null, + "description": "Outlines how to find the objects to be deleted." + }, + "output": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Controls the verbosity of the output, possible values are: `minimal`, `verbose`. Defaults to `minimal`." + }, + "deletionTimeUnixMilli": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp of deletion in milliseconds since epoch UTC." + }, + "dryRun": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the call will show which objects would be matched using the specified filter without deleting any objects.

Depending on the configured verbosity, you will either receive a count of affected objects, or a list of IDs." + } + }, + "inner_properties": null, + "description": "The request body containing the match filter and output configuration." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "replica_acknowledgement_level", + "required": false, + "description": "Specifies the number of replicas that must confirm the request for it to be deemed successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency_level" + }, + { + "name": "target_tenant", + "required": false, + "description": "Specifies the tenant when targeting a multi-tenant collection. Use the tenant's unique identifier.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "tenant" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'batch.objects.delete'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/batch/objects", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "consistency_level", + "tool_parameter_name": "replica_acknowledgement_level", + "description": "Determines how many replicas must acknowledge a request before it is considered successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "tenant", + "tool_parameter_name": "target_tenant", + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "filter_and_output_configuration", + "description": "The request body containing the match filter and output configuration.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "match": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) from which to delete objects." + }, + "where": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "operands": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "Combine multiple where filters, requires 'And' or 'Or' operator." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "And", + "Or", + "Equal", + "Like", + "NotEqual", + "GreaterThan", + "GreaterThanEqual", + "LessThan", + "LessThanEqual", + "WithinGeoRange", + "IsNull", + "ContainsAny", + "ContainsAll", + "ContainsNone", + "Not" + ], + "properties": null, + "inner_properties": null, + "description": "Operator to use." + }, + "path": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Path to the property currently being filtered." + }, + "valueInt": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumber": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBoolean": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueString": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueIntArray": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumberArray": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBooleanArray": { + "val_type": "array", + "inner_val_type": "boolean", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueStringArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueTextArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDateArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueGeoRange": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "geoCoordinates": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "latitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The latitude of the point on earth in decimal form." + }, + "longitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The longitude of the point on earth in decimal form." + } + }, + "inner_properties": null, + "description": null + }, + "distance": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "max": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Filter within a distance of a georange." + } + }, + "inner_properties": null, + "description": "Filter search results using a where filter." + } + }, + "inner_properties": null, + "description": "Outlines how to find the objects to be deleted." + }, + "output": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Controls the verbosity of the output, possible values are: `minimal`, `verbose`. Defaults to `minimal`." + }, + "deletionTimeUnixMilli": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Timestamp of deletion in milliseconds since epoch UTC." + }, + "dryRun": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the call will show which objects would be matched using the specified filter without deleting any objects.

Depending on the configured verbosity, you will either receive a count of affected objects, or a list of IDs." + } + }, + "inner_properties": null, + "description": "The request body containing the match filter and output configuration." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The request body containing the match filter and output configuration.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"match\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"The name of the collection (class) from which to delete objects.\",\n \"example\": \"City\"\n },\n \"where\": {\n \"type\": \"object\",\n \"properties\": {\n \"operands\": {\n \"type\": \"array\",\n \"description\": \"Combine multiple where filters, requires 'And' or 'Or' operator.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WhereFilter\",\n \"has_circular_reference\": true\n }\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"Operator to use.\",\n \"example\": \"GreaterThanEqual\",\n \"enum\": [\n \"And\",\n \"Or\",\n \"Equal\",\n \"Like\",\n \"NotEqual\",\n \"GreaterThan\",\n \"GreaterThanEqual\",\n \"LessThan\",\n \"LessThanEqual\",\n \"WithinGeoRange\",\n \"IsNull\",\n \"ContainsAny\",\n \"ContainsAll\",\n \"ContainsNone\",\n \"Not\"\n ]\n },\n \"path\": {\n \"type\": \"array\",\n \"description\": \"Path to the property currently being filtered.\",\n \"example\": [\n \"inCity\",\n \"city\",\n \"name\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"valueInt\": {\n \"type\": \"integer\",\n \"description\": \"value as integer\",\n \"format\": \"int64\",\n \"nullable\": true,\n \"example\": 2000\n },\n \"valueNumber\": {\n \"type\": \"number\",\n \"description\": \"value as number/float\",\n \"format\": \"float64\",\n \"nullable\": true,\n \"example\": 3.14\n },\n \"valueBoolean\": {\n \"type\": \"boolean\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": false\n },\n \"valueString\": {\n \"type\": \"string\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueText\": {\n \"type\": \"string\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueDate\": {\n \"type\": \"string\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\"\n },\n \"valueIntArray\": {\n \"type\": \"array\",\n \"description\": \"value as integer\",\n \"nullable\": true,\n \"example\": \"[100, 200]\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"x-omitempty\": true\n },\n \"valueNumberArray\": {\n \"type\": \"array\",\n \"description\": \"value as number/float\",\n \"nullable\": true,\n \"example\": [\n 3.14\n ],\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n },\n \"x-omitempty\": true\n },\n \"valueBooleanArray\": {\n \"type\": \"array\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": [\n true,\n false\n ],\n \"items\": {\n \"type\": \"boolean\"\n },\n \"x-omitempty\": true\n },\n \"valueStringArray\": {\n \"type\": \"array\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueTextArray\": {\n \"type\": \"array\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueDateArray\": {\n \"type\": \"array\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\",\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueGeoRange\": {\n \"type\": \"object\",\n \"properties\": {\n \"geoCoordinates\": {\n \"type\": \"object\",\n \"properties\": {\n \"latitude\": {\n \"type\": \"number\",\n \"description\": \"The latitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n },\n \"longitude\": {\n \"type\": \"number\",\n \"description\": \"The longitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n }\n }\n },\n \"distance\": {\n \"type\": \"object\",\n \"properties\": {\n \"max\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n }\n }\n }\n },\n \"description\": \"Filter within a distance of a georange.\"\n }\n },\n \"description\": \"Filter search results using a where filter.\"\n }\n },\n \"description\": \"Outlines how to find the objects to be deleted.\"\n },\n \"output\": {\n \"type\": \"string\",\n \"description\": \"Controls the verbosity of the output, possible values are: `minimal`, `verbose`. Defaults to `minimal`.\",\n \"default\": \"minimal\"\n },\n \"deletionTimeUnixMilli\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp of deletion in milliseconds since epoch UTC.\",\n \"format\": \"int64\",\n \"nullable\": true\n },\n \"dryRun\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the call will show which objects would be matched using the specified filter without deleting any objects.

Depending on the configured verbosity, you will either receive a count of affected objects, or a list of IDs.\",\n \"default\": false\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"match\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"The name of the collection (class) from which to delete objects.\",\n \"example\": \"City\"\n },\n \"where\": {\n \"type\": \"object\",\n \"properties\": {\n \"operands\": {\n \"type\": \"array\",\n \"description\": \"Combine multiple where filters, requires 'And' or 'Or' operator.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WhereFilter\",\n \"has_circular_reference\": true\n }\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"Operator to use.\",\n \"example\": \"GreaterThanEqual\",\n \"enum\": [\n \"And\",\n \"Or\",\n \"Equal\",\n \"Like\",\n \"NotEqual\",\n \"GreaterThan\",\n \"GreaterThanEqual\",\n \"LessThan\",\n \"LessThanEqual\",\n \"WithinGeoRange\",\n \"IsNull\",\n \"ContainsAny\",\n \"ContainsAll\",\n \"ContainsNone\",\n \"Not\"\n ]\n },\n \"path\": {\n \"type\": \"array\",\n \"description\": \"Path to the property currently being filtered.\",\n \"example\": [\n \"inCity\",\n \"city\",\n \"name\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"valueInt\": {\n \"type\": \"integer\",\n \"description\": \"value as integer\",\n \"format\": \"int64\",\n \"nullable\": true,\n \"example\": 2000\n },\n \"valueNumber\": {\n \"type\": \"number\",\n \"description\": \"value as number/float\",\n \"format\": \"float64\",\n \"nullable\": true,\n \"example\": 3.14\n },\n \"valueBoolean\": {\n \"type\": \"boolean\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": false\n },\n \"valueString\": {\n \"type\": \"string\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueText\": {\n \"type\": \"string\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueDate\": {\n \"type\": \"string\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\"\n },\n \"valueIntArray\": {\n \"type\": \"array\",\n \"description\": \"value as integer\",\n \"nullable\": true,\n \"example\": \"[100, 200]\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"x-omitempty\": true\n },\n \"valueNumberArray\": {\n \"type\": \"array\",\n \"description\": \"value as number/float\",\n \"nullable\": true,\n \"example\": [\n 3.14\n ],\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n },\n \"x-omitempty\": true\n },\n \"valueBooleanArray\": {\n \"type\": \"array\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": [\n true,\n false\n ],\n \"items\": {\n \"type\": \"boolean\"\n },\n \"x-omitempty\": true\n },\n \"valueStringArray\": {\n \"type\": \"array\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueTextArray\": {\n \"type\": \"array\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueDateArray\": {\n \"type\": \"array\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\",\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueGeoRange\": {\n \"type\": \"object\",\n \"properties\": {\n \"geoCoordinates\": {\n \"type\": \"object\",\n \"properties\": {\n \"latitude\": {\n \"type\": \"number\",\n \"description\": \"The latitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n },\n \"longitude\": {\n \"type\": \"number\",\n \"description\": \"The longitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n }\n }\n },\n \"distance\": {\n \"type\": \"object\",\n \"properties\": {\n \"max\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n }\n }\n }\n },\n \"description\": \"Filter within a distance of a georange.\"\n }\n },\n \"description\": \"Filter search results using a where filter.\"\n }\n },\n \"description\": \"Outlines how to find the objects to be deleted.\"\n },\n \"output\": {\n \"type\": \"string\",\n \"description\": \"Controls the verbosity of the output, possible values are: `minimal`, `verbose`. Defaults to `minimal`.\",\n \"default\": \"minimal\"\n },\n \"deletionTimeUnixMilli\": {\n \"type\": \"integer\",\n \"description\": \"Timestamp of deletion in milliseconds since epoch UTC.\",\n \"format\": \"int64\",\n \"nullable\": true\n },\n \"dryRun\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the call will show which objects would be matched using the specified filter without deleting any objects.

Depending on the configured verbosity, you will either receive a count of affected objects, or a list of IDs.\",\n \"default\": false\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteReferenceFromObject.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteReferenceFromObject.json new file mode 100644 index 00000000..29582cf0 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteReferenceFromObject.json @@ -0,0 +1,524 @@ +{ + "name": "DeleteReferenceFromObject", + "fully_qualified_name": "WeaviateApi.DeleteReferenceFromObject@0.1.0", + "description": "Delete a specific reference from an object's property.\n\nUse this tool to remove a reference from a specific property of a data object in a collection, identified by its class name and UUID. Call this tool when you need to delete a reference from an object's property.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "Name of the collection (class) the source object belongs to. This identifies where the object is located.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the source object belongs to." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "source_object_uuid", + "required": true, + "description": "Unique UUID of the source object from which the reference will be deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the source object." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "reference_property_name", + "required": true, + "description": "Unique name of the reference property of the source object from which to delete the reference.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique name of the reference property of the source object." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertyName" + }, + { + "name": "reference_to_remove", + "required": true, + "description": "JSON object detailing the reference to remove, including class name, schema, beacon, and optional classification metadata.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a concept reference (rather than a direct reference), specify the desired collection (class) name here." + }, + "schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "beacon": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a direct reference, specify the URI to point to the cross-reference here. Should be in the form of weaviate://localhost/ for the example of a local cross-reference to an object" + }, + "href": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise." + }, + "classification": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "overallCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present" + }, + "winningCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "size of the winning group, a number between 1..k" + }, + "losingCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "size of the losing group, can be 0 if the winning group size equals k" + }, + "closestOverallDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The lowest distance of any neighbor, regardless of whether they were in the winning or losing group" + }, + "winningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "deprecated - do not use, to be removed in 0.23.0" + }, + "meanWinningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mean distance of all neighbors from the winning group" + }, + "closestWinningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closest distance of a neighbor from the winning group" + }, + "closestLosingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group" + }, + "losingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "deprecated - do not use, to be removed in 0.23.0" + }, + "meanLosingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group." + } + }, + "inner_properties": null, + "description": "This meta field contains additional info about the classified reference property" + } + }, + "inner_properties": null, + "description": "The reference to remove." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "required_consistency_level", + "required": false, + "description": "Specifies how many replicas must acknowledge the request for success.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency_level" + }, + { + "name": "tenant_identifier", + "required": false, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "tenant" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'objects.class.references.delete'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/objects/{className}/{id}/references/{propertyName}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "consistency_level", + "tool_parameter_name": "required_consistency_level", + "description": "Determines how many replicas must acknowledge a request before it is considered successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "tenant", + "tool_parameter_name": "tenant_identifier", + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "Name of the collection (class) the source object belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the source object belongs to." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "source_object_uuid", + "description": "Unique UUID of the source object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the source object." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertyName", + "tool_parameter_name": "reference_property_name", + "description": "Unique name of the reference property of the source object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique name of the reference property of the source object." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "reference_to_remove", + "description": "The reference to remove.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a concept reference (rather than a direct reference), specify the desired collection (class) name here." + }, + "schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "beacon": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a direct reference, specify the URI to point to the cross-reference here. Should be in the form of weaviate://localhost/ for the example of a local cross-reference to an object" + }, + "href": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise." + }, + "classification": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "overallCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present" + }, + "winningCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "size of the winning group, a number between 1..k" + }, + "losingCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "size of the losing group, can be 0 if the winning group size equals k" + }, + "closestOverallDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The lowest distance of any neighbor, regardless of whether they were in the winning or losing group" + }, + "winningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "deprecated - do not use, to be removed in 0.23.0" + }, + "meanWinningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mean distance of all neighbors from the winning group" + }, + "closestWinningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closest distance of a neighbor from the winning group" + }, + "closestLosingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group" + }, + "losingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "deprecated - do not use, to be removed in 0.23.0" + }, + "meanLosingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group." + } + }, + "inner_properties": null, + "description": "This meta field contains additional info about the classified reference property" + } + }, + "inner_properties": null, + "description": "The reference to remove." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The reference to remove.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"If using a concept reference (rather than a direct reference), specify the desired collection (class) name here.\",\n \"format\": \"uri\"\n },\n \"schema\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"beacon\": {\n \"type\": \"string\",\n \"description\": \"If using a direct reference, specify the URI to point to the cross-reference here. Should be in the form of weaviate://localhost/ for the example of a local cross-reference to an object\",\n \"format\": \"uri\"\n },\n \"href\": {\n \"type\": \"string\",\n \"description\": \"If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise.\",\n \"format\": \"uri\"\n },\n \"classification\": {\n \"type\": \"object\",\n \"properties\": {\n \"overallCount\": {\n \"type\": \"number\",\n \"description\": \"overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present\",\n \"format\": \"int64\"\n },\n \"winningCount\": {\n \"type\": \"number\",\n \"description\": \"size of the winning group, a number between 1..k\",\n \"format\": \"int64\"\n },\n \"losingCount\": {\n \"type\": \"number\",\n \"description\": \"size of the losing group, can be 0 if the winning group size equals k\",\n \"format\": \"int64\"\n },\n \"closestOverallDistance\": {\n \"type\": \"number\",\n \"description\": \"The lowest distance of any neighbor, regardless of whether they were in the winning or losing group\",\n \"format\": \"float32\"\n },\n \"winningDistance\": {\n \"type\": \"number\",\n \"description\": \"deprecated - do not use, to be removed in 0.23.0\",\n \"format\": \"float32\"\n },\n \"meanWinningDistance\": {\n \"type\": \"number\",\n \"description\": \"Mean distance of all neighbors from the winning group\",\n \"format\": \"float32\"\n },\n \"closestWinningDistance\": {\n \"type\": \"number\",\n \"description\": \"Closest distance of a neighbor from the winning group\",\n \"format\": \"float32\"\n },\n \"closestLosingDistance\": {\n \"type\": \"number\",\n \"description\": \"The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group\",\n \"format\": \"float32\",\n \"nullable\": true\n },\n \"losingDistance\": {\n \"type\": \"number\",\n \"description\": \"deprecated - do not use, to be removed in 0.23.0\",\n \"format\": \"float32\",\n \"nullable\": true\n },\n \"meanLosingDistance\": {\n \"type\": \"number\",\n \"description\": \"Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group.\",\n \"format\": \"float32\",\n \"nullable\": true\n }\n },\n \"description\": \"This meta field contains additional info about the classified reference property\"\n }\n },\n \"description\": \"Either set beacon (direct reference) or set collection (class) and schema (concept reference)\"\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"If using a concept reference (rather than a direct reference), specify the desired collection (class) name here.\",\n \"format\": \"uri\"\n },\n \"schema\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"beacon\": {\n \"type\": \"string\",\n \"description\": \"If using a direct reference, specify the URI to point to the cross-reference here. Should be in the form of weaviate://localhost/ for the example of a local cross-reference to an object\",\n \"format\": \"uri\"\n },\n \"href\": {\n \"type\": \"string\",\n \"description\": \"If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise.\",\n \"format\": \"uri\"\n },\n \"classification\": {\n \"type\": \"object\",\n \"properties\": {\n \"overallCount\": {\n \"type\": \"number\",\n \"description\": \"overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present\",\n \"format\": \"int64\"\n },\n \"winningCount\": {\n \"type\": \"number\",\n \"description\": \"size of the winning group, a number between 1..k\",\n \"format\": \"int64\"\n },\n \"losingCount\": {\n \"type\": \"number\",\n \"description\": \"size of the losing group, can be 0 if the winning group size equals k\",\n \"format\": \"int64\"\n },\n \"closestOverallDistance\": {\n \"type\": \"number\",\n \"description\": \"The lowest distance of any neighbor, regardless of whether they were in the winning or losing group\",\n \"format\": \"float32\"\n },\n \"winningDistance\": {\n \"type\": \"number\",\n \"description\": \"deprecated - do not use, to be removed in 0.23.0\",\n \"format\": \"float32\"\n },\n \"meanWinningDistance\": {\n \"type\": \"number\",\n \"description\": \"Mean distance of all neighbors from the winning group\",\n \"format\": \"float32\"\n },\n \"closestWinningDistance\": {\n \"type\": \"number\",\n \"description\": \"Closest distance of a neighbor from the winning group\",\n \"format\": \"float32\"\n },\n \"closestLosingDistance\": {\n \"type\": \"number\",\n \"description\": \"The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group\",\n \"format\": \"float32\",\n \"nullable\": true\n },\n \"losingDistance\": {\n \"type\": \"number\",\n \"description\": \"deprecated - do not use, to be removed in 0.23.0\",\n \"format\": \"float32\",\n \"nullable\": true\n },\n \"meanLosingDistance\": {\n \"type\": \"number\",\n \"description\": \"Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group.\",\n \"format\": \"float32\",\n \"nullable\": true\n }\n },\n \"description\": \"This meta field contains additional info about the classified reference property\"\n }\n },\n \"description\": \"Either set beacon (direct reference) or set collection (class) and schema (concept reference)\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteRole.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteRole.json new file mode 100644 index 00000000..90c7e0c0 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteRole.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteRole", + "fully_qualified_name": "WeaviateApi.DeleteRole@0.1.0", + "description": "Delete a role and revoke its permissions system-wide.\n\nUse this tool to delete a role from the system, removing it and revoking the associated permissions from all users who had it.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "role_name", + "required": true, + "description": "Specify the name of the role to be deleted and revoked from users.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the role." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'deleteRole'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/roles/{id}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "role_name", + "description": "The name of the role.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the role." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteSchemaCollection.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteSchemaCollection.json new file mode 100644 index 00000000..ce8d8cbd --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteSchemaCollection.json @@ -0,0 +1,115 @@ +{ + "name": "DeleteSchemaCollection", + "fully_qualified_name": "WeaviateApi.DeleteSchemaCollection@0.1.0", + "description": "Permanently delete a collection from the schema.\n\nCall this tool to remove a collection definition and all its data objects from the schema permanently.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name_to_delete", + "required": true, + "description": "The name of the collection (class) that will be permanently deleted from the schema.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) to delete." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'schema.objects.delete'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema/{className}", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "className", + "tool_parameter_name": "collection_name_to_delete", + "description": "The name of the collection (class) to delete.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) to delete." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteTenants.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteTenants.json new file mode 100644 index 00000000..2397555b --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DeleteTenants.json @@ -0,0 +1,148 @@ +{ + "name": "DeleteTenants", + "fully_qualified_name": "WeaviateApi.DeleteTenants@0.1.0", + "description": "Permanently delete specified tenants from a collection.\n\nUse this tool to delete one or more tenants from a specified collection in Weaviate. This action is irreversible and will remove all data related to the specified tenants.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "The name of the collection from which to delete tenants.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) from which to delete tenants." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "tenant_names_to_delete", + "required": true, + "description": "An array of tenant names to permanently delete from the specified collection.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An array of tenant names to delete." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'tenants.delete'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema/{className}/tenants", + "http_method": "DELETE", + "headers": {}, + "parameters": [ + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "The name of the collection (class) from which to delete tenants.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) from which to delete tenants." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "tenant_names_to_delete", + "description": "An array of tenant names to delete.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "An array of tenant names to delete." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"An array of tenant names to delete.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"description\": \"Name of a tenant to delete.\"\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"description\": \"Name of a tenant to delete.\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DiscoverApiEndpoints.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DiscoverApiEndpoints.json new file mode 100644 index 00000000..7142355f --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/DiscoverApiEndpoints.json @@ -0,0 +1,80 @@ +{ + "name": "DiscoverApiEndpoints", + "fully_qualified_name": "WeaviateApi.DiscoverApiEndpoints@0.1.0", + "description": "Retrieve links to available REST API endpoints.\n\nThis tool fetches links to other endpoints within the REST API, aiding in the discovery and navigation of the available API options.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'weaviate.root'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ExecuteGraphqlBatchQueries.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ExecuteGraphqlBatchQueries.json new file mode 100644 index 00000000..2b85e0d0 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ExecuteGraphqlBatchQueries.json @@ -0,0 +1,165 @@ +{ + "name": "ExecuteGraphqlBatchQueries", + "fully_qualified_name": "WeaviateApi.ExecuteGraphqlBatchQueries@0.1.0", + "description": "Execute multiple GraphQL queries in a single request.\n\nExecutes multiple GraphQL queries sent in a single network request for efficiency. Ideal for performing batch queries in Weaviate.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "graphql_queries_batch", + "required": true, + "description": "An array of GraphQL query objects to execute in batch. Each object should include 'operationName', 'query', and optional 'variables'.", + "value_schema": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "operationName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the operation if multiple exist in the query." + }, + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Query based on GraphQL syntax." + }, + "variables": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional variables for the query." + } + }, + "description": "An array containing multiple GraphQL query objects to execute in batch." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'graphql.batch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/graphql/batch", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "graphql_queries_batch", + "description": "An array containing multiple GraphQL query objects to execute in batch.", + "value_schema": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "operationName": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the operation if multiple exist in the query." + }, + "query": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Query based on GraphQL syntax." + }, + "variables": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional variables for the query." + } + }, + "description": "An array containing multiple GraphQL query objects to execute in batch." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"An array containing multiple GraphQL query objects to execute in batch.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"array\",\n \"description\": \"A list of GraphQL queries.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"operationName\": {\n \"type\": \"string\",\n \"description\": \"The name of the operation if multiple exist in the query.\"\n },\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Query based on GraphQL syntax.\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Additional variables for the query.\"\n }\n },\n \"description\": \"GraphQL query based on: http://facebook.github.io/graphql/.\"\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"description\": \"A list of GraphQL queries.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"operationName\": {\n \"type\": \"string\",\n \"description\": \"The name of the operation if multiple exist in the query.\"\n },\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Query based on GraphQL syntax.\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Additional variables for the query.\"\n }\n },\n \"description\": \"GraphQL query based on: http://facebook.github.io/graphql/.\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ExecuteGraphqlQuery.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ExecuteGraphqlQuery.json new file mode 100644 index 00000000..5f710688 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ExecuteGraphqlQuery.json @@ -0,0 +1,181 @@ +{ + "name": "ExecuteGraphqlQuery", + "fully_qualified_name": "WeaviateApi.ExecuteGraphqlQuery@0.1.0", + "description": "Executes a GraphQL query on Weaviate.\n\nUse this tool to perform data queries and exploration on the Weaviate platform by executing a provided GraphQL query.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "operation_name", + "required": false, + "description": "The name of the operation if multiple operations exist in the GraphQL query.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the operation if multiple exist in the query." + }, + "inferrable": true, + "http_endpoint_parameter_name": "operationName" + }, + { + "name": "graphql_query", + "required": false, + "description": "A GraphQL query string to execute on Weaviate, following GraphQL syntax.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Query based on GraphQL syntax." + }, + "inferrable": true, + "http_endpoint_parameter_name": "query" + }, + { + "name": "query_variables", + "required": false, + "description": "Additional JSON variables for the GraphQL query used to provide external values for operations.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional variables for the query." + }, + "inferrable": true, + "http_endpoint_parameter_name": "variables" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'graphql.post'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/graphql", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "operationName", + "tool_parameter_name": "operation_name", + "description": "The name of the operation if multiple exist in the query.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the operation if multiple exist in the query." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "query", + "tool_parameter_name": "graphql_query", + "description": "Query based on GraphQL syntax.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Query based on GraphQL syntax." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "variables", + "tool_parameter_name": "query_variables", + "description": "Additional variables for the query.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Additional variables for the query." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The GraphQL query to execute, including the query string and optional variables.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"operationName\": {\n \"type\": \"string\",\n \"description\": \"The name of the operation if multiple exist in the query.\"\n },\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Query based on GraphQL syntax.\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Additional variables for the query.\"\n }\n },\n \"description\": \"GraphQL query based on: http://facebook.github.io/graphql/.\"\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"operationName\": {\n \"type\": \"string\",\n \"description\": \"The name of the operation if multiple exist in the query.\"\n },\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Query based on GraphQL syntax.\"\n },\n \"variables\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Additional variables for the query.\"\n }\n },\n \"description\": \"GraphQL query based on: http://facebook.github.io/graphql/.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/FetchReplicationStatus.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/FetchReplicationStatus.json new file mode 100644 index 00000000..1815bd73 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/FetchReplicationStatus.json @@ -0,0 +1,148 @@ +{ + "name": "FetchReplicationStatus", + "fully_qualified_name": "WeaviateApi.FetchReplicationStatus@0.1.0", + "description": "Retrieve the status of a specific replication operation.\n\nUse this tool to get current status and detailed information about a replication operation by its unique ID. It can optionally include historical progress data of the operation.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "replication_operation_id", + "required": true, + "description": "The unique identifier for the replication operation to fetch details for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the replication operation to get details for." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "include_history", + "required": false, + "description": "Set to true to include the history of the replication operation.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include the history of the replication operation." + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeHistory" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'replicationDetails'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/replication/replicate/{id}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "includeHistory", + "tool_parameter_name": "include_history", + "description": "Whether to include the history of the replication operation.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include the history of the replication operation." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "replication_operation_id", + "description": "The ID of the replication operation to get details for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The ID of the replication operation to get details for." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/FetchRoleByName.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/FetchRoleByName.json new file mode 100644 index 00000000..5cf3da39 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/FetchRoleByName.json @@ -0,0 +1,115 @@ +{ + "name": "FetchRoleByName", + "fully_qualified_name": "WeaviateApi.FetchRoleByName@0.1.0", + "description": "Fetch role details using its name.\n\nThis tool retrieves the details of a specific role by its name from the Weaviate service. It should be called when information about a role is required, typically for authorization or configuration purposes.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "role_name", + "required": true, + "description": "The name of the role to fetch details for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the role." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getRole'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/roles/{id}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "role_name", + "description": "The name of the role.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the role." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/FetchShardingState.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/FetchShardingState.json new file mode 100644 index 00000000..7506cb64 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/FetchShardingState.json @@ -0,0 +1,148 @@ +{ + "name": "FetchShardingState", + "fully_qualified_name": "WeaviateApi.FetchShardingState@0.1.0", + "description": "Fetch the current sharding state and replica details for collections.\n\nThis tool retrieves the current sharding state for all collections or a specified collection, including replica locations and statuses. If needed, it can also provide the state for a specific shard within a collection.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": false, + "description": "The name of the collection to retrieve the sharding state for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The collection name to get the sharding state for." + }, + "inferrable": true, + "http_endpoint_parameter_name": "collection" + }, + { + "name": "target_shard", + "required": false, + "description": "Specify the shard name to retrieve its sharding state in a collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The shard to get the sharding state for." + }, + "inferrable": true, + "http_endpoint_parameter_name": "shard" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getCollectionShardingState'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/replication/sharding-state", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "collection", + "tool_parameter_name": "collection_name", + "description": "The collection name to get the sharding state for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The collection name to get the sharding state for." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "shard", + "tool_parameter_name": "target_shard", + "description": "The shard to get the sharding state for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The shard to get the sharding state for." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ForceDeleteReplications.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ForceDeleteReplications.json new file mode 100644 index 00000000..00b2d537 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ForceDeleteReplications.json @@ -0,0 +1,247 @@ +{ + "name": "ForceDeleteReplications", + "fully_qualified_name": "WeaviateApi.ForceDeleteReplications@0.1.0", + "description": "Forcefully delete replication operations with caution.\n\nThis tool is used to forcefully delete operations from the FSM in Weaviate. It should be called when there is a need to remove replication operations without performing state checks, which may lead to data corruption or loss. Ensure replication engine workers are scaled to 0 before using this to prevent in-flight operations.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "replication_operation_id", + "required": false, + "description": "The unique identifier (ID) of the replication operation to be forcefully deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier (ID) of the replication operation to be forcefully deleted." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "collection_name", + "required": false, + "description": "The name of the collection associated with the shard being replicated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection to which the shard being replicated belongs." + }, + "inferrable": true, + "http_endpoint_parameter_name": "collection" + }, + { + "name": "shard_identifier", + "required": false, + "description": "The unique identifier of the shard involved in the replication operations.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The identifier of the shard involved in the replication operations." + }, + "inferrable": true, + "http_endpoint_parameter_name": "shard" + }, + { + "name": "target_node_name", + "required": false, + "description": "The name of the target node where replication operations are registered.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the target node where the replication operations are registered." + }, + "inferrable": true, + "http_endpoint_parameter_name": "node" + }, + { + "name": "dry_run", + "required": false, + "description": "When set to true, the operation simulates the deletion and returns the expected result without executing it.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the operation will not actually delete anything but will return the expected outcome of the deletion." + }, + "inferrable": true, + "http_endpoint_parameter_name": "dryRun" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'forceDeleteReplications'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/replication/replicate/force-delete", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "replication_operation_id", + "description": "The unique identifier (ID) of the replication operation to be forcefully deleted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier (ID) of the replication operation to be forcefully deleted." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "collection", + "tool_parameter_name": "collection_name", + "description": "The name of the collection to which the shard being replicated belongs.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection to which the shard being replicated belongs." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "shard", + "tool_parameter_name": "shard_identifier", + "description": "The identifier of the shard involved in the replication operations.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The identifier of the shard involved in the replication operations." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "node", + "tool_parameter_name": "target_node_name", + "description": "The name of the target node where the replication operations are registered.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the target node where the replication operations are registered." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "dryRun", + "tool_parameter_name": "dry_run", + "description": "If true, the operation will not actually delete anything but will return the expected outcome of the deletion.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the operation will not actually delete anything but will return the expected outcome of the deletion." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique identifier (ID) of the replication operation to be forcefully deleted.\",\n \"format\": \"uuid\"\n },\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"The name of the collection to which the shard being replicated belongs.\"\n },\n \"shard\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the shard involved in the replication operations.\"\n },\n \"node\": {\n \"type\": \"string\",\n \"description\": \"The name of the target node where the replication operations are registered.\"\n },\n \"dryRun\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the operation will not actually delete anything but will return the expected outcome of the deletion.\",\n \"default\": false\n }\n },\n \"description\": \"Specifies the parameters available when force deleting replication operations.\"\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The unique identifier (ID) of the replication operation to be forcefully deleted.\",\n \"format\": \"uuid\"\n },\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"The name of the collection to which the shard being replicated belongs.\"\n },\n \"shard\": {\n \"type\": \"string\",\n \"description\": \"The identifier of the shard involved in the replication operations.\"\n },\n \"node\": {\n \"type\": \"string\",\n \"description\": \"The name of the target node where the replication operations are registered.\"\n },\n \"dryRun\": {\n \"type\": \"boolean\",\n \"description\": \"If true, the operation will not actually delete anything but will return the expected outcome of the deletion.\",\n \"default\": false\n }\n },\n \"description\": \"Specifies the parameters available when force deleting replication operations.\"\n }\n }\n },\n \"required\": false\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetAuthenticatedUserInfo.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetAuthenticatedUserInfo.json new file mode 100644 index 00000000..d358baf9 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetAuthenticatedUserInfo.json @@ -0,0 +1,80 @@ +{ + "name": "GetAuthenticatedUserInfo", + "fully_qualified_name": "WeaviateApi.GetAuthenticatedUserInfo@0.1.0", + "description": "Retrieve details about the authenticated user and their roles.\n\nThis tool retrieves information about the current user, including their username and assigned roles, from the authenticated session.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'getOwnInfo'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/users/own-info", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetClassificationStatus.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetClassificationStatus.json new file mode 100644 index 00000000..5f35fca5 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetClassificationStatus.json @@ -0,0 +1,115 @@ +{ + "name": "GetClassificationStatus", + "fully_qualified_name": "WeaviateApi.GetClassificationStatus@0.1.0", + "description": "Retrieve status and results of a classification task.\n\nUse this tool to obtain the status, metadata, and results of an ongoing or completed classification task by providing its unique ID.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "classification_task_id", + "required": true, + "description": "The unique identifier (UUID) of the classification task to retrieve its status and results.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier (UUID) of the classification task." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'classifications.get'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/classifications/{id}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "classification_task_id", + "description": "The unique identifier (UUID) of the classification task.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier (UUID) of the classification task." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetClusterNodeStatus.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetClusterNodeStatus.json new file mode 100644 index 00000000..f5fb6f9d --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetClusterNodeStatus.json @@ -0,0 +1,115 @@ +{ + "name": "GetClusterNodeStatus", + "fully_qualified_name": "WeaviateApi.GetClusterNodeStatus@0.1.0", + "description": "Retrieve status information about all nodes in a cluster.\n\nFetches status details for all nodes in the cluster, with adjustable detail level using the output parameter.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "output_verbosity", + "required": false, + "description": "Controls the verbosity of the output for node status information. Accepted values: `minimal`, `verbose`. Defaults to `minimal`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Controls the verbosity of the output, possible values are: `minimal`, `verbose`. Defaults to `minimal`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "output" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'nodes.get'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/nodes", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "output", + "tool_parameter_name": "output_verbosity", + "description": "Controls the verbosity of the output, possible values are: `minimal`, `verbose`. Defaults to `minimal`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Controls the verbosity of the output, possible values are: `minimal`, `verbose`. Defaults to `minimal`." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": "minimal", + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetCollectionShardStatus.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetCollectionShardStatus.json new file mode 100644 index 00000000..c13f4509 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetCollectionShardStatus.json @@ -0,0 +1,148 @@ +{ + "name": "GetCollectionShardStatus", + "fully_qualified_name": "WeaviateApi.GetCollectionShardStatus@0.1.0", + "description": "Retrieves status of shards for a specified collection.\n\nUse this tool to get the status of all shards associated with a specific collection (`className`) in Weaviate. For multi-tenant collections, specify the `tenant` query parameter to retrieve shard status for a particular tenant.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "The name of the collection (class) whose shards to query.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) whose shards to query." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "tenant_name", + "required": false, + "description": "The name of the tenant for retrieving shard statuses, applicable only for multi-tenant collections.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant for which to retrieve shard statuses (only applicable for multi-tenant collections)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "tenant" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'schema.objects.shards.get'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema/{className}/shards", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "tenant", + "tool_parameter_name": "tenant_name", + "description": "The name of the tenant for which to retrieve shard statuses (only applicable for multi-tenant collections).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant for which to retrieve shard statuses (only applicable for multi-tenant collections)." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "The name of the collection (class) whose shards to query.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) whose shards to query." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetCollectionTenants.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetCollectionTenants.json new file mode 100644 index 00000000..9794d653 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetCollectionTenants.json @@ -0,0 +1,148 @@ +{ + "name": "GetCollectionTenants", + "fully_qualified_name": "WeaviateApi.GetCollectionTenants@0.1.0", + "description": "Retrieve tenants for a specified collection.\n\nThis tool retrieves a list of all tenants associated with a given collection. Call this tool to obtain tenant information for a specified collection in the Weaviate service.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "The name of the collection (class) whose tenants to list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) whose tenants to list." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "proxy_to_leader_for_consistency", + "required": false, + "description": "If true, proxies request to the cluster leader for strong schema consistency. Default is true.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the request is proxied to the cluster leader to ensure strong schema consistency. Default is true." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'tenants.get'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema/{className}/tenants", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "The name of the collection (class) whose tenants to list.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) whose tenants to list." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "consistency", + "tool_parameter_name": "proxy_to_leader_for_consistency", + "description": "If true, the request is proxied to the cluster leader to ensure strong schema consistency. Default is true.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the request is proxied to the cluster leader to ensure strong schema consistency. Default is true." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "default": true, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetDataObject.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetDataObject.json new file mode 100644 index 00000000..bc91e31e --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetDataObject.json @@ -0,0 +1,280 @@ +{ + "name": "GetDataObject", + "fully_qualified_name": "WeaviateApi.GetDataObject@0.1.0", + "description": "Retrieve a data object using collection name and UUID.\n\n", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "Name of the collection (class) the object belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "object_uuid", + "required": true, + "description": "Unique UUID of the object to be retrieved from the specified collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the object to be retrieved." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "include_additional_information", + "required": false, + "description": "Specify additional info to include: `classification`, `vector`, or `interpretation`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include additional information, such as classification information. Allowed values include: `classification`, `vector` and `interpretation`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "include" + }, + { + "name": "required_replica_acknowledgment", + "required": false, + "description": "Specifies how many replicas must confirm a request for success. Relates to consistency level.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency_level" + }, + { + "name": "target_node_name", + "required": false, + "description": "Specify the target node to fulfill the request.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The target node which should fulfill the request." + }, + "inferrable": true, + "http_endpoint_parameter_name": "node_name" + }, + { + "name": "tenant_identifier", + "required": false, + "description": "Specify the tenant for a multi-tenant collection request.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "tenant" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'objects.class.get'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/objects/{className}/{id}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "include", + "tool_parameter_name": "include_additional_information", + "description": "Include additional information, such as classification information. Allowed values include: `classification`, `vector` and `interpretation`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include additional information, such as classification information. Allowed values include: `classification`, `vector` and `interpretation`." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "consistency_level", + "tool_parameter_name": "required_replica_acknowledgment", + "description": "Determines how many replicas must acknowledge a request before it is considered successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "node_name", + "tool_parameter_name": "target_node_name", + "description": "The target node which should fulfill the request.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The target node which should fulfill the request." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "tenant", + "tool_parameter_name": "tenant_identifier", + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "Name of the collection (class) the object belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "object_uuid", + "description": "Unique UUID of the object to be retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the object to be retrieved." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetDatabaseUserInfo.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetDatabaseUserInfo.json new file mode 100644 index 00000000..5c4d8226 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetDatabaseUserInfo.json @@ -0,0 +1,148 @@ +{ + "name": "GetDatabaseUserInfo", + "fully_qualified_name": "WeaviateApi.GetDatabaseUserInfo@0.1.0", + "description": "Retrieve information about a specific database user.\n\nUse this tool to get detailed information about a database user, including their roles, status, and type. Call this tool when you need to know specific details about a database user's profile or attributes.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "database_user_name", + "required": true, + "description": "The unique identifier or name of the database user to retrieve information for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + }, + { + "name": "include_last_used_time", + "required": false, + "description": "Set to true to include the last used time in the user's information.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include the last used time of the given user" + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeLastUsedTime" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getUserInfo'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/users/db/{user_id}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "includeLastUsedTime", + "tool_parameter_name": "include_last_used_time", + "description": "Whether to include the last used time of the given user", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include the last used time of the given user" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "user_id", + "tool_parameter_name": "database_user_name", + "description": "The name of the user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetGroupsForRole.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetGroupsForRole.json new file mode 100644 index 00000000..8c04b9dd --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetGroupsForRole.json @@ -0,0 +1,115 @@ +{ + "name": "GetGroupsForRole", + "fully_qualified_name": "WeaviateApi.GetGroupsForRole@0.1.0", + "description": "Retrieve groups assigned to a specific role.\n\nUse this tool to get a list of all groups that have been assigned a particular role, identified by the role's name.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "role_name", + "required": true, + "description": "The unique name of the role to retrieve associated groups.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique name of the role." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getGroupsForRole'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/roles/{id}/group-assignments", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "role_name", + "description": "The unique name of the role.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique name of the role." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetOidcDiscovery.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetOidcDiscovery.json new file mode 100644 index 00000000..086bfe78 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetOidcDiscovery.json @@ -0,0 +1,80 @@ +{ + "name": "GetOidcDiscovery", + "fully_qualified_name": "WeaviateApi.GetOidcDiscovery@0.1.0", + "description": "Fetches OIDC discovery details for Weaviate authentication.\n\nThis tool retrieves OpenID Connect (OIDC) discovery information for Weaviate if OIDC authentication is configured. It provides essential details like the token issuer URL, client ID, and required scopes.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint ''.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/.well-known/openid-configuration", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetRolesAndPermissions.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetRolesAndPermissions.json new file mode 100644 index 00000000..c70614e3 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetRolesAndPermissions.json @@ -0,0 +1,80 @@ +{ + "name": "GetRolesAndPermissions", + "fully_qualified_name": "WeaviateApi.GetRolesAndPermissions@0.1.0", + "description": "Retrieve all roles and their assigned permissions.\n\nUse this tool to obtain detailed information on all roles and the specific permissions associated with each role.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'getRoles'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/roles", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetRolesForGroup.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetRolesForGroup.json new file mode 100644 index 00000000..37f5e617 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetRolesForGroup.json @@ -0,0 +1,185 @@ +{ + "name": "GetRolesForGroup", + "fully_qualified_name": "WeaviateApi.GetRolesForGroup@0.1.0", + "description": "Retrieve roles assigned to a specific group.\n\nFetches all roles associated with a group identified by its name and type (options: `db` or `oidc`).", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "group_name", + "required": true, + "description": "The unique name of the group to retrieve roles for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique name of the group." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "group_type", + "required": true, + "description": "Specifies the type of the group, either 'db' or 'oidc'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "The type of the group." + }, + "inferrable": true, + "http_endpoint_parameter_name": "groupType" + }, + { + "name": "include_full_role_definitions", + "required": false, + "description": "Include full role definitions with all permissions if true; return only role names if false.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the response will include the full role definitions with all associated permissions. If false, only role names are returned." + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeFullRoles" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getRolesForGroup'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/groups/{id}/roles/{groupType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "includeFullRoles", + "tool_parameter_name": "include_full_role_definitions", + "description": "If true, the response will include the full role definitions with all associated permissions. If false, only role names are returned.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the response will include the full role definitions with all associated permissions. If false, only role names are returned." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "group_name", + "description": "The unique name of the group.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique name of the group." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "groupType", + "tool_parameter_name": "group_type", + "description": "The type of the group.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "The type of the group." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetShardHostNodesStatus.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetShardHostNodesStatus.json new file mode 100644 index 00000000..a2a04bc4 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetShardHostNodesStatus.json @@ -0,0 +1,181 @@ +{ + "name": "GetShardHostNodesStatus", + "fully_qualified_name": "WeaviateApi.GetShardHostNodesStatus@0.1.0", + "description": "Retrieve status of nodes hosting shards for a collection.\n\nThis tool fetches status information for nodes that host shards of a specified collection. Use it to monitor or diagnose the nodes in a distributed database cluster, customizing the level of detail with the `output` query parameter.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_class_name", + "required": true, + "description": "The name of the collection (class) for which to retrieve node status.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) for which to retrieve node status." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "shard_name", + "required": false, + "description": "Specifies the name of the shard for which to retrieve node status information. This helps to focus the request on specific shards within a collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "shardName" + }, + { + "name": "output_verbosity", + "required": false, + "description": "Set the verbosity of the output. Possible values: 'minimal', 'verbose'. Defaults to 'minimal'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Controls the verbosity of the output, possible values are: `minimal`, `verbose`. Defaults to `minimal`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "output" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'nodes.get.class'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/nodes/{className}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "shardName", + "tool_parameter_name": "shard_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "output", + "tool_parameter_name": "output_verbosity", + "description": "Controls the verbosity of the output, possible values are: `minimal`, `verbose`. Defaults to `minimal`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Controls the verbosity of the output, possible values are: `minimal`, `verbose`. Defaults to `minimal`." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": "minimal", + "documentation_urls": [] + }, + { + "name": "className", + "tool_parameter_name": "collection_class_name", + "description": "The name of the collection (class) for which to retrieve node status.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) for which to retrieve node status." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetTenantDetails.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetTenantDetails.json new file mode 100644 index 00000000..cf7ada35 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetTenantDetails.json @@ -0,0 +1,181 @@ +{ + "name": "GetTenantDetails", + "fully_qualified_name": "WeaviateApi.GetTenantDetails@0.1.0", + "description": "Retrieve details about a specific tenant's status.\n\nCall this tool to get information about a specific tenant within a specified collection, including their current activity status.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "The name of the collection (class) that contains the tenant.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) containing the tenant." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "tenant_name", + "required": true, + "description": "The name of the tenant to retrieve details about within the specified collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant to retrieve." + }, + "inferrable": true, + "http_endpoint_parameter_name": "tenantName" + }, + { + "name": "ensure_strong_consistency", + "required": false, + "description": "Set to true to proxy the request to the cluster leader for strong schema consistency. Default is true.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the request is proxied to the cluster leader to ensure strong schema consistency. Default is true." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'tenants.get.one'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema/{className}/tenants/{tenantName}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "The name of the collection (class) containing the tenant.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) containing the tenant." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "tenantName", + "tool_parameter_name": "tenant_name", + "description": "The name of the tenant to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant to retrieve." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "consistency", + "tool_parameter_name": "ensure_strong_consistency", + "description": "If true, the request is proxied to the cluster leader to ensure strong schema consistency. Default is true.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the request is proxied to the cluster leader to ensure strong schema consistency. Default is true." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "default": true, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetUserRoles.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetUserRoles.json new file mode 100644 index 00000000..daca5cea --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetUserRoles.json @@ -0,0 +1,187 @@ +{ + "name": "GetUserRoles", + "fully_qualified_name": "WeaviateApi.GetUserRoles@0.1.0", + "description": "Retrieve all roles assigned to a specific user.\n\nUse this tool to get a list of all roles for a specified user, identified by their ID and user type (`db` or `oidc`).", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_id", + "required": true, + "description": "The unique name or identifier of the user for whom roles are being retrieved.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "user_type", + "required": true, + "description": "Specify the user type: 'oidc' for OpenID Connect or 'db' for database.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc", + "db" + ], + "properties": null, + "inner_properties": null, + "description": "The type of the user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "userType" + }, + { + "name": "include_detailed_role_information", + "required": false, + "description": "Set to true to include detailed role information like assigned permissions.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include detailed role information like its assigned permissions." + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeFullRoles" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getRolesForUser'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/users/{id}/roles/{userType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "includeFullRoles", + "tool_parameter_name": "include_detailed_role_information", + "description": "Whether to include detailed role information like its assigned permissions.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include detailed role information like its assigned permissions." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "user_id", + "description": "The name of the user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "userType", + "tool_parameter_name": "user_type", + "description": "The type of the user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc", + "db" + ], + "properties": null, + "inner_properties": null, + "description": "The type of the user." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetUsersByRole.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetUsersByRole.json new file mode 100644 index 00000000..709bb676 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetUsersByRole.json @@ -0,0 +1,115 @@ +{ + "name": "GetUsersByRole", + "fully_qualified_name": "WeaviateApi.GetUsersByRole@0.1.0", + "description": "Retrieve users with a specific role assignment.\n\nUse to obtain a list of users assigned to a particular role by role ID.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "role_id", + "required": true, + "description": "The unique identifier for the role to fetch associated users.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name (ID) of the role." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getUsersForRole'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/roles/{id}/user-assignments", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "role_id", + "description": "The name (ID) of the role.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name (ID) of the role." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetWeaviateClusterStatistics.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetWeaviateClusterStatistics.json new file mode 100644 index 00000000..ab99e493 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetWeaviateClusterStatistics.json @@ -0,0 +1,80 @@ +{ + "name": "GetWeaviateClusterStatistics", + "fully_qualified_name": "WeaviateApi.GetWeaviateClusterStatistics@0.1.0", + "description": "Get Weaviate cluster Raft protocol statistics.\n\nUse this tool to retrieve detailed statistics about the internal Raft consensus protocol state for a Weaviate cluster. This can help monitor the cluster's status and performance.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'cluster.get.statistics'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/cluster/statistics", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetWeaviateInstanceMeta.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetWeaviateInstanceMeta.json new file mode 100644 index 00000000..5c05ea2a --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/GetWeaviateInstanceMeta.json @@ -0,0 +1,80 @@ +{ + "name": "GetWeaviateInstanceMeta", + "fully_qualified_name": "WeaviateApi.GetWeaviateInstanceMeta@0.1.0", + "description": "Get meta-information about a Weaviate instance.\n\nUse this tool to obtain details such as version, modules, and network hostname of a running Weaviate instance. Useful for monitoring, compatibility checks, or communication between instances.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'meta.get'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/meta", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/InitiateClassificationTask.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/InitiateClassificationTask.json new file mode 100644 index 00000000..08b73fe5 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/InitiateClassificationTask.json @@ -0,0 +1,1545 @@ +{ + "name": "InitiateClassificationTask", + "fully_qualified_name": "WeaviateApi.InitiateClassificationTask@0.1.0", + "description": "Initiate a classification task in the background.\n\nUse this tool to start a background classification task with specific parameters. This will initiate the process, and you can monitor its status and retrieve results using the GET /classifications/{id} endpoint.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "classification_task_parameters", + "required": true, + "description": "Configuration parameters for initiating the classification task, including type, target properties, and training data references. Expect a JSON object.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID to uniquely identify this classification run." + }, + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) which is used in this classification." + }, + "classifyProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Which ref-property to set as part of the classification." + }, + "basedOnProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Base the text-based classification on these fields (of type text)." + }, + "status": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "running", + "completed", + "failed" + ], + "properties": null, + "inner_properties": null, + "description": "Status of this classification." + }, + "meta": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "started": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time when this classification was started." + }, + "completed": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time when this classification finished." + }, + "count": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of objects which were taken into consideration for classification." + }, + "countSucceeded": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of objects successfully classified." + }, + "countFailed": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of objects which could not be classified - see error message for details." + } + }, + "inner_properties": null, + "description": "Additional information to a specific classification." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Which algorithm to use for classifications." + }, + "settings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Classification-type specific settings." + }, + "error": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Error message if status == failed." + }, + "filters": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "sourceWhere": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "operands": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "Combine multiple where filters, requires 'And' or 'Or' operator." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "And", + "Or", + "Equal", + "Like", + "NotEqual", + "GreaterThan", + "GreaterThanEqual", + "LessThan", + "LessThanEqual", + "WithinGeoRange", + "IsNull", + "ContainsAny", + "ContainsAll", + "ContainsNone", + "Not" + ], + "properties": null, + "inner_properties": null, + "description": "Operator to use." + }, + "path": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Path to the property currently being filtered." + }, + "valueInt": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumber": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBoolean": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueString": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueIntArray": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumberArray": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBooleanArray": { + "val_type": "array", + "inner_val_type": "boolean", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueStringArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueTextArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDateArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueGeoRange": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "geoCoordinates": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "latitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The latitude of the point on earth in decimal form." + }, + "longitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The longitude of the point on earth in decimal form." + } + }, + "inner_properties": null, + "description": null + }, + "distance": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "max": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Filter within a distance of a georange." + } + }, + "inner_properties": null, + "description": "Filter search results using a where filter." + }, + "trainingSetWhere": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "operands": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "Combine multiple where filters, requires 'And' or 'Or' operator." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "And", + "Or", + "Equal", + "Like", + "NotEqual", + "GreaterThan", + "GreaterThanEqual", + "LessThan", + "LessThanEqual", + "WithinGeoRange", + "IsNull", + "ContainsAny", + "ContainsAll", + "ContainsNone", + "Not" + ], + "properties": null, + "inner_properties": null, + "description": "Operator to use." + }, + "path": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Path to the property currently being filtered." + }, + "valueInt": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumber": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBoolean": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueString": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueIntArray": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumberArray": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBooleanArray": { + "val_type": "array", + "inner_val_type": "boolean", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueStringArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueTextArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDateArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueGeoRange": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "geoCoordinates": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "latitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The latitude of the point on earth in decimal form." + }, + "longitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The longitude of the point on earth in decimal form." + } + }, + "inner_properties": null, + "description": null + }, + "distance": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "max": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Filter within a distance of a georange." + } + }, + "inner_properties": null, + "description": "Filter search results using a where filter." + }, + "targetWhere": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "operands": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "Combine multiple where filters, requires 'And' or 'Or' operator." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "And", + "Or", + "Equal", + "Like", + "NotEqual", + "GreaterThan", + "GreaterThanEqual", + "LessThan", + "LessThanEqual", + "WithinGeoRange", + "IsNull", + "ContainsAny", + "ContainsAll", + "ContainsNone", + "Not" + ], + "properties": null, + "inner_properties": null, + "description": "Operator to use." + }, + "path": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Path to the property currently being filtered." + }, + "valueInt": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumber": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBoolean": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueString": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueIntArray": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumberArray": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBooleanArray": { + "val_type": "array", + "inner_val_type": "boolean", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueStringArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueTextArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDateArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueGeoRange": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "geoCoordinates": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "latitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The latitude of the point on earth in decimal form." + }, + "longitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The longitude of the point on earth in decimal form." + } + }, + "inner_properties": null, + "description": null + }, + "distance": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "max": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Filter within a distance of a georange." + } + }, + "inner_properties": null, + "description": "Filter search results using a where filter." + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Configuration parameters for the classification task, including type, target properties, and training data references." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'classifications.post'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/classifications/", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "classification_task_parameters", + "description": "Configuration parameters for the classification task, including type, target properties, and training data references.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "ID to uniquely identify this classification run." + }, + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) which is used in this classification." + }, + "classifyProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Which ref-property to set as part of the classification." + }, + "basedOnProperties": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Base the text-based classification on these fields (of type text)." + }, + "status": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "running", + "completed", + "failed" + ], + "properties": null, + "inner_properties": null, + "description": "Status of this classification." + }, + "meta": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "started": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time when this classification was started." + }, + "completed": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Time when this classification finished." + }, + "count": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of objects which were taken into consideration for classification." + }, + "countSucceeded": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of objects successfully classified." + }, + "countFailed": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of objects which could not be classified - see error message for details." + } + }, + "inner_properties": null, + "description": "Additional information to a specific classification." + }, + "type": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Which algorithm to use for classifications." + }, + "settings": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Classification-type specific settings." + }, + "error": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Error message if status == failed." + }, + "filters": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "sourceWhere": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "operands": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "Combine multiple where filters, requires 'And' or 'Or' operator." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "And", + "Or", + "Equal", + "Like", + "NotEqual", + "GreaterThan", + "GreaterThanEqual", + "LessThan", + "LessThanEqual", + "WithinGeoRange", + "IsNull", + "ContainsAny", + "ContainsAll", + "ContainsNone", + "Not" + ], + "properties": null, + "inner_properties": null, + "description": "Operator to use." + }, + "path": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Path to the property currently being filtered." + }, + "valueInt": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumber": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBoolean": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueString": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueIntArray": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumberArray": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBooleanArray": { + "val_type": "array", + "inner_val_type": "boolean", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueStringArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueTextArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDateArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueGeoRange": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "geoCoordinates": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "latitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The latitude of the point on earth in decimal form." + }, + "longitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The longitude of the point on earth in decimal form." + } + }, + "inner_properties": null, + "description": null + }, + "distance": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "max": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Filter within a distance of a georange." + } + }, + "inner_properties": null, + "description": "Filter search results using a where filter." + }, + "trainingSetWhere": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "operands": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "Combine multiple where filters, requires 'And' or 'Or' operator." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "And", + "Or", + "Equal", + "Like", + "NotEqual", + "GreaterThan", + "GreaterThanEqual", + "LessThan", + "LessThanEqual", + "WithinGeoRange", + "IsNull", + "ContainsAny", + "ContainsAll", + "ContainsNone", + "Not" + ], + "properties": null, + "inner_properties": null, + "description": "Operator to use." + }, + "path": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Path to the property currently being filtered." + }, + "valueInt": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumber": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBoolean": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueString": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueIntArray": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumberArray": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBooleanArray": { + "val_type": "array", + "inner_val_type": "boolean", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueStringArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueTextArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDateArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueGeoRange": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "geoCoordinates": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "latitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The latitude of the point on earth in decimal form." + }, + "longitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The longitude of the point on earth in decimal form." + } + }, + "inner_properties": null, + "description": null + }, + "distance": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "max": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Filter within a distance of a georange." + } + }, + "inner_properties": null, + "description": "Filter search results using a where filter." + }, + "targetWhere": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "operands": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "Combine multiple where filters, requires 'And' or 'Or' operator." + }, + "operator": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "And", + "Or", + "Equal", + "Like", + "NotEqual", + "GreaterThan", + "GreaterThanEqual", + "LessThan", + "LessThanEqual", + "WithinGeoRange", + "IsNull", + "ContainsAny", + "ContainsAll", + "ContainsNone", + "Not" + ], + "properties": null, + "inner_properties": null, + "description": "Operator to use." + }, + "path": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Path to the property currently being filtered." + }, + "valueInt": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumber": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBoolean": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueString": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueText": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDate": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueIntArray": { + "val_type": "array", + "inner_val_type": "integer", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as integer" + }, + "valueNumberArray": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as number/float" + }, + "valueBooleanArray": { + "val_type": "array", + "inner_val_type": "boolean", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as boolean" + }, + "valueStringArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text (deprecated as of v1.19; alias for valueText)" + }, + "valueTextArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as text" + }, + "valueDateArray": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "value as date (as string)" + }, + "valueGeoRange": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "geoCoordinates": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "latitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The latitude of the point on earth in decimal form." + }, + "longitude": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The longitude of the point on earth in decimal form." + } + }, + "inner_properties": null, + "description": null + }, + "distance": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "max": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Filter within a distance of a georange." + } + }, + "inner_properties": null, + "description": "Filter search results using a where filter." + } + }, + "inner_properties": null, + "description": null + } + }, + "inner_properties": null, + "description": "Configuration parameters for the classification task, including type, target properties, and training data references." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Configuration parameters for the classification task, including type, target properties, and training data references.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"ID to uniquely identify this classification run.\",\n \"format\": \"uuid\",\n \"example\": \"ee722219-b8ec-4db1-8f8d-5150bb1a9e0c\"\n },\n \"class\": {\n \"type\": \"string\",\n \"description\": \"The name of the collection (class) which is used in this classification.\",\n \"example\": \"City\"\n },\n \"classifyProperties\": {\n \"type\": \"array\",\n \"description\": \"Which ref-property to set as part of the classification.\",\n \"example\": [\n \"inCountry\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"basedOnProperties\": {\n \"type\": \"array\",\n \"description\": \"Base the text-based classification on these fields (of type text).\",\n \"example\": [\n \"description\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"status\": {\n \"type\": \"string\",\n \"description\": \"Status of this classification.\",\n \"example\": \"running\",\n \"enum\": [\n \"running\",\n \"completed\",\n \"failed\"\n ]\n },\n \"meta\": {\n \"type\": \"object\",\n \"properties\": {\n \"started\": {\n \"type\": \"string\",\n \"description\": \"Time when this classification was started.\",\n \"format\": \"date-time\",\n \"example\": \"2017-07-21T17:32:28Z\"\n },\n \"completed\": {\n \"type\": \"string\",\n \"description\": \"Time when this classification finished.\",\n \"format\": \"date-time\",\n \"example\": \"2017-07-21T17:32:28Z\"\n },\n \"count\": {\n \"type\": \"integer\",\n \"description\": \"Number of objects which were taken into consideration for classification.\",\n \"example\": 147\n },\n \"countSucceeded\": {\n \"type\": \"integer\",\n \"description\": \"Number of objects successfully classified.\",\n \"example\": 140\n },\n \"countFailed\": {\n \"type\": \"integer\",\n \"description\": \"Number of objects which could not be classified - see error message for details.\",\n \"example\": 7\n }\n },\n \"description\": \"Additional information to a specific classification.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Which algorithm to use for classifications.\"\n },\n \"settings\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Classification-type specific settings.\"\n },\n \"error\": {\n \"type\": \"string\",\n \"description\": \"Error message if status == failed.\",\n \"example\": \"classify xzy: something went wrong\",\n \"default\": \"\"\n },\n \"filters\": {\n \"type\": \"object\",\n \"properties\": {\n \"sourceWhere\": {\n \"type\": \"object\",\n \"properties\": {\n \"operands\": {\n \"type\": \"array\",\n \"description\": \"Combine multiple where filters, requires 'And' or 'Or' operator.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WhereFilter\",\n \"has_circular_reference\": true\n }\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"Operator to use.\",\n \"example\": \"GreaterThanEqual\",\n \"enum\": [\n \"And\",\n \"Or\",\n \"Equal\",\n \"Like\",\n \"NotEqual\",\n \"GreaterThan\",\n \"GreaterThanEqual\",\n \"LessThan\",\n \"LessThanEqual\",\n \"WithinGeoRange\",\n \"IsNull\",\n \"ContainsAny\",\n \"ContainsAll\",\n \"ContainsNone\",\n \"Not\"\n ]\n },\n \"path\": {\n \"type\": \"array\",\n \"description\": \"Path to the property currently being filtered.\",\n \"example\": [\n \"inCity\",\n \"city\",\n \"name\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"valueInt\": {\n \"type\": \"integer\",\n \"description\": \"value as integer\",\n \"format\": \"int64\",\n \"nullable\": true,\n \"example\": 2000\n },\n \"valueNumber\": {\n \"type\": \"number\",\n \"description\": \"value as number/float\",\n \"format\": \"float64\",\n \"nullable\": true,\n \"example\": 3.14\n },\n \"valueBoolean\": {\n \"type\": \"boolean\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": false\n },\n \"valueString\": {\n \"type\": \"string\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueText\": {\n \"type\": \"string\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueDate\": {\n \"type\": \"string\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\"\n },\n \"valueIntArray\": {\n \"type\": \"array\",\n \"description\": \"value as integer\",\n \"nullable\": true,\n \"example\": \"[100, 200]\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"x-omitempty\": true\n },\n \"valueNumberArray\": {\n \"type\": \"array\",\n \"description\": \"value as number/float\",\n \"nullable\": true,\n \"example\": [\n 3.14\n ],\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n },\n \"x-omitempty\": true\n },\n \"valueBooleanArray\": {\n \"type\": \"array\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": [\n true,\n false\n ],\n \"items\": {\n \"type\": \"boolean\"\n },\n \"x-omitempty\": true\n },\n \"valueStringArray\": {\n \"type\": \"array\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueTextArray\": {\n \"type\": \"array\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueDateArray\": {\n \"type\": \"array\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\",\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueGeoRange\": {\n \"type\": \"object\",\n \"properties\": {\n \"geoCoordinates\": {\n \"type\": \"object\",\n \"properties\": {\n \"latitude\": {\n \"type\": \"number\",\n \"description\": \"The latitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n },\n \"longitude\": {\n \"type\": \"number\",\n \"description\": \"The longitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n }\n }\n },\n \"distance\": {\n \"type\": \"object\",\n \"properties\": {\n \"max\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n }\n }\n }\n },\n \"description\": \"Filter within a distance of a georange.\"\n }\n },\n \"description\": \"Filter search results using a where filter.\"\n },\n \"trainingSetWhere\": {\n \"type\": \"object\",\n \"properties\": {\n \"operands\": {\n \"type\": \"array\",\n \"description\": \"Combine multiple where filters, requires 'And' or 'Or' operator.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WhereFilter\",\n \"has_circular_reference\": true\n }\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"Operator to use.\",\n \"example\": \"GreaterThanEqual\",\n \"enum\": [\n \"And\",\n \"Or\",\n \"Equal\",\n \"Like\",\n \"NotEqual\",\n \"GreaterThan\",\n \"GreaterThanEqual\",\n \"LessThan\",\n \"LessThanEqual\",\n \"WithinGeoRange\",\n \"IsNull\",\n \"ContainsAny\",\n \"ContainsAll\",\n \"ContainsNone\",\n \"Not\"\n ]\n },\n \"path\": {\n \"type\": \"array\",\n \"description\": \"Path to the property currently being filtered.\",\n \"example\": [\n \"inCity\",\n \"city\",\n \"name\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"valueInt\": {\n \"type\": \"integer\",\n \"description\": \"value as integer\",\n \"format\": \"int64\",\n \"nullable\": true,\n \"example\": 2000\n },\n \"valueNumber\": {\n \"type\": \"number\",\n \"description\": \"value as number/float\",\n \"format\": \"float64\",\n \"nullable\": true,\n \"example\": 3.14\n },\n \"valueBoolean\": {\n \"type\": \"boolean\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": false\n },\n \"valueString\": {\n \"type\": \"string\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueText\": {\n \"type\": \"string\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueDate\": {\n \"type\": \"string\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\"\n },\n \"valueIntArray\": {\n \"type\": \"array\",\n \"description\": \"value as integer\",\n \"nullable\": true,\n \"example\": \"[100, 200]\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"x-omitempty\": true\n },\n \"valueNumberArray\": {\n \"type\": \"array\",\n \"description\": \"value as number/float\",\n \"nullable\": true,\n \"example\": [\n 3.14\n ],\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n },\n \"x-omitempty\": true\n },\n \"valueBooleanArray\": {\n \"type\": \"array\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": [\n true,\n false\n ],\n \"items\": {\n \"type\": \"boolean\"\n },\n \"x-omitempty\": true\n },\n \"valueStringArray\": {\n \"type\": \"array\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueTextArray\": {\n \"type\": \"array\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueDateArray\": {\n \"type\": \"array\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\",\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueGeoRange\": {\n \"type\": \"object\",\n \"properties\": {\n \"geoCoordinates\": {\n \"type\": \"object\",\n \"properties\": {\n \"latitude\": {\n \"type\": \"number\",\n \"description\": \"The latitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n },\n \"longitude\": {\n \"type\": \"number\",\n \"description\": \"The longitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n }\n }\n },\n \"distance\": {\n \"type\": \"object\",\n \"properties\": {\n \"max\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n }\n }\n }\n },\n \"description\": \"Filter within a distance of a georange.\"\n }\n },\n \"description\": \"Filter search results using a where filter.\"\n },\n \"targetWhere\": {\n \"type\": \"object\",\n \"properties\": {\n \"operands\": {\n \"type\": \"array\",\n \"description\": \"Combine multiple where filters, requires 'And' or 'Or' operator.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WhereFilter\",\n \"has_circular_reference\": true\n }\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"Operator to use.\",\n \"example\": \"GreaterThanEqual\",\n \"enum\": [\n \"And\",\n \"Or\",\n \"Equal\",\n \"Like\",\n \"NotEqual\",\n \"GreaterThan\",\n \"GreaterThanEqual\",\n \"LessThan\",\n \"LessThanEqual\",\n \"WithinGeoRange\",\n \"IsNull\",\n \"ContainsAny\",\n \"ContainsAll\",\n \"ContainsNone\",\n \"Not\"\n ]\n },\n \"path\": {\n \"type\": \"array\",\n \"description\": \"Path to the property currently being filtered.\",\n \"example\": [\n \"inCity\",\n \"city\",\n \"name\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"valueInt\": {\n \"type\": \"integer\",\n \"description\": \"value as integer\",\n \"format\": \"int64\",\n \"nullable\": true,\n \"example\": 2000\n },\n \"valueNumber\": {\n \"type\": \"number\",\n \"description\": \"value as number/float\",\n \"format\": \"float64\",\n \"nullable\": true,\n \"example\": 3.14\n },\n \"valueBoolean\": {\n \"type\": \"boolean\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": false\n },\n \"valueString\": {\n \"type\": \"string\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueText\": {\n \"type\": \"string\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueDate\": {\n \"type\": \"string\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\"\n },\n \"valueIntArray\": {\n \"type\": \"array\",\n \"description\": \"value as integer\",\n \"nullable\": true,\n \"example\": \"[100, 200]\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"x-omitempty\": true\n },\n \"valueNumberArray\": {\n \"type\": \"array\",\n \"description\": \"value as number/float\",\n \"nullable\": true,\n \"example\": [\n 3.14\n ],\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n },\n \"x-omitempty\": true\n },\n \"valueBooleanArray\": {\n \"type\": \"array\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": [\n true,\n false\n ],\n \"items\": {\n \"type\": \"boolean\"\n },\n \"x-omitempty\": true\n },\n \"valueStringArray\": {\n \"type\": \"array\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueTextArray\": {\n \"type\": \"array\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueDateArray\": {\n \"type\": \"array\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\",\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueGeoRange\": {\n \"type\": \"object\",\n \"properties\": {\n \"geoCoordinates\": {\n \"type\": \"object\",\n \"properties\": {\n \"latitude\": {\n \"type\": \"number\",\n \"description\": \"The latitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n },\n \"longitude\": {\n \"type\": \"number\",\n \"description\": \"The longitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n }\n }\n },\n \"distance\": {\n \"type\": \"object\",\n \"properties\": {\n \"max\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n }\n }\n }\n },\n \"description\": \"Filter within a distance of a georange.\"\n }\n },\n \"description\": \"Filter search results using a where filter.\"\n }\n }\n }\n },\n \"description\": \"Manage classifications, trigger them and view status of past classifications.\"\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"ID to uniquely identify this classification run.\",\n \"format\": \"uuid\",\n \"example\": \"ee722219-b8ec-4db1-8f8d-5150bb1a9e0c\"\n },\n \"class\": {\n \"type\": \"string\",\n \"description\": \"The name of the collection (class) which is used in this classification.\",\n \"example\": \"City\"\n },\n \"classifyProperties\": {\n \"type\": \"array\",\n \"description\": \"Which ref-property to set as part of the classification.\",\n \"example\": [\n \"inCountry\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"basedOnProperties\": {\n \"type\": \"array\",\n \"description\": \"Base the text-based classification on these fields (of type text).\",\n \"example\": [\n \"description\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"status\": {\n \"type\": \"string\",\n \"description\": \"Status of this classification.\",\n \"example\": \"running\",\n \"enum\": [\n \"running\",\n \"completed\",\n \"failed\"\n ]\n },\n \"meta\": {\n \"type\": \"object\",\n \"properties\": {\n \"started\": {\n \"type\": \"string\",\n \"description\": \"Time when this classification was started.\",\n \"format\": \"date-time\",\n \"example\": \"2017-07-21T17:32:28Z\"\n },\n \"completed\": {\n \"type\": \"string\",\n \"description\": \"Time when this classification finished.\",\n \"format\": \"date-time\",\n \"example\": \"2017-07-21T17:32:28Z\"\n },\n \"count\": {\n \"type\": \"integer\",\n \"description\": \"Number of objects which were taken into consideration for classification.\",\n \"example\": 147\n },\n \"countSucceeded\": {\n \"type\": \"integer\",\n \"description\": \"Number of objects successfully classified.\",\n \"example\": 140\n },\n \"countFailed\": {\n \"type\": \"integer\",\n \"description\": \"Number of objects which could not be classified - see error message for details.\",\n \"example\": 7\n }\n },\n \"description\": \"Additional information to a specific classification.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Which algorithm to use for classifications.\"\n },\n \"settings\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Classification-type specific settings.\"\n },\n \"error\": {\n \"type\": \"string\",\n \"description\": \"Error message if status == failed.\",\n \"example\": \"classify xzy: something went wrong\",\n \"default\": \"\"\n },\n \"filters\": {\n \"type\": \"object\",\n \"properties\": {\n \"sourceWhere\": {\n \"type\": \"object\",\n \"properties\": {\n \"operands\": {\n \"type\": \"array\",\n \"description\": \"Combine multiple where filters, requires 'And' or 'Or' operator.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WhereFilter\",\n \"has_circular_reference\": true\n }\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"Operator to use.\",\n \"example\": \"GreaterThanEqual\",\n \"enum\": [\n \"And\",\n \"Or\",\n \"Equal\",\n \"Like\",\n \"NotEqual\",\n \"GreaterThan\",\n \"GreaterThanEqual\",\n \"LessThan\",\n \"LessThanEqual\",\n \"WithinGeoRange\",\n \"IsNull\",\n \"ContainsAny\",\n \"ContainsAll\",\n \"ContainsNone\",\n \"Not\"\n ]\n },\n \"path\": {\n \"type\": \"array\",\n \"description\": \"Path to the property currently being filtered.\",\n \"example\": [\n \"inCity\",\n \"city\",\n \"name\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"valueInt\": {\n \"type\": \"integer\",\n \"description\": \"value as integer\",\n \"format\": \"int64\",\n \"nullable\": true,\n \"example\": 2000\n },\n \"valueNumber\": {\n \"type\": \"number\",\n \"description\": \"value as number/float\",\n \"format\": \"float64\",\n \"nullable\": true,\n \"example\": 3.14\n },\n \"valueBoolean\": {\n \"type\": \"boolean\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": false\n },\n \"valueString\": {\n \"type\": \"string\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueText\": {\n \"type\": \"string\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueDate\": {\n \"type\": \"string\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\"\n },\n \"valueIntArray\": {\n \"type\": \"array\",\n \"description\": \"value as integer\",\n \"nullable\": true,\n \"example\": \"[100, 200]\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"x-omitempty\": true\n },\n \"valueNumberArray\": {\n \"type\": \"array\",\n \"description\": \"value as number/float\",\n \"nullable\": true,\n \"example\": [\n 3.14\n ],\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n },\n \"x-omitempty\": true\n },\n \"valueBooleanArray\": {\n \"type\": \"array\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": [\n true,\n false\n ],\n \"items\": {\n \"type\": \"boolean\"\n },\n \"x-omitempty\": true\n },\n \"valueStringArray\": {\n \"type\": \"array\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueTextArray\": {\n \"type\": \"array\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueDateArray\": {\n \"type\": \"array\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\",\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueGeoRange\": {\n \"type\": \"object\",\n \"properties\": {\n \"geoCoordinates\": {\n \"type\": \"object\",\n \"properties\": {\n \"latitude\": {\n \"type\": \"number\",\n \"description\": \"The latitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n },\n \"longitude\": {\n \"type\": \"number\",\n \"description\": \"The longitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n }\n }\n },\n \"distance\": {\n \"type\": \"object\",\n \"properties\": {\n \"max\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n }\n }\n }\n },\n \"description\": \"Filter within a distance of a georange.\"\n }\n },\n \"description\": \"Filter search results using a where filter.\"\n },\n \"trainingSetWhere\": {\n \"type\": \"object\",\n \"properties\": {\n \"operands\": {\n \"type\": \"array\",\n \"description\": \"Combine multiple where filters, requires 'And' or 'Or' operator.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WhereFilter\",\n \"has_circular_reference\": true\n }\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"Operator to use.\",\n \"example\": \"GreaterThanEqual\",\n \"enum\": [\n \"And\",\n \"Or\",\n \"Equal\",\n \"Like\",\n \"NotEqual\",\n \"GreaterThan\",\n \"GreaterThanEqual\",\n \"LessThan\",\n \"LessThanEqual\",\n \"WithinGeoRange\",\n \"IsNull\",\n \"ContainsAny\",\n \"ContainsAll\",\n \"ContainsNone\",\n \"Not\"\n ]\n },\n \"path\": {\n \"type\": \"array\",\n \"description\": \"Path to the property currently being filtered.\",\n \"example\": [\n \"inCity\",\n \"city\",\n \"name\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"valueInt\": {\n \"type\": \"integer\",\n \"description\": \"value as integer\",\n \"format\": \"int64\",\n \"nullable\": true,\n \"example\": 2000\n },\n \"valueNumber\": {\n \"type\": \"number\",\n \"description\": \"value as number/float\",\n \"format\": \"float64\",\n \"nullable\": true,\n \"example\": 3.14\n },\n \"valueBoolean\": {\n \"type\": \"boolean\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": false\n },\n \"valueString\": {\n \"type\": \"string\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueText\": {\n \"type\": \"string\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueDate\": {\n \"type\": \"string\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\"\n },\n \"valueIntArray\": {\n \"type\": \"array\",\n \"description\": \"value as integer\",\n \"nullable\": true,\n \"example\": \"[100, 200]\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"x-omitempty\": true\n },\n \"valueNumberArray\": {\n \"type\": \"array\",\n \"description\": \"value as number/float\",\n \"nullable\": true,\n \"example\": [\n 3.14\n ],\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n },\n \"x-omitempty\": true\n },\n \"valueBooleanArray\": {\n \"type\": \"array\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": [\n true,\n false\n ],\n \"items\": {\n \"type\": \"boolean\"\n },\n \"x-omitempty\": true\n },\n \"valueStringArray\": {\n \"type\": \"array\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueTextArray\": {\n \"type\": \"array\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueDateArray\": {\n \"type\": \"array\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\",\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueGeoRange\": {\n \"type\": \"object\",\n \"properties\": {\n \"geoCoordinates\": {\n \"type\": \"object\",\n \"properties\": {\n \"latitude\": {\n \"type\": \"number\",\n \"description\": \"The latitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n },\n \"longitude\": {\n \"type\": \"number\",\n \"description\": \"The longitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n }\n }\n },\n \"distance\": {\n \"type\": \"object\",\n \"properties\": {\n \"max\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n }\n }\n }\n },\n \"description\": \"Filter within a distance of a georange.\"\n }\n },\n \"description\": \"Filter search results using a where filter.\"\n },\n \"targetWhere\": {\n \"type\": \"object\",\n \"properties\": {\n \"operands\": {\n \"type\": \"array\",\n \"description\": \"Combine multiple where filters, requires 'And' or 'Or' operator.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WhereFilter\",\n \"has_circular_reference\": true\n }\n },\n \"operator\": {\n \"type\": \"string\",\n \"description\": \"Operator to use.\",\n \"example\": \"GreaterThanEqual\",\n \"enum\": [\n \"And\",\n \"Or\",\n \"Equal\",\n \"Like\",\n \"NotEqual\",\n \"GreaterThan\",\n \"GreaterThanEqual\",\n \"LessThan\",\n \"LessThanEqual\",\n \"WithinGeoRange\",\n \"IsNull\",\n \"ContainsAny\",\n \"ContainsAll\",\n \"ContainsNone\",\n \"Not\"\n ]\n },\n \"path\": {\n \"type\": \"array\",\n \"description\": \"Path to the property currently being filtered.\",\n \"example\": [\n \"inCity\",\n \"city\",\n \"name\"\n ],\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"valueInt\": {\n \"type\": \"integer\",\n \"description\": \"value as integer\",\n \"format\": \"int64\",\n \"nullable\": true,\n \"example\": 2000\n },\n \"valueNumber\": {\n \"type\": \"number\",\n \"description\": \"value as number/float\",\n \"format\": \"float64\",\n \"nullable\": true,\n \"example\": 3.14\n },\n \"valueBoolean\": {\n \"type\": \"boolean\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": false\n },\n \"valueString\": {\n \"type\": \"string\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueText\": {\n \"type\": \"string\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": \"my search term\"\n },\n \"valueDate\": {\n \"type\": \"string\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\"\n },\n \"valueIntArray\": {\n \"type\": \"array\",\n \"description\": \"value as integer\",\n \"nullable\": true,\n \"example\": \"[100, 200]\",\n \"items\": {\n \"type\": \"integer\",\n \"format\": \"int64\"\n },\n \"x-omitempty\": true\n },\n \"valueNumberArray\": {\n \"type\": \"array\",\n \"description\": \"value as number/float\",\n \"nullable\": true,\n \"example\": [\n 3.14\n ],\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n },\n \"x-omitempty\": true\n },\n \"valueBooleanArray\": {\n \"type\": \"array\",\n \"description\": \"value as boolean\",\n \"nullable\": true,\n \"example\": [\n true,\n false\n ],\n \"items\": {\n \"type\": \"boolean\"\n },\n \"x-omitempty\": true\n },\n \"valueStringArray\": {\n \"type\": \"array\",\n \"description\": \"value as text (deprecated as of v1.19; alias for valueText)\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueTextArray\": {\n \"type\": \"array\",\n \"description\": \"value as text\",\n \"nullable\": true,\n \"example\": [\n \"my search term\"\n ],\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueDateArray\": {\n \"type\": \"array\",\n \"description\": \"value as date (as string)\",\n \"nullable\": true,\n \"example\": \"TODO\",\n \"items\": {\n \"type\": \"string\"\n },\n \"x-omitempty\": true\n },\n \"valueGeoRange\": {\n \"type\": \"object\",\n \"properties\": {\n \"geoCoordinates\": {\n \"type\": \"object\",\n \"properties\": {\n \"latitude\": {\n \"type\": \"number\",\n \"description\": \"The latitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n },\n \"longitude\": {\n \"type\": \"number\",\n \"description\": \"The longitude of the point on earth in decimal form.\",\n \"format\": \"float\",\n \"nullable\": true\n }\n }\n },\n \"distance\": {\n \"type\": \"object\",\n \"properties\": {\n \"max\": {\n \"type\": \"number\",\n \"format\": \"float64\"\n }\n }\n }\n },\n \"description\": \"Filter within a distance of a georange.\"\n }\n },\n \"description\": \"Filter search results using a where filter.\"\n }\n }\n }\n },\n \"description\": \"Manage classifications, trigger them and view status of past classifications.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListBackups.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListBackups.json new file mode 100644 index 00000000..4fd65d31 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListBackups.json @@ -0,0 +1,115 @@ +{ + "name": "ListBackups", + "fully_qualified_name": "WeaviateApi.ListBackups@0.1.0", + "description": "Retrieve all backup IDs and their statuses.\n\nUse this tool to get a list of all created backup IDs along with their current statuses. Useful for monitoring or managing backup data.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "backend_storage_system", + "required": true, + "description": "Specifies the backend storage system to list backups from (e.g., `filesystem`, `gcs`, `s3`, `azure`).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the backend storage system to list backups from (e.g., `filesystem`, `gcs`, `s3`, `azure`)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "backend" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'backups.list'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/backups/{backend}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "backend", + "tool_parameter_name": "backend_storage_system", + "description": "Specifies the backend storage system to list backups from (e.g., `filesystem`, `gcs`, `s3`, `azure`).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the backend storage system to list backups from (e.g., `filesystem`, `gcs`, `s3`, `azure`)." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListDataObjects.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListDataObjects.json new file mode 100644 index 00000000..74d85bb8 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListDataObjects.json @@ -0,0 +1,346 @@ +{ + "name": "ListDataObjects", + "fully_qualified_name": "WeaviateApi.ListDataObjects@0.1.0", + "description": "Retrieve a list of data objects from a specified collection.\n\nUse this tool to get a list of data objects from a particular collection by providing the collection name parameter. The objects are returned in reverse order of creation.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "threshold_uuid_after", + "required": false, + "description": "A UUID to retrieve objects after, excluding this object. Use with `class` and `limit`. Leave empty for the start.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A threshold UUID of the objects to retrieve after, using an UUID-based ordering. This object is not part of the set.

Must be used with collection name (`class`), typically in conjunction with `limit`.

Note `after` cannot be used with `offset` or `sort`.

For a null value similar to offset=0, set an empty string in the request, i.e. `after=` or `after`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "after" + }, + { + "name": "query_start_index", + "required": false, + "description": "The starting index for the result window. Retrieves `offset+limit` results and returns `limit` results from this index onward. Cannot be used with `after`. Should be used with `limit`.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The starting index of the result window. Note `offset` will retrieve `offset+limit` results and return `limit` results from the object with index `offset` onwards. Limited by the value of `QUERY_MAXIMUM_RESULTS`.

Should be used in conjunction with `limit`.

Cannot be used with `after`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "offset" + }, + { + "name": "maximum_items_per_page", + "required": false, + "description": "The maximum number of items to be returned per page. The default is 25 unless set otherwise as an environment variable.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of items to be returned per page. The default is 25 unless set otherwise as an environment variable." + }, + "inferrable": true, + "http_endpoint_parameter_name": "limit" + }, + { + "name": "include_additional_information", + "required": false, + "description": "Include additional information types such as `classification`, `vector`, or `interpretation`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include additional information, such as classification information. Allowed values include: `classification`, `vector` and `interpretation`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "include" + }, + { + "name": "sort_properties", + "required": false, + "description": "Names of properties to sort by, e.g., 'city' or 'country,city'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name(s) of the property to sort by - e.g. `city`, or `country,city`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "sort" + }, + { + "name": "sort_order", + "required": false, + "description": "Specify how to order the data within the sorted field(s). Use 'asc' for ascending and 'desc' for descending. Should match the order of fields used in `sort`. Multiple values should be separated by commas.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order parameter to tell how to order (asc or desc) data within given field. Should be used in conjunction with `sort` parameter. If providing multiple `sort` values, provide multiple `order` values in corresponding order, e.g.: `sort=author_name,title&order=desc,asc`." + }, + "inferrable": true, + "http_endpoint_parameter_name": "order" + }, + { + "name": "collection_name", + "required": false, + "description": "Specifies the collection name to query objects from. If not provided, no objects will be returned.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The collection from which to query objects.

Note that if the collection name (`class`) is not provided, the response will not include any objects." + }, + "inferrable": true, + "http_endpoint_parameter_name": "class" + }, + { + "name": "tenant_identifier", + "required": false, + "description": "Specifies the tenant for requests targeting a multi-tenant collection (class).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "tenant" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'objects.list'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/objects", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "after", + "tool_parameter_name": "threshold_uuid_after", + "description": "A threshold UUID of the objects to retrieve after, using an UUID-based ordering. This object is not part of the set.

Must be used with collection name (`class`), typically in conjunction with `limit`.

Note `after` cannot be used with `offset` or `sort`.

For a null value similar to offset=0, set an empty string in the request, i.e. `after=` or `after`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A threshold UUID of the objects to retrieve after, using an UUID-based ordering. This object is not part of the set.

Must be used with collection name (`class`), typically in conjunction with `limit`.

Note `after` cannot be used with `offset` or `sort`.

For a null value similar to offset=0, set an empty string in the request, i.e. `after=` or `after`." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "offset", + "tool_parameter_name": "query_start_index", + "description": "The starting index of the result window. Note `offset` will retrieve `offset+limit` results and return `limit` results from the object with index `offset` onwards. Limited by the value of `QUERY_MAXIMUM_RESULTS`.

Should be used in conjunction with `limit`.

Cannot be used with `after`.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The starting index of the result window. Note `offset` will retrieve `offset+limit` results and return `limit` results from the object with index `offset` onwards. Limited by the value of `QUERY_MAXIMUM_RESULTS`.

Should be used in conjunction with `limit`.

Cannot be used with `after`." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": 0, + "documentation_urls": [] + }, + { + "name": "limit", + "tool_parameter_name": "maximum_items_per_page", + "description": "The maximum number of items to be returned per page. The default is 25 unless set otherwise as an environment variable.", + "value_schema": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The maximum number of items to be returned per page. The default is 25 unless set otherwise as an environment variable." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "include", + "tool_parameter_name": "include_additional_information", + "description": "Include additional information, such as classification information. Allowed values include: `classification`, `vector` and `interpretation`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Include additional information, such as classification information. Allowed values include: `classification`, `vector` and `interpretation`." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "sort", + "tool_parameter_name": "sort_properties", + "description": "Name(s) of the property to sort by - e.g. `city`, or `country,city`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name(s) of the property to sort by - e.g. `city`, or `country,city`." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "order", + "tool_parameter_name": "sort_order", + "description": "Order parameter to tell how to order (asc or desc) data within given field. Should be used in conjunction with `sort` parameter. If providing multiple `sort` values, provide multiple `order` values in corresponding order, e.g.: `sort=author_name,title&order=desc,asc`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Order parameter to tell how to order (asc or desc) data within given field. Should be used in conjunction with `sort` parameter. If providing multiple `sort` values, provide multiple `order` values in corresponding order, e.g.: `sort=author_name,title&order=desc,asc`." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "class", + "tool_parameter_name": "collection_name", + "description": "The collection from which to query objects.

Note that if the collection name (`class`) is not provided, the response will not include any objects.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The collection from which to query objects.

Note that if the collection name (`class`) is not provided, the response will not include any objects." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "tenant", + "tool_parameter_name": "tenant_identifier", + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListDbUsers.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListDbUsers.json new file mode 100644 index 00000000..602eba58 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListDbUsers.json @@ -0,0 +1,115 @@ +{ + "name": "ListDbUsers", + "fully_qualified_name": "WeaviateApi.ListDbUsers@0.1.0", + "description": "Retrieve all database users and their roles and statuses.\n\nUse this tool to obtain a comprehensive list of all users within the database, along with detailed information about their roles and current status. This is useful for auditing and managing user permissions in the database.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "include_last_used_time", + "required": false, + "description": "Include the last time users were utilized in the response.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include the last time the users were utilized." + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeLastUsedTime" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'listAllUsers'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/users/db", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "includeLastUsedTime", + "tool_parameter_name": "include_last_used_time", + "description": "Whether to include the last time the users were utilized.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include the last time the users were utilized." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": false, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListDistributedTasks.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListDistributedTasks.json new file mode 100644 index 00000000..4c831d95 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListDistributedTasks.json @@ -0,0 +1,80 @@ +{ + "name": "ListDistributedTasks", + "fully_qualified_name": "WeaviateApi.ListDistributedTasks@0.1.0", + "description": "Retrieve all distributed tasks in the cluster.\n\nUse this tool to get an overview of all distributed tasks currently active or available within the cluster.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [] + }, + "output": { + "description": "Response from the API endpoint 'distributedTasks.get'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/tasks", + "http_method": "GET", + "headers": {}, + "parameters": [], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListReplicationStatus.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListReplicationStatus.json new file mode 100644 index 00000000..7d725682 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ListReplicationStatus.json @@ -0,0 +1,214 @@ +{ + "name": "ListReplicationStatus", + "fully_qualified_name": "WeaviateApi.ListReplicationStatus@0.1.0", + "description": "Retrieve registered replication operations and details.\n\nCall this tool to get information about current replication operations in Weaviate, filtered by collection, shard, or node ID if needed.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "target_node_name", + "required": false, + "description": "The name of the target node to retrieve replication operation details for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the target node to get details for." + }, + "inferrable": true, + "http_endpoint_parameter_name": "targetNode" + }, + { + "name": "collection_name", + "required": false, + "description": "Specify the name of the collection for which to retrieve replication details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection to get details for." + }, + "inferrable": true, + "http_endpoint_parameter_name": "collection" + }, + { + "name": "shard_name", + "required": false, + "description": "The specific shard for which to retrieve replication details.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The shard to get details for." + }, + "inferrable": true, + "http_endpoint_parameter_name": "shard" + }, + { + "name": "include_replication_history", + "required": false, + "description": "Set to true to include the history of the replication operation, false to exclude it.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include the history of the replication operation." + }, + "inferrable": true, + "http_endpoint_parameter_name": "includeHistory" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'listReplication'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/replication/replicate/list", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "targetNode", + "tool_parameter_name": "target_node_name", + "description": "The name of the target node to get details for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the target node to get details for." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "collection", + "tool_parameter_name": "collection_name", + "description": "The name of the collection to get details for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection to get details for." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "shard", + "tool_parameter_name": "shard_name", + "description": "The shard to get details for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The shard to get details for." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "includeHistory", + "tool_parameter_name": "include_replication_history", + "description": "Whether to include the history of the replication operation.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include the history of the replication operation." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ReplaceObjectReferences.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ReplaceObjectReferences.json new file mode 100644 index 00000000..91e3bb15 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ReplaceObjectReferences.json @@ -0,0 +1,524 @@ +{ + "name": "ReplaceObjectReferences", + "fully_qualified_name": "WeaviateApi.ReplaceObjectReferences@0.1.0", + "description": "Replace existing references for an object in Weaviate.\n\nUse this tool to replace all current references of a specific property for an object in Weaviate. Specify the object's collection name, UUID, and the reference property to update. Useful for updating linked data within a dataset.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "Name of the collection the source object belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the source object belongs to." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "source_object_uuid", + "required": true, + "description": "Unique UUID of the source object to identify it for reference replacement.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the source object." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "reference_property_name", + "required": true, + "description": "Unique name of the reference property for the source object to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique name of the reference property of the source object." + }, + "inferrable": true, + "http_endpoint_parameter_name": "propertyName" + }, + { + "name": "new_references_list", + "required": true, + "description": "An array of JSON objects representing the new list of references for the object. Each object should specify details such as class name, direct or concept references, and any classification metadata.", + "value_schema": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a concept reference (rather than a direct reference), specify the desired collection (class) name here." + }, + "schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "beacon": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a direct reference, specify the URI to point to the cross-reference here. Should be in the form of weaviate://localhost/ for the example of a local cross-reference to an object" + }, + "href": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise." + }, + "classification": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "overallCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present" + }, + "winningCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "size of the winning group, a number between 1..k" + }, + "losingCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "size of the losing group, can be 0 if the winning group size equals k" + }, + "closestOverallDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The lowest distance of any neighbor, regardless of whether they were in the winning or losing group" + }, + "winningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "deprecated - do not use, to be removed in 0.23.0" + }, + "meanWinningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mean distance of all neighbors from the winning group" + }, + "closestWinningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closest distance of a neighbor from the winning group" + }, + "closestLosingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group" + }, + "losingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "deprecated - do not use, to be removed in 0.23.0" + }, + "meanLosingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group." + } + }, + "inner_properties": null, + "description": "This meta field contains additional info about the classified reference property" + } + }, + "description": "The new list of references." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "consistency_level", + "required": false, + "description": "Defines the required number of replica acknowledgements for request success.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency_level" + }, + { + "name": "tenant_identifier", + "required": false, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "tenant" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'objects.class.references.put'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/objects/{className}/{id}/references/{propertyName}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "consistency_level", + "tool_parameter_name": "consistency_level", + "description": "Determines how many replicas must acknowledge a request before it is considered successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "tenant", + "tool_parameter_name": "tenant_identifier", + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the tenant in a request targeting a multi-tenant collection (class)." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "Name of the collection (class) the source object belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the source object belongs to." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "source_object_uuid", + "description": "Unique UUID of the source object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the source object." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "propertyName", + "tool_parameter_name": "reference_property_name", + "description": "Unique name of the reference property of the source object.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique name of the reference property of the source object." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "new_references_list", + "description": "The new list of references.", + "value_schema": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a concept reference (rather than a direct reference), specify the desired collection (class) name here." + }, + "schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "beacon": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a direct reference, specify the URI to point to the cross-reference here. Should be in the form of weaviate://localhost/ for the example of a local cross-reference to an object" + }, + "href": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise." + }, + "classification": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "overallCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present" + }, + "winningCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "size of the winning group, a number between 1..k" + }, + "losingCount": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "size of the losing group, can be 0 if the winning group size equals k" + }, + "closestOverallDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The lowest distance of any neighbor, regardless of whether they were in the winning or losing group" + }, + "winningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "deprecated - do not use, to be removed in 0.23.0" + }, + "meanWinningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mean distance of all neighbors from the winning group" + }, + "closestWinningDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Closest distance of a neighbor from the winning group" + }, + "closestLosingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group" + }, + "losingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "deprecated - do not use, to be removed in 0.23.0" + }, + "meanLosingDistance": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group." + } + }, + "inner_properties": null, + "description": "This meta field contains additional info about the classified reference property" + } + }, + "description": "The new list of references." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The new list of references.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"array\",\n \"description\": \"Multiple instances of references to other objects.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"If using a concept reference (rather than a direct reference), specify the desired collection (class) name here.\",\n \"format\": \"uri\"\n },\n \"schema\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"beacon\": {\n \"type\": \"string\",\n \"description\": \"If using a direct reference, specify the URI to point to the cross-reference here. Should be in the form of weaviate://localhost/ for the example of a local cross-reference to an object\",\n \"format\": \"uri\"\n },\n \"href\": {\n \"type\": \"string\",\n \"description\": \"If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise.\",\n \"format\": \"uri\"\n },\n \"classification\": {\n \"type\": \"object\",\n \"properties\": {\n \"overallCount\": {\n \"type\": \"number\",\n \"description\": \"overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present\",\n \"format\": \"int64\"\n },\n \"winningCount\": {\n \"type\": \"number\",\n \"description\": \"size of the winning group, a number between 1..k\",\n \"format\": \"int64\"\n },\n \"losingCount\": {\n \"type\": \"number\",\n \"description\": \"size of the losing group, can be 0 if the winning group size equals k\",\n \"format\": \"int64\"\n },\n \"closestOverallDistance\": {\n \"type\": \"number\",\n \"description\": \"The lowest distance of any neighbor, regardless of whether they were in the winning or losing group\",\n \"format\": \"float32\"\n },\n \"winningDistance\": {\n \"type\": \"number\",\n \"description\": \"deprecated - do not use, to be removed in 0.23.0\",\n \"format\": \"float32\"\n },\n \"meanWinningDistance\": {\n \"type\": \"number\",\n \"description\": \"Mean distance of all neighbors from the winning group\",\n \"format\": \"float32\"\n },\n \"closestWinningDistance\": {\n \"type\": \"number\",\n \"description\": \"Closest distance of a neighbor from the winning group\",\n \"format\": \"float32\"\n },\n \"closestLosingDistance\": {\n \"type\": \"number\",\n \"description\": \"The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group\",\n \"format\": \"float32\",\n \"nullable\": true\n },\n \"losingDistance\": {\n \"type\": \"number\",\n \"description\": \"deprecated - do not use, to be removed in 0.23.0\",\n \"format\": \"float32\",\n \"nullable\": true\n },\n \"meanLosingDistance\": {\n \"type\": \"number\",\n \"description\": \"Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group.\",\n \"format\": \"float32\",\n \"nullable\": true\n }\n },\n \"description\": \"This meta field contains additional info about the classified reference property\"\n }\n },\n \"description\": \"Either set beacon (direct reference) or set collection (class) and schema (concept reference)\"\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"description\": \"Multiple instances of references to other objects.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"If using a concept reference (rather than a direct reference), specify the desired collection (class) name here.\",\n \"format\": \"uri\"\n },\n \"schema\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"beacon\": {\n \"type\": \"string\",\n \"description\": \"If using a direct reference, specify the URI to point to the cross-reference here. Should be in the form of weaviate://localhost/ for the example of a local cross-reference to an object\",\n \"format\": \"uri\"\n },\n \"href\": {\n \"type\": \"string\",\n \"description\": \"If using a direct reference, this read-only fields provides a link to the referenced resource. If 'origin' is globally configured, an absolute URI is shown - a relative URI otherwise.\",\n \"format\": \"uri\"\n },\n \"classification\": {\n \"type\": \"object\",\n \"properties\": {\n \"overallCount\": {\n \"type\": \"number\",\n \"description\": \"overall neighbors checked as part of the classification. In most cases this will equal k, but could be lower than k - for example if not enough data was present\",\n \"format\": \"int64\"\n },\n \"winningCount\": {\n \"type\": \"number\",\n \"description\": \"size of the winning group, a number between 1..k\",\n \"format\": \"int64\"\n },\n \"losingCount\": {\n \"type\": \"number\",\n \"description\": \"size of the losing group, can be 0 if the winning group size equals k\",\n \"format\": \"int64\"\n },\n \"closestOverallDistance\": {\n \"type\": \"number\",\n \"description\": \"The lowest distance of any neighbor, regardless of whether they were in the winning or losing group\",\n \"format\": \"float32\"\n },\n \"winningDistance\": {\n \"type\": \"number\",\n \"description\": \"deprecated - do not use, to be removed in 0.23.0\",\n \"format\": \"float32\"\n },\n \"meanWinningDistance\": {\n \"type\": \"number\",\n \"description\": \"Mean distance of all neighbors from the winning group\",\n \"format\": \"float32\"\n },\n \"closestWinningDistance\": {\n \"type\": \"number\",\n \"description\": \"Closest distance of a neighbor from the winning group\",\n \"format\": \"float32\"\n },\n \"closestLosingDistance\": {\n \"type\": \"number\",\n \"description\": \"The lowest distance of a neighbor in the losing group. Optional. If k equals the size of the winning group, there is no losing group\",\n \"format\": \"float32\",\n \"nullable\": true\n },\n \"losingDistance\": {\n \"type\": \"number\",\n \"description\": \"deprecated - do not use, to be removed in 0.23.0\",\n \"format\": \"float32\",\n \"nullable\": true\n },\n \"meanLosingDistance\": {\n \"type\": \"number\",\n \"description\": \"Mean distance of all neighbors from the losing group. Optional. If k equals the size of the winning group, there is no losing group.\",\n \"format\": \"float32\",\n \"nullable\": true\n }\n },\n \"description\": \"This meta field contains additional info about the classified reference property\"\n }\n },\n \"description\": \"Either set beacon (direct reference) or set collection (class) and schema (concept reference)\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ReplicateShardReplica.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ReplicateShardReplica.json new file mode 100644 index 00000000..d8fae928 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ReplicateShardReplica.json @@ -0,0 +1,253 @@ +{ + "name": "ReplicateShardReplica", + "fully_qualified_name": "WeaviateApi.ReplicateShardReplica@0.1.0", + "description": "Initiates replication of a shard replica to a target node.\n\nThis tool starts an asynchronous process to move or copy a specific shard replica from its current node to a specified target node. It handles data copying, synchronization, and may decommission the source replica.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "source_node", + "required": true, + "description": "The name of the Weaviate node currently hosting the shard replica to be moved or copied.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the Weaviate node currently hosting the shard replica that needs to be moved or copied." + }, + "inferrable": true, + "http_endpoint_parameter_name": "sourceNode" + }, + { + "name": "target_weaviate_node", + "required": true, + "description": "Name of the Weaviate node for creating the new shard replica during the operation.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the Weaviate node where the new shard replica will be created as part of the movement or copy operation." + }, + "inferrable": true, + "http_endpoint_parameter_name": "targetNode" + }, + { + "name": "target_collection_name", + "required": true, + "description": "The name of the collection to which the target shard belongs in the Weaviate database.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection to which the target shard belongs." + }, + "inferrable": true, + "http_endpoint_parameter_name": "collection" + }, + { + "name": "shard_name", + "required": true, + "description": "The name of the shard whose replica is to be moved or copied. Specify the shard to initiate the operation.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the shard whose replica is to be moved or copied." + }, + "inferrable": true, + "http_endpoint_parameter_name": "shard" + }, + { + "name": "replication_operation_type", + "required": false, + "description": "Specifies whether to 'COPY' or 'MOVE' the shard replica. Defaults to 'COPY' if not provided.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "COPY", + "MOVE" + ], + "properties": null, + "inner_properties": null, + "description": "Specifies the type of replication operation to perform. `COPY` creates a new replica on the target node while keeping the source replica. `MOVE` creates a new replica on the target node and then removes the source replica upon successful completion. Defaults to `COPY` if omitted." + }, + "inferrable": true, + "http_endpoint_parameter_name": "type" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'replicate'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/replication/replicate", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "sourceNode", + "tool_parameter_name": "source_node", + "description": "The name of the Weaviate node currently hosting the shard replica that needs to be moved or copied.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the Weaviate node currently hosting the shard replica that needs to be moved or copied." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "targetNode", + "tool_parameter_name": "target_weaviate_node", + "description": "The name of the Weaviate node where the new shard replica will be created as part of the movement or copy operation.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the Weaviate node where the new shard replica will be created as part of the movement or copy operation." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "collection", + "tool_parameter_name": "target_collection_name", + "description": "The name of the collection to which the target shard belongs.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection to which the target shard belongs." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "shard", + "tool_parameter_name": "shard_name", + "description": "The name of the shard whose replica is to be moved or copied.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the shard whose replica is to be moved or copied." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "type", + "tool_parameter_name": "replication_operation_type", + "description": "Specifies the type of replication operation to perform. `COPY` creates a new replica on the target node while keeping the source replica. `MOVE` creates a new replica on the target node and then removes the source replica upon successful completion. Defaults to `COPY` if omitted.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "COPY", + "MOVE" + ], + "properties": null, + "inner_properties": null, + "description": "Specifies the type of replication operation to perform. `COPY` creates a new replica on the target node while keeping the source replica. `MOVE` creates a new replica on the target node and then removes the source replica upon successful completion. Defaults to `COPY` if omitted." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": "COPY", + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"required\": [\n \"collection\",\n \"shard\",\n \"sourceNode\",\n \"targetNode\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceNode\": {\n \"type\": \"string\",\n \"description\": \"The name of the Weaviate node currently hosting the shard replica that needs to be moved or copied.\"\n },\n \"targetNode\": {\n \"type\": \"string\",\n \"description\": \"The name of the Weaviate node where the new shard replica will be created as part of the movement or copy operation.\"\n },\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"The name of the collection to which the target shard belongs.\"\n },\n \"shard\": {\n \"type\": \"string\",\n \"description\": \"The name of the shard whose replica is to be moved or copied.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Specifies the type of replication operation to perform. `COPY` creates a new replica on the target node while keeping the source replica. `MOVE` creates a new replica on the target node and then removes the source replica upon successful completion. Defaults to `COPY` if omitted.\",\n \"default\": \"COPY\",\n \"enum\": [\n \"COPY\",\n \"MOVE\"\n ]\n }\n },\n \"description\": \"Specifies the parameters required to initiate a shard replica movement operation between two nodes for a given collection and shard. This request defines the source and target node, the collection and type of transfer.\"\n }\n },\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"collection\",\n \"shard\",\n \"sourceNode\",\n \"targetNode\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"sourceNode\": {\n \"type\": \"string\",\n \"description\": \"The name of the Weaviate node currently hosting the shard replica that needs to be moved or copied.\"\n },\n \"targetNode\": {\n \"type\": \"string\",\n \"description\": \"The name of the Weaviate node where the new shard replica will be created as part of the movement or copy operation.\"\n },\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"The name of the collection to which the target shard belongs.\"\n },\n \"shard\": {\n \"type\": \"string\",\n \"description\": \"The name of the shard whose replica is to be moved or copied.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Specifies the type of replication operation to perform. `COPY` creates a new replica on the target node while keeping the source replica. `MOVE` creates a new replica on the target node and then removes the source replica upon successful completion. Defaults to `COPY` if omitted.\",\n \"default\": \"COPY\",\n \"enum\": [\n \"COPY\",\n \"MOVE\"\n ]\n }\n },\n \"description\": \"Specifies the parameters required to initiate a shard replica movement operation between two nodes for a given collection and shard. This request defines the source and target node, the collection and type of transfer.\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RestoreBackup.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RestoreBackup.json new file mode 100644 index 00000000..b7149071 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RestoreBackup.json @@ -0,0 +1,373 @@ +{ + "name": "RestoreBackup", + "fully_qualified_name": "WeaviateApi.RestoreBackup@0.1.0", + "description": "Restore collections from a specified backup.\n\nInitiates the restoration of collections from a backup stored on a designated backend. Ensure the target cluster has identical node configurations as the source cluster, and that the collections do not already exist on the target.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "backup_backend_storage", + "required": true, + "description": "Specifies the backend storage system where the backup resides, such as `filesystem`, `gcs`, `s3`, or `azure`.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the backend storage system where the backup resides (e.g., `filesystem`, `gcs`, `s3`, `azure`)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "backend" + }, + { + "name": "backup_identifier", + "required": true, + "description": "The unique identifier for the backup to restore. It must be URL-safe and compatible with filesystem paths, using only lowercase letters, numbers, underscores, and minus characters.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the backup to restore from. Must be URL-safe and compatible with filesystem paths (only lowercase, numbers, underscore, minus characters allowed)." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "restore_request_details", + "required": true, + "description": "Details of the restore request, including collections to include or exclude, node mapping, and configurations like CPU usage.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "config": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "Endpoint": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "name of the endpoint, e.g. s3.amazonaws.com" + }, + "Bucket": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the bucket, container, volume, etc" + }, + "Path": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Path within the bucket" + }, + "CPUPercentage": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Desired CPU core utilization ranging from 1%-80%" + }, + "rolesOptions": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "noRestore", + "all" + ], + "properties": null, + "inner_properties": null, + "description": "How roles should be restored" + }, + "usersOptions": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "noRestore", + "all" + ], + "properties": null, + "inner_properties": null, + "description": "How users should be restored" + } + }, + "inner_properties": null, + "description": "Backup custom configuration" + }, + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of collections (classes) to include in the backup restoration process." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of collections (classes) to exclude from the backup restoration process." + }, + "node_mapping": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allows overriding the node names stored in the backup with different ones. Useful when restoring backups to a different environment." + }, + "overwriteAlias": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allows ovewriting the collection alias if there is a conflict" + } + }, + "inner_properties": null, + "description": "Details of the restore request, including collections to include or exclude and node mapping if necessary." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'backups.restore'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/backups/{backend}/{id}/restore", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "backend", + "tool_parameter_name": "backup_backend_storage", + "description": "Specifies the backend storage system where the backup resides (e.g., `filesystem`, `gcs`, `s3`, `azure`).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specifies the backend storage system where the backup resides (e.g., `filesystem`, `gcs`, `s3`, `azure`)." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "backup_identifier", + "description": "The unique identifier of the backup to restore from. Must be URL-safe and compatible with filesystem paths (only lowercase, numbers, underscore, minus characters allowed).", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The unique identifier of the backup to restore from. Must be URL-safe and compatible with filesystem paths (only lowercase, numbers, underscore, minus characters allowed)." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "restore_request_details", + "description": "Details of the restore request, including collections to include or exclude and node mapping if necessary.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "config": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "Endpoint": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "name of the endpoint, e.g. s3.amazonaws.com" + }, + "Bucket": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the bucket, container, volume, etc" + }, + "Path": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Path within the bucket" + }, + "CPUPercentage": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Desired CPU core utilization ranging from 1%-80%" + }, + "rolesOptions": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "noRestore", + "all" + ], + "properties": null, + "inner_properties": null, + "description": "How roles should be restored" + }, + "usersOptions": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "noRestore", + "all" + ], + "properties": null, + "inner_properties": null, + "description": "How users should be restored" + } + }, + "inner_properties": null, + "description": "Backup custom configuration" + }, + "include": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of collections (classes) to include in the backup restoration process." + }, + "exclude": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "List of collections (classes) to exclude from the backup restoration process." + }, + "node_mapping": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allows overriding the node names stored in the backup with different ones. Useful when restoring backups to a different environment." + }, + "overwriteAlias": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allows ovewriting the collection alias if there is a conflict" + } + }, + "inner_properties": null, + "description": "Details of the restore request, including collections to include or exclude and node mapping if necessary." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"Details of the restore request, including collections to include or exclude and node mapping if necessary.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"config\": {\n \"type\": \"object\",\n \"properties\": {\n \"Endpoint\": {\n \"type\": \"string\",\n \"description\": \"name of the endpoint, e.g. s3.amazonaws.com\"\n },\n \"Bucket\": {\n \"type\": \"string\",\n \"description\": \"Name of the bucket, container, volume, etc\"\n },\n \"Path\": {\n \"type\": \"string\",\n \"description\": \"Path within the bucket\"\n },\n \"CPUPercentage\": {\n \"maximum\": 80,\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Desired CPU core utilization ranging from 1%-80%\",\n \"nullable\": false\n },\n \"rolesOptions\": {\n \"type\": \"string\",\n \"description\": \"How roles should be restored\",\n \"default\": \"noRestore\",\n \"enum\": [\n \"noRestore\",\n \"all\"\n ]\n },\n \"usersOptions\": {\n \"type\": \"string\",\n \"description\": \"How users should be restored\",\n \"default\": \"noRestore\",\n \"enum\": [\n \"noRestore\",\n \"all\"\n ]\n }\n },\n \"description\": \"Backup custom configuration\"\n },\n \"include\": {\n \"type\": \"array\",\n \"description\": \"List of collections (classes) to include in the backup restoration process.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"List of collections (classes) to exclude from the backup restoration process.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"node_mapping\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Allows overriding the node names stored in the backup with different ones. Useful when restoring backups to a different environment.\"\n },\n \"overwriteAlias\": {\n \"type\": \"boolean\",\n \"description\": \"Allows ovewriting the collection alias if there is a conflict\"\n }\n },\n \"description\": \"Request body for restoring a backup for a set of collections (classes).\"\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"config\": {\n \"type\": \"object\",\n \"properties\": {\n \"Endpoint\": {\n \"type\": \"string\",\n \"description\": \"name of the endpoint, e.g. s3.amazonaws.com\"\n },\n \"Bucket\": {\n \"type\": \"string\",\n \"description\": \"Name of the bucket, container, volume, etc\"\n },\n \"Path\": {\n \"type\": \"string\",\n \"description\": \"Path within the bucket\"\n },\n \"CPUPercentage\": {\n \"maximum\": 80,\n \"minimum\": 1,\n \"type\": \"integer\",\n \"description\": \"Desired CPU core utilization ranging from 1%-80%\",\n \"nullable\": false\n },\n \"rolesOptions\": {\n \"type\": \"string\",\n \"description\": \"How roles should be restored\",\n \"default\": \"noRestore\",\n \"enum\": [\n \"noRestore\",\n \"all\"\n ]\n },\n \"usersOptions\": {\n \"type\": \"string\",\n \"description\": \"How users should be restored\",\n \"default\": \"noRestore\",\n \"enum\": [\n \"noRestore\",\n \"all\"\n ]\n }\n },\n \"description\": \"Backup custom configuration\"\n },\n \"include\": {\n \"type\": \"array\",\n \"description\": \"List of collections (classes) to include in the backup restoration process.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"exclude\": {\n \"type\": \"array\",\n \"description\": \"List of collections (classes) to exclude from the backup restoration process.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"node_mapping\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n },\n \"description\": \"Allows overriding the node names stored in the backup with different ones. Useful when restoring backups to a different environment.\"\n },\n \"overwriteAlias\": {\n \"type\": \"boolean\",\n \"description\": \"Allows ovewriting the collection alias if there is a conflict\"\n }\n },\n \"description\": \"Request body for restoring a backup for a set of collections (classes).\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveAliasDetails.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveAliasDetails.json new file mode 100644 index 00000000..d45a59b4 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveAliasDetails.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveAliasDetails", + "fully_qualified_name": "WeaviateApi.RetrieveAliasDetails@0.1.0", + "description": "Retrieve details about a specific alias by its name.\n\nUse this tool to obtain information about an alias, such as the collection (class) it points to, by specifying the alias name.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "alias_name", + "required": true, + "description": "The name of the alias to retrieve details for, including its associated collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "aliasName" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'aliases.get.alias'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/aliases/{aliasName}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "aliasName", + "tool_parameter_name": "alias_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveAliases.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveAliases.json new file mode 100644 index 00000000..e4280858 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveAliases.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveAliases", + "fully_qualified_name": "WeaviateApi.RetrieveAliases@0.1.0", + "description": "Retrieve all aliases from the system.\n\nFetches a list of all aliases, with an option to filter by collection (class) name for specific aliases.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "filter_by_collection_name", + "required": false, + "description": "Optional filter to retrieve aliases for a specific collection (class) only. If not provided, returns all aliases.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional filter to retrieve aliases for a specific collection (class) only. If not provided, returns all aliases." + }, + "inferrable": true, + "http_endpoint_parameter_name": "class" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'aliases.get'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/aliases", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "class", + "tool_parameter_name": "filter_by_collection_name", + "description": "Optional filter to retrieve aliases for a specific collection (class) only. If not provided, returns all aliases.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional filter to retrieve aliases for a specific collection (class) only. If not provided, returns all aliases." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveCollectionSchema.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveCollectionSchema.json new file mode 100644 index 00000000..425e721c --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveCollectionSchema.json @@ -0,0 +1,148 @@ +{ + "name": "RetrieveCollectionSchema", + "fully_qualified_name": "WeaviateApi.RetrieveCollectionSchema@0.1.0", + "description": "Retrieve the schema of a specified collection.\n\nFetches the definition of a specific collection by `className`, detailing its properties, configuration, and vectorizer settings.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "The name of the collection to retrieve the schema for.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) to retrieve." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "ensure_strong_consistency", + "required": false, + "description": "If true, proxies the request to the cluster leader for strong schema consistency. Default is true.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the request is proxied to the cluster leader to ensure strong schema consistency. Default is true." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'schema.objects.get'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema/{className}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "The name of the collection (class) to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) to retrieve." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "consistency", + "tool_parameter_name": "ensure_strong_consistency", + "description": "If true, the request is proxied to the cluster leader to ensure strong schema consistency. Default is true.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the request is proxied to the cluster leader to ensure strong schema consistency. Default is true." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "default": true, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveDatabaseSchema.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveDatabaseSchema.json new file mode 100644 index 00000000..98e6546d --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveDatabaseSchema.json @@ -0,0 +1,115 @@ +{ + "name": "RetrieveDatabaseSchema", + "fully_qualified_name": "WeaviateApi.RetrieveDatabaseSchema@0.1.0", + "description": "Retrieve definitions of all classes in the database schema.\n\nUse this tool to obtain the definitions of all collections (classes) currently present in the database schema. It provides a comprehensive overview of the database structure.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "ensure_strong_schema_consistency", + "required": false, + "description": "Set to true to proxy the request to the cluster leader for strong schema consistency. Default is true.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the request is proxied to the cluster leader to ensure strong schema consistency. Default is true." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'schema.dump'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "consistency", + "tool_parameter_name": "ensure_strong_schema_consistency", + "description": "If true, the request is proxied to the cluster leader to ensure strong schema consistency. Default is true.", + "value_schema": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "If true, the request is proxied to the cluster leader to ensure strong schema consistency. Default is true." + }, + "accepted_as": "header", + "required": false, + "deprecated": false, + "default": true, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveGroupNames.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveGroupNames.json new file mode 100644 index 00000000..e3e1a48a --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RetrieveGroupNames.json @@ -0,0 +1,119 @@ +{ + "name": "RetrieveGroupNames", + "fully_qualified_name": "WeaviateApi.RetrieveGroupNames@0.1.0", + "description": "Retrieve available group names for a specified type.\n\nThis tool retrieves a list of all available group names for a specified group type, either 'oidc' or 'db'. Use it when you need to list groups of a certain type.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "group_type", + "required": true, + "description": "Specifies the group type to retrieve, either 'oidc' or 'db'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "The type of group to retrieve." + }, + "inferrable": true, + "http_endpoint_parameter_name": "groupType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'getGroups'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/groups/{groupType}", + "http_method": "GET", + "headers": {}, + "parameters": [ + { + "name": "groupType", + "tool_parameter_name": "group_type", + "description": "The type of group to retrieve.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "The type of group to retrieve." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RevokeRoleFromGroup.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RevokeRoleFromGroup.json new file mode 100644 index 00000000..e5154460 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RevokeRoleFromGroup.json @@ -0,0 +1,185 @@ +{ + "name": "RevokeRoleFromGroup", + "fully_qualified_name": "WeaviateApi.RevokeRoleFromGroup@0.1.0", + "description": "Revoke roles from a specified group to manage permissions.\n\nThis tool allows the revocation of roles from a specified group, which is useful for managing and updating group permissions within a system using Weaviate.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "group_name", + "required": true, + "description": "The name of the group from which roles will be revoked.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the group." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "roles_to_revoke", + "required": false, + "description": "An array of role names to revoke from the specified group.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The roles to revoke from the specified group." + }, + "inferrable": true, + "http_endpoint_parameter_name": "roles" + }, + { + "name": "group_type", + "required": false, + "description": "Specifies whether the group contains OIDC or database users.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "If the group contains OIDC or database users." + }, + "inferrable": true, + "http_endpoint_parameter_name": "groupType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'revokeRoleFromGroup'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/groups/{id}/revoke", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "group_name", + "description": "The name of the group.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the group." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "roles", + "tool_parameter_name": "roles_to_revoke", + "description": "The roles to revoke from the specified group.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The roles to revoke from the specified group." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "groupType", + "tool_parameter_name": "group_type", + "description": "If the group contains OIDC or database users.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "If the group contains OIDC or database users." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"roles\": {\n \"type\": \"array\",\n \"description\": \"The roles to revoke from the specified group.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"groupType\": {\n \"type\": \"string\",\n \"description\": \"If the group contains OIDC or database users.\",\n \"enum\": [\n \"oidc\"\n ]\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"roles\": {\n \"type\": \"array\",\n \"description\": \"The roles to revoke from the specified group.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"groupType\": {\n \"type\": \"string\",\n \"description\": \"If the group contains OIDC or database users.\",\n \"enum\": [\n \"oidc\"\n ]\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RevokeRolePermissions.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RevokeRolePermissions.json new file mode 100644 index 00000000..9be4df43 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RevokeRolePermissions.json @@ -0,0 +1,738 @@ +{ + "name": "RevokeRolePermissions", + "fully_qualified_name": "WeaviateApi.RevokeRolePermissions@0.1.0", + "description": "Revoke permissions from a specified role.\n\nThis tool is used to revoke permissions from a specified role in the Weaviate system. If all permissions are removed, the role will be deleted.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "role_name", + "required": true, + "description": "The name of the role from which permissions are being revoked. Removing all permissions will delete the role.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the role being modified." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "permissions_to_revoke", + "required": true, + "description": "A JSON array specifying which permissions to revoke. Includes collections, tenants, users, roles, etc.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "permissions": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "backups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for backup actions." + }, + "data": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + }, + "object": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects." + } + }, + "inner_properties": null, + "description": "Resources applicable for data actions." + }, + "nodes": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "verbosity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "verbose", + "minimal" + ], + "properties": null, + "inner_properties": null, + "description": "Whether to allow (verbose) returning shards and stats data in the response." + }, + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for cluster actions." + }, + "users": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "users": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users." + } + }, + "inner_properties": null, + "description": "Resources applicable for user actions." + }, + "groups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "group": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups." + }, + "groupType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "If the group contains OIDC or database users." + } + }, + "inner_properties": null, + "description": "Resources applicable for group actions." + }, + "tenants": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + } + }, + "inner_properties": null, + "description": "Resources applicable for tenant actions." + }, + "roles": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "role": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles." + }, + "scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "all", + "match" + ], + "properties": null, + "inner_properties": null, + "description": "Set the scope for the manage role permission." + } + }, + "inner_properties": null, + "description": "Resources applicable for role actions." + }, + "collections": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for collection and/or tenant actions." + }, + "replicate": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific collection name, if left empty it will be ALL or *" + }, + "shard": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific shard name, if left empty it will be ALL or *" + } + }, + "inner_properties": null, + "description": "resources applicable for replicate actions" + }, + "aliases": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "alias": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases." + } + }, + "inner_properties": null, + "description": "Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified." + }, + "action": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "manage_backups", + "read_cluster", + "create_data", + "read_data", + "update_data", + "delete_data", + "read_nodes", + "create_roles", + "read_roles", + "update_roles", + "delete_roles", + "create_collections", + "read_collections", + "update_collections", + "delete_collections", + "assign_and_revoke_users", + "create_users", + "read_users", + "update_users", + "delete_users", + "create_tenants", + "read_tenants", + "update_tenants", + "delete_tenants", + "create_replicate", + "read_replicate", + "update_replicate", + "delete_replicate", + "create_aliases", + "read_aliases", + "update_aliases", + "delete_aliases", + "assign_and_revoke_groups", + "read_groups" + ], + "properties": null, + "inner_properties": null, + "description": "Allowed actions in weaviate." + } + }, + "description": "Permissions to remove from the role." + } + }, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'removePermissions'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/roles/{id}/remove-permissions", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "role_name", + "description": "The name of the role being modified.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the role being modified." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "permissions_to_revoke", + "description": "", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "permissions": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "backups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for backup actions." + }, + "data": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + }, + "object": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects." + } + }, + "inner_properties": null, + "description": "Resources applicable for data actions." + }, + "nodes": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "verbosity": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "verbose", + "minimal" + ], + "properties": null, + "inner_properties": null, + "description": "Whether to allow (verbose) returning shards and stats data in the response." + }, + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for cluster actions." + }, + "users": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "users": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users." + } + }, + "inner_properties": null, + "description": "Resources applicable for user actions." + }, + "groups": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "group": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups." + }, + "groupType": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "If the group contains OIDC or database users." + } + }, + "inner_properties": null, + "description": "Resources applicable for group actions." + }, + "tenants": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants." + } + }, + "inner_properties": null, + "description": "Resources applicable for tenant actions." + }, + "roles": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "role": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles." + }, + "scope": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "all", + "match" + ], + "properties": null, + "inner_properties": null, + "description": "Set the scope for the manage role permission." + } + }, + "inner_properties": null, + "description": "Resources applicable for role actions." + }, + "collections": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + } + }, + "inner_properties": null, + "description": "Resources applicable for collection and/or tenant actions." + }, + "replicate": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific collection name, if left empty it will be ALL or *" + }, + "shard": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "string or regex. if a specific shard name, if left empty it will be ALL or *" + } + }, + "inner_properties": null, + "description": "resources applicable for replicate actions" + }, + "aliases": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "collection": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections." + }, + "alias": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases." + } + }, + "inner_properties": null, + "description": "Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified." + }, + "action": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "manage_backups", + "read_cluster", + "create_data", + "read_data", + "update_data", + "delete_data", + "read_nodes", + "create_roles", + "read_roles", + "update_roles", + "delete_roles", + "create_collections", + "read_collections", + "update_collections", + "delete_collections", + "assign_and_revoke_users", + "create_users", + "read_users", + "update_users", + "delete_users", + "create_tenants", + "read_tenants", + "update_tenants", + "delete_tenants", + "create_replicate", + "read_replicate", + "update_replicate", + "delete_replicate", + "create_aliases", + "read_aliases", + "update_aliases", + "delete_aliases", + "assign_and_revoke_groups", + "read_groups" + ], + "properties": null, + "inner_properties": null, + "description": "Allowed actions in weaviate." + } + }, + "description": "Permissions to remove from the role." + } + }, + "inner_properties": null, + "description": "" + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"required\": [\n \"permissions\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"permissions\": {\n \"type\": \"array\",\n \"description\": \"Permissions to remove from the role.\",\n \"items\": {\n \"required\": [\n \"action\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"backups\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for backup actions.\"\n },\n \"data\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n },\n \"object\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for data actions.\"\n },\n \"nodes\": {\n \"type\": \"object\",\n \"properties\": {\n \"verbosity\": {\n \"type\": \"string\",\n \"description\": \"Whether to allow (verbose) returning shards and stats data in the response.\",\n \"default\": \"minimal\",\n \"enum\": [\n \"verbose\",\n \"minimal\"\n ]\n },\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for cluster actions.\"\n },\n \"users\": {\n \"type\": \"object\",\n \"properties\": {\n \"users\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for user actions.\"\n },\n \"groups\": {\n \"type\": \"object\",\n \"properties\": {\n \"group\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups.\",\n \"default\": \"*\"\n },\n \"groupType\": {\n \"type\": \"string\",\n \"description\": \"If the group contains OIDC or database users.\",\n \"enum\": [\n \"oidc\"\n ]\n }\n },\n \"description\": \"Resources applicable for group actions.\"\n },\n \"tenants\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for tenant actions.\"\n },\n \"roles\": {\n \"type\": \"object\",\n \"properties\": {\n \"role\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles.\",\n \"default\": \"*\"\n },\n \"scope\": {\n \"type\": \"string\",\n \"description\": \"Set the scope for the manage role permission.\",\n \"default\": \"match\",\n \"enum\": [\n \"all\",\n \"match\"\n ]\n }\n },\n \"description\": \"Resources applicable for role actions.\"\n },\n \"collections\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for collection and/or tenant actions.\"\n },\n \"replicate\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific collection name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n },\n \"shard\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific shard name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n }\n },\n \"description\": \"resources applicable for replicate actions\"\n },\n \"aliases\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"alias\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified.\"\n },\n \"action\": {\n \"type\": \"string\",\n \"description\": \"Allowed actions in weaviate.\",\n \"enum\": [\n \"manage_backups\",\n \"read_cluster\",\n \"create_data\",\n \"read_data\",\n \"update_data\",\n \"delete_data\",\n \"read_nodes\",\n \"create_roles\",\n \"read_roles\",\n \"update_roles\",\n \"delete_roles\",\n \"create_collections\",\n \"read_collections\",\n \"update_collections\",\n \"delete_collections\",\n \"assign_and_revoke_users\",\n \"create_users\",\n \"read_users\",\n \"update_users\",\n \"delete_users\",\n \"create_tenants\",\n \"read_tenants\",\n \"update_tenants\",\n \"delete_tenants\",\n \"create_replicate\",\n \"read_replicate\",\n \"update_replicate\",\n \"delete_replicate\",\n \"create_aliases\",\n \"read_aliases\",\n \"update_aliases\",\n \"delete_aliases\",\n \"assign_and_revoke_groups\",\n \"read_groups\"\n ]\n }\n },\n \"description\": \"Permissions attached to a role.\"\n }\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"required\": [\n \"permissions\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"permissions\": {\n \"type\": \"array\",\n \"description\": \"Permissions to remove from the role.\",\n \"items\": {\n \"required\": [\n \"action\"\n ],\n \"type\": \"object\",\n \"properties\": {\n \"backups\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for backup actions.\"\n },\n \"data\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n },\n \"object\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which objects this permission applies to. Can be an exact object ID or a regex pattern. The default value `*` applies the permission to all objects.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for data actions.\"\n },\n \"nodes\": {\n \"type\": \"object\",\n \"properties\": {\n \"verbosity\": {\n \"type\": \"string\",\n \"description\": \"Whether to allow (verbose) returning shards and stats data in the response.\",\n \"default\": \"minimal\",\n \"enum\": [\n \"verbose\",\n \"minimal\"\n ]\n },\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for cluster actions.\"\n },\n \"users\": {\n \"type\": \"object\",\n \"properties\": {\n \"users\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which users this permission applies to. Can be an exact user name or a regex pattern. The default value `*` applies the permission to all users.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for user actions.\"\n },\n \"groups\": {\n \"type\": \"object\",\n \"properties\": {\n \"group\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which groups this permission applies to. Can be an exact group name or a regex pattern. The default value `*` applies the permission to all groups.\",\n \"default\": \"*\"\n },\n \"groupType\": {\n \"type\": \"string\",\n \"description\": \"If the group contains OIDC or database users.\",\n \"enum\": [\n \"oidc\"\n ]\n }\n },\n \"description\": \"Resources applicable for group actions.\"\n },\n \"tenants\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which tenants this permission applies to. Can be an exact tenant name or a regex pattern. The default value `*` applies the permission to all tenants.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for tenant actions.\"\n },\n \"roles\": {\n \"type\": \"object\",\n \"properties\": {\n \"role\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which roles this permission applies to. Can be an exact role name or a regex pattern. The default value `*` applies the permission to all roles.\",\n \"default\": \"*\"\n },\n \"scope\": {\n \"type\": \"string\",\n \"description\": \"Set the scope for the manage role permission.\",\n \"default\": \"match\",\n \"enum\": [\n \"all\",\n \"match\"\n ]\n }\n },\n \"description\": \"Resources applicable for role actions.\"\n },\n \"collections\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resources applicable for collection and/or tenant actions.\"\n },\n \"replicate\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific collection name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n },\n \"shard\": {\n \"type\": \"string\",\n \"description\": \"string or regex. if a specific shard name, if left empty it will be ALL or *\",\n \"default\": \"*\"\n }\n },\n \"description\": \"resources applicable for replicate actions\"\n },\n \"aliases\": {\n \"type\": \"object\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which collections this permission applies to. Can be an exact collection name or a regex pattern. The default value `*` applies the permission to all collections.\",\n \"default\": \"*\"\n },\n \"alias\": {\n \"type\": \"string\",\n \"description\": \"A string that specifies which aliases this permission applies to. Can be an exact alias name or a regex pattern. The default value `*` applies the permission to all aliases.\",\n \"default\": \"*\"\n }\n },\n \"description\": \"Resource definition for alias-related actions and permissions. Used to specify which aliases and collections can be accessed or modified.\"\n },\n \"action\": {\n \"type\": \"string\",\n \"description\": \"Allowed actions in weaviate.\",\n \"enum\": [\n \"manage_backups\",\n \"read_cluster\",\n \"create_data\",\n \"read_data\",\n \"update_data\",\n \"delete_data\",\n \"read_nodes\",\n \"create_roles\",\n \"read_roles\",\n \"update_roles\",\n \"delete_roles\",\n \"create_collections\",\n \"read_collections\",\n \"update_collections\",\n \"delete_collections\",\n \"assign_and_revoke_users\",\n \"create_users\",\n \"read_users\",\n \"update_users\",\n \"delete_users\",\n \"create_tenants\",\n \"read_tenants\",\n \"update_tenants\",\n \"delete_tenants\",\n \"create_replicate\",\n \"read_replicate\",\n \"update_replicate\",\n \"delete_replicate\",\n \"create_aliases\",\n \"read_aliases\",\n \"update_aliases\",\n \"delete_aliases\",\n \"assign_and_revoke_groups\",\n \"read_groups\"\n ]\n }\n },\n \"description\": \"Permissions attached to a role.\"\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RevokeUserRole.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RevokeUserRole.json new file mode 100644 index 00000000..dc5ecd8a --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RevokeUserRole.json @@ -0,0 +1,187 @@ +{ + "name": "RevokeUserRole", + "fully_qualified_name": "WeaviateApi.RevokeUserRole@0.1.0", + "description": "Remove roles from a specified user in the system.\n\nUse this tool to revoke one or more roles assigned to a user by specifying their user ID. It's useful for updating user permissions in the system.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "user_id", + "required": true, + "description": "The unique identifier or name of the user from whom roles will be revoked.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "roles_to_revoke", + "required": false, + "description": "A list of roles to be removed from the specified user. Provide each role as a string in the array.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The roles to revoke from the specified user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "roles" + }, + { + "name": "user_type", + "required": false, + "description": "Specify the user type: `db` for Weaviate-managed or `oidc` for external OIDC-managed users.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "db", + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "The type of the user. `db` users are managed by Weaviate, `oidc` users are managed by an external OIDC provider." + }, + "inferrable": true, + "http_endpoint_parameter_name": "userType" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'revokeRoleFromUser'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/authz/users/{id}/revoke", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "id", + "tool_parameter_name": "user_id", + "description": "The name of the user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "roles", + "tool_parameter_name": "roles_to_revoke", + "description": "The roles to revoke from the specified user.", + "value_schema": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The roles to revoke from the specified user." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "userType", + "tool_parameter_name": "user_type", + "description": "The type of the user. `db` users are managed by Weaviate, `oidc` users are managed by an external OIDC provider.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "db", + "oidc" + ], + "properties": null, + "inner_properties": null, + "description": "The type of the user. `db` users are managed by Weaviate, `oidc` users are managed by an external OIDC provider." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"roles\": {\n \"type\": \"array\",\n \"description\": \"The roles to revoke from the specified user.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"userType\": {\n \"type\": \"string\",\n \"description\": \"The type of the user. `db` users are managed by Weaviate, `oidc` users are managed by an external OIDC provider.\",\n \"enum\": [\n \"db\",\n \"oidc\"\n ]\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"roles\": {\n \"type\": \"array\",\n \"description\": \"The roles to revoke from the specified user.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"userType\": {\n \"type\": \"string\",\n \"description\": \"The type of the user. `db` users are managed by Weaviate, `oidc` users are managed by an external OIDC provider.\",\n \"enum\": [\n \"db\",\n \"oidc\"\n ]\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RotateUserApiKey.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RotateUserApiKey.json new file mode 100644 index 00000000..bc4b66e5 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/RotateUserApiKey.json @@ -0,0 +1,115 @@ +{ + "name": "RotateUserApiKey", + "fully_qualified_name": "WeaviateApi.RotateUserApiKey@0.1.0", + "description": "Revoke and regenerate the API key for a database user.\n\nThis tool is used to revoke the current API key for a specified database user and generate a new one. It should be called when an API key needs refreshing or if security has been compromised.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "database_user_name", + "required": true, + "description": "The name of the database user for which the API key will be rotated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "inferrable": true, + "http_endpoint_parameter_name": "user_id" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'rotateUserApiKey'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/users/db/{user_id}/rotate-key", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "user_id", + "tool_parameter_name": "database_user_name", + "description": "The name of the user.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the user." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": null, + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateCollectionAlias.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateCollectionAlias.json new file mode 100644 index 00000000..08b202f4 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateCollectionAlias.json @@ -0,0 +1,148 @@ +{ + "name": "UpdateCollectionAlias", + "fully_qualified_name": "WeaviateApi.UpdateCollectionAlias@0.1.0", + "description": "Redirect an alias to a different collection.\n\nUse this tool to update an existing alias so it points to a new collection. This allows alias redirection without changing its name.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "alias_name", + "required": true, + "description": "The name of the existing alias that you want to update to point to a new collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "inferrable": true, + "http_endpoint_parameter_name": "aliasName" + }, + { + "name": "new_collection_name", + "required": false, + "description": "Specify the new collection (class) for the alias to point to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new collection (class) that the alias should point to." + }, + "inferrable": true, + "http_endpoint_parameter_name": "class" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'aliases.update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/aliases/{aliasName}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "aliasName", + "tool_parameter_name": "alias_name", + "description": "", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "" + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "class", + "tool_parameter_name": "new_collection_name", + "description": "The new collection (class) that the alias should point to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The new collection (class) that the alias should point to." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"The new collection (class) that the alias should point to.\"\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"The new collection (class) that the alias should point to.\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateCollectionSettings.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateCollectionSettings.json new file mode 100644 index 00000000..92dab17b --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateCollectionSettings.json @@ -0,0 +1,980 @@ +{ + "name": "UpdateCollectionSettings", + "fully_qualified_name": "WeaviateApi.UpdateCollectionSettings@0.1.0", + "description": "Update settings of an existing collection.\n\nUse this tool to update the configuration settings of an existing collection by specifying the className and the new settings. This tool is useful when you need to change mutable settings of a collection but not its name or properties.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name_to_update", + "required": true, + "description": "The name of the collection to be updated. Specify the collection's class name.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) to update." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "updated_collection_definition", + "required": true, + "description": "The JSON definition of the updated collection settings, including properties like vectorConfig, shardingConfig, and moduleConfig to modify mutable settings.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (formerly 'class') (required). Multiple words should be concatenated in CamelCase, e.g. `ArticleAuthor`." + }, + "vectorConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configure named vectors. Either use this field or `vectorizer`, `vectorIndexType`, and `vectorIndexConfig` fields. Available from `v1.24.0`." + }, + "vectorIndexType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the vector index type to use for the collection (e.g. `hnsw` or `flat`)." + }, + "vectorIndexConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Vector-index config, that is specific to the type of index selected in vectorIndexType" + }, + "shardingConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manage how the index should be sharded and distributed in the cluster" + }, + "replicationConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "factor": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of times a collection (class) is replicated (default: 1)." + }, + "asyncEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Enable asynchronous replication (default: `false`)." + }, + "deletionStrategy": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "NoAutomatedResolution", + "DeleteOnConflict", + "TimeBasedResolution" + ], + "properties": null, + "inner_properties": null, + "description": "Conflict resolution strategy for deleted objects." + } + }, + "inner_properties": null, + "description": "Configure how replication is executed in a cluster" + }, + "invertedIndexConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cleanupIntervalSeconds": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asynchronous index clean up happens every n seconds (default: 60)." + }, + "bm25": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "k1": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Calibrates term-weight scaling based on the term frequency within a document (default: 1.2)." + }, + "b": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Calibrates term-weight scaling based on the document length (default: 0.75)." + } + }, + "inner_properties": null, + "description": "Tuning parameters for the BM25 algorithm." + }, + "stopwords": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "preset": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Pre-existing list of common words by language (default: `en`). Options: [`en`, `none`]." + }, + "additions": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Stopwords to be considered additionally (default: []). Can be any array of custom strings." + }, + "removals": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Stopwords to be removed from consideration (default: []). Can be any array of custom strings." + } + }, + "inner_properties": null, + "description": "Fine-grained control over stopword list usage." + }, + "indexTimestamps": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Index each object by its internal timestamps (default: `false`)." + }, + "indexNullState": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Index each object with the null state (default: `false`)." + }, + "indexPropertyLength": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Index length of properties (default: `false`)." + }, + "usingBlockMaxWAND": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Using BlockMax WAND for query execution (default: `false`, will be `true` for new collections created after 1.30)." + } + }, + "inner_properties": null, + "description": "Configure the inverted index built into Weaviate. See [Reference: Inverted index](https://docs.weaviate.io/weaviate/config-refs/indexing/inverted-index#inverted-index-parameters) for details." + }, + "multiTenancyConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not multi-tenancy is enabled for this collection (class) (default: `false`)." + }, + "autoTenantCreation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Nonexistent tenants should (not) be created implicitly (default: `false`)." + }, + "autoTenantActivation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Existing tenants should (not) be turned HOT implicitly when they are accessed and in another activity status (default: `false`)." + } + }, + "inner_properties": null, + "description": "Configuration related to multi-tenancy within a collection (class)" + }, + "vectorizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specify how the vectors for this collection should be determined. The options are either `none` - this means you have to import a vector with each object yourself - or the name of a module that provides vectorization capabilities, such as `text2vec-weaviate`. If left empty, it will use the globally configured default ([`DEFAULT_VECTORIZER_MODULE`](https://docs.weaviate.io/deploy/configuration/env-vars)) which can itself either be `none` or a specific module." + }, + "moduleConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configuration specific to modules in a collection context." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the collection for metadata purposes." + }, + "properties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "dataType": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Data type of the property (required). If it starts with a capital (for example Person), may be a reference to another type." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the property." + }, + "moduleConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configuration specific to modules in a collection context." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property (required). Multiple words should be concatenated in camelCase, e.g. `nameOfAuthor`." + }, + "indexInverted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Deprecated). Whether to include this property in the inverted index. If `false`, this property cannot be used in `where` filters, `bm25` or `hybrid` search.

Unrelated to vectorization behavior (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)" + }, + "indexFilterable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include this property in the filterable, Roaring Bitmap index. If `false`, this property cannot be used in `where` filters.

Note: Unrelated to vectorization behavior." + }, + "indexSearchable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules" + }, + "indexRangeFilters": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include this property in the filterable, range-based Roaring Bitmap index. Provides better performance for range queries compared to filterable index in large datasets. Applicable only to properties of data type int, number, date." + }, + "tokenization": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch" + ], + "properties": null, + "inner_properties": null, + "description": "Determines how a property is indexed. This setting applies to `text` and `text[]` data types. The following tokenization methods are available:

- `word` (default): Splits the text on any non-alphanumeric characters and lowercases the tokens.
- `lowercase`: Splits the text on whitespace and lowercases the tokens.
- `whitespace`: Splits the text on whitespace. This tokenization is case-sensitive.
- `field`: Indexes the entire property value as a single token after trimming whitespace.
- `trigram`: Splits the property into rolling trigrams (three-character sequences).
- `gse`: Uses the `gse` tokenizer, suitable for Chinese language text. [See `gse` docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- `kagome_ja`: Uses the `Kagome` tokenizer with a Japanese (IPA) dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).
- `kagome_kr`: Uses the `Kagome` tokenizer with a Korean dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).

See [Reference: Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) for details." + }, + "nestedProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "dataType": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexFilterable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexSearchable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexRangeFilters": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "tokenization": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "nestedProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "The properties of the nested object(s). Applies to object and object[] data types." + } + }, + "description": "The properties of the nested object(s). Applies to object and object[] data types." + } + }, + "description": "Define properties of the collection." + } + }, + "inner_properties": null, + "description": "The updated collection definition containing the settings to modify." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'schema.objects.update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema/{className}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "className", + "tool_parameter_name": "collection_name_to_update", + "description": "The name of the collection (class) to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) to update." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "updated_collection_definition", + "description": "The updated collection definition containing the settings to modify.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (formerly 'class') (required). Multiple words should be concatenated in CamelCase, e.g. `ArticleAuthor`." + }, + "vectorConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configure named vectors. Either use this field or `vectorizer`, `vectorIndexType`, and `vectorIndexConfig` fields. Available from `v1.24.0`." + }, + "vectorIndexType": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the vector index type to use for the collection (e.g. `hnsw` or `flat`)." + }, + "vectorIndexConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Vector-index config, that is specific to the type of index selected in vectorIndexType" + }, + "shardingConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Manage how the index should be sharded and distributed in the cluster" + }, + "replicationConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "factor": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Number of times a collection (class) is replicated (default: 1)." + }, + "asyncEnabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Enable asynchronous replication (default: `false`)." + }, + "deletionStrategy": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "NoAutomatedResolution", + "DeleteOnConflict", + "TimeBasedResolution" + ], + "properties": null, + "inner_properties": null, + "description": "Conflict resolution strategy for deleted objects." + } + }, + "inner_properties": null, + "description": "Configure how replication is executed in a cluster" + }, + "invertedIndexConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "cleanupIntervalSeconds": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Asynchronous index clean up happens every n seconds (default: 60)." + }, + "bm25": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "k1": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Calibrates term-weight scaling based on the term frequency within a document (default: 1.2)." + }, + "b": { + "val_type": "number", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Calibrates term-weight scaling based on the document length (default: 0.75)." + } + }, + "inner_properties": null, + "description": "Tuning parameters for the BM25 algorithm." + }, + "stopwords": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "preset": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Pre-existing list of common words by language (default: `en`). Options: [`en`, `none`]." + }, + "additions": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Stopwords to be considered additionally (default: []). Can be any array of custom strings." + }, + "removals": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Stopwords to be removed from consideration (default: []). Can be any array of custom strings." + } + }, + "inner_properties": null, + "description": "Fine-grained control over stopword list usage." + }, + "indexTimestamps": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Index each object by its internal timestamps (default: `false`)." + }, + "indexNullState": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Index each object with the null state (default: `false`)." + }, + "indexPropertyLength": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Index length of properties (default: `false`)." + }, + "usingBlockMaxWAND": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Using BlockMax WAND for query execution (default: `false`, will be `true` for new collections created after 1.30)." + } + }, + "inner_properties": null, + "description": "Configure the inverted index built into Weaviate. See [Reference: Inverted index](https://docs.weaviate.io/weaviate/config-refs/indexing/inverted-index#inverted-index-parameters) for details." + }, + "multiTenancyConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "enabled": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether or not multi-tenancy is enabled for this collection (class) (default: `false`)." + }, + "autoTenantCreation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Nonexistent tenants should (not) be created implicitly (default: `false`)." + }, + "autoTenantActivation": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Existing tenants should (not) be turned HOT implicitly when they are accessed and in another activity status (default: `false`)." + } + }, + "inner_properties": null, + "description": "Configuration related to multi-tenancy within a collection (class)" + }, + "vectorizer": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Specify how the vectors for this collection should be determined. The options are either `none` - this means you have to import a vector with each object yourself - or the name of a module that provides vectorization capabilities, such as `text2vec-weaviate`. If left empty, it will use the globally configured default ([`DEFAULT_VECTORIZER_MODULE`](https://docs.weaviate.io/deploy/configuration/env-vars)) which can itself either be `none` or a specific module." + }, + "moduleConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configuration specific to modules in a collection context." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the collection for metadata purposes." + }, + "properties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "dataType": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Data type of the property (required). If it starts with a capital (for example Person), may be a reference to another type." + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Description of the property." + }, + "moduleConfig": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Configuration specific to modules in a collection context." + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the property (required). Multiple words should be concatenated in camelCase, e.g. `nameOfAuthor`." + }, + "indexInverted": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Deprecated). Whether to include this property in the inverted index. If `false`, this property cannot be used in `where` filters, `bm25` or `hybrid` search.

Unrelated to vectorization behavior (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)" + }, + "indexFilterable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include this property in the filterable, Roaring Bitmap index. If `false`, this property cannot be used in `where` filters.

Note: Unrelated to vectorization behavior." + }, + "indexSearchable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules" + }, + "indexRangeFilters": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Whether to include this property in the filterable, range-based Roaring Bitmap index. Provides better performance for range queries compared to filterable index in large datasets. Applicable only to properties of data type int, number, date." + }, + "tokenization": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch" + ], + "properties": null, + "inner_properties": null, + "description": "Determines how a property is indexed. This setting applies to `text` and `text[]` data types. The following tokenization methods are available:

- `word` (default): Splits the text on any non-alphanumeric characters and lowercases the tokens.
- `lowercase`: Splits the text on whitespace and lowercases the tokens.
- `whitespace`: Splits the text on whitespace. This tokenization is case-sensitive.
- `field`: Indexes the entire property value as a single token after trimming whitespace.
- `trigram`: Splits the property into rolling trigrams (three-character sequences).
- `gse`: Uses the `gse` tokenizer, suitable for Chinese language text. [See `gse` docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- `kagome_ja`: Uses the `Kagome` tokenizer with a Japanese (IPA) dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).
- `kagome_kr`: Uses the `Kagome` tokenizer with a Korean dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).

See [Reference: Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) for details." + }, + "nestedProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "dataType": { + "val_type": "array", + "inner_val_type": "string", + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "description": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexFilterable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexSearchable": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "indexRangeFilters": { + "val_type": "boolean", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + }, + "tokenization": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "word", + "lowercase", + "whitespace", + "field", + "trigram", + "gse", + "kagome_kr", + "kagome_ja", + "gse_ch" + ], + "properties": null, + "inner_properties": null, + "description": null + }, + "nestedProperties": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": {}, + "description": "The properties of the nested object(s). Applies to object and object[] data types." + } + }, + "description": "The properties of the nested object(s). Applies to object and object[] data types." + } + }, + "description": "Define properties of the collection." + } + }, + "inner_properties": null, + "description": "The updated collection definition containing the settings to modify." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The updated collection definition containing the settings to modify.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (formerly 'class') (required). Multiple words should be concatenated in CamelCase, e.g. `ArticleAuthor`.\"\n },\n \"vectorConfig\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"vectorizer\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration of a specific vectorizer used by this vector\"\n },\n \"vectorIndexType\": {\n \"type\": \"string\",\n \"description\": \"Name of the vector index to use, eg. (HNSW)\"\n },\n \"vectorIndexConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Vector-index config, that is specific to the type of index selected in vectorIndexType\"\n }\n }\n },\n \"description\": \"Configure named vectors. Either use this field or `vectorizer`, `vectorIndexType`, and `vectorIndexConfig` fields. Available from `v1.24.0`.\"\n },\n \"vectorIndexType\": {\n \"type\": \"string\",\n \"description\": \"Name of the vector index type to use for the collection (e.g. `hnsw` or `flat`).\"\n },\n \"vectorIndexConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Vector-index config, that is specific to the type of index selected in vectorIndexType\"\n },\n \"shardingConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Manage how the index should be sharded and distributed in the cluster\"\n },\n \"replicationConfig\": {\n \"type\": \"object\",\n \"properties\": {\n \"factor\": {\n \"type\": \"integer\",\n \"description\": \"Number of times a collection (class) is replicated (default: 1).\"\n },\n \"asyncEnabled\": {\n \"type\": \"boolean\",\n \"description\": \"Enable asynchronous replication (default: `false`).\",\n \"x-omitempty\": false\n },\n \"deletionStrategy\": {\n \"type\": \"string\",\n \"description\": \"Conflict resolution strategy for deleted objects.\",\n \"enum\": [\n \"NoAutomatedResolution\",\n \"DeleteOnConflict\",\n \"TimeBasedResolution\"\n ],\n \"x-omitempty\": true\n }\n },\n \"description\": \"Configure how replication is executed in a cluster\"\n },\n \"invertedIndexConfig\": {\n \"type\": \"object\",\n \"properties\": {\n \"cleanupIntervalSeconds\": {\n \"type\": \"number\",\n \"description\": \"Asynchronous index clean up happens every n seconds (default: 60).\",\n \"format\": \"int\"\n },\n \"bm25\": {\n \"type\": \"object\",\n \"properties\": {\n \"k1\": {\n \"type\": \"number\",\n \"description\": \"Calibrates term-weight scaling based on the term frequency within a document (default: 1.2).\",\n \"format\": \"float\"\n },\n \"b\": {\n \"type\": \"number\",\n \"description\": \"Calibrates term-weight scaling based on the document length (default: 0.75).\",\n \"format\": \"float\"\n }\n },\n \"description\": \"Tuning parameters for the BM25 algorithm.\"\n },\n \"stopwords\": {\n \"type\": \"object\",\n \"properties\": {\n \"preset\": {\n \"type\": \"string\",\n \"description\": \"Pre-existing list of common words by language (default: `en`). Options: [`en`, `none`].\"\n },\n \"additions\": {\n \"type\": \"array\",\n \"description\": \"Stopwords to be considered additionally (default: []). Can be any array of custom strings.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"removals\": {\n \"type\": \"array\",\n \"description\": \"Stopwords to be removed from consideration (default: []). Can be any array of custom strings.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Fine-grained control over stopword list usage.\"\n },\n \"indexTimestamps\": {\n \"type\": \"boolean\",\n \"description\": \"Index each object by its internal timestamps (default: `false`).\"\n },\n \"indexNullState\": {\n \"type\": \"boolean\",\n \"description\": \"Index each object with the null state (default: `false`).\"\n },\n \"indexPropertyLength\": {\n \"type\": \"boolean\",\n \"description\": \"Index length of properties (default: `false`).\"\n },\n \"usingBlockMaxWAND\": {\n \"type\": \"boolean\",\n \"description\": \"Using BlockMax WAND for query execution (default: `false`, will be `true` for new collections created after 1.30).\"\n }\n },\n \"description\": \"Configure the inverted index built into Weaviate. See [Reference: Inverted index](https://docs.weaviate.io/weaviate/config-refs/indexing/inverted-index#inverted-index-parameters) for details.\"\n },\n \"multiTenancyConfig\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not multi-tenancy is enabled for this collection (class) (default: `false`).\",\n \"x-omitempty\": false\n },\n \"autoTenantCreation\": {\n \"type\": \"boolean\",\n \"description\": \"Nonexistent tenants should (not) be created implicitly (default: `false`).\",\n \"x-omitempty\": false\n },\n \"autoTenantActivation\": {\n \"type\": \"boolean\",\n \"description\": \"Existing tenants should (not) be turned HOT implicitly when they are accessed and in another activity status (default: `false`).\",\n \"x-omitempty\": false\n }\n },\n \"description\": \"Configuration related to multi-tenancy within a collection (class)\"\n },\n \"vectorizer\": {\n \"type\": \"string\",\n \"description\": \"Specify how the vectors for this collection should be determined. The options are either `none` - this means you have to import a vector with each object yourself - or the name of a module that provides vectorization capabilities, such as `text2vec-weaviate`. If left empty, it will use the globally configured default ([`DEFAULT_VECTORIZER_MODULE`](https://docs.weaviate.io/deploy/configuration/env-vars)) which can itself either be `none` or a specific module.\"\n },\n \"moduleConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration specific to modules in a collection context.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the collection for metadata purposes.\"\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Define properties of the collection.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"dataType\": {\n \"type\": \"array\",\n \"description\": \"Data type of the property (required). If it starts with a capital (for example Person), may be a reference to another type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the property.\"\n },\n \"moduleConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration specific to modules in a collection context.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the property (required). Multiple words should be concatenated in camelCase, e.g. `nameOfAuthor`.\"\n },\n \"indexInverted\": {\n \"type\": \"boolean\",\n \"description\": \"(Deprecated). Whether to include this property in the inverted index. If `false`, this property cannot be used in `where` filters, `bm25` or `hybrid` search.

Unrelated to vectorization behavior (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)\",\n \"nullable\": true\n },\n \"indexFilterable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to include this property in the filterable, Roaring Bitmap index. If `false`, this property cannot be used in `where` filters.

Note: Unrelated to vectorization behavior.\",\n \"nullable\": true\n },\n \"indexSearchable\": {\n \"type\": \"boolean\",\n \"description\": \"Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules\",\n \"nullable\": true\n },\n \"indexRangeFilters\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to include this property in the filterable, range-based Roaring Bitmap index. Provides better performance for range queries compared to filterable index in large datasets. Applicable only to properties of data type int, number, date.\",\n \"nullable\": true\n },\n \"tokenization\": {\n \"type\": \"string\",\n \"description\": \"Determines how a property is indexed. This setting applies to `text` and `text[]` data types. The following tokenization methods are available:

- `word` (default): Splits the text on any non-alphanumeric characters and lowercases the tokens.
- `lowercase`: Splits the text on whitespace and lowercases the tokens.
- `whitespace`: Splits the text on whitespace. This tokenization is case-sensitive.
- `field`: Indexes the entire property value as a single token after trimming whitespace.
- `trigram`: Splits the property into rolling trigrams (three-character sequences).
- `gse`: Uses the `gse` tokenizer, suitable for Chinese language text. [See `gse` docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- `kagome_ja`: Uses the `Kagome` tokenizer with a Japanese (IPA) dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).
- `kagome_kr`: Uses the `Kagome` tokenizer with a Korean dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).

See [Reference: Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) for details.\",\n \"enum\": [\n \"word\",\n \"lowercase\",\n \"whitespace\",\n \"field\",\n \"trigram\",\n \"gse\",\n \"kagome_kr\",\n \"kagome_ja\",\n \"gse_ch\"\n ]\n },\n \"nestedProperties\": {\n \"type\": \"array\",\n \"description\": \"The properties of the nested object(s). Applies to object and object[] data types.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"dataType\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"indexFilterable\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"indexSearchable\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"indexRangeFilters\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"tokenization\": {\n \"type\": \"string\",\n \"enum\": [\n \"word\",\n \"lowercase\",\n \"whitespace\",\n \"field\",\n \"trigram\",\n \"gse\",\n \"kagome_kr\",\n \"kagome_ja\",\n \"gse_ch\"\n ]\n },\n \"nestedProperties\": {\n \"type\": \"array\",\n \"description\": \"The properties of the nested object(s). Applies to object and object[] data types.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/NestedProperty\",\n \"has_circular_reference\": true\n },\n \"x-omitempty\": true\n }\n }\n },\n \"x-omitempty\": true\n }\n }\n }\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (formerly 'class') (required). Multiple words should be concatenated in CamelCase, e.g. `ArticleAuthor`.\"\n },\n \"vectorConfig\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {\n \"vectorizer\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration of a specific vectorizer used by this vector\"\n },\n \"vectorIndexType\": {\n \"type\": \"string\",\n \"description\": \"Name of the vector index to use, eg. (HNSW)\"\n },\n \"vectorIndexConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Vector-index config, that is specific to the type of index selected in vectorIndexType\"\n }\n }\n },\n \"description\": \"Configure named vectors. Either use this field or `vectorizer`, `vectorIndexType`, and `vectorIndexConfig` fields. Available from `v1.24.0`.\"\n },\n \"vectorIndexType\": {\n \"type\": \"string\",\n \"description\": \"Name of the vector index type to use for the collection (e.g. `hnsw` or `flat`).\"\n },\n \"vectorIndexConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Vector-index config, that is specific to the type of index selected in vectorIndexType\"\n },\n \"shardingConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Manage how the index should be sharded and distributed in the cluster\"\n },\n \"replicationConfig\": {\n \"type\": \"object\",\n \"properties\": {\n \"factor\": {\n \"type\": \"integer\",\n \"description\": \"Number of times a collection (class) is replicated (default: 1).\"\n },\n \"asyncEnabled\": {\n \"type\": \"boolean\",\n \"description\": \"Enable asynchronous replication (default: `false`).\",\n \"x-omitempty\": false\n },\n \"deletionStrategy\": {\n \"type\": \"string\",\n \"description\": \"Conflict resolution strategy for deleted objects.\",\n \"enum\": [\n \"NoAutomatedResolution\",\n \"DeleteOnConflict\",\n \"TimeBasedResolution\"\n ],\n \"x-omitempty\": true\n }\n },\n \"description\": \"Configure how replication is executed in a cluster\"\n },\n \"invertedIndexConfig\": {\n \"type\": \"object\",\n \"properties\": {\n \"cleanupIntervalSeconds\": {\n \"type\": \"number\",\n \"description\": \"Asynchronous index clean up happens every n seconds (default: 60).\",\n \"format\": \"int\"\n },\n \"bm25\": {\n \"type\": \"object\",\n \"properties\": {\n \"k1\": {\n \"type\": \"number\",\n \"description\": \"Calibrates term-weight scaling based on the term frequency within a document (default: 1.2).\",\n \"format\": \"float\"\n },\n \"b\": {\n \"type\": \"number\",\n \"description\": \"Calibrates term-weight scaling based on the document length (default: 0.75).\",\n \"format\": \"float\"\n }\n },\n \"description\": \"Tuning parameters for the BM25 algorithm.\"\n },\n \"stopwords\": {\n \"type\": \"object\",\n \"properties\": {\n \"preset\": {\n \"type\": \"string\",\n \"description\": \"Pre-existing list of common words by language (default: `en`). Options: [`en`, `none`].\"\n },\n \"additions\": {\n \"type\": \"array\",\n \"description\": \"Stopwords to be considered additionally (default: []). Can be any array of custom strings.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"removals\": {\n \"type\": \"array\",\n \"description\": \"Stopwords to be removed from consideration (default: []). Can be any array of custom strings.\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"Fine-grained control over stopword list usage.\"\n },\n \"indexTimestamps\": {\n \"type\": \"boolean\",\n \"description\": \"Index each object by its internal timestamps (default: `false`).\"\n },\n \"indexNullState\": {\n \"type\": \"boolean\",\n \"description\": \"Index each object with the null state (default: `false`).\"\n },\n \"indexPropertyLength\": {\n \"type\": \"boolean\",\n \"description\": \"Index length of properties (default: `false`).\"\n },\n \"usingBlockMaxWAND\": {\n \"type\": \"boolean\",\n \"description\": \"Using BlockMax WAND for query execution (default: `false`, will be `true` for new collections created after 1.30).\"\n }\n },\n \"description\": \"Configure the inverted index built into Weaviate. See [Reference: Inverted index](https://docs.weaviate.io/weaviate/config-refs/indexing/inverted-index#inverted-index-parameters) for details.\"\n },\n \"multiTenancyConfig\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\",\n \"description\": \"Whether or not multi-tenancy is enabled for this collection (class) (default: `false`).\",\n \"x-omitempty\": false\n },\n \"autoTenantCreation\": {\n \"type\": \"boolean\",\n \"description\": \"Nonexistent tenants should (not) be created implicitly (default: `false`).\",\n \"x-omitempty\": false\n },\n \"autoTenantActivation\": {\n \"type\": \"boolean\",\n \"description\": \"Existing tenants should (not) be turned HOT implicitly when they are accessed and in another activity status (default: `false`).\",\n \"x-omitempty\": false\n }\n },\n \"description\": \"Configuration related to multi-tenancy within a collection (class)\"\n },\n \"vectorizer\": {\n \"type\": \"string\",\n \"description\": \"Specify how the vectors for this collection should be determined. The options are either `none` - this means you have to import a vector with each object yourself - or the name of a module that provides vectorization capabilities, such as `text2vec-weaviate`. If left empty, it will use the globally configured default ([`DEFAULT_VECTORIZER_MODULE`](https://docs.weaviate.io/deploy/configuration/env-vars)) which can itself either be `none` or a specific module.\"\n },\n \"moduleConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration specific to modules in a collection context.\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the collection for metadata purposes.\"\n },\n \"properties\": {\n \"type\": \"array\",\n \"description\": \"Define properties of the collection.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"dataType\": {\n \"type\": \"array\",\n \"description\": \"Data type of the property (required). If it starts with a capital (for example Person), may be a reference to another type.\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Description of the property.\"\n },\n \"moduleConfig\": {\n \"type\": \"object\",\n \"properties\": {},\n \"description\": \"Configuration specific to modules in a collection context.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the property (required). Multiple words should be concatenated in camelCase, e.g. `nameOfAuthor`.\"\n },\n \"indexInverted\": {\n \"type\": \"boolean\",\n \"description\": \"(Deprecated). Whether to include this property in the inverted index. If `false`, this property cannot be used in `where` filters, `bm25` or `hybrid` search.

Unrelated to vectorization behavior (deprecated as of v1.19; use indexFilterable or/and indexSearchable instead)\",\n \"nullable\": true\n },\n \"indexFilterable\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to include this property in the filterable, Roaring Bitmap index. If `false`, this property cannot be used in `where` filters.

Note: Unrelated to vectorization behavior.\",\n \"nullable\": true\n },\n \"indexSearchable\": {\n \"type\": \"boolean\",\n \"description\": \"Optional. Should this property be indexed in the inverted index. Defaults to true. Applicable only to properties of data type text and text[]. If you choose false, you will not be able to use this property in bm25 or hybrid search. This property has no affect on vectorization decisions done by modules\",\n \"nullable\": true\n },\n \"indexRangeFilters\": {\n \"type\": \"boolean\",\n \"description\": \"Whether to include this property in the filterable, range-based Roaring Bitmap index. Provides better performance for range queries compared to filterable index in large datasets. Applicable only to properties of data type int, number, date.\",\n \"nullable\": true\n },\n \"tokenization\": {\n \"type\": \"string\",\n \"description\": \"Determines how a property is indexed. This setting applies to `text` and `text[]` data types. The following tokenization methods are available:

- `word` (default): Splits the text on any non-alphanumeric characters and lowercases the tokens.
- `lowercase`: Splits the text on whitespace and lowercases the tokens.
- `whitespace`: Splits the text on whitespace. This tokenization is case-sensitive.
- `field`: Indexes the entire property value as a single token after trimming whitespace.
- `trigram`: Splits the property into rolling trigrams (three-character sequences).
- `gse`: Uses the `gse` tokenizer, suitable for Chinese language text. [See `gse` docs](https://pkg.go.dev/github.com/go-ego/gse#section-readme).
- `kagome_ja`: Uses the `Kagome` tokenizer with a Japanese (IPA) dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).
- `kagome_kr`: Uses the `Kagome` tokenizer with a Korean dictionary. [See `kagome` docs](https://github.com/ikawaha/kagome).

See [Reference: Tokenization](https://docs.weaviate.io/weaviate/config-refs/collections#tokenization) for details.\",\n \"enum\": [\n \"word\",\n \"lowercase\",\n \"whitespace\",\n \"field\",\n \"trigram\",\n \"gse\",\n \"kagome_kr\",\n \"kagome_ja\",\n \"gse_ch\"\n ]\n },\n \"nestedProperties\": {\n \"type\": \"array\",\n \"description\": \"The properties of the nested object(s). Applies to object and object[] data types.\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"dataType\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n },\n \"indexFilterable\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"indexSearchable\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"indexRangeFilters\": {\n \"type\": \"boolean\",\n \"nullable\": true\n },\n \"tokenization\": {\n \"type\": \"string\",\n \"enum\": [\n \"word\",\n \"lowercase\",\n \"whitespace\",\n \"field\",\n \"trigram\",\n \"gse\",\n \"kagome_kr\",\n \"kagome_ja\",\n \"gse_ch\"\n ]\n },\n \"nestedProperties\": {\n \"type\": \"array\",\n \"description\": \"The properties of the nested object(s). Applies to object and object[] data types.\",\n \"items\": {\n \"$ref\": \"#/components/schemas/NestedProperty\",\n \"has_circular_reference\": true\n },\n \"x-omitempty\": true\n }\n }\n },\n \"x-omitempty\": true\n }\n }\n }\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateDataObject.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateDataObject.json new file mode 100644 index 00000000..3009a1dd --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateDataObject.json @@ -0,0 +1,376 @@ +{ + "name": "UpdateDataObject", + "fully_qualified_name": "WeaviateApi.UpdateDataObject@0.1.0", + "description": "Update specific properties of a data object.\n\nThis tool updates properties of an existing object in a specified collection using JSON merge patch semantics. The object is identified by its collection name and UUID. Use this to modify selected fields of a data object while ensuring validation and timestamp updates.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "Specifies the name of the collection or class the object belongs to. This identifies where the object is stored.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "object_uuid", + "required": true, + "description": "Unique UUID of the object to be patched within the specified collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the object to be patched." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "consistency_level", + "required": false, + "description": "Specify the number of replicas that must acknowledge the request for success.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency_level" + }, + { + "name": "merge_patch_update", + "required": false, + "description": "RFC 7396-style JSON object specifying fields to update in the data object, including optional properties like `class`, `vectorWeights`, `properties`, and `vectors`.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "vectorWeights": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The UUID of the object." + }, + "creationTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of creation of this object in milliseconds since epoch UTC." + }, + "lastUpdateTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of the last object update in milliseconds since epoch UTC." + }, + "vector": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting." + }, + "vectors": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A map of named vectors for multi-vector representations." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant the object belongs to." + }, + "additional": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Additional meta information about a single object." + } + }, + "inner_properties": null, + "description": "RFC 7396-style JSON merge patch object containing the fields to update." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'objects.class.patch'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/objects/{className}/{id}", + "http_method": "PATCH", + "headers": {}, + "parameters": [ + { + "name": "consistency_level", + "tool_parameter_name": "consistency_level", + "description": "Determines how many replicas must acknowledge a request before it is considered successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "Name of the collection (class) the object belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "object_uuid", + "description": "Unique UUID of the object to be patched.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the object to be patched." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "merge_patch_update", + "description": "RFC 7396-style JSON merge patch object containing the fields to update.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "vectorWeights": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The UUID of the object." + }, + "creationTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of creation of this object in milliseconds since epoch UTC." + }, + "lastUpdateTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of the last object update in milliseconds since epoch UTC." + }, + "vector": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting." + }, + "vectors": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A map of named vectors for multi-vector representations." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant the object belongs to." + }, + "additional": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Additional meta information about a single object." + } + }, + "inner_properties": null, + "description": "RFC 7396-style JSON merge patch object containing the fields to update." + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"RFC 7396-style JSON merge patch object containing the fields to update.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (class) the object belongs to.\"\n },\n \"vectorWeights\": {\n \"type\": \"object\",\n \"description\": \"Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The UUID of the object.\",\n \"format\": \"uuid\"\n },\n \"creationTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of creation of this object in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"lastUpdateTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of the last object update in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"vector\": {\n \"type\": \"array\",\n \"description\": \"A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting.\",\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float\"\n }\n },\n \"vectors\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"description\": \"A vector representation of the object. If provided at object creation, this wil take precedence over any vectorizer setting.\"\n },\n \"description\": \"A map of named vectors for multi-vector representations.\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant the object belongs to.\"\n },\n \"additional\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"(Response only) Additional meta information about a single object.\"\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (class) the object belongs to.\"\n },\n \"vectorWeights\": {\n \"type\": \"object\",\n \"description\": \"Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The UUID of the object.\",\n \"format\": \"uuid\"\n },\n \"creationTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of creation of this object in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"lastUpdateTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of the last object update in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"vector\": {\n \"type\": \"array\",\n \"description\": \"A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting.\",\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float\"\n }\n },\n \"vectors\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"description\": \"A vector representation of the object. If provided at object creation, this wil take precedence over any vectorizer setting.\"\n },\n \"description\": \"A map of named vectors for multi-vector representations.\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant the object belongs to.\"\n },\n \"additional\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"(Response only) Additional meta information about a single object.\"\n }\n }\n }\n }\n },\n \"required\": false\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateObjectProperties.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateObjectProperties.json new file mode 100644 index 00000000..55b6f79c --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateObjectProperties.json @@ -0,0 +1,376 @@ +{ + "name": "UpdateObjectProperties", + "fully_qualified_name": "WeaviateApi.UpdateObjectProperties@0.1.0", + "description": "Replace properties of a data object using its class and ID.\n\nThis tool updates the properties of an existing object identified by its class name and UUID. The request must include the complete object definition with new values to replace the existing ones.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "The name of the class (collection) to which the object belongs.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "object_uuid", + "required": true, + "description": "Unique UUID of the object to be replaced.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the object to be replaced." + }, + "inferrable": true, + "http_endpoint_parameter_name": "id" + }, + { + "name": "object_definition", + "required": true, + "description": "The full object definition in JSON format to replace the existing object. Must include all updated property values.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "vectorWeights": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The UUID of the object." + }, + "creationTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of creation of this object in milliseconds since epoch UTC." + }, + "lastUpdateTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of the last object update in milliseconds since epoch UTC." + }, + "vector": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting." + }, + "vectors": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A map of named vectors for multi-vector representations." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant the object belongs to." + }, + "additional": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Additional meta information about a single object." + } + }, + "inner_properties": null, + "description": "The object definition to replace the existing object with." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + }, + { + "name": "required_replica_acknowledgement", + "required": false, + "description": "Specifies how many replicas must acknowledge a request for it to be successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "inferrable": true, + "http_endpoint_parameter_name": "consistency_level" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'objects.class.put'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/objects/{className}/{id}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "consistency_level", + "tool_parameter_name": "required_replica_acknowledgement", + "description": "Determines how many replicas must acknowledge a request before it is considered successful.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Determines how many replicas must acknowledge a request before it is considered successful." + }, + "accepted_as": "query", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "Name of the collection (class) the object belongs to.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "id", + "tool_parameter_name": "object_uuid", + "description": "Unique UUID of the object to be replaced.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Unique UUID of the object to be replaced." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "object_definition", + "description": "The object definition to replace the existing object with.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "vectorWeights": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The UUID of the object." + }, + "creationTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of creation of this object in milliseconds since epoch UTC." + }, + "lastUpdateTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of the last object update in milliseconds since epoch UTC." + }, + "vector": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting." + }, + "vectors": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A map of named vectors for multi-vector representations." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant the object belongs to." + }, + "additional": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Additional meta information about a single object." + } + }, + "inner_properties": null, + "description": "The object definition to replace the existing object with." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The object definition to replace the existing object with.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (class) the object belongs to.\"\n },\n \"vectorWeights\": {\n \"type\": \"object\",\n \"description\": \"Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The UUID of the object.\",\n \"format\": \"uuid\"\n },\n \"creationTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of creation of this object in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"lastUpdateTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of the last object update in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"vector\": {\n \"type\": \"array\",\n \"description\": \"A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting.\",\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float\"\n }\n },\n \"vectors\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"description\": \"A vector representation of the object. If provided at object creation, this wil take precedence over any vectorizer setting.\"\n },\n \"description\": \"A map of named vectors for multi-vector representations.\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant the object belongs to.\"\n },\n \"additional\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"(Response only) Additional meta information about a single object.\"\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (class) the object belongs to.\"\n },\n \"vectorWeights\": {\n \"type\": \"object\",\n \"description\": \"Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The UUID of the object.\",\n \"format\": \"uuid\"\n },\n \"creationTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of creation of this object in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"lastUpdateTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of the last object update in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"vector\": {\n \"type\": \"array\",\n \"description\": \"A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting.\",\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float\"\n }\n },\n \"vectors\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"description\": \"A vector representation of the object. If provided at object creation, this wil take precedence over any vectorizer setting.\"\n },\n \"description\": \"A map of named vectors for multi-vector representations.\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant the object belongs to.\"\n },\n \"additional\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"(Response only) Additional meta information about a single object.\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateShardStatus.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateShardStatus.json new file mode 100644 index 00000000..989bbe5e --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateShardStatus.json @@ -0,0 +1,181 @@ +{ + "name": "UpdateShardStatus", + "fully_qualified_name": "WeaviateApi.UpdateShardStatus@0.1.0", + "description": "Update the status of a specific shard in a collection.\n\nUse this tool to update the status of a specific shard within a Weaviate collection. It is typically used to change the shard's status to `READY` or `READONLY` after addressing issues that affected its operation.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "The name of the collection or class containing the shard to be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) containing the shard." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "shard_name", + "required": true, + "description": "The specific name of the shard to update in the collection.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the shard to update." + }, + "inferrable": true, + "http_endpoint_parameter_name": "shardName" + }, + { + "name": "shard_status", + "required": false, + "description": "The status to set for the shard, such as 'READY' or 'READONLY'.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the shard" + }, + "inferrable": true, + "http_endpoint_parameter_name": "status" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'schema.objects.shards.update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema/{className}/shards/{shardName}", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "The name of the collection (class) containing the shard.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) containing the shard." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "shardName", + "tool_parameter_name": "shard_name", + "description": "The name of the shard to update.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the shard to update." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "status", + "tool_parameter_name": "shard_status", + "description": "Status of the shard", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Status of the shard" + }, + "accepted_as": "body", + "required": false, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The shard status object containing the desired new status.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"description\": \"Status of the shard\"\n }\n },\n \"description\": \"The status of a single shard\"\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"string\",\n \"description\": \"Status of the shard\"\n }\n },\n \"description\": \"The status of a single shard\"\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": false, + "validate_request_body_schema": false + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateTenantStatus.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateTenantStatus.json new file mode 100644 index 00000000..2014b664 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/UpdateTenantStatus.json @@ -0,0 +1,204 @@ +{ + "name": "UpdateTenantStatus", + "fully_qualified_name": "WeaviateApi.UpdateTenantStatus@0.1.0", + "description": "Update the activity status of specified tenants.\n\nThis tool updates the activity status, such as `ACTIVE` or `INACTIVE`, of one or more specified tenants within a collection (specified by `className`). Use this tool to manage tenant statuses efficiently within your system.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "collection_name", + "required": true, + "description": "The name of the collection (class) containing the tenants whose status is to be updated.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) containing the tenants." + }, + "inferrable": true, + "http_endpoint_parameter_name": "className" + }, + { + "name": "tenant_status_updates", + "required": true, + "description": "An array of tenant objects specifying the tenants to update and their desired new status. Each tenant object should contain a 'name' and 'activityStatus' indicating the tenant's name and desired activity status (e.g., 'ACTIVE', 'INACTIVE', 'OFFLOADED').", + "value_schema": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant (required)." + }, + "activityStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ACTIVE", + "INACTIVE", + "OFFLOADED", + "OFFLOADING", + "ONLOADING", + "HOT", + "COLD", + "FROZEN", + "FREEZING", + "UNFREEZING" + ], + "properties": null, + "inner_properties": null, + "description": "The activity status of the tenant, which determines if it is queryable and where its data is stored.

Available Statuses:
- `ACTIVE`: The tenant is fully operational and ready for queries. Data is stored on local, hot storage.
- `INACTIVE`: The tenant is not queryable. Data is stored locally.
- `OFFLOADED`: The tenant is inactive and its data is stored in a remote cloud backend.

Usage Rules:
- On Create: This field is optional and defaults to `ACTIVE`. Allowed values are `ACTIVE` and `INACTIVE`.
- On Update: This field is required. Allowed values are `ACTIVE`, `INACTIVE`, and `OFFLOADED`.

Read-Only Statuses:
The following statuses are set by the server and indicate a tenant is transitioning between states:
- `OFFLOADING`
- `ONLOADING`

Note on Deprecated Names:
For backward compatibility, deprecated names are still accepted and are mapped to their modern equivalents: `HOT` (now `ACTIVE`), `COLD` (now `INACTIVE`), `FROZEN` (now `OFFLOADED`), `FREEZING` (now `OFFLOADING`), `UNFREEZING` (now `ONLOADING`)." + } + }, + "description": "An array of tenant objects specifying the tenants to update and their desired new status." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'tenants.update'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/schema/{className}/tenants", + "http_method": "PUT", + "headers": {}, + "parameters": [ + { + "name": "className", + "tool_parameter_name": "collection_name", + "description": "The name of the collection (class) containing the tenants.", + "value_schema": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the collection (class) containing the tenants." + }, + "accepted_as": "path", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + }, + { + "name": "requestBody", + "tool_parameter_name": "tenant_status_updates", + "description": "An array of tenant objects specifying the tenants to update and their desired new status.", + "value_schema": { + "val_type": "array", + "inner_val_type": "json", + "enum": null, + "properties": null, + "inner_properties": { + "name": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant (required)." + }, + "activityStatus": { + "val_type": "string", + "inner_val_type": null, + "enum": [ + "ACTIVE", + "INACTIVE", + "OFFLOADED", + "OFFLOADING", + "ONLOADING", + "HOT", + "COLD", + "FROZEN", + "FREEZING", + "UNFREEZING" + ], + "properties": null, + "inner_properties": null, + "description": "The activity status of the tenant, which determines if it is queryable and where its data is stored.

Available Statuses:
- `ACTIVE`: The tenant is fully operational and ready for queries. Data is stored on local, hot storage.
- `INACTIVE`: The tenant is not queryable. Data is stored locally.
- `OFFLOADED`: The tenant is inactive and its data is stored in a remote cloud backend.

Usage Rules:
- On Create: This field is optional and defaults to `ACTIVE`. Allowed values are `ACTIVE` and `INACTIVE`.
- On Update: This field is required. Allowed values are `ACTIVE`, `INACTIVE`, and `OFFLOADED`.

Read-Only Statuses:
The following statuses are set by the server and indicate a tenant is transitioning between states:
- `OFFLOADING`
- `ONLOADING`

Note on Deprecated Names:
For backward compatibility, deprecated names are still accepted and are mapped to their modern equivalents: `HOT` (now `ACTIVE`), `COLD` (now `INACTIVE`), `FROZEN` (now `OFFLOADED`), `FREEZING` (now `OFFLOADING`), `UNFREEZING` (now `ONLOADING`)." + } + }, + "description": "An array of tenant objects specifying the tenants to update and their desired new status." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"An array of tenant objects specifying the tenants to update and their desired new status.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant (required).\"\n },\n \"activityStatus\": {\n \"type\": \"string\",\n \"description\": \"The activity status of the tenant, which determines if it is queryable and where its data is stored.

Available Statuses:
- `ACTIVE`: The tenant is fully operational and ready for queries. Data is stored on local, hot storage.
- `INACTIVE`: The tenant is not queryable. Data is stored locally.
- `OFFLOADED`: The tenant is inactive and its data is stored in a remote cloud backend.

Usage Rules:
- On Create: This field is optional and defaults to `ACTIVE`. Allowed values are `ACTIVE` and `INACTIVE`.
- On Update: This field is required. Allowed values are `ACTIVE`, `INACTIVE`, and `OFFLOADED`.

Read-Only Statuses:
The following statuses are set by the server and indicate a tenant is transitioning between states:
- `OFFLOADING`
- `ONLOADING`

Note on Deprecated Names:
For backward compatibility, deprecated names are still accepted and are mapped to their modern equivalents: `HOT` (now `ACTIVE`), `COLD` (now `INACTIVE`), `FROZEN` (now `OFFLOADED`), `FREEZING` (now `OFFLOADING`), `UNFREEZING` (now `ONLOADING`).\",\n \"enum\": [\n \"ACTIVE\",\n \"INACTIVE\",\n \"OFFLOADED\",\n \"OFFLOADING\",\n \"ONLOADING\",\n \"HOT\",\n \"COLD\",\n \"FROZEN\",\n \"FREEZING\",\n \"UNFREEZING\"\n ]\n }\n },\n \"description\": \"Attributes representing a single tenant within Weaviate.\"\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant (required).\"\n },\n \"activityStatus\": {\n \"type\": \"string\",\n \"description\": \"The activity status of the tenant, which determines if it is queryable and where its data is stored.

Available Statuses:
- `ACTIVE`: The tenant is fully operational and ready for queries. Data is stored on local, hot storage.
- `INACTIVE`: The tenant is not queryable. Data is stored locally.
- `OFFLOADED`: The tenant is inactive and its data is stored in a remote cloud backend.

Usage Rules:
- On Create: This field is optional and defaults to `ACTIVE`. Allowed values are `ACTIVE` and `INACTIVE`.
- On Update: This field is required. Allowed values are `ACTIVE`, `INACTIVE`, and `OFFLOADED`.

Read-Only Statuses:
The following statuses are set by the server and indicate a tenant is transitioning between states:
- `OFFLOADING`
- `ONLOADING`

Note on Deprecated Names:
For backward compatibility, deprecated names are still accepted and are mapped to their modern equivalents: `HOT` (now `ACTIVE`), `COLD` (now `INACTIVE`), `FROZEN` (now `OFFLOADED`), `FREEZING` (now `OFFLOADING`), `UNFREEZING` (now `ONLOADING`).\",\n \"enum\": [\n \"ACTIVE\",\n \"INACTIVE\",\n \"OFFLOADED\",\n \"OFFLOADING\",\n \"ONLOADING\",\n \"HOT\",\n \"COLD\",\n \"FROZEN\",\n \"FREEZING\",\n \"UNFREEZING\"\n ]\n }\n },\n \"description\": \"Attributes representing a single tenant within Weaviate.\"\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ValidateDataObjectStructure.json b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ValidateDataObjectStructure.json new file mode 100644 index 00000000..91ba0651 --- /dev/null +++ b/toolkits/weaviate_api/arcade_weaviate_api/wrapper_tools/ValidateDataObjectStructure.json @@ -0,0 +1,277 @@ +{ + "name": "ValidateDataObjectStructure", + "fully_qualified_name": "WeaviateApi.ValidateDataObjectStructure@0.1.0", + "description": "Validate a data object's structure against the schema.\n\nUse this tool to check if a data object conforms to the specified collection schema and metadata rules without storing it. A successful validation returns a confirmation, while errors provide detailed feedback.", + "toolkit": { + "name": "ArcadeWeaviateApi", + "description": null, + "version": "0.1.0" + }, + "input": { + "parameters": [ + { + "name": "data_object_definition", + "required": true, + "description": "The JSON definition of the object to validate against the schema. It includes properties like class, ID, vectors, and more.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "vectorWeights": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The UUID of the object." + }, + "creationTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of creation of this object in milliseconds since epoch UTC." + }, + "lastUpdateTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of the last object update in milliseconds since epoch UTC." + }, + "vector": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting." + }, + "vectors": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A map of named vectors for multi-vector representations." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant the object belongs to." + }, + "additional": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Additional meta information about a single object." + } + }, + "inner_properties": null, + "description": "The object definition to validate." + }, + "inferrable": true, + "http_endpoint_parameter_name": "requestBody" + } + ] + }, + "output": { + "description": "Response from the API endpoint 'objects.validate'.", + "available_modes": [ + "value", + "error", + "null" + ], + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": null + } + }, + "requirements": { + "authorization": null, + "secrets": [ + { + "key": "WEAVIATE_API_KEY" + }, + { + "key": "WEAVIATE_SERVER_URL" + } + ], + "metadata": null + }, + "deprecation_message": null, + "metadata": { + "object_type": "api_wrapper_tool", + "version": "1.1.0", + "description": "Tools that enable LLMs to interact directly with the weaviate API." + }, + "http_endpoint": { + "metadata": { + "object_type": "http_endpoint", + "version": "1.2.0", + "description": "" + }, + "url": "{weaviate_server_url}/v1/objects/validate", + "http_method": "POST", + "headers": {}, + "parameters": [ + { + "name": "requestBody", + "tool_parameter_name": "data_object_definition", + "description": "The object definition to validate.", + "value_schema": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": { + "class": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Name of the collection (class) the object belongs to." + }, + "vectorWeights": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object." + }, + "properties": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection." + }, + "id": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The UUID of the object." + }, + "creationTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of creation of this object in milliseconds since epoch UTC." + }, + "lastUpdateTimeUnix": { + "val_type": "integer", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Timestamp of the last object update in milliseconds since epoch UTC." + }, + "vector": { + "val_type": "array", + "inner_val_type": "number", + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting." + }, + "vectors": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "A map of named vectors for multi-vector representations." + }, + "tenant": { + "val_type": "string", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "The name of the tenant the object belongs to." + }, + "additional": { + "val_type": "json", + "inner_val_type": null, + "enum": null, + "properties": null, + "inner_properties": null, + "description": "(Response only) Additional meta information about a single object." + } + }, + "inner_properties": null, + "description": "The object definition to validate." + }, + "accepted_as": "body", + "required": true, + "deprecated": false, + "default": null, + "documentation_urls": [] + } + ], + "documentation_urls": [], + "secrets": [ + { + "arcade_key": "WEAVIATE_API_KEY", + "parameter_name": "Authorization", + "accepted_as": "header", + "formatted_value": "Bearer {authorization}", + "description": "", + "is_auth_token": false + }, + { + "arcade_key": "WEAVIATE_SERVER_URL", + "parameter_name": "weaviate_server_url", + "accepted_as": "path", + "formatted_value": null, + "description": "", + "is_auth_token": false + } + ], + "request_body_spec": "{\n \"description\": \"The object definition to validate.\",\n \"content\": {\n \"application/yaml\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (class) the object belongs to.\"\n },\n \"vectorWeights\": {\n \"type\": \"object\",\n \"description\": \"Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The UUID of the object.\",\n \"format\": \"uuid\"\n },\n \"creationTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of creation of this object in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"lastUpdateTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of the last object update in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"vector\": {\n \"type\": \"array\",\n \"description\": \"A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting.\",\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float\"\n }\n },\n \"vectors\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"description\": \"A vector representation of the object. If provided at object creation, this wil take precedence over any vectorizer setting.\"\n },\n \"description\": \"A map of named vectors for multi-vector representations.\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant the object belongs to.\"\n },\n \"additional\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"(Response only) Additional meta information about a single object.\"\n }\n }\n }\n },\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"class\": {\n \"type\": \"string\",\n \"description\": \"Name of the collection (class) the object belongs to.\"\n },\n \"vectorWeights\": {\n \"type\": \"object\",\n \"description\": \"Allow custom overrides of vector weights as math expressions. E.g. `pancake`: `7` will set the weight for the word pancake to 7 in the vectorization, whereas `w * 3` would triple the originally calculated word. This is an open object, with OpenAPI Specification 3.0 this will be more detailed. See Weaviate docs for more info. In the future this will become a key/value (string/string) object.\"\n },\n \"properties\": {\n \"type\": \"object\",\n \"description\": \"Names and values of an individual property. A returned response may also contain additional metadata, such as from classification or feature projection.\"\n },\n \"id\": {\n \"type\": \"string\",\n \"description\": \"The UUID of the object.\",\n \"format\": \"uuid\"\n },\n \"creationTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of creation of this object in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"lastUpdateTimeUnix\": {\n \"type\": \"integer\",\n \"description\": \"(Response only) Timestamp of the last object update in milliseconds since epoch UTC.\",\n \"format\": \"int64\"\n },\n \"vector\": {\n \"type\": \"array\",\n \"description\": \"A vector representation of the object in the Contextionary. If provided at object creation, this wil take precedence over any vectorizer setting.\",\n \"items\": {\n \"type\": \"number\",\n \"format\": \"float\"\n }\n },\n \"vectors\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"description\": \"A vector representation of the object. If provided at object creation, this wil take precedence over any vectorizer setting.\"\n },\n \"description\": \"A map of named vectors for multi-vector representations.\"\n },\n \"tenant\": {\n \"type\": \"string\",\n \"description\": \"The name of the tenant the object belongs to.\"\n },\n \"additional\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"description\": \"(Response only) Additional meta information about a single object.\"\n }\n }\n }\n }\n },\n \"required\": true\n}", + "use_request_body_schema_mode": true, + "validate_request_body_schema": true + } +} diff --git a/toolkits/weaviate_api/pyproject.toml b/toolkits/weaviate_api/pyproject.toml new file mode 100644 index 00000000..74a5a864 --- /dev/null +++ b/toolkits/weaviate_api/pyproject.toml @@ -0,0 +1,59 @@ +[build-system] +requires = [ "hatchling",] +build-backend = "hatchling.build" + +[project] +name = "arcade_weaviate_api" +version = "0.1.0" +description = "Tools that enable LLMs to interact directly with the weaviate API." +requires-python = ">=3.10" +dependencies = [ + "arcade-tdk>=3.0.0,<4.0.0", + "httpx[http2]>=0.27.2,<1.0.0", + "jsonschema>=4.0.0,<5.0.0", +] +[[project.authors]] +email = "support@arcade.dev" + +[project.optional-dependencies] +dev = [ + "arcade-mcp[all]>=1.2.0,<2.0.0", + "arcade-serve>=3.0.0,<4.0.0", + "pytest>=8.3.0,<8.4.0", + "pytest-cov>=4.0.0,<4.1.0", + "pytest-mock>=3.11.1,<3.12.0", + "pytest-asyncio>=0.24.0,<0.25.0", + "mypy>=1.5.1,<1.6.0", + "pre-commit>=3.4.0,<3.5.0", + "tox>=4.11.1,<4.12.0", + "ruff>=0.7.4,<0.8.0", +] +# Tell Arcade.dev that this package is a toolkit +[project.entry-points.arcade_toolkits] +toolkit_name = "arcade_weaviate_api" + +# Use local path sources for arcade libs when working locally +[tool.uv.sources] +arcade-mcp = { path = "../../", editable = true } +arcade-serve = { path = "../../libs/arcade-serve/", editable = true } +arcade-tdk = { path = "../../libs/arcade-tdk/", editable = true } +[tool.mypy] +files = [ "arcade_weaviate_api/**/*.py",] +python_version = "3.10" +disallow_untyped_defs = "True" +disallow_any_unimported = "True" +no_implicit_optional = "True" +check_untyped_defs = "True" +warn_return_any = "True" +warn_unused_ignores = "True" +show_error_codes = "True" +ignore_missing_imports = "True" + +[tool.pytest.ini_options] +testpaths = [ "tests",] + +[tool.coverage.report] +skip_empty = true + +[tool.hatch.build.targets.wheel] +packages = [ "arcade_weaviate_api",] diff --git a/toolkits/weaviate_api/tests/__init__.py b/toolkits/weaviate_api/tests/__init__.py new file mode 100644 index 00000000..e69de29b