diff --git a/docker/toolkits.txt b/docker/toolkits.txt
index e384ca74..a8a2b463 100644
--- a/docker/toolkits.txt
+++ b/docker/toolkits.txt
@@ -1,6 +1,7 @@
arcade-airtable-api
arcade-box-api
arcade-calendly-api
+arcade-freshservice-api
arcade-miro-api
arcade-slack-api
arcade-stripe-api
diff --git a/toolkits/freshservice_api/.pre-commit-config.yaml b/toolkits/freshservice_api/.pre-commit-config.yaml
new file mode 100644
index 00000000..68497328
--- /dev/null
+++ b/toolkits/freshservice_api/.pre-commit-config.yaml
@@ -0,0 +1,18 @@
+files: ^.*/freshservice_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/freshservice_api/.ruff.toml b/toolkits/freshservice_api/.ruff.toml
new file mode 100644
index 00000000..9519fe6c
--- /dev/null
+++ b/toolkits/freshservice_api/.ruff.toml
@@ -0,0 +1,44 @@
+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"]
+
+[format]
+preview = true
+skip-magic-trailing-comma = false
diff --git a/toolkits/freshservice_api/LICENSE b/toolkits/freshservice_api/LICENSE
new file mode 100644
index 00000000..dfbb8b76
--- /dev/null
+++ b/toolkits/freshservice_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/freshservice_api/Makefile b/toolkits/freshservice_api/Makefile
new file mode 100644
index 00000000..86da492a
--- /dev/null
+++ b/toolkits/freshservice_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/freshservice_api/arcade_freshservice_api/__init__.py b/toolkits/freshservice_api/arcade_freshservice_api/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/tools/__init__.py b/toolkits/freshservice_api/arcade_freshservice_api/tools/__init__.py
new file mode 100644
index 00000000..479406ae
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/tools/__init__.py
@@ -0,0 +1,4246 @@
+"""Arcade Starter Tools for Freshservice
+
+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
+from typing import Annotated, Any
+
+import httpx
+from arcade_tdk import ToolContext, tool
+
+# 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,
+)
+
+
+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,
+ 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,
+ data=data,
+ )
+ 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
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_freshservice_departments(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None, "The number of entries to retrieve per page in a paginated list."
+ ] = 10,
+ page_number: Annotated[
+ int | None, "The specific page number of departments to retrieve from Freshservice."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-departments'."]:
+ """Retrieve all departments from Freshservice.
+
+ This tool retrieves a list of all departments or companies (in MSP Mode) from Freshservice. It should be used when you need to access the department or company information maintained in the Freshservice platform.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/departments".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_department_details(
+ context: ToolContext,
+ department_id: Annotated[
+ int, "The ID of the department to retrieve from Freshservice. Use only integer values."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-department'."]:
+ """Retrieve department details using department ID.
+
+ Use this tool to obtain detailed information about a specific department (or company in MSP mode) from Freshservice by providing the department ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/departments/{department_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ department_id=department_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_department(
+ context: ToolContext,
+ department_id: Annotated[int, "The unique ID of the department to delete from Freshservice."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-department'."]:
+ """Delete a department from Freshservice by ID.
+
+ Use this tool to delete a specific department from Freshservice using its ID. This is useful for managing and updating department records within the service.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/departments/{department_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ department_id=department_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_department_fields(
+ context: ToolContext,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-department-fields'."]:
+ """Retrieve department or company fields from Freshservice.
+
+ Use this tool to obtain the department or company fields as displayed in Freshservice. Especially useful for understanding the available fields and their order in the user interface.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/department_fields".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def list_freshservice_agent_groups(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None, "Specify the number of entries to retrieve in each page of the list."
+ ] = 10,
+ page_number_to_retrieve: Annotated[
+ int | None, "The specific page number to retrieve from a paginated list of agent groups."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-agent-groups'."]:
+ """Retrieve a list of all Agent Groups in Freshservice."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_agent_group_info(
+ context: ToolContext,
+ agent_group_identifier: Annotated[
+ int, "The unique integer ID of the Freshservice agent group to retrieve."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-agent-group'."]:
+ """Retrieve details of a Freshservice agent group by ID.
+
+ Use this tool to get information about a specific agent group in Freshservice by providing the agent group ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups/{agent_group_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ agent_group_id=agent_group_identifier,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_agent_group(
+ context: ToolContext,
+ agent_group_id_to_delete: Annotated[
+ int, "The unique integer ID of the agent group to be deleted in Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-agent-group'."]:
+ """Delete an agent group in Freshservice by ID.
+
+ Use this tool to delete an agent group from Freshservice by specifying the group's ID. This should be called when you need to remove an agent group permanently.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups/{agent_group_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ agent_group_id=agent_group_id_to_delete,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def list_all_products(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None, "Specify the number of entries to retrieve in each page of the product list."
+ ] = 10,
+ page_number: Annotated[
+ int | None, "Specify the page number to retrieve from the paginated list of products."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-products'."]:
+ """Retrieve a comprehensive list of products from Freshservice.
+
+ Use this tool to obtain a complete list of products managed within Freshservice. This can be useful for inventory management, product categorization, and maintaining an updated product database.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/products".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_product_details(
+ context: ToolContext,
+ product_id: Annotated[
+ int,
+ "The unique identifier for the product in the Freshservice Product Catalog to retrieve details.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-product'."]:
+ """Retrieve a specific Product from the Product Catalog.
+
+ Call this tool to get details about a specific product by providing the product ID. It accesses the Freshservice Product Catalog to retrieve the necessary information.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/products/{product_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ product_id=product_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_product(
+ context: ToolContext,
+ product_identifier: Annotated[
+ int, "The unique ID of the product to be deleted from the Freshservice catalog."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-product'."]:
+ """Delete a product from the Freshservice catalog.
+
+ Use this tool to delete an existing product from the Freshservice Product Catalog. Provide the product ID to specify which product to remove.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/products/{product_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ product_id=product_identifier,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_business_hours_configs(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None,
+ "The number of Business Hours configurations to retrieve per page in the paginated list.",
+ ] = 10,
+ requested_page_number: Annotated[
+ int | None, "Specify the page number of results you want to retrieve."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-business-hours-configs'."]:
+ """Retrieve a list of all Business Hours configurations from Freshservice.
+
+ Call this tool to obtain the current Business Hours configurations from Freshservice. Useful for understanding operation times and support availability.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/business_hours".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": requested_page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_business_hours_config(
+ context: ToolContext,
+ business_hours_configuration_id: Annotated[
+ int, "The ID of the Business Hours configuration to retrieve from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-business-hours-config'."]:
+ """Retrieve Freshservice Business Hours configuration by ID.
+
+ Use this tool to get the Business Hours configuration from Freshservice using the specified ID. It helps in accessing detailed information about business operating hours as configured in the Freshservice system.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/business_hours/{business_hours_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ business_hours_id=business_hours_configuration_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_all_locations(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None,
+ "The number of entries to retrieve per page when listing locations. Typically an integer value.", # noqa: E501
+ ] = 10,
+ page_number_to_retrieve: Annotated[
+ int | None, "The page number of locations to retrieve from Freshservice."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-locations'."]:
+ """Retrieve a list of all locations in Freshservice."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/locations".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def fetch_location_details(
+ context: ToolContext,
+ location_identifier: Annotated[
+ int,
+ "The ID of the location to be retrieved. It should be an integer representing a specific location in the Freshservice system.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-location'."]:
+ """Retrieve details of a specific location by ID.
+
+ This tool is used to get information about a specific location using its ID in the Freshservice system. It should be called when detailed information about a location is needed.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/locations/{location_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ location_id=location_identifier,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_existing_location(
+ context: ToolContext,
+ location_id: Annotated[
+ int,
+ "The unique identifier of the location to be deleted. Provide the numeric ID corresponding to the location you wish to remove from Freshservice.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-location'."]:
+ """Deletes an existing location from Freshservice.
+
+ Use this tool to remove an existing location in Freshservice by providing the location ID. It should be called when you need to delete a location from the system.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/locations/{location_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ location_id=location_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def fetch_all_vendors(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None,
+ "Specify the number of vendor entries to retrieve for each page when listing vendors.",
+ ] = 10,
+ page_number: Annotated[
+ int | None, "Specify the page number to retrieve from the paginated list of vendors."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-vendors'."]:
+ """Retrieve and list all vendors from Freshservice.
+
+ Call this tool to obtain a comprehensive list of all vendors stored in Freshservice."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/vendors".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_vendor_details(
+ context: ToolContext,
+ vendor_identifier: Annotated[
+ int,
+ "The unique ID of the vendor to retrieve. This ID is an integer and identifies the vendor in the Freshservice system.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-vendor'."]:
+ """Retrieve details of a specific vendor by ID.
+
+ Use this tool to get detailed information about a vendor by providing the vendor ID. It is helpful for accessing vendor-related data from your Freshservice account.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/vendors/{vendor_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ vendor_id=vendor_identifier,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_existing_vendor(
+ context: ToolContext,
+ vendor_id: Annotated[
+ int, "The unique identifier of the vendor to be deleted. It should be an integer value."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-vendor'."]:
+ """Delete an existing vendor in Freshservice.
+
+ Use this tool to delete a vendor from the Freshservice platform when a user requests vendor removal.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/vendors/{vendor_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), vendor_id=vendor_id
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_asset_types(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None, "The number of asset type entries to retrieve per page in the paginated list."
+ ] = 10,
+ page_number: Annotated[
+ int | None, "The page number to retrieve from the list of asset types."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-asset-types'."]:
+ """Retrieve all asset types from Freshservice.
+
+ Use this tool to get a comprehensive list of asset types available in Freshservice, useful for asset management and categorization.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_asset_type(
+ context: ToolContext,
+ asset_type_id: Annotated[
+ int,
+ "The unique integer identifier for the asset type to retrieve from Freshservice. Required for querying specific asset type details.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-asset-type'."]:
+ """Retrieve details of a specific asset type by ID.
+
+ Use this tool to retrieve information about a specific asset type using its ID. Ideal for obtaining detailed descriptions or attributes of an asset type in Freshservice.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types/{asset_type_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ asset_type_id=asset_type_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_asset_type(
+ context: ToolContext,
+ asset_type_id: Annotated[
+ int,
+ "The unique integer ID of the asset type to be deleted. This ID identifies which asset type should be removed from the Freshservice database.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-asset-type'."]:
+ """Delete an existing asset type in Freshservice.
+
+ Use this tool to delete a specific asset type by providing its ID. This is useful for managing and updating the asset database by removing obsolete or incorrect asset types.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types/{asset_type_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ asset_type_id=asset_type_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_asset_fields(
+ context: ToolContext,
+ asset_type_identifier: Annotated[
+ int, "The unique identifier for the asset type to retrieve its fields in Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-asset-type-fields'."]:
+ """Retrieve asset fields for a specific asset type.
+
+ Use this tool to get the list of asset fields for a particular asset type in Freshservice. This includes both default fields and asset-type-specific fields, returned in the order they appear in the UI.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types/{asset_type_id}/fields".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ asset_type_id=asset_type_identifier,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_component_types(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None,
+ "The number of component type entries to retrieve per page in a paginated list. Specify an integer value.", # noqa: E501
+ ] = 10,
+ page_number: Annotated[
+ int | None, "The specific page number of component types to retrieve from Freshservice."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-component-types'."]:
+ """Retrieve all component types in Freshservice.
+
+ This tool calls the Freshservice API to get a list of all component types along with the specific fields for each type. Use it when you need detailed information about the component types within Freshservice.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/component_types".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_asset_list(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None,
+ "Specify the number of entries to retrieve per page for pagination. Not applicable with search or filter queries.", # noqa: E501
+ ] = 30,
+ page_number: Annotated[
+ int | None, "The page number to retrieve for paginated asset lists."
+ ] = 1,
+ include_asset_type_fields: Annotated[
+ str | None,
+ "Specify asset type fields to include in the response. Use this to get additional data about each asset type.", # noqa: E501
+ ] = None,
+ apply_asset_filter: Annotated[
+ str | None,
+ "A URL-encoded string to filter the asset list. Supports parameters like asset_type_id, department_id, and more.", # noqa: E501
+ ] = None,
+ asset_search_query: Annotated[
+ str | None,
+ "A simple query to search assets by name, asset_tag, or serial_number. Formulate queries like \"name:'dell monitor'\".", # noqa: E501
+ ] = None,
+ include_trashed_assets: Annotated[bool | None, "Set to true to list assets in trash."] = None,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-assets'."]:
+ """Retrieve a list of all assets from Freshservice.
+
+ Use this tool to get details about all assets managed in Freshservice, such as hardware and software resources.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({
+ "per_page": entries_per_page,
+ "page": page_number,
+ "trashed": include_trashed_assets,
+ "include": include_asset_type_fields,
+ "filter": apply_asset_filter,
+ "search": asset_search_query,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_asset_details(
+ context: ToolContext,
+ asset_display_id: Annotated[
+ int, "The unique display ID of the asset to retrieve details from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-asset'."]:
+ """Retrieve details of a specific asset by ID.
+
+ This tool is used to obtain detailed information about a specific asset using its display ID in Freshservice.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ display_id=asset_display_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_asset(
+ context: ToolContext,
+ asset_display_id: Annotated[
+ int,
+ "The unique integer identifier of the asset to be deleted. Required to specify which asset to remove from Freshservice.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-asset'."]:
+ """Delete an existing asset in Freshservice.
+
+ Use this tool to remove an asset from the Freshservice platform when it is no longer needed or is being decommissioned.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ display_id=asset_display_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def list_installed_software(
+ context: ToolContext,
+ device_display_id: Annotated[
+ int,
+ "The unique integer identifier for the device whose installed software applications are to be retrieved.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-asset-applications'."]:
+ """Retrieve all software installed on a specific device.
+
+ Use this tool to get a comprehensive list of all software applications installed on a device identified by its display ID. Useful for inventory management or system audits.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/applications".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ display_id=device_display_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def list_asset_requests(
+ context: ToolContext,
+ asset_display_id: Annotated[
+ int, "The display ID of the asset for which to retrieve associated requests."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-asset-requests'."]:
+ """Retrieve all requests linked to a specific asset.
+
+ Use this tool to get a comprehensive list of requests associated with a particular asset by providing its display ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/requests".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ display_id=asset_display_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_asset_contracts(
+ context: ToolContext,
+ asset_display_id: Annotated[
+ int, "The unique display ID of the asset to retrieve contracts for."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-asset-contracts'."]:
+ """Retrieve all contracts linked to a specific asset.
+
+ This tool calls the Freshservice API to retrieve a list of contracts that are linked to a specified asset. It should be used whenever detailed information about asset contracts is needed.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/contracts".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ display_id=asset_display_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_device_components(
+ context: ToolContext,
+ device_display_id: Annotated[
+ int, "The integer ID of the device whose components you want to list."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-asset-components'."]:
+ """Retrieve all components of a specified device.
+
+ Use this tool to get a comprehensive list of components for a specific device by its display ID. This is useful for inventory tracking, device management, or component verification.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ display_id=device_display_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def add_asset_component(
+ context: ToolContext,
+ asset_display_id: Annotated[
+ int,
+ "The unique identifier of the asset to which the new component will be added. This should be an integer value.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'create-asset-component'."]:
+ """Add a new component to an existing asset.
+
+ Use this tool to add a new component to a specific asset in the Freshservice system. This is useful for updating asset details by appending components.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ display_id=asset_display_id,
+ ),
+ method="POST",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def update_asset_component(
+ context: ToolContext,
+ asset_display_id: Annotated[
+ int, "The numeric identifier of the asset to be updated in Freshservice."
+ ],
+ component_identifier: Annotated[
+ int, "The unique identifier of the component to be updated, as an integer."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'update-asset-component'."]:
+ """Update a component in an asset.
+
+ This tool updates a specific component within an asset in Freshservice. Call this tool when you need to modify details of a component associated with an asset.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components/{component_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ display_id=asset_display_id,
+ component_id=component_identifier,
+ ),
+ method="PUT",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_asset_component(
+ context: ToolContext,
+ asset_display_id: Annotated[
+ int,
+ "The display ID of the asset from which the component will be deleted. This ID uniquely identifies the asset in the Freshservice system.", # noqa: E501
+ ],
+ component_id: Annotated[
+ int,
+ "The unique identifier of the component to be deleted. This is required to specify which component will be removed from the asset.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-asset-component'."]:
+ """Delete a specific component from an asset.
+
+ This tool deletes an existing component from an asset using the asset's display ID and the component's ID. It should be called when there's a need to remove a component from an asset in the Freshservice system.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components/{component_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ display_id=asset_display_id,
+ component_id=component_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_software_list(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None, "Number of software entries to retrieve per page for pagination."
+ ] = 10,
+ page_number: Annotated[
+ int | None, "The page number of the software list to retrieve. Used for pagination."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-applications'."]:
+ """Retrieve all software applications in Freshservice.
+
+ Use this tool to get a complete list of software applications managed in Freshservice. It accesses the Freshservice API to provide detailed information about all registered software.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/applications".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_software_application(
+ context: ToolContext,
+ application_id: Annotated[
+ int,
+ "The unique identifier for the specific software application in Freshservice to be retrieved. It must be an integer.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-application'."]:
+ """Retrieve a specific software application from Freshservice.
+
+ Use this tool to get detailed information about a specific software application by providing the application ID. Ideal for accessing software details and managing applications within Freshservice.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/applications/{application_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ application_id=application_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_software_installation_list(
+ context: ToolContext,
+ software_application_id: Annotated[
+ int, "The unique identifier of the software application to fetch the installation list."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-application-installations'."]:
+ """Retrieve a list of devices where specified software is installed.
+
+ Use this tool to get a list of all devices with a particular software application installed by providing the application ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/applications/{application_id}/installations".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ application_id=software_application_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_application_licenses(
+ context: ToolContext,
+ application_id: Annotated[
+ int,
+ "The unique identifier for the software application to retrieve licenses for. Provide as an integer.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-application-licenses'."]:
+ """Retrieve licenses linked to a specific software application.
+
+ Use this tool to get a list of all licenses associated with a specific application by providing the application ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/applications/{application_id}/licenses".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ application_id=application_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_all_csat_surveys(
+ context: ToolContext,
+ filter_active_surveys: Annotated[
+ int | None, "Filter surveys by activity status. Use 1 for active and 0 for inactive."
+ ] = None,
+ entries_per_page: Annotated[
+ int | None,
+ "The number of entries to retrieve per page in a paginated list. Specify an integer value.",
+ ] = 10,
+ survey_page_number: Annotated[
+ int | None, "The page number of CSAT surveys to retrieve for pagination."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-surveys'."]:
+ """Retrieve a list of all CSAT surveys in Freshservice.
+
+ Use this tool to obtain a list of all Customer Satisfaction (CSAT) surveys available in Freshservice. This can be useful for analyzing survey data or managing customer feedback efforts.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/surveys".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({
+ "active": filter_active_surveys,
+ "per_page": entries_per_page,
+ "page": survey_page_number,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_csat_survey(
+ context: ToolContext,
+ csat_survey_id: Annotated[
+ int,
+ "The ID of the CSAT survey to retrieve from Freshservice. It should be an integer value.",
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-survey'."]:
+ """Retrieve a CSAT survey by its ID from Freshservice.
+
+ Use this tool to get detailed information about a specific CSAT survey in Freshservice by providing the survey ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ survey_id=csat_survey_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_survey(
+ context: ToolContext,
+ survey_id_to_delete: Annotated[
+ int, "The ID of the survey you wish to delete from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-survey'."]:
+ """Delete a survey and its responses from Freshservice.
+
+ Use this tool to delete a specific survey and all its associated responses from Freshservice by providing the survey ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ survey_id=survey_id_to_delete,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def activate_csat_survey(
+ context: ToolContext,
+ csat_survey_id: Annotated[int, "The ID of the CSAT survey to activate in Freshservice."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'activate-survey'."]:
+ """Activate a CSAT survey in Freshservice using its ID.
+
+ Use this tool to activate the Customer Satisfaction (CSAT) Survey in Freshservice by providing the survey ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}/activate".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ survey_id=csat_survey_id,
+ ),
+ method="PUT",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def deactivate_csat_survey(
+ context: ToolContext,
+ survey_id: Annotated[int, "The ID of the CSAT survey you wish to deactivate in Freshservice."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'deactivate-survey'."]:
+ """Deactivate a specified CSAT Survey in Freshservice.
+
+ Use this tool to deactivate a CSAT Survey by its ID in Freshservice. It should be called when you need to disable a survey to stop collecting responses.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}/deactivate".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), survey_id=survey_id
+ ),
+ method="PUT",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def view_service_item(
+ context: ToolContext,
+ service_item_id: Annotated[int, "The ID of the service item you want to retrieve."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-service-item'."]:
+ """Retrieve details of a specific service item.
+
+ This tool is used to fetch and view details of a specific service item from Freshservice by providing its ID. It should be called when users need information about a particular service-related entry.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/service_items/{service_item_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ service_item_id=service_item_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_service_items_list(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None, "The number of service items to retrieve per page in a paginated list."
+ ] = 10,
+ page_number_to_retrieve: Annotated[
+ int | None, "The page number to retrieve for paginated service items."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-service-items'."]:
+ """Retrieve a list of all Service Items in Freshservice."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/service_items".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_catalog_item_fields(
+ context: ToolContext,
+ service_item_id: Annotated[
+ int,
+ "The ID of the service item to retrieve. Use an integer value representing the specific catalog item.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-catalog-item-fields'."]:
+ """Retrieve all fields for a specific service catalog item.
+
+ Use this tool to get detailed information about all fields associated with a particular service catalog item in Freshservice. It should be called when you need to understand the structure and content of a service item.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/catalog/item/{service_item_id}/fields".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ service_item_id=service_item_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_solution_articles(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None,
+ "Specify the number of solution articles to retrieve per page in the paginated results.",
+ ] = 30,
+ page_number: Annotated[
+ int | None, "The page number of the solution articles to retrieve from Freshservice."
+ ] = 1,
+ folder_identifier: Annotated[
+ int | None, "The numeric ID of the folder to list solution articles from."
+ ] = None,
+ solution_category_id: Annotated[
+ int | None, "Specify the ID of the category whose solution articles are to be retrieved."
+ ] = None,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-solution-article'."]:
+ """Retrieve a list of Solution articles from Freshservice.
+
+ Use this tool to get a comprehensive list of all Solution articles available in Freshservice."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({
+ "per_page": entries_per_page,
+ "page": page_number,
+ "folder_id": folder_identifier,
+ "category_id": solution_category_id,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def view_solution_article(
+ context: ToolContext,
+ solution_article_id: Annotated[
+ int, "The unique integer ID of the solution article to retrieve."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-solution-article'."]:
+ """Retrieve details of a Freshservice solution article.
+
+ Use this tool to get information about a specific solution article from Freshservice, identified by its article ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles/{article_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ article_id=solution_article_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_solution_article(
+ context: ToolContext,
+ solution_article_id: Annotated[
+ int, "ID of the solution article to be deleted from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-solution-article'."]:
+ """Delete a solution article from Freshservice by ID.
+
+ Use this tool to delete a specified solution article in Freshservice by providing its ID. It's useful for managing and maintaining the solution knowledge base.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles/{article_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ article_id=solution_article_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def list_solution_folders(
+ context: ToolContext,
+ solution_category_id: Annotated[
+ int | None, "ID of the solution category where the folders reside."
+ ] = None,
+ per_page_count: Annotated[
+ int | None, "Specifies the number of solution folders to retrieve per page for pagination."
+ ] = 30,
+ page_number_to_retrieve: Annotated[
+ int | None, "Specify the page number to retrieve from the paginated solution folders list."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-solution-folders'."]:
+ """Retrieve all Solution Folders from Freshservice.
+
+ Use this tool to fetch a comprehensive list of all the Solution Folders within Freshservice."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({
+ "category_id": solution_category_id,
+ "per_page": per_page_count,
+ "page": page_number_to_retrieve,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def view_solution_folder(
+ context: ToolContext,
+ solution_folder_id: Annotated[int, "The unique ID of the solution folder to retrieve details."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-solution-folder'."]:
+ """Retrieve details of a specific solution folder.
+
+ Use this tool to obtain information about a particular solution folder by specifying its folder ID within the Freshservice platform.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders/{folder_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ folder_id=solution_folder_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_solution_folder(
+ context: ToolContext,
+ solution_folder_id: Annotated[
+ int, "ID of the solution folder to be deleted from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-solution-folder'."]:
+ """Delete a solution folder in Freshservice.
+
+ Use this tool to delete a solution folder from Freshservice by specifying its ID."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders/{folder_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ folder_id=solution_folder_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_solution_categories(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None, "The number of entries to retrieve per page in the paginated list."
+ ] = 30,
+ page_number_to_retrieve: Annotated[
+ int | None, "The page number to retrieve in the paginated list of solution categories."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-solution-category'."]:
+ """Retrieve a list of all solution categories in Freshservice."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def view_solution_category(
+ context: ToolContext,
+ solution_category_id: Annotated[int, "ID of the solution category to retrieve details for."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-solution-category'."]:
+ """Retrieve details of a specific solution category.
+
+ Use this tool to fetch and view information about a specific solution category by its ID in the Freshservice system.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories/{category_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ category_id=solution_category_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_solution_category(
+ context: ToolContext,
+ solution_category_id: Annotated[
+ int, "The unique ID of the solution category to be deleted from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-solution-category'."]:
+ """Delete a solution category by its ID from Freshservice.
+
+ Use this tool to delete a solution category in Freshservice using its unique category ID. This tool ensures that the specified category is permanently removed from the system.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories/{category_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ category_id=solution_category_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_all_freshservice_requesters(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None, "Number of entries to retrieve in each page of the paginated list."
+ ] = 10,
+ page_number_to_retrieve: Annotated[
+ int | None, "The page number to retrieve from the list of Freshservice requesters."
+ ] = 1,
+ requester_email: Annotated[
+ str | None, "The email address to find the corresponding requester."
+ ] = None,
+ filter_by_mobile_phone_number: Annotated[
+ str | None, "Filter requesters by their mobile phone number to return matching entries."
+ ] = None,
+ work_phone_number_for_requesters: Annotated[
+ str | None,
+ "The work phone number to filter requesters with that specific number in Freshservice.",
+ ] = None,
+ query_filter: Annotated[
+ str | None,
+ "URL-encoded query filter to apply to the list of requesters. Supports first_name, last_name, job_title, primary_email, and more.", # noqa: E501
+ ] = None,
+ filter_active_accounts: Annotated[
+ bool | None,
+ "Include only active user accounts if true. If false, include only deactivated accounts. Leaving unspecified returns both.", # noqa: E501
+ ] = None,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-requesters'."]:
+ """Retrieve a list of all requesters in Freshservice.
+
+ Use this tool to get a comprehensive list of all requesters from the Freshservice platform, suitable for managing or reviewing requester information.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/requesters".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({
+ "per_page": entries_per_page,
+ "page": page_number_to_retrieve,
+ "email": requester_email,
+ "mobile_phone_number": filter_by_mobile_phone_number,
+ "work_phone_number": work_phone_number_for_requesters,
+ "active": filter_active_accounts,
+ "query": query_filter,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_freshservice_requester(
+ context: ToolContext,
+ requester_id: Annotated[
+ int, "The unique integer ID of the requester to retrieve from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-requester'."]:
+ """Retrieve a requester by ID from Freshservice.
+
+ This tool is used to obtain information about a specific requester in Freshservice using their unique ID. Call this tool when you need details about a requester such as their profile or contact information.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ requester_id=requester_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_requester_from_freshservice(
+ context: ToolContext,
+ requester_id_to_delete: Annotated[
+ int, "The ID of the requester to be deleted from Freshservice. This should be an integer."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-requester'."]:
+ """Delete a requester by ID from Freshservice.
+
+ Use this tool to delete a specific requester from Freshservice by providing their ID."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ requester_id=requester_id_to_delete,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_requester_and_tickets(
+ context: ToolContext,
+ requester_id_to_delete: Annotated[
+ int, "The ID of the requester to permanently delete along with their tickets."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'forget-requester'."]:
+ """Permanently delete a requester and their tickets.
+
+ Use this tool to permanently delete a requester and all the tickets they have requested in Freshservice when such removal is necessary.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}/forget".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ requester_id=requester_id_to_delete,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def convert_requester_to_agent(
+ context: ToolContext,
+ requester_identifier: Annotated[
+ int, "The integer ID of the requester to convert into an occasional agent."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'convert-requester-to-agent'."]:
+ """Convert a requester into an occasional agent.
+
+ This tool is used to convert a Freshservice requester into an occasional agent, assigning them the SD Agent role with no group memberships. Use this when you need to change a requester's role to facilitate agent tasks.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}/convert_to_agent".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ requester_id=requester_identifier,
+ ),
+ method="PUT",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def merge_requesters(
+ context: ToolContext,
+ secondary_requester_ids: Annotated[
+ list[int], "List of IDs for the secondary requesters to merge into the primary."
+ ],
+ primary_requester_id: Annotated[
+ int, "Specify the ID of the primary requester to merge secondary requesters into."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'merge-requester'."]:
+ """Merge secondary requesters into a primary requester.
+
+ This tool merges one or more secondary requesters into a specified primary requester. It is useful when consolidating duplicate or related entries under a single master requester. Use this to streamline requester management in Freshservice.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{primary_requester_id}/merge".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ primary_requester_id=primary_requester_id,
+ ),
+ method="PUT",
+ params=remove_none_values({"secondary_requesters": secondary_requester_ids}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_requester_fields(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None,
+ "The number of entries to retrieve per page in a paginated list for requester fields.",
+ ] = 10,
+ page_number_to_retrieve: Annotated[
+ int | None, "Specify the page number of requester fields to retrieve from Freshservice."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-requester-fields'."]:
+ """Retrieve all requester fields from Freshservice.
+
+ Call this tool to obtain a comprehensive list of requester fields available in Freshservice. Useful for understanding the structure and available fields for requesters within the system.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/requester_fields".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_freshservice_agents(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None,
+ "The number of agent entries to retrieve in each page of a paginated list. Useful for controlling the size of paginated results.", # noqa: E501
+ ] = 10,
+ page_number_to_retrieve: Annotated[
+ int | None, "The specific page number of the agent list to retrieve."
+ ] = 1,
+ requester_email: Annotated[
+ str | None,
+ "The email address of the requester for which the corresponding agent needs to be listed.",
+ ] = None,
+ filter_by_mobile_phone_number: Annotated[
+ str | None,
+ "Filter agents by a specific mobile phone number to list the corresponding requesters.",
+ ] = None,
+ filter_by_work_phone_number: Annotated[
+ str | None,
+ "Work phone number to filter the list of agents by their corresponding requesters.",
+ ] = None,
+ agent_type: Annotated[
+ str | None, "Filter agents by employment type: 'fulltime' or 'occasional'."
+ ] = None,
+ agent_query_filter: Annotated[
+ str | None,
+ "URL-encoded string for filtering agents. Supports parameters like first_name, last_name, job_title, email, etc.", # noqa: E501
+ ] = None,
+ filter_active_users: Annotated[
+ bool | None,
+ "Set to true to list active accounts, false to list deactivated ones, or omit to include both.", # noqa: E501
+ ] = None,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-agents'."]:
+ """Retrieve a list of all Agents in Freshservice.
+
+ Use this tool to get a comprehensive list of all agents currently active in Freshservice, useful for administrative and reporting purposes.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/agents".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({
+ "per_page": entries_per_page,
+ "page": page_number_to_retrieve,
+ "email": requester_email,
+ "mobile_phone_number": filter_by_mobile_phone_number,
+ "work_phone_number": filter_by_work_phone_number,
+ "state": agent_type,
+ "active": filter_active_users,
+ "query": agent_query_filter,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_freshservice_agent(
+ context: ToolContext,
+ agent_id: Annotated[
+ int, "The unique integer ID of the Freshservice agent to retrieve details for."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-agent'."]:
+ """Retrieve details of a Freshservice agent by ID.
+
+ This tool retrieves the details of a specific agent from Freshservice using their agent ID. It should be called when detailed information about an agent is needed.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/agents/{agent_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), agent_id=agent_id
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def convert_agent_to_requester(
+ context: ToolContext,
+ agent_id_for_conversion: Annotated[
+ int,
+ "The ID of the agent to be converted into a requester. This must be a valid integer representing the agent's ID in Freshservice.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-agent'."]:
+ """Convert an agent into a requester in Freshservice.
+
+ Use this tool to change the status of an agent by converting them into a requester. This is useful when the agent no longer needs to handle support tickets or requires access to agent-level features.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/agents/{agent_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ agent_id=agent_id_for_conversion,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_agent_and_tickets(
+ context: ToolContext,
+ agent_id_to_delete: Annotated[
+ int,
+ "The ID of the agent to permanently delete along with their tickets. This is irreversible.",
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'forget-agent'."]:
+ """Permanently deletes an agent and their tickets.
+
+ Use this tool to permanently remove an agent from the system, along with any tickets they have requested. This action is irreversible.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/agents/{agent_id}/forget".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ agent_id=agent_id_to_delete,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_agent_fields(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None, "The number of entries to retrieve per page in a paginated list."
+ ] = 10,
+ page_number_to_retrieve: Annotated[
+ int | None, "The page number to retrieve for paginated results."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-agent-fields'."]:
+ """Retrieve a list of all Agent Fields in Freshservice."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/agent_fields".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def fetch_ticket_list(
+ context: ToolContext,
+ ticket_filter_type: Annotated[
+ str | None,
+ "Apply pre-defined filters to fetch specific ticket sets. Options: 'new_and_my_open', 'watching', 'spam', 'deleted'.", # noqa: E501
+ ] = None,
+ requester_email_filter: Annotated[
+ str | None, "Filter tickets by the requester's email ID to retrieve specific ticket data."
+ ] = None,
+ filter_by_requester_id: Annotated[
+ int | None, "Filter tickets created by a specific requester using their ID."
+ ] = None,
+ filter_by_updated_since: Annotated[
+ str | None,
+ "Specify the ISO 8601 date-time to filter tickets updated since that time. Example: '2015-01-19T02:00:00Z'.", # noqa: E501
+ ] = None,
+ fields_to_include_in_response: Annotated[
+ str | None,
+ "Specify which additional fields to include in the ticket response. Options are 'stats' and 'requester'.", # noqa: E501
+ ] = None,
+ sort_order: Annotated[
+ str | None,
+ "Order to sort the ticket list. Supported values: 'asc' for ascending and 'desc' for descending. Default is 'desc'.", # noqa: E501
+ ] = None,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-tickets'."]:
+ """Fetches the list of all support tickets in Freshservice.
+
+ Use this tool to obtain a comprehensive list of all tickets available in the Freshservice system. Ideal for reviewing, updating, or analyzing support requests.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({
+ "filter": ticket_filter_type,
+ "email": requester_email_filter,
+ "requester_id": filter_by_requester_id,
+ "updated_since": filter_by_updated_since,
+ "include": fields_to_include_in_response,
+ "order_type": sort_order,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def fetch_ticket_details(
+ context: ToolContext,
+ ticket_id: Annotated[int, "ID of the Freshservice ticket to be retrieved."],
+ include_fields_in_ticket_response: Annotated[
+ str | None,
+ "Specify fields to include in the ticket response, such as 'stats', 'requester', 'conversations', etc.", # noqa: E501
+ ] = None,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-ticket'."]:
+ """Retrieve details of a FreshService ticket using its ID.
+
+ Use this tool to obtain detailed information about a specific ticket in FreshService by providing the ticket ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), ticket_id=ticket_id
+ ),
+ method="GET",
+ params=remove_none_values({"include": include_fields_in_ticket_response}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def remove_freshservice_ticket(
+ context: ToolContext,
+ ticket_id_to_delete: Annotated[int, "ID of the Freshservice support ticket to delete."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-ticket'."]:
+ """Remove a Freshservice support ticket by ID.
+
+ Use this tool to delete a specific support ticket in Freshservice using its ticket ID."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ ticket_id=ticket_id_to_delete,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def restore_deleted_ticket(
+ context: ToolContext,
+ ticket_id_to_restore: Annotated[
+ int, "The ID of the Freshservice ticket to be restored. This must be an integer."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'restore-ticket'."]:
+ """Restore a deleted Freshservice ticket.
+
+ Use this tool to restore a deleted ticket in Freshservice by providing the ticket ID."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/restore".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ ticket_id=ticket_id_to_restore,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_ticket_conversations(
+ context: ToolContext,
+ ticket_id: Annotated[
+ int,
+ "The ID of the Freshservice ticket for which conversations need to be fetched. This should be an integer.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-ticket-conversations'."]:
+ """Fetches all conversations for a specific Freshservice ticket.
+
+ Use this tool to get a list of all conversations associated with a specific ticket in Freshservice. It's useful for retrieving detailed communication history related to a ticket.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/conversations".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), ticket_id=ticket_id
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def remove_ticket_conversation(
+ context: ToolContext,
+ conversation_ticket_id: Annotated[
+ int, "The ID of the ticket from which the conversation should be removed."
+ ],
+ conversation_id_to_remove: Annotated[
+ int, "The ID of the specific reply or note to delete from a Freshservice ticket."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-ticket-conversation'."]:
+ """Remove a conversation from a Freshservice ticket.
+
+ This tool is used to delete a specific conversation from a ticket in Freshservice. It should be called when there is a need to remove unnecessary or incorrect conversation threads from a support ticket.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/conversations/{conversation_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ ticket_id=conversation_ticket_id,
+ conversation_id=conversation_id_to_remove,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_ticket_tasks(
+ context: ToolContext,
+ ticket_request_id: Annotated[
+ int, "ID of the Freshservice ticket for which tasks are to be retrieved."
+ ],
+ tasks_per_page: Annotated[
+ int | None, "Specify the number of tasks to retrieve per page in the paginated list."
+ ] = 30,
+ page_number: Annotated[
+ int | None, "The specific page number to retrieve from the paginated list of tasks."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-ticket-tasks'."]:
+ """Retrieve tasks for a specific Freshservice ticket.
+
+ Use this tool to obtain all tasks linked to a given ticket in Freshservice by providing the ticket ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ ticket_id=ticket_request_id,
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": tasks_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_ticket_task(
+ context: ToolContext,
+ ticket_request_id: Annotated[
+ int, "The ID of the ticket request to retrieve the specific task from Freshservice."
+ ],
+ task_identifier: Annotated[
+ int,
+ "The unique identifier for the task to be retrieved. Provide this to get task details from a ticket.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-ticket-task'."]:
+ """Retrieve details of a task from a ticket in Freshservice.
+
+ Use this tool to get specific information about a task associated with a ticket by providing the ticket and task IDs. It is useful for accessing task details in Freshservice.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks/{task_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ ticket_id=ticket_request_id,
+ task_id=task_identifier,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_ticket_task(
+ context: ToolContext,
+ ticket_id: Annotated[int, "The unique ID of the ticket from which you want to delete a task."],
+ task_id: Annotated[int, "The unique identifier for the task to be deleted from the ticket."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-ticket-task'."]:
+ """Deletes a task from a specified ticket in Freshservice.
+
+ This tool should be called when you need to delete a specific task from a ticket in Freshservice using the ticket and task IDs.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks/{task_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ ticket_id=ticket_id,
+ task_id=task_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_ticket_time_entries(
+ context: ToolContext,
+ ticket_request_id: Annotated[
+ int, "The unique ID of the ticket request to retrieve time entries for."
+ ],
+ number_of_entries_per_page: Annotated[
+ int | None, "The number of time entries to retrieve in each page of a paginated list."
+ ] = 30,
+ page_number: Annotated[
+ int | None, "The page number to retrieve from the paginated list of time entries."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-ticket-time-entries'."]:
+ """Retrieve time entries for a given ticket ID.
+
+ Use this tool to fetch all time entries associated with a specific ticket ID on Freshservice. It helps track time spent on each ticket.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/time_entries".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ ticket_id=ticket_request_id,
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": number_of_entries_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_ticket_time_entry(
+ context: ToolContext,
+ ticket_request_id: Annotated[
+ int,
+ "The ID of the specific ticket request for which you want to retrieve the time entry. It must be an integer.", # noqa: E501
+ ],
+ time_entry_id: Annotated[
+ int,
+ "Provide the ID of the time entry to retrieve specific details from a ticket in Freshservice.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-ticket-time-entry'."]:
+ """Retrieve a time entry for a specific ticket in Freshservice.
+
+ Use this tool to access details of a time entry associated with a specific ticket request in Freshservice. It is useful for monitoring or auditing time spent on ticket resolutions.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/time_entries/{time_entry_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ ticket_id=ticket_request_id,
+ time_entry_id=time_entry_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_ticket_time_entry(
+ context: ToolContext,
+ ticket_id: Annotated[
+ int,
+ "The unique identifier for the Freshservice ticket from which the time entry will be deleted. This must be an integer.", # noqa: E501
+ ],
+ time_entry_id: Annotated[
+ int, "The unique integer ID of the time entry to be deleted from the Freshservice ticket."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-ticket-time-entry'."]:
+ """Deletes a time entry from a Freshservice ticket.
+
+ Use this tool to delete a specific time entry associated with a ticket in Freshservice. This is helpful when you need to update or correct time tracking records.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/time_entries/{time_entry_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ ticket_id=ticket_id,
+ time_entry_id=time_entry_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def list_freshservice_changes(
+ context: ToolContext,
+ change_filter_name: Annotated[
+ str | None,
+ "Specify the filter name to retrieve changes. Possible values: 'my_open', 'unassigned', 'closed', 'release_requested', 'deleted', 'all'.", # noqa: E501
+ ] = None,
+ requester_id: Annotated[
+ str | None, "ID of the person who requested the changes to filter results."
+ ] = None,
+ requester_email: Annotated[
+ str | None, "Retrieve changes by the requester's email address in Freshservice."
+ ] = None,
+ updated_since: Annotated[
+ str | None,
+ "Retrieve changes updated after a specified date. Date format should be YYYY-MM-DD.",
+ ] = None,
+ page_size: Annotated[
+ int | None, "Specify the number of changes to retrieve per page in a paginated list."
+ ] = 30,
+ page_number: Annotated[
+ int | None, "The specific page number to retrieve in a paginated list of changes."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-changes'."]:
+ """Retrieve all changes from Freshservice.
+
+ Use this tool to get a comprehensive list of all changes in the Freshservice system. Ideal for tracking updates and modifications within the service.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({
+ "filter_name": change_filter_name,
+ "requester_id": requester_id,
+ "email": requester_email,
+ "updated_since": updated_since,
+ "per_page": page_size,
+ "page": page_number,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_change_request(
+ context: ToolContext,
+ change_request_id: Annotated[int, "ID of the Change request to retrieve from Freshservice."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-change'."]:
+ """Fetch a Change request by ID from Freshservice.
+
+ Use this tool to retrieve detailed information about a specific Change request using its ID from the Freshservice platform.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ change_id=change_request_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_freshservice_change(
+ context: ToolContext,
+ change_request_id: Annotated[int, "The ID of the change request to delete from Freshservice."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-change'."]:
+ """Deletes a specified change request from Freshservice.
+
+ Use this tool to delete a change request by its ID in Freshservice. It should be called when a user wants to permanently remove a change request from the system.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ change_id=change_request_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_change_notes(
+ context: ToolContext,
+ change_request_id: Annotated[
+ int,
+ "ID of the change request for which notes are to be retrieved. This is an integer value.",
+ ],
+ notes_per_page: Annotated[
+ int | None, "The number of notes to retrieve per page in a paginated list."
+ ] = 30,
+ page_number_to_retrieve: Annotated[
+ int | None, "The specific page number of notes to retrieve for pagination."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-change-notes'."]:
+ """Retrieve notes from a specific change request.
+
+ Use this tool to retrieve the notes related to a specific change request in Freshservice by providing the change ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ change_id=change_request_id,
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": notes_per_page, "page": page_number_to_retrieve}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_change_note(
+ context: ToolContext,
+ change_request_id: Annotated[int, "ID of the change request to retrieve its specific note."],
+ note_identifier: Annotated[
+ int,
+ "The unique identifier for the note to be retrieved from a change request in Freshservice.",
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-change-note'."]:
+ """Retrieve a specific note from a change request in Freshservice.
+
+ Use this tool to obtain a specific note from a change request by providing the change ID and note ID in Freshservice. It's helpful for tracking updates or comments on change requests.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes/{note_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ change_id=change_request_id,
+ note_id=note_identifier,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_change_note(
+ context: ToolContext,
+ change_request_id: Annotated[
+ int, "The unique ID of the Change request from which the note will be deleted."
+ ],
+ note_id: Annotated[
+ int, "The unique identifier of the note to delete from a Change request in Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-change-note'."]:
+ """Delete a note from a Change request in Freshservice.
+
+ Use this tool to delete a specific note from a Change request in Freshservice by providing the relevant Change and Note IDs.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes/{note_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ change_id=change_request_id,
+ note_id=note_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_change_tasks(
+ context: ToolContext,
+ change_request_id: Annotated[
+ int, "ID of the Change request for retrieving associated tasks from Freshservice."
+ ],
+ tasks_per_page: Annotated[
+ int | None, "Specify the number of tasks to retrieve per page in the paginated list."
+ ] = 10,
+ page_number: Annotated[
+ int | None, "Specify the page number of tasks to retrieve for the Change request."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-change-tasks'."]:
+ """Retrieve tasks for a specific Change request in Freshservice.
+
+ Use this tool to obtain a list of tasks associated with a specific Change request by providing the Change ID. It helps in tracking and managing tasks related to changes efficiently.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ change_id=change_request_id,
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": tasks_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_change_task_info(
+ context: ToolContext,
+ change_request_id: Annotated[
+ int, "ID of the change request to retrieve the corresponding task details."
+ ],
+ task_identifier: Annotated[int, "Provide the integer ID of the task to retrieve its details."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-change-task'."]:
+ """Retrieve details of a task in a change request.
+
+ Use this tool to get detailed information about a specific task within a change request using its ID in Freshservice.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks/{task_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ change_id=change_request_id,
+ task_id=task_identifier,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def remove_change_task(
+ context: ToolContext,
+ change_request_id: Annotated[
+ int,
+ "The unique identifier for the change request from which a task will be deleted. This should be an integer.", # noqa: E501
+ ],
+ task_identifier: Annotated[
+ int, "The unique integer ID of the task to delete from a change request in Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-change-task'."]:
+ """Delete a task from a change request in Freshservice.
+
+ Use this tool to remove a specific task from a change request in Freshservice by specifying the change and task IDs.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks/{task_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ change_id=change_request_id,
+ task_id=task_identifier,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_change_time_entries(
+ context: ToolContext,
+ change_request_id: Annotated[
+ int,
+ "ID of the change request for which time entries should be retrieved. This is necessary to specify which change request's time entries are needed.", # noqa: E501
+ ],
+ time_entries_per_page: Annotated[
+ int | None,
+ "Specify the number of time entries to retrieve per page. Helps in paginated responses.",
+ ] = 10,
+ page_number_to_retrieve: Annotated[
+ int | None, "The page number to retrieve from the paginated list of time entries."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-change-time-entries'."]:
+ """Retrieve time entries for a specific Change request.
+
+ Use this tool to get the time entries associated with a particular Change request in Freshservice by providing the Change ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/time_entries".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ change_id=change_request_id,
+ ),
+ method="GET",
+ params=remove_none_values({
+ "per_page": time_entries_per_page,
+ "page": page_number_to_retrieve,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_change_request_time_entry(
+ context: ToolContext,
+ change_request_id: Annotated[
+ int,
+ "The ID of the Change request to retrieve the time entry from. This must be an integer.",
+ ],
+ time_entry_id: Annotated[
+ int, "The numeric ID of the time entry to retrieve details for from a Change request."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-change-time-entry'."]:
+ """Retrieve a time entry from a Change request by ID.
+
+ Use this tool to obtain information about a specific time entry associated with a Change request in Freshservice by providing the change ID and time entry ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/time_entries/{time_entry_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ change_id=change_request_id,
+ time_entry_id=time_entry_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_change_time_entry_freshservice(
+ context: ToolContext,
+ change_request_id: Annotated[
+ int,
+ "The unique identifier of the Change request from which the time entry will be deleted. This integer ID specifies the specific change.", # noqa: E501
+ ],
+ time_entry_id: Annotated[
+ int,
+ "ID of the time entry to be deleted from the Change request in Freshservice. Integer value expected.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-change-time-entry'."]:
+ """Delete a time entry from a Change request in Freshservice.
+
+ Use this tool to delete a specific time entry associated with a Change request in Freshservice. Provide the Change ID and the Time Entry ID to perform the deletion.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/time_entries/{time_entry_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ change_id=change_request_id,
+ time_entry_id=time_entry_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_all_projects(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None, "Specify the number of project entries to retrieve per page for pagination."
+ ] = 30,
+ page_number: Annotated[
+ int | None, "Specify the page number to retrieve in a paginated list of projects."
+ ] = 1,
+ project_status_filter: Annotated[
+ str | None, "Filter projects by status: 'all', 'open', 'in_progress', or 'completed'."
+ ] = "all",
+ filter_archived_projects: Annotated[
+ bool | None, "If true, filter for archived projects; if false, filter for active projects."
+ ] = False,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-projects'."]:
+ """Retrieve a list of all projects in Freshservice.
+
+ Call this tool to get a comprehensive list of all projects managed within the Freshservice platform.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({
+ "per_page": entries_per_page,
+ "page": page_number,
+ "status": project_status_filter,
+ "archived": filter_archived_projects,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_freshservice_project(
+ context: ToolContext,
+ project_id: Annotated[
+ int, "The unique integer ID of the project to retrieve from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-project'."]:
+ """Retrieve project details from Freshservice by ID.
+
+ Use this tool to access project information from Freshservice by providing the project ID."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ project_id=project_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_freshservice_project(
+ context: ToolContext,
+ project_id: Annotated[
+ int,
+ "The ID of the project in Freshservice to delete. This should be an integer representing the specific project you wish to remove.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-project'."]:
+ """Deletes a project in Freshservice by ID.
+
+ Use this tool to delete an existing project in Freshservice by providing the project ID. It is called when a user wants to remove a project from their Freshservice account.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ project_id=project_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def archive_project(
+ context: ToolContext,
+ project_id: Annotated[
+ int, "The unique ID of the project to be archived in Freshservice. Provide a valid integer."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'archive-project'."]:
+ """Archive an existing project in Freshservice.
+
+ Use this tool to archive a specified project in Freshservice. This is useful when a project is completed or no longer active and you want to store it without deletion.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/archive".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), id=project_id
+ ),
+ method="POST",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def restore_archived_project(
+ context: ToolContext,
+ project_id: Annotated[
+ int,
+ "The identifier of the archived project to be restored in Freshservice. It should be an integer value.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'restore-project'."]:
+ """Restores an archived project in Freshservice.
+
+ Use this tool to unarchive and restore a project that has been previously archived in Freshservice. Ideal for retrieving projects that need to be active again.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/restore".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), id=project_id
+ ),
+ method="POST",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def list_project_tasks(
+ context: ToolContext,
+ project_id: Annotated[int, "The ID of the project for which you want to retrieve tasks."],
+ entries_per_page: Annotated[
+ int | None, "The number of entries to retrieve in each page for pagination."
+ ] = 30,
+ page_number: Annotated[
+ int | None, "The specific page number of the task list to retrieve."
+ ] = 1,
+ task_filter: Annotated[
+ str | None,
+ "Filter tasks by status. Options: all, open, in_progress, completed, overdue, unassigned.",
+ ] = "all",
+ task_parent_id: Annotated[
+ int | None, "Filter tasks by parent ID for specific task hierarchy or relationships."
+ ] = None,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-project-tasks'."]:
+ """Retrieve a list of all project tasks in Freshservice.
+
+ Use this tool to get all tasks associated with a specific project in Freshservice. Ideal for accessing detailed task information or project management purposes.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/tasks".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"), id=project_id
+ ),
+ method="GET",
+ params=remove_none_values({
+ "per_page": entries_per_page,
+ "page": page_number,
+ "filter": task_filter,
+ "parent_id": task_parent_id,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_project_task_details(
+ context: ToolContext,
+ task_id: Annotated[int, "The unique identifier for the task to retrieve details."],
+ project_id: Annotated[int, "The unique identifier for the project to which the task belongs."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-project-task'."]:
+ """Retrieve detailed information about a project task in Freshservice.
+
+ Use this tool to get comprehensive details about a specific task within a project on Freshservice, including its status, assigned personnel, and other relevant information.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}/tasks/{id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ id=task_id,
+ project_id=project_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_project_task(
+ context: ToolContext,
+ project_identifier: Annotated[
+ int,
+ "The unique identifier for the project containing the task to be deleted. This is required to specify which project's task needs to be removed.", # noqa: E501
+ ],
+ task_id_to_delete: Annotated[
+ int, "ID of the task to be deleted from a project in Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-project-task'."]:
+ """Deletes a specified project task in Freshservice.
+
+ Use this tool to remove an existing project task from a Freshservice project when you need to manage or clean up tasks.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}/tasks/{id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ project_id=project_identifier,
+ id=task_id_to_delete,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_change_form_fields(
+ context: ToolContext,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-change-form-fields'."]:
+ """Retrieve all fields in the Change Object of Freshservice.
+
+ Call this tool to obtain a list of all fields that make up the Change Object in Freshservice."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/change_form_fields".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_release_form_fields(
+ context: ToolContext,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-release-form-fields'."]:
+ """Retrieve all fields of the release object form.
+
+ Use this tool to obtain all the fields that constitute a release object in the Freshservice platform.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/release_form_fields".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_freshservice_announcements(
+ context: ToolContext,
+ announcement_state: Annotated[
+ str | None,
+ "Specify the state of the announcements to retrieve: archived, active, scheduled, or unread.", # noqa: E501
+ ] = None,
+ announcements_per_page: Annotated[
+ int | None, "Specify the number of announcements to retrieve per page for pagination."
+ ] = 30,
+ retrieve_page_number: Annotated[
+ int | None,
+ "Specify the page number of announcements to retrieve. Useful for navigating through paginated results.", # noqa: E501
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-announcement'."]:
+ """Retrieve all announcements from Freshservice.
+
+ Use this tool to get a list of all announcements available in Freshservice. It should be called when you need to display or review information about current announcements.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/announcements".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({
+ "state": announcement_state,
+ "per_page": announcements_per_page,
+ "page": retrieve_page_number,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def fetch_announcement_details(
+ context: ToolContext,
+ announcement_id: Annotated[
+ int, "The unique integer ID of the announcement to retrieve from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-announcement'."]:
+ """Retrieve specific announcement details from Freshservice.
+
+ Use this tool to fetch details of a specific announcement using its ID in Freshservice."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/announcements/{announcement_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ announcement_id=announcement_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_freshservice_announcement(
+ context: ToolContext,
+ announcement_id_to_delete: Annotated[
+ int, "The ID of the announcement to delete from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-announcement'."]:
+ """Delete a specific announcement from Freshservice.
+
+ Use this tool to delete an announcement in Freshservice by providing its ID. Useful for managing and removing outdated or incorrect announcements.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/announcements/{announcement_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ announcement_id=announcement_id_to_delete,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_freshservice_problems(
+ context: ToolContext,
+ updated_since: Annotated[
+ str | None, "Retrieve problems updated since the specified date. Format: YYYY-MM-DD."
+ ] = None,
+ problems_per_page: Annotated[
+ int | None,
+ "The number of problems to retrieve per page in a paginated list from Freshservice.",
+ ] = 30,
+ page_number_to_retrieve: Annotated[
+ int | None, "The page number of the problems list to retrieve from Freshservice."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-problems'."]:
+ """Retrieve all problems from Freshservice.
+
+ Call this tool to get a list of all problems currently recorded in Freshservice, useful for tracking and management purposes.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({
+ "updated_since": updated_since,
+ "per_page": problems_per_page,
+ "page": page_number_to_retrieve,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_freshservice_problem(
+ context: ToolContext,
+ problem_identifier: Annotated[
+ int, "The unique ID of the problem in Freshservice to retrieve details for."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-problem'."]:
+ """Retrieve a specific problem in Freshservice by ID.
+
+ This tool fetches the details of a problem from Freshservice using the problem ID. It should be called when there's a need to access information about a particular problem within Freshservice.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/problem/{problem_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ problem_id=problem_identifier,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_problem(
+ context: ToolContext,
+ problem_id: Annotated[int, "The unique ID of the problem to delete from Freshservice."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-problem'."]:
+ """Delete a problem using its ID from Freshservice.
+
+ Use this tool to delete a problem from Freshservice by providing its unique ID."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/problem/{problem_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ problem_id=problem_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_problem_notes(
+ context: ToolContext,
+ problem_id: Annotated[
+ int,
+ "The unique integer ID of the problem for which you want to retrieve notes from Freshservice.", # noqa: E501
+ ],
+ notes_per_page: Annotated[
+ int | None, "The number of notes to retrieve per page in the paginated results."
+ ] = 30,
+ page_number: Annotated[
+ int | None, "The page number of the notes to retrieve for pagination purposes."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-problem-notes'."]:
+ """Retrieve notes for a specific problem ID in Freshservice.
+
+ This tool retrieves the notes for a problem specified by its ID from Freshservice. It should be called when you need to access detailed notes or updates associated with a particular problem in the Freshservice system.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ problem_id=problem_id,
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": notes_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_problem_note(
+ context: ToolContext,
+ problem_identifier: Annotated[
+ int, "The unique ID of the problem to retrieve the note from. Must be an integer."
+ ],
+ note_id: Annotated[int, "The unique identifier for the note to be retrieved."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-problem-note'."]:
+ """Retrieve a specific note from a problem in Freshservice.
+
+ This tool retrieves a specific note from a problem in Freshservice using the problem and note IDs. It should be called when you need to access detailed information about a note associated with a specific problem.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes/{note_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ problem_id=problem_identifier,
+ note_id=note_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_problem_note(
+ context: ToolContext,
+ problem_id: Annotated[
+ int,
+ "The unique identifier for the problem from which the note will be deleted. This should be an integer corresponding to the specific problem in Freshservice.", # noqa: E501
+ ],
+ note_id: Annotated[
+ int, "The unique identifier for the note to be deleted from a problem in Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-problem-note'."]:
+ """Delete a note from a specific problem in Freshservice.
+
+ Use this tool to delete a note associated with a specific problem in Freshservice by providing the problem and note IDs.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes/{note_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ problem_id=problem_id,
+ note_id=note_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_problem_tasks(
+ context: ToolContext,
+ problem_id: Annotated[
+ int, "The ID of the problem for which tasks need to be retrieved from Freshservice."
+ ],
+ tasks_per_page: Annotated[
+ int | None, "Specify the number of tasks to retrieve per page for pagination."
+ ] = 10,
+ page_number: Annotated[int | None, "The specific page number of tasks to retrieve."] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-problem-tasks'."]:
+ """Retrieve tasks for a specific problem from Freshservice.
+
+ Use this tool to get a list of tasks associated with a specific problem by providing the problem ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ problem_id=problem_id,
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": tasks_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_problem_task(
+ context: ToolContext,
+ problem_id: Annotated[
+ int, "The unique integer ID of the problem to retrieve the task from in Freshservice."
+ ],
+ task_id: Annotated[
+ int, "The unique identifier for the task to retrieve from the specified problem."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-problem-task'."]:
+ """Retrieve details of a specific task from a problem in Freshservice.
+
+ Use this tool to get information about a specific task linked to a problem in Freshservice using the task and problem IDs.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks/{task_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ problem_id=problem_id,
+ task_id=task_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_problem_task(
+ context: ToolContext,
+ problem_id: Annotated[int, "The unique ID of the problem from which the task will be deleted."],
+ task_id: Annotated[int, "The unique identifier of the task to be deleted in Freshservice."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-problem-task'."]:
+ """Delete a task from a problem in Freshservice.
+
+ Use this tool to delete a specific task associated with a problem in Freshservice by providing the problem ID and task ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks/{task_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ problem_id=problem_id,
+ task_id=task_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_problem_time_entries(
+ context: ToolContext,
+ problem_id: Annotated[
+ int,
+ "ID of the problem for which time entries need to be retrieved. This is an integer value.",
+ ],
+ entries_per_page: Annotated[
+ int | None, "The number of time entries to retrieve per page in a paginated list."
+ ] = 10,
+ page_number_to_retrieve: Annotated[
+ int | None, "The page number to retrieve in the paginated list of time entries."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-problem-time-entries'."]:
+ """Retrieve time entries for a specific problem by ID.
+
+ Use this tool to get the time entries associated with a problem by providing its ID. Useful for tracking and managing the time spent on problem resolution.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/time_entries".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ problem_id=problem_id,
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_problem_time_entry(
+ context: ToolContext,
+ problem_id: Annotated[
+ int, "The unique identifier for the problem to retrieve a time entry from in Freshservice."
+ ],
+ time_entry_id: Annotated[int, "The unique integer ID of the time entry to be retrieved."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-problem-time-entry'."]:
+ """Retrieve time entry details for a specific problem.
+
+ Use this tool to obtain information about a particular time entry associated with a problem in Freshservice. This can be useful for tracking time spent on solving issues.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/time_entries/{time_entry_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ problem_id=problem_id,
+ time_entry_id=time_entry_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_problem_time_entry(
+ context: ToolContext,
+ problem_identifier: Annotated[
+ int, "The unique ID representing the problem from which you want to delete a time entry."
+ ],
+ time_entry_id: Annotated[
+ int, "The unique identifier for the time entry to be deleted from the specified problem."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-problem-time-entry'."]:
+ """Delete a time entry from a specified problem in Freshservice.
+
+ Use this tool to delete a time entry associated with a specific problem in Freshservice. Call it when you need to remove a recorded time entry from a problem.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/time_entries/{time_entry_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ problem_id=problem_identifier,
+ time_entry_id=time_entry_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_user_onboarding_requests(
+ context: ToolContext,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-onboarding-requests'."]:
+ """Retrieve onboarding requests for a user.
+
+ This tool fetches all onboarding requests related to a specific user from Freshservice. It should be called when you need to view or manage a user's onboarding process and details.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_onboarding_request(
+ context: ToolContext,
+ onboarding_request_id: Annotated[
+ int, "The unique display ID of the onboarding request to retrieve details for."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-onboarding-request'."]:
+ """Retrieve details of a specific onboarding request.
+
+ Call this tool to get information about a specific onboarding request using its ID. Useful for accessing details related to employee onboarding processes.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests/{request_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ request_id=onboarding_request_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_onboarding_request_tickets(
+ context: ToolContext,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-onboarding-request-tickets'."]:
+ """Retrieve FreshService Tickets for a specific Onboarding Request.
+
+ Use this tool to get detailed information about the FreshService Tickets linked to a specific Onboarding Request. It's useful for tracking the progress and details of onboarding activities.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests/id/tickets".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_canned_responses(
+ context: ToolContext,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-canned-responses'."]:
+ """Retrieve all canned responses from Freshservice.
+
+ Call this tool to retrieve a list of all available canned responses stored in Freshservice."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/canned_responses".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_canned_response(
+ context: ToolContext,
+ canned_response_id: Annotated[
+ int, "The unique ID of the Canned Response you want to retrieve from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-canned-response'."]:
+ """Retrieve a specific Canned Response by ID from Freshservice.
+
+ Call this tool to get details of a specific Canned Response using its ID. Useful for accessing predefined responses in Freshservice.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response/{canned_response_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ canned_response_id=canned_response_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_canned_response(
+ context: ToolContext,
+ canned_response_id: Annotated[
+ int, "The unique integer ID of the canned response to delete from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-canned-response'."]:
+ """Delete a specific canned response from Freshservice.
+
+ Use this tool to delete a canned response from Freshservice by providing its unique ID."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response/{canned_response_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ canned_response_id=canned_response_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_freshservice_canned_response_folders(
+ context: ToolContext,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-canned-response-folders'."]:
+ """Retrieve all canned response folders from Freshservice.
+
+ Use this tool to retrieve a list of all canned response folders available in Freshservice. This can be useful for managing quick reply templates or automated responses within the Freshservice platform.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folders".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_canned_response_folder(
+ context: ToolContext,
+ canned_response_folder_id: Annotated[
+ int,
+ "The ID of the canned response folder to retrieve from Freshservice. It should be an integer.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-canned-response-folder'."]:
+ """Retrieve a specific canned response folder from Freshservice.
+
+ Use this tool to fetch details of a specific canned response folder in Freshservice by providing the folder ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folder/{canned_response_folder_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ canned_response_folder_id=canned_response_folder_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_canned_response_folder(
+ context: ToolContext,
+ canned_response_folder_id: Annotated[
+ int,
+ "ID of the canned response folder to delete. This is required to identify which folder should be removed from Freshservice.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-caned-response-folder'."]:
+ """Delete a Canned Response Folder in Freshservice.
+
+ Use this tool to delete a specified Canned Response Folder by its ID in Freshservice. This is useful for managing your canned responses by removing folders that are no longer needed.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folder/{canned_response_folder_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ canned_response_folder_id=canned_response_folder_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def list_canned_responses(
+ context: ToolContext,
+ canned_response_folder_id: Annotated[
+ int, "ID of the canned response folder to retrieve responses from."
+ ],
+) -> Annotated[
+ dict[str, Any],
+ "Response from the API endpoint 'list-canned-response-folders-canned-responses'.",
+]:
+ """Retrieve all canned responses from a specified folder.
+
+ This tool fetches all available canned responses within a specified canned response folder in Freshservice. It is useful for accessing pre-defined replies for ticket responses.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folders/{canned_response_folder_id}/canned_responses".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ canned_response_folder_id=canned_response_folder_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_releases_list(
+ context: ToolContext,
+ fetch_releases_updated_since: Annotated[
+ str | None, "Retrieve releases updated since a specific date in YYYY-MM-DD format."
+ ] = None,
+ releases_per_page: Annotated[
+ int | None, "The number of releases to retrieve per page in the paginated list."
+ ] = 30,
+ page_number_to_retrieve: Annotated[
+ int | None, "Specify the page number of release data to retrieve for pagination."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-releases'."]:
+ """Retrieve a list of all Releases in Freshservice.
+
+ Use this tool to get information on all current and past releases managed within Freshservice. It should be called when there's a need to gather release details for projects or updates.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/releases".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({
+ "updated_since": fetch_releases_updated_since,
+ "per_page": releases_per_page,
+ "page": page_number_to_retrieve,
+ }),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_release_details(
+ context: ToolContext,
+ release_identifier: Annotated[
+ int,
+ "The ID of the release you want to retrieve from Freshservice. Provide the specific release ID as an integer to get its details.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-release'."]:
+ """Retrieve details of a specific release by ID in Freshservice.
+
+ Use this tool to get information about a release from Freshservice by providing the release ID. It fetches the release details from the Freshservice platform.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/release/{release_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ release_id=release_identifier,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_freshservice_release(
+ context: ToolContext,
+ release_id_for_deletion: Annotated[
+ int, "The unique integer ID of the release to delete from Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-release'."]:
+ """Delete a specific release in Freshservice.
+
+ Use this tool to delete a release from Freshservice by providing the release ID. It is useful for managing releases and ensuring outdated or incorrect entries are removed from the system.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/release/{release_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ release_id=release_id_for_deletion,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_release_notes(
+ context: ToolContext,
+ release_id: Annotated[int, "The ID of the release for which notes are to be retrieved."],
+ notes_per_page: Annotated[
+ int | None, "The number of release notes to retrieve in each page."
+ ] = 30,
+ retrieve_page_number: Annotated[
+ int | None,
+ "The specific page number of release notes to retrieve. Useful for paginated results.",
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-release-note'."]:
+ """Retrieve release notes from Freshservice using a release ID.
+
+ Use this tool to get the notes associated with a specific release in Freshservice by providing the release ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/notes".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ release_id=release_id,
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": notes_per_page, "page": retrieve_page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def fetch_release_note(
+ context: ToolContext,
+ release_id: Annotated[
+ int,
+ "The unique integer ID representing the release in Freshservice to retrieve the note from.",
+ ],
+ note_id: Annotated[
+ int, "The unique identifier for the note to be retrieved. It must be an integer."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-release-note'."]:
+ """Retrieve a note on a release by ID from Freshservice.
+
+ Call this tool to get details of a specific note from a release by providing the release ID and note ID in Freshservice.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/notes/{note_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ release_id=release_id,
+ note_id=note_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_release_note_freshservice(
+ context: ToolContext,
+ release_id: Annotated[
+ int,
+ "The numeric ID of the release from which the note will be deleted. This ID is required to identify the specific release in Freshservice.", # noqa: E501
+ ],
+ note_id: Annotated[
+ int, "The integer ID of the note to be deleted from the release in Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-release-note'."]:
+ """Deletes a note from a specified release in Freshservice.
+
+ Use this tool to delete a note from a specific release in Freshservice by specifying the release and note IDs.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/notes/{note_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ release_id=release_id,
+ note_id=note_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_release_tasks(
+ context: ToolContext,
+ release_id: Annotated[
+ int, "ID of the release for which tasks are to be retrieved in Freshservice."
+ ],
+ tasks_per_page: Annotated[
+ int | None, "Number of tasks to retrieve per page in a paginated list."
+ ] = 10,
+ page_number: Annotated[
+ int | None, "The page number to retrieve tasks from. Use for paginated results."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-release-tasks'."]:
+ """Retrieve tasks for a specified release in Freshservice.
+
+ Use this tool to get a list of tasks associated with a particular release ID in Freshservice."""
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/tasks".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ release_id=release_id,
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": tasks_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def retrieve_release_task(
+ context: ToolContext,
+ release_id: Annotated[
+ int,
+ "The unique identifier for the release to retrieve a specific task from. This is an integer value.", # noqa: E501
+ ],
+ task_id: Annotated[int, "The unique ID of the task you want to retrieve within a release."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-release-task'."]:
+ """Retrieve a specific task from a release in Freshservice.
+
+ Use this tool to get information about a particular task within a release by specifying the release and task IDs.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/tasks/{task_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ release_id=release_id,
+ task_id=task_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_release_task(
+ context: ToolContext,
+ release_id: Annotated[
+ int, "ID of the release from which the task will be deleted. This must be a valid integer."
+ ],
+ task_id_integer: Annotated[int, "The integer ID of the task to be deleted from the release."],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-release-task'."]:
+ """Delete a task from a specified release in Freshservice.
+
+ Use this tool to remove a specific task from a release in Freshservice when you have both the release and task IDs.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/tasks/{task_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ release_id=release_id,
+ task_id=task_id_integer,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_release_time_entries(
+ context: ToolContext,
+ release_id: Annotated[
+ int,
+ "The unique ID of the release for which time entries are to be retrieved in Freshservice.",
+ ],
+ entries_per_page: Annotated[
+ int | None, "The number of time entries to retrieve per page in the paginated list."
+ ] = 10,
+ page_number_to_retrieve: Annotated[
+ int | None, "The page number to retrieve in the paginated list of time entries."
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-release-time-entries'."]:
+ """Retrieve time entries for a specific release in Freshservice.
+
+ Use this tool to get detailed time entry information associated with a specific release ID from Freshservice. It should be called when you need to analyze or report on time logged for release activities.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/time_entries".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ release_id=release_id,
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number_to_retrieve}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def fetch_release_time_entry(
+ context: ToolContext,
+ release_id: Annotated[
+ int,
+ "The unique integer ID of the release for which you want to fetch the time entry details. This identifies the specific release in Freshservice.", # noqa: E501
+ ],
+ time_entry_id: Annotated[
+ int, "The integer ID of the specific time entry you want to retrieve from a release."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-release-time-entry'."]:
+ """Retrieve details of a release time entry by ID.
+
+ Use this tool to obtain information about a specific time entry associated with a release by providing the release and time entry IDs.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/time_entries/{time_entry_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ release_id=release_id,
+ time_entry_id=time_entry_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_release_time_entry(
+ context: ToolContext,
+ release_id: Annotated[
+ int, "The unique integer ID of the release from which to delete the time entry."
+ ],
+ time_entry_id: Annotated[
+ int, "ID of the time entry to be deleted from the release in Freshservice."
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-release-time-entry'."]:
+ """Delete a time entry from a release in Freshservice.
+
+ Use this tool to delete a specific time entry from a release in Freshservice by providing the release and time entry IDs. Typically called when you need to manage or cleanup time entries associated with release records.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/time_entries/{time_entry_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ release_id=release_id,
+ time_entry_id=time_entry_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def list_purchase_orders(
+ context: ToolContext,
+ entries_per_page: Annotated[
+ int | None, "Specify the number of entries to retrieve per page."
+ ] = 10,
+ page_number: Annotated[
+ int | None,
+ "Specify the page number to retrieve from the list of purchase orders. Useful for navigating paginated results.", # noqa: E501
+ ] = 1,
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'list-purchase-orders'."]:
+ """Retrieve a list of all Purchase Orders from Freshservice.
+
+ Use this tool to get a comprehensive list of all purchase orders stored in Freshservice. This can be useful for inventory management, procurement tracking, or financial analysis.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN")
+ ),
+ method="GET",
+ params=remove_none_values({"per_page": entries_per_page, "page": page_number}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def get_purchase_order(
+ context: ToolContext,
+ purchase_order_id: Annotated[
+ int,
+ "The unique identifier for the purchase order you wish to retrieve. This must be an integer.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'get-purchase-order'."]:
+ """Retrieve details of an existing purchase order by ID.
+
+ Use this tool to fetch the details of a specific purchase order using its ID. This is useful when you need to view or verify purchase order information.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders/{purchase_order_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ purchase_order_id=purchase_order_id,
+ ),
+ method="GET",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
+
+
+@tool(requires_secrets=["FRESHSERVICE_API_KEY", "FRESHSERVICE_SUBDOMAIN"])
+async def delete_purchase_order(
+ context: ToolContext,
+ purchase_order_id: Annotated[
+ int,
+ "The unique ID of the purchase order to delete from Freshservice. This ID identifies the specific order to be removed.", # noqa: E501
+ ],
+) -> Annotated[dict[str, Any], "Response from the API endpoint 'delete-purchase-order'."]:
+ """Delete a specified purchase order in Freshservice.
+
+ Use this tool to delete a purchase order from Freshservice by providing the purchase order ID.""" # noqa: E501
+ response = await make_request(
+ auth=(context.get_secret("FRESHSERVICE_API_KEY"), ""),
+ url="https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders/{purchase_order_id}".format(
+ freshservice_subdomain=context.get_secret("FRESHSERVICE_SUBDOMAIN"),
+ purchase_order_id=purchase_order_id,
+ ),
+ method="DELETE",
+ params=remove_none_values({}),
+ headers=remove_none_values({}),
+ data=remove_none_values({}),
+ )
+ try:
+ return {"response_json": response.json()}
+ except Exception:
+ return {"response_text": response.text}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ActivateCsatSurvey.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ActivateCsatSurvey.json
new file mode 100644
index 00000000..4c7df144
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ActivateCsatSurvey.json
@@ -0,0 +1,112 @@
+{
+ "name": "ActivateCsatSurvey",
+ "fully_qualified_name": "FreshserviceApi.ActivateCsatSurvey@0.1.0",
+ "description": "Activate a CSAT survey in Freshservice using its ID.\n\nUse this tool to activate the Customer Satisfaction (CSAT) Survey in Freshservice by providing the survey ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "csat_survey_id",
+ "required": true,
+ "description": "The ID of the CSAT survey to activate in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of CSAT survey to activate"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "survey_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'activate-survey'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}/activate",
+ "http_method": "PUT",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "survey_id",
+ "tool_parameter_name": "csat_survey_id",
+ "description": "ID of CSAT survey to activate",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of CSAT survey to activate"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddAssetComponent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddAssetComponent.json
new file mode 100644
index 00000000..4149384e
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/AddAssetComponent.json
@@ -0,0 +1,112 @@
+{
+ "name": "AddAssetComponent",
+ "fully_qualified_name": "FreshserviceApi.AddAssetComponent@0.1.0",
+ "description": "Add a new component to an existing asset.\n\nUse this tool to add a new component to a specific asset in the Freshservice system. This is useful for updating asset details by appending components.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "asset_display_id",
+ "required": true,
+ "description": "The unique identifier of the asset to which the new component will be added. This should be an integer value.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "display_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'create-asset-component'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components",
+ "http_method": "POST",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "display_id",
+ "tool_parameter_name": "asset_display_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ArchiveProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ArchiveProject.json
new file mode 100644
index 00000000..19d50bbc
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ArchiveProject.json
@@ -0,0 +1,112 @@
+{
+ "name": "ArchiveProject",
+ "fully_qualified_name": "FreshserviceApi.ArchiveProject@0.1.0",
+ "description": "Archive an existing project in Freshservice.\n\nUse this tool to archive a specified project in Freshservice. This is useful when a project is completed or no longer active and you want to store it without deletion.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "project_id",
+ "required": true,
+ "description": "The unique ID of the project to be archived in Freshservice. Provide a valid integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'archive-project'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/archive",
+ "http_method": "POST",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "id",
+ "tool_parameter_name": "project_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertAgentToRequester.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertAgentToRequester.json
new file mode 100644
index 00000000..37d405a3
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertAgentToRequester.json
@@ -0,0 +1,112 @@
+{
+ "name": "ConvertAgentToRequester",
+ "fully_qualified_name": "FreshserviceApi.ConvertAgentToRequester@0.1.0",
+ "description": "Convert an agent into a requester in Freshservice.\n\nUse this tool to change the status of an agent by converting them into a requester. This is useful when the agent no longer needs to handle support tickets or requires access to agent-level features.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "agent_id_for_conversion",
+ "required": true,
+ "description": "The ID of the agent to be converted into a requester. This must be a valid integer representing the agent's ID in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of agent to delete"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "agent_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-agent'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agents/{agent_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "agent_id",
+ "tool_parameter_name": "agent_id_for_conversion",
+ "description": "ID of agent to delete",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of agent to delete"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertRequesterToAgent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertRequesterToAgent.json
new file mode 100644
index 00000000..a1bc64ed
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ConvertRequesterToAgent.json
@@ -0,0 +1,112 @@
+{
+ "name": "ConvertRequesterToAgent",
+ "fully_qualified_name": "FreshserviceApi.ConvertRequesterToAgent@0.1.0",
+ "description": "Convert a requester into an occasional agent.\n\nThis tool is used to convert a Freshservice requester into an occasional agent, assigning them the SD Agent role with no group memberships. Use this when you need to change a requester's role to facilitate agent tasks.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "requester_identifier",
+ "required": true,
+ "description": "The integer ID of the requester to convert into an occasional agent.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of requester to update"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "requester_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'convert-requester-to-agent'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}/convert_to_agent",
+ "http_method": "PUT",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "requester_id",
+ "tool_parameter_name": "requester_identifier",
+ "description": "ID of requester to update",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of requester to update"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeactivateCsatSurvey.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeactivateCsatSurvey.json
new file mode 100644
index 00000000..8a144678
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeactivateCsatSurvey.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeactivateCsatSurvey",
+ "fully_qualified_name": "FreshserviceApi.DeactivateCsatSurvey@0.1.0",
+ "description": "Deactivate a specified CSAT Survey in Freshservice.\n\nUse this tool to deactivate a CSAT Survey by its ID in Freshservice. It should be called when you need to disable a survey to stop collecting responses.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "survey_id",
+ "required": true,
+ "description": "The ID of the CSAT survey you wish to deactivate in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of CSAT survey to deactivate"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "survey_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'deactivate-survey'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}/deactivate",
+ "http_method": "PUT",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "survey_id",
+ "tool_parameter_name": "survey_id",
+ "description": "ID of CSAT survey to deactivate",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of CSAT survey to deactivate"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentAndTickets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentAndTickets.json
new file mode 100644
index 00000000..ec5d5f87
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentAndTickets.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteAgentAndTickets",
+ "fully_qualified_name": "FreshserviceApi.DeleteAgentAndTickets@0.1.0",
+ "description": "Permanently deletes an agent and their tickets.\n\nUse this tool to permanently remove an agent from the system, along with any tickets they have requested. This action is irreversible.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "agent_id_to_delete",
+ "required": true,
+ "description": "The ID of the agent to permanently delete along with their tickets. This is irreversible.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of agent to forget"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "agent_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'forget-agent'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agents/{agent_id}/forget",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "agent_id",
+ "tool_parameter_name": "agent_id_to_delete",
+ "description": "ID of agent to forget",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of agent to forget"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentGroup.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentGroup.json
new file mode 100644
index 00000000..83e17f7f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAgentGroup.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteAgentGroup",
+ "fully_qualified_name": "FreshserviceApi.DeleteAgentGroup@0.1.0",
+ "description": "Delete an agent group in Freshservice by ID.\n\nUse this tool to delete an agent group from Freshservice by specifying the group's ID. This should be called when you need to remove an agent group permanently.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "agent_group_id_to_delete",
+ "required": true,
+ "description": "The unique integer ID of the agent group to be deleted in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of agent group to delete"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "agent_group_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-agent-group'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups/{agent_group_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "agent_group_id",
+ "tool_parameter_name": "agent_group_id_to_delete",
+ "description": "ID of agent group to delete",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of agent group to delete"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAsset.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAsset.json
new file mode 100644
index 00000000..63a953c4
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAsset.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteAsset",
+ "fully_qualified_name": "FreshserviceApi.DeleteAsset@0.1.0",
+ "description": "Delete an existing asset in Freshservice.\n\nUse this tool to remove an asset from the Freshservice platform when it is no longer needed or is being decommissioned.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "asset_display_id",
+ "required": true,
+ "description": "The unique integer identifier of the asset to be deleted. Required to specify which asset to remove from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "display_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-asset'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "display_id",
+ "tool_parameter_name": "asset_display_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetComponent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetComponent.json
new file mode 100644
index 00000000..69fdc4df
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetComponent.json
@@ -0,0 +1,145 @@
+{
+ "name": "DeleteAssetComponent",
+ "fully_qualified_name": "FreshserviceApi.DeleteAssetComponent@0.1.0",
+ "description": "Delete a specific component from an asset.\n\nThis tool deletes an existing component from an asset using the asset's display ID and the component's ID. It should be called when there's a need to remove a component from an asset in the Freshservice system.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "asset_display_id",
+ "required": true,
+ "description": "The display ID of the asset from which the component will be deleted. This ID uniquely identifies the asset in the Freshservice system.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "display_id"
+ },
+ {
+ "name": "component_id",
+ "required": true,
+ "description": "The unique identifier of the component to be deleted. This is required to specify which component will be removed from the asset.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "component_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-asset-component'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components/{component_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "display_id",
+ "tool_parameter_name": "asset_display_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "component_id",
+ "tool_parameter_name": "component_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetType.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetType.json
new file mode 100644
index 00000000..f0122315
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteAssetType.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteAssetType",
+ "fully_qualified_name": "FreshserviceApi.DeleteAssetType@0.1.0",
+ "description": "Delete an existing asset type in Freshservice.\n\nUse this tool to delete a specific asset type by providing its ID. This is useful for managing and updating the asset database by removing obsolete or incorrect asset types.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "asset_type_id",
+ "required": true,
+ "description": "The unique integer ID of the asset type to be deleted. This ID identifies which asset type should be removed from the Freshservice database.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "asset_type_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-asset-type'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types/{asset_type_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "asset_type_id",
+ "tool_parameter_name": "asset_type_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponse.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponse.json
new file mode 100644
index 00000000..804baa8e
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponse.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteCannedResponse",
+ "fully_qualified_name": "FreshserviceApi.DeleteCannedResponse@0.1.0",
+ "description": "Delete a specific canned response from Freshservice.\n\nUse this tool to delete a canned response from Freshservice by providing its unique ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "canned_response_id",
+ "required": true,
+ "description": "The unique integer ID of the canned response to delete from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of canned response to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "canned_response_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-canned-response'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response/{canned_response_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "canned_response_id",
+ "tool_parameter_name": "canned_response_id",
+ "description": "ID of canned response to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of canned response to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponseFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponseFolder.json
new file mode 100644
index 00000000..0fb96b22
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteCannedResponseFolder.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteCannedResponseFolder",
+ "fully_qualified_name": "FreshserviceApi.DeleteCannedResponseFolder@0.1.0",
+ "description": "Delete a Canned Response Folder in Freshservice.\n\nUse this tool to delete a specified Canned Response Folder by its ID in Freshservice. This is useful for managing your canned responses by removing folders that are no longer needed.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "canned_response_folder_id",
+ "required": true,
+ "description": "ID of the canned response folder to delete. This is required to identify which folder should be removed from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of canned response folder to delete"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "canned_response_folder_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-caned-response-folder'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folder/{canned_response_folder_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "canned_response_folder_id",
+ "tool_parameter_name": "canned_response_folder_id",
+ "description": "ID of canned response folder to delete",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of canned response folder to delete"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeNote.json
new file mode 100644
index 00000000..8f49d00c
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeNote.json
@@ -0,0 +1,145 @@
+{
+ "name": "DeleteChangeNote",
+ "fully_qualified_name": "FreshserviceApi.DeleteChangeNote@0.1.0",
+ "description": "Delete a note from a Change request in Freshservice.\n\nUse this tool to delete a specific note from a Change request in Freshservice by providing the relevant Change and Note IDs.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "change_request_id",
+ "required": true,
+ "description": "The unique ID of the Change request from which the note will be deleted.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "change_id"
+ },
+ {
+ "name": "note_id",
+ "required": true,
+ "description": "The unique identifier of the note to delete from a Change request in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of note"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "note_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-change-note'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes/{note_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "change_id",
+ "tool_parameter_name": "change_request_id",
+ "description": "ID of change",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "note_id",
+ "tool_parameter_name": "note_id",
+ "description": "ID of note",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of note"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTimeEntryFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTimeEntryFreshservice.json
new file mode 100644
index 00000000..3cd11933
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteChangeTimeEntryFreshservice.json
@@ -0,0 +1,145 @@
+{
+ "name": "DeleteChangeTimeEntryFreshservice",
+ "fully_qualified_name": "FreshserviceApi.DeleteChangeTimeEntryFreshservice@0.1.0",
+ "description": "Delete a time entry from a Change request in Freshservice.\n\nUse this tool to delete a specific time entry associated with a Change request in Freshservice. Provide the Change ID and the Time Entry ID to perform the deletion.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "change_request_id",
+ "required": true,
+ "description": "The unique identifier of the Change request from which the time entry will be deleted. This integer ID specifies the specific change.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "change_id"
+ },
+ {
+ "name": "time_entry_id",
+ "required": true,
+ "description": "ID of the time entry to be deleted from the Change request in Freshservice. Integer value expected.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "time_entry_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-change-time-entry'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/time_entries/{time_entry_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "change_id",
+ "tool_parameter_name": "change_request_id",
+ "description": "ID of change",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "time_entry_id",
+ "tool_parameter_name": "time_entry_id",
+ "description": "ID of the time entry",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteDepartment.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteDepartment.json
new file mode 100644
index 00000000..b07778df
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteDepartment.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteDepartment",
+ "fully_qualified_name": "FreshserviceApi.DeleteDepartment@0.1.0",
+ "description": "Delete a department from Freshservice by ID.\n\nUse this tool to delete a specific department from Freshservice using its ID. This is useful for managing and updating department records within the service.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "department_id",
+ "required": true,
+ "description": "The unique ID of the department to delete from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of department to delete"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "department_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-department'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/departments/{department_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "department_id",
+ "tool_parameter_name": "department_id",
+ "description": "ID of department to delete",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of department to delete"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingLocation.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingLocation.json
new file mode 100644
index 00000000..5ffa671d
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingLocation.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteExistingLocation",
+ "fully_qualified_name": "FreshserviceApi.DeleteExistingLocation@0.1.0",
+ "description": "Deletes an existing location from Freshservice.\n\nUse this tool to remove an existing location in Freshservice by providing the location ID. It should be called when you need to delete a location from the system.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "location_id",
+ "required": true,
+ "description": "The unique identifier of the location to be deleted. Provide the numeric ID corresponding to the location you wish to remove from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "location_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-location'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/locations/{location_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "location_id",
+ "tool_parameter_name": "location_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingVendor.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingVendor.json
new file mode 100644
index 00000000..e2477c5f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteExistingVendor.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteExistingVendor",
+ "fully_qualified_name": "FreshserviceApi.DeleteExistingVendor@0.1.0",
+ "description": "Delete an existing vendor in Freshservice.\n\nUse this tool to delete a vendor from the Freshservice platform when a user requests vendor removal.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "vendor_id",
+ "required": true,
+ "description": "The unique identifier of the vendor to be deleted. It should be an integer value.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "vendor_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-vendor'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/vendors/{vendor_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "vendor_id",
+ "tool_parameter_name": "vendor_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceAnnouncement.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceAnnouncement.json
new file mode 100644
index 00000000..6c82ea50
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceAnnouncement.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteFreshserviceAnnouncement",
+ "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceAnnouncement@0.1.0",
+ "description": "Delete a specific announcement from Freshservice.\n\nUse this tool to delete an announcement in Freshservice by providing its ID. Useful for managing and removing outdated or incorrect announcements.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "announcement_id_to_delete",
+ "required": true,
+ "description": "The ID of the announcement to delete from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of announcement to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "announcement_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-announcement'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/announcements/{announcement_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "announcement_id",
+ "tool_parameter_name": "announcement_id_to_delete",
+ "description": "ID of announcement to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of announcement to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceChange.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceChange.json
new file mode 100644
index 00000000..cce1a05d
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceChange.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteFreshserviceChange",
+ "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceChange@0.1.0",
+ "description": "Deletes a specified change request from Freshservice.\n\nUse this tool to delete a change request by its ID in Freshservice. It should be called when a user wants to permanently remove a change request from the system.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "change_request_id",
+ "required": true,
+ "description": "The ID of the change request to delete from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "change_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-change'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "change_id",
+ "tool_parameter_name": "change_request_id",
+ "description": "ID of change to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProject.json
new file mode 100644
index 00000000..4099a515
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceProject.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteFreshserviceProject",
+ "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceProject@0.1.0",
+ "description": "Deletes a project in Freshservice by ID.\n\nUse this tool to delete an existing project in Freshservice by providing the project ID. It is called when a user wants to remove a project from their Freshservice account.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "project_id",
+ "required": true,
+ "description": "The ID of the project in Freshservice to delete. This should be an integer representing the specific project you wish to remove.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "project_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-project'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "project_id",
+ "tool_parameter_name": "project_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceRelease.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceRelease.json
new file mode 100644
index 00000000..a3adacd3
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteFreshserviceRelease.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteFreshserviceRelease",
+ "fully_qualified_name": "FreshserviceApi.DeleteFreshserviceRelease@0.1.0",
+ "description": "Delete a specific release in Freshservice.\n\nUse this tool to delete a release from Freshservice by providing the release ID. It is useful for managing releases and ensuring outdated or incorrect entries are removed from the system.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "release_id_for_deletion",
+ "required": true,
+ "description": "The unique integer ID of the release to delete from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "release_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-release'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/release/{release_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "release_id",
+ "tool_parameter_name": "release_id_for_deletion",
+ "description": "ID of release to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblem.json
new file mode 100644
index 00000000..cd7a67e0
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblem.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteProblem",
+ "fully_qualified_name": "FreshserviceApi.DeleteProblem@0.1.0",
+ "description": "Delete a problem using its ID from Freshservice.\n\nUse this tool to delete a problem from Freshservice by providing its unique ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "problem_id",
+ "required": true,
+ "description": "The unique ID of the problem to delete from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "problem_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-problem'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problem/{problem_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "problem_id",
+ "tool_parameter_name": "problem_id",
+ "description": "ID of problem to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemNote.json
new file mode 100644
index 00000000..eec22a29
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemNote.json
@@ -0,0 +1,145 @@
+{
+ "name": "DeleteProblemNote",
+ "fully_qualified_name": "FreshserviceApi.DeleteProblemNote@0.1.0",
+ "description": "Delete a note from a specific problem in Freshservice.\n\nUse this tool to delete a note associated with a specific problem in Freshservice by providing the problem and note IDs.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "problem_id",
+ "required": true,
+ "description": "The unique identifier for the problem from which the note will be deleted. This should be an integer corresponding to the specific problem in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "problem_id"
+ },
+ {
+ "name": "note_id",
+ "required": true,
+ "description": "The unique identifier for the note to be deleted from a problem in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of note"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "note_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-problem-note'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes/{note_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "problem_id",
+ "tool_parameter_name": "problem_id",
+ "description": "ID of problem",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "note_id",
+ "tool_parameter_name": "note_id",
+ "description": "ID of note",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of note"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTask.json
new file mode 100644
index 00000000..17f57c8f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTask.json
@@ -0,0 +1,145 @@
+{
+ "name": "DeleteProblemTask",
+ "fully_qualified_name": "FreshserviceApi.DeleteProblemTask@0.1.0",
+ "description": "Delete a task from a problem in Freshservice.\n\nUse this tool to delete a specific task associated with a problem in Freshservice by providing the problem ID and task ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "problem_id",
+ "required": true,
+ "description": "The unique ID of the problem from which the task will be deleted.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "problem_id"
+ },
+ {
+ "name": "task_id",
+ "required": true,
+ "description": "The unique identifier of the task to be deleted in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of task"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "task_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-problem-task'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks/{task_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "problem_id",
+ "tool_parameter_name": "problem_id",
+ "description": "ID of problem",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "task_id",
+ "tool_parameter_name": "task_id",
+ "description": "ID of task",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of task"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTimeEntry.json
new file mode 100644
index 00000000..aa1bb127
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProblemTimeEntry.json
@@ -0,0 +1,145 @@
+{
+ "name": "DeleteProblemTimeEntry",
+ "fully_qualified_name": "FreshserviceApi.DeleteProblemTimeEntry@0.1.0",
+ "description": "Delete a time entry from a specified problem in Freshservice.\n\nUse this tool to delete a time entry associated with a specific problem in Freshservice. Call it when you need to remove a recorded time entry from a problem.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "problem_identifier",
+ "required": true,
+ "description": "The unique ID representing the problem from which you want to delete a time entry.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "problem_id"
+ },
+ {
+ "name": "time_entry_id",
+ "required": true,
+ "description": "The unique identifier for the time entry to be deleted from the specified problem.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "time_entry_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-problem-time-entry'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/time_entries/{time_entry_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "problem_id",
+ "tool_parameter_name": "problem_identifier",
+ "description": "ID of problem",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "time_entry_id",
+ "tool_parameter_name": "time_entry_id",
+ "description": "ID of the time entry",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProduct.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProduct.json
new file mode 100644
index 00000000..c31ba4aa
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProduct.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteProduct",
+ "fully_qualified_name": "FreshserviceApi.DeleteProduct@0.1.0",
+ "description": "Delete a product from the Freshservice catalog.\n\nUse this tool to delete an existing product from the Freshservice Product Catalog. Provide the product ID to specify which product to remove.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "product_identifier",
+ "required": true,
+ "description": "The unique ID of the product to be deleted from the Freshservice catalog.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "product_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-product'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/products/{product_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "product_id",
+ "tool_parameter_name": "product_identifier",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProjectTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProjectTask.json
new file mode 100644
index 00000000..11c7d98f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteProjectTask.json
@@ -0,0 +1,145 @@
+{
+ "name": "DeleteProjectTask",
+ "fully_qualified_name": "FreshserviceApi.DeleteProjectTask@0.1.0",
+ "description": "Deletes a specified project task in Freshservice.\n\nUse this tool to remove an existing project task from a Freshservice project when you need to manage or clean up tasks.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "project_identifier",
+ "required": true,
+ "description": "The unique identifier for the project containing the task to be deleted. This is required to specify which project's task needs to be removed.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of project to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "project_id"
+ },
+ {
+ "name": "task_id_to_delete",
+ "required": true,
+ "description": "ID of the task to be deleted from a project in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the task to be deleted"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-project-task'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}/tasks/{id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "project_id",
+ "tool_parameter_name": "project_identifier",
+ "description": "ID of project to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of project to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "id",
+ "tool_parameter_name": "task_id_to_delete",
+ "description": "ID of the task to be deleted",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the task to be deleted"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeletePurchaseOrder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeletePurchaseOrder.json
new file mode 100644
index 00000000..e940049d
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeletePurchaseOrder.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeletePurchaseOrder",
+ "fully_qualified_name": "FreshserviceApi.DeletePurchaseOrder@0.1.0",
+ "description": "Delete a specified purchase order in Freshservice.\n\nUse this tool to delete a purchase order from Freshservice by providing the purchase order ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "purchase_order_id",
+ "required": true,
+ "description": "The unique ID of the purchase order to delete from Freshservice. This ID identifies the specific order to be removed.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of purchase order to delete"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "purchase_order_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-purchase-order'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders/{purchase_order_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "purchase_order_id",
+ "tool_parameter_name": "purchase_order_id",
+ "description": "ID of purchase order to delete",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of purchase order to delete"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseNoteFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseNoteFreshservice.json
new file mode 100644
index 00000000..e6be2e96
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseNoteFreshservice.json
@@ -0,0 +1,145 @@
+{
+ "name": "DeleteReleaseNoteFreshservice",
+ "fully_qualified_name": "FreshserviceApi.DeleteReleaseNoteFreshservice@0.1.0",
+ "description": "Deletes a note from a specified release in Freshservice.\n\nUse this tool to delete a note from a specific release in Freshservice by specifying the release and note IDs.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "release_id",
+ "required": true,
+ "description": "The numeric ID of the release from which the note will be deleted. This ID is required to identify the specific release in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "release_id"
+ },
+ {
+ "name": "note_id",
+ "required": true,
+ "description": "The integer ID of the note to be deleted from the release in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of note"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "note_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-release-note'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/notes/{note_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "release_id",
+ "tool_parameter_name": "release_id",
+ "description": "ID of release",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "note_id",
+ "tool_parameter_name": "note_id",
+ "description": "ID of note",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of note"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTask.json
new file mode 100644
index 00000000..d2c6ac71
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTask.json
@@ -0,0 +1,145 @@
+{
+ "name": "DeleteReleaseTask",
+ "fully_qualified_name": "FreshserviceApi.DeleteReleaseTask@0.1.0",
+ "description": "Delete a task from a specified release in Freshservice.\n\nUse this tool to remove a specific task from a release in Freshservice when you have both the release and task IDs.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "release_id",
+ "required": true,
+ "description": "ID of the release from which the task will be deleted. This must be a valid integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "release_id"
+ },
+ {
+ "name": "task_id_integer",
+ "required": true,
+ "description": "The integer ID of the task to be deleted from the release.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of task"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "task_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-release-task'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/tasks/{task_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "release_id",
+ "tool_parameter_name": "release_id",
+ "description": "ID of release",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "task_id",
+ "tool_parameter_name": "task_id_integer",
+ "description": "ID of task",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of task"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTimeEntry.json
new file mode 100644
index 00000000..bc40416f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteReleaseTimeEntry.json
@@ -0,0 +1,145 @@
+{
+ "name": "DeleteReleaseTimeEntry",
+ "fully_qualified_name": "FreshserviceApi.DeleteReleaseTimeEntry@0.1.0",
+ "description": "Delete a time entry from a release in Freshservice.\n\nUse this tool to delete a specific time entry from a release in Freshservice by providing the release and time entry IDs. Typically called when you need to manage or cleanup time entries associated with release records.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "release_id",
+ "required": true,
+ "description": "The unique integer ID of the release from which to delete the time entry.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "release_id"
+ },
+ {
+ "name": "time_entry_id",
+ "required": true,
+ "description": "ID of the time entry to be deleted from the release in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "time_entry_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-release-time-entry'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/time_entries/{time_entry_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "release_id",
+ "tool_parameter_name": "release_id",
+ "description": "ID of release",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "time_entry_id",
+ "tool_parameter_name": "time_entry_id",
+ "description": "ID of the time entry",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterAndTickets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterAndTickets.json
new file mode 100644
index 00000000..020cbeff
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterAndTickets.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteRequesterAndTickets",
+ "fully_qualified_name": "FreshserviceApi.DeleteRequesterAndTickets@0.1.0",
+ "description": "Permanently delete a requester and their tickets.\n\nUse this tool to permanently delete a requester and all the tickets they have requested in Freshservice when such removal is necessary.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "requester_id_to_delete",
+ "required": true,
+ "description": "The ID of the requester to permanently delete along with their tickets.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of requester to forget"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "requester_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'forget-requester'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}/forget",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "requester_id",
+ "tool_parameter_name": "requester_id_to_delete",
+ "description": "ID of requester to forget",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of requester to forget"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterFromFreshservice.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterFromFreshservice.json
new file mode 100644
index 00000000..da4407f4
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteRequesterFromFreshservice.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteRequesterFromFreshservice",
+ "fully_qualified_name": "FreshserviceApi.DeleteRequesterFromFreshservice@0.1.0",
+ "description": "Delete a requester by ID from Freshservice.\n\nUse this tool to delete a specific requester from Freshservice by providing their ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "requester_id_to_delete",
+ "required": true,
+ "description": "The ID of the requester to be deleted from Freshservice. This should be an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of requester to delete"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "requester_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-requester'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "requester_id",
+ "tool_parameter_name": "requester_id_to_delete",
+ "description": "ID of requester to delete",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of requester to delete"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionArticle.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionArticle.json
new file mode 100644
index 00000000..e9761166
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionArticle.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteSolutionArticle",
+ "fully_qualified_name": "FreshserviceApi.DeleteSolutionArticle@0.1.0",
+ "description": "Delete a solution article from Freshservice by ID.\n\nUse this tool to delete a specified solution article in Freshservice by providing its ID. It's useful for managing and maintaining the solution knowledge base.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "solution_article_id",
+ "required": true,
+ "description": "ID of the solution article to be deleted from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the solution article to delete"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "article_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-solution-article'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles/{article_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "article_id",
+ "tool_parameter_name": "solution_article_id",
+ "description": "ID of the solution article to delete",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the solution article to delete"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionCategory.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionCategory.json
new file mode 100644
index 00000000..11ffb29b
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionCategory.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteSolutionCategory",
+ "fully_qualified_name": "FreshserviceApi.DeleteSolutionCategory@0.1.0",
+ "description": "Delete a solution category by its ID from Freshservice.\n\nUse this tool to delete a solution category in Freshservice using its unique category ID. This tool ensures that the specified category is permanently removed from the system.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "solution_category_id",
+ "required": true,
+ "description": "The unique ID of the solution category to be deleted from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the solution category which has to be deleted"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "category_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-solution-category'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories/{category_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "category_id",
+ "tool_parameter_name": "solution_category_id",
+ "description": "ID of the solution category which has to be deleted",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the solution category which has to be deleted"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionFolder.json
new file mode 100644
index 00000000..e788930d
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSolutionFolder.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteSolutionFolder",
+ "fully_qualified_name": "FreshserviceApi.DeleteSolutionFolder@0.1.0",
+ "description": "Delete a solution folder in Freshservice.\n\nUse this tool to delete a solution folder from Freshservice by specifying its ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "solution_folder_id",
+ "required": true,
+ "description": "ID of the solution folder to be deleted from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the solution folder that has to be deleted"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "folder_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-solution-folder'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders/{folder_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "folder_id",
+ "tool_parameter_name": "solution_folder_id",
+ "description": "ID of the solution folder that has to be deleted",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the solution folder that has to be deleted"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSurvey.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSurvey.json
new file mode 100644
index 00000000..3ffc0300
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteSurvey.json
@@ -0,0 +1,112 @@
+{
+ "name": "DeleteSurvey",
+ "fully_qualified_name": "FreshserviceApi.DeleteSurvey@0.1.0",
+ "description": "Delete a survey and its responses from Freshservice.\n\nUse this tool to delete a specific survey and all its associated responses from Freshservice by providing the survey ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "survey_id_to_delete",
+ "required": true,
+ "description": "The ID of the survey you wish to delete from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of survey to be deleted"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "survey_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-survey'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "survey_id",
+ "tool_parameter_name": "survey_id_to_delete",
+ "description": "ID of survey to be deleted",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of survey to be deleted"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTask.json
new file mode 100644
index 00000000..e21d64bd
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTask.json
@@ -0,0 +1,145 @@
+{
+ "name": "DeleteTicketTask",
+ "fully_qualified_name": "FreshserviceApi.DeleteTicketTask@0.1.0",
+ "description": "Deletes a task from a specified ticket in Freshservice.\n\nThis tool should be called when you need to delete a specific task from a ticket in Freshservice using the ticket and task IDs.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "ticket_id",
+ "required": true,
+ "description": "The unique ID of the ticket from which you want to delete a task.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of ticket"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "ticket_id"
+ },
+ {
+ "name": "task_id",
+ "required": true,
+ "description": "The unique identifier for the task to be deleted from the ticket.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of task"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "task_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-ticket-task'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks/{task_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "ticket_id",
+ "tool_parameter_name": "ticket_id",
+ "description": "ID of ticket",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of ticket"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "task_id",
+ "tool_parameter_name": "task_id",
+ "description": "ID of task",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of task"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTimeEntry.json
new file mode 100644
index 00000000..df897828
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/DeleteTicketTimeEntry.json
@@ -0,0 +1,145 @@
+{
+ "name": "DeleteTicketTimeEntry",
+ "fully_qualified_name": "FreshserviceApi.DeleteTicketTimeEntry@0.1.0",
+ "description": "Deletes a time entry from a Freshservice ticket.\n\nUse this tool to delete a specific time entry associated with a ticket in Freshservice. This is helpful when you need to update or correct time tracking records.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "ticket_id",
+ "required": true,
+ "description": "The unique identifier for the Freshservice ticket from which the time entry will be deleted. This must be an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of ticket"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "ticket_id"
+ },
+ {
+ "name": "time_entry_id",
+ "required": true,
+ "description": "The unique integer ID of the time entry to be deleted from the Freshservice ticket.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "time_entry_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-ticket-time-entry'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/time_entries/{time_entry_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "ticket_id",
+ "tool_parameter_name": "ticket_id",
+ "description": "ID of ticket",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of ticket"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "time_entry_id",
+ "tool_parameter_name": "time_entry_id",
+ "description": "ID of the time entry",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAllVendors.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAllVendors.json
new file mode 100644
index 00000000..1d4b32b4
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAllVendors.json
@@ -0,0 +1,145 @@
+{
+ "name": "FetchAllVendors",
+ "fully_qualified_name": "FreshserviceApi.FetchAllVendors@0.1.0",
+ "description": "Retrieve and list all vendors from Freshservice.\n\nCall this tool to obtain a comprehensive list of all vendors stored in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "Specify the number of vendor entries to retrieve for each page when listing vendors.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "Specify the page number to retrieve from the paginated list of vendors.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-vendors'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/vendors",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAnnouncementDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAnnouncementDetails.json
new file mode 100644
index 00000000..5e84ac27
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchAnnouncementDetails.json
@@ -0,0 +1,112 @@
+{
+ "name": "FetchAnnouncementDetails",
+ "fully_qualified_name": "FreshserviceApi.FetchAnnouncementDetails@0.1.0",
+ "description": "Retrieve specific announcement details from Freshservice.\n\nUse this tool to fetch details of a specific announcement using its ID in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "announcement_id",
+ "required": true,
+ "description": "The unique integer ID of the announcement to retrieve from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of Announcement to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "announcement_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-announcement'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/announcements/{announcement_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "announcement_id",
+ "tool_parameter_name": "announcement_id",
+ "description": "ID of Announcement to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of Announcement to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchLocationDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchLocationDetails.json
new file mode 100644
index 00000000..334dfa3f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchLocationDetails.json
@@ -0,0 +1,112 @@
+{
+ "name": "FetchLocationDetails",
+ "fully_qualified_name": "FreshserviceApi.FetchLocationDetails@0.1.0",
+ "description": "Retrieve details of a specific location by ID.\n\nThis tool is used to get information about a specific location using its ID in the Freshservice system. It should be called when detailed information about a location is needed.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "location_identifier",
+ "required": true,
+ "description": "The ID of the location to be retrieved. It should be an integer representing a specific location in the Freshservice system.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "location_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-location'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/locations/{location_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "location_id",
+ "tool_parameter_name": "location_identifier",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseNote.json
new file mode 100644
index 00000000..5e90e175
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseNote.json
@@ -0,0 +1,145 @@
+{
+ "name": "FetchReleaseNote",
+ "fully_qualified_name": "FreshserviceApi.FetchReleaseNote@0.1.0",
+ "description": "Retrieve a note on a release by ID from Freshservice.\n\nCall this tool to get details of a specific note from a release by providing the release ID and note ID in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "release_id",
+ "required": true,
+ "description": "The unique integer ID representing the release in Freshservice to retrieve the note from.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "release_id"
+ },
+ {
+ "name": "note_id",
+ "required": true,
+ "description": "The unique identifier for the note to be retrieved. It must be an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the note"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "note_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-release-note'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/notes/{note_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "release_id",
+ "tool_parameter_name": "release_id",
+ "description": "ID of release",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "note_id",
+ "tool_parameter_name": "note_id",
+ "description": "ID of the note",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the note"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseTimeEntry.json
new file mode 100644
index 00000000..290201e3
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchReleaseTimeEntry.json
@@ -0,0 +1,145 @@
+{
+ "name": "FetchReleaseTimeEntry",
+ "fully_qualified_name": "FreshserviceApi.FetchReleaseTimeEntry@0.1.0",
+ "description": "Retrieve details of a release time entry by ID.\n\nUse this tool to obtain information about a specific time entry associated with a release by providing the release and time entry IDs.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "release_id",
+ "required": true,
+ "description": "The unique integer ID of the release for which you want to fetch the time entry details. This identifies the specific release in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "release_id"
+ },
+ {
+ "name": "time_entry_id",
+ "required": true,
+ "description": "The integer ID of the specific time entry you want to retrieve from a release.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "time_entry_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-release-time-entry'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/time_entries/{time_entry_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "release_id",
+ "tool_parameter_name": "release_id",
+ "description": "ID of release",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "time_entry_id",
+ "tool_parameter_name": "time_entry_id",
+ "description": "ID of the time entry",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketDetails.json
new file mode 100644
index 00000000..a66935b0
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketDetails.json
@@ -0,0 +1,145 @@
+{
+ "name": "FetchTicketDetails",
+ "fully_qualified_name": "FreshserviceApi.FetchTicketDetails@0.1.0",
+ "description": "Retrieve details of a FreshService ticket using its ID.\n\nUse this tool to obtain detailed information about a specific ticket in FreshService by providing the ticket ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "ticket_id",
+ "required": true,
+ "description": "ID of the Freshservice ticket to be retrieved.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the ticket to be fetched"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "ticket_id"
+ },
+ {
+ "name": "include_fields_in_ticket_response",
+ "required": false,
+ "description": "Specify fields to include in the ticket response, such as 'stats', 'requester', 'conversations', etc.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to include certain fields in response. E.g. '?include=stats' Will return the ticket\u2019s closed_at, resolved_at and first_responded_at time. '?include=requester' Will return the requester's email, id, mobile, name, and phone. Supported options - [conversations, requester, problem, stats, assets, change, related_tickets]"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "include"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-ticket'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "include",
+ "tool_parameter_name": "include_fields_in_ticket_response",
+ "description": "Query param to include certain fields in response. E.g. '?include=stats' Will return the ticket\u2019s closed_at, resolved_at and first_responded_at time. '?include=requester' Will return the requester's email, id, mobile, name, and phone. Supported options - [conversations, requester, problem, stats, assets, change, related_tickets]",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to include certain fields in response. E.g. '?include=stats' Will return the ticket\u2019s closed_at, resolved_at and first_responded_at time. '?include=requester' Will return the requester's email, id, mobile, name, and phone. Supported options - [conversations, requester, problem, stats, assets, change, related_tickets]"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "ticket_id",
+ "tool_parameter_name": "ticket_id",
+ "description": "ID of the ticket to be fetched",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the ticket to be fetched"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketList.json
new file mode 100644
index 00000000..1eba7f45
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/FetchTicketList.json
@@ -0,0 +1,277 @@
+{
+ "name": "FetchTicketList",
+ "fully_qualified_name": "FreshserviceApi.FetchTicketList@0.1.0",
+ "description": "Fetches the list of all support tickets in Freshservice.\n\nUse this tool to obtain a comprehensive list of all tickets available in the Freshservice system. Ideal for reviewing, updating, or analyzing support requests.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "ticket_filter_type",
+ "required": false,
+ "description": "Apply pre-defined filters to fetch specific ticket sets. Options: 'new_and_my_open', 'watching', 'spam', 'deleted'.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Pre-defined filters. The filters available are [new_and_my_open, watching, spam, deleted]."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "filter"
+ },
+ {
+ "name": "requester_email_filter",
+ "required": false,
+ "description": "Filter tickets by the requester's email ID to retrieve specific ticket data.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to filter out tickets requester's email id."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "email"
+ },
+ {
+ "name": "filter_by_requester_id",
+ "required": false,
+ "description": "Filter tickets created by a specific requester using their ID.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to filter out tickets created by a particular requester."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "requester_id"
+ },
+ {
+ "name": "filter_by_updated_since",
+ "required": false,
+ "description": "Specify the ISO 8601 date-time to filter tickets updated since that time. Example: '2015-01-19T02:00:00Z'.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to filter out tickets based on updated time. E.g. '?updated_since=2015-01-19T02:00:00Z'."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "updated_since"
+ },
+ {
+ "name": "fields_to_include_in_response",
+ "required": false,
+ "description": "Specify which additional fields to include in the ticket response. Options are 'stats' and 'requester'.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to include certain fields in response. E.g. '?include=stats' Will return the ticket\u2019s closed_at, resolved_at and first_responded_at time. '?include=requester' Will return the requester's email, id, mobile, name, and phone."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "include"
+ },
+ {
+ "name": "sort_order",
+ "required": false,
+ "description": "Order to sort the ticket list. Supported values: 'asc' for ascending and 'desc' for descending. Default is 'desc'.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to sort the list of tickets. Supported values - 'asc' and 'desc'. Default is 'desc'"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "order_type"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-tickets'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "filter",
+ "tool_parameter_name": "ticket_filter_type",
+ "description": "Pre-defined filters. The filters available are [new_and_my_open, watching, spam, deleted].",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Pre-defined filters. The filters available are [new_and_my_open, watching, spam, deleted]."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "email",
+ "tool_parameter_name": "requester_email_filter",
+ "description": "Query param to filter out tickets requester's email id.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to filter out tickets requester's email id."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "requester_id",
+ "tool_parameter_name": "filter_by_requester_id",
+ "description": "Query param to filter out tickets created by a particular requester.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to filter out tickets created by a particular requester."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "updated_since",
+ "tool_parameter_name": "filter_by_updated_since",
+ "description": "Query param to filter out tickets based on updated time. E.g. '?updated_since=2015-01-19T02:00:00Z'.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to filter out tickets based on updated time. E.g. '?updated_since=2015-01-19T02:00:00Z'."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "include",
+ "tool_parameter_name": "fields_to_include_in_response",
+ "description": "Query param to include certain fields in response. E.g. '?include=stats' Will return the ticket\u2019s closed_at, resolved_at and first_responded_at time. '?include=requester' Will return the requester's email, id, mobile, name, and phone.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to include certain fields in response. E.g. '?include=stats' Will return the ticket\u2019s closed_at, resolved_at and first_responded_at time. '?include=requester' Will return the requester's email, id, mobile, name, and phone."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "order_type",
+ "tool_parameter_name": "sort_order",
+ "description": "Query param to sort the list of tickets. Supported values - 'asc' and 'desc'. Default is 'desc'",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to sort the list of tickets. Supported values - 'asc' and 'desc'. Default is 'desc'"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupInfo.json
new file mode 100644
index 00000000..47a5d614
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAgentGroupInfo.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetAgentGroupInfo",
+ "fully_qualified_name": "FreshserviceApi.GetAgentGroupInfo@0.1.0",
+ "description": "Retrieve details of a Freshservice agent group by ID.\n\nUse this tool to get information about a specific agent group in Freshservice by providing the agent group ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "agent_group_identifier",
+ "required": true,
+ "description": "The unique integer ID of the Freshservice agent group to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the agent group to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "agent_group_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-agent-group'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups/{agent_group_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "agent_group_id",
+ "tool_parameter_name": "agent_group_identifier",
+ "description": "ID of the agent group to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the agent group to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllCsatSurveys.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllCsatSurveys.json
new file mode 100644
index 00000000..15b11bc6
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllCsatSurveys.json
@@ -0,0 +1,178 @@
+{
+ "name": "GetAllCsatSurveys",
+ "fully_qualified_name": "FreshserviceApi.GetAllCsatSurveys@0.1.0",
+ "description": "Retrieve a list of all CSAT surveys in Freshservice.\n\nUse this tool to obtain a list of all Customer Satisfaction (CSAT) surveys available in Freshservice. This can be useful for analyzing survey data or managing customer feedback efforts.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "filter_active_surveys",
+ "required": false,
+ "description": "Filter surveys by activity status. Use 1 for active and 0 for inactive.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to filter out active / inactive surveys. E.g. Passing the parameter active=1 will list the active survey."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "active"
+ },
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of entries to retrieve per page in a paginated list. Specify an integer value.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "survey_page_number",
+ "required": false,
+ "description": "The page number of CSAT surveys to retrieve for pagination.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-surveys'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/surveys",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "active",
+ "tool_parameter_name": "filter_active_surveys",
+ "description": "Query param to filter out active / inactive surveys. E.g. Passing the parameter active=1 will list the active survey.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to filter out active / inactive surveys. E.g. Passing the parameter active=1 will list the active survey."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "survey_page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllFreshserviceRequesters.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllFreshserviceRequesters.json
new file mode 100644
index 00000000..5edef5a1
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllFreshserviceRequesters.json
@@ -0,0 +1,310 @@
+{
+ "name": "GetAllFreshserviceRequesters",
+ "fully_qualified_name": "FreshserviceApi.GetAllFreshserviceRequesters@0.1.0",
+ "description": "Retrieve a list of all requesters in Freshservice.\n\nUse this tool to get a comprehensive list of all requesters from the Freshservice platform, suitable for managing or reviewing requester information.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "Number of entries to retrieve in each page of the paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "The page number to retrieve from the list of Freshservice requesters.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ },
+ {
+ "name": "requester_email",
+ "required": false,
+ "description": "The email address to find the corresponding requester.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The email address for which the corresponding requester needs to be listed."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "email"
+ },
+ {
+ "name": "filter_by_mobile_phone_number",
+ "required": false,
+ "description": "Filter requesters by their mobile phone number to return matching entries.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The mobile phone number for which the corresponding requesters need to be listed."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "mobile_phone_number"
+ },
+ {
+ "name": "work_phone_number_for_requesters",
+ "required": false,
+ "description": "The work phone number to filter requesters with that specific number in Freshservice.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The work phone number for which the corresponding requesters need to be listed."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "work_phone_number"
+ },
+ {
+ "name": "query_filter",
+ "required": false,
+ "description": "URL-encoded query filter to apply to the list of requesters. Supports first_name, last_name, job_title, primary_email, and more.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The simple or compound query which needs to be applied as a filter to the list of requesters. This string needs to be URL encoded.
Supported Query Parameters:
first_name, last_name, job_title, primary_email, secondary_emails, work_phone_number, mobile_phone_number, department_id, reporting_manager_id, time_zone, language, location_id, created_at, updated_at, (all custom fields).
Sample Query: https://account.freshservice.com/api/v2/requesters?query=\"job_titile:'HR Manager' AND created_at:>'2018-08-10'\""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "query"
+ },
+ {
+ "name": "filter_active_accounts",
+ "required": false,
+ "description": "Include only active user accounts if true. If false, include only deactivated accounts. Leaving unspecified returns both.",
+ "value_schema": {
+ "val_type": "boolean",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Signifies if the user accounts to be listed are active (true), or have been deactivated. Not applying this filter returns both active and deactivated accounts."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "active"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-requesters'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "email",
+ "tool_parameter_name": "requester_email",
+ "description": "The email address for which the corresponding requester needs to be listed.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The email address for which the corresponding requester needs to be listed."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "mobile_phone_number",
+ "tool_parameter_name": "filter_by_mobile_phone_number",
+ "description": "The mobile phone number for which the corresponding requesters need to be listed.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The mobile phone number for which the corresponding requesters need to be listed."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "work_phone_number",
+ "tool_parameter_name": "work_phone_number_for_requesters",
+ "description": "The work phone number for which the corresponding requesters need to be listed.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The work phone number for which the corresponding requesters need to be listed."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "active",
+ "tool_parameter_name": "filter_active_accounts",
+ "description": "Signifies if the user accounts to be listed are active (true), or have been deactivated. Not applying this filter returns both active and deactivated accounts.",
+ "value_schema": {
+ "val_type": "boolean",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Signifies if the user accounts to be listed are active (true), or have been deactivated. Not applying this filter returns both active and deactivated accounts."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "query",
+ "tool_parameter_name": "query_filter",
+ "description": "The simple or compound query which needs to be applied as a filter to the list of requesters. This string needs to be URL encoded.
Supported Query Parameters:
first_name, last_name, job_title, primary_email, secondary_emails, work_phone_number, mobile_phone_number, department_id, reporting_manager_id, time_zone, language, location_id, created_at, updated_at, (all custom fields).
Sample Query: https://account.freshservice.com/api/v2/requesters?query=\"job_titile:'HR Manager' AND created_at:>'2018-08-10'\"",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The simple or compound query which needs to be applied as a filter to the list of requesters. This string needs to be URL encoded.
Supported Query Parameters:
first_name, last_name, job_title, primary_email, secondary_emails, work_phone_number, mobile_phone_number, department_id, reporting_manager_id, time_zone, language, location_id, created_at, updated_at, (all custom fields).
Sample Query: https://account.freshservice.com/api/v2/requesters?query=\"job_titile:'HR Manager' AND created_at:>'2018-08-10'\""
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllLocations.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllLocations.json
new file mode 100644
index 00000000..56bd4871
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAllLocations.json
@@ -0,0 +1,145 @@
+{
+ "name": "GetAllLocations",
+ "fully_qualified_name": "FreshserviceApi.GetAllLocations@0.1.0",
+ "description": "Retrieve a list of all locations in Freshservice.\n\n",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of entries to retrieve per page when listing locations. Typically an integer value.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "The page number of locations to retrieve from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-locations'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/locations",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetApplicationLicenses.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetApplicationLicenses.json
new file mode 100644
index 00000000..a746a31d
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetApplicationLicenses.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetApplicationLicenses",
+ "fully_qualified_name": "FreshserviceApi.GetApplicationLicenses@0.1.0",
+ "description": "Retrieve licenses linked to a specific software application.\n\nUse this tool to get a list of all licenses associated with a specific application by providing the application ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "application_id",
+ "required": true,
+ "description": "The unique identifier for the software application to retrieve licenses for. Provide as an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "application_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-application-licenses'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/applications/{application_id}/licenses",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "application_id",
+ "tool_parameter_name": "application_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetContracts.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetContracts.json
new file mode 100644
index 00000000..2fd14772
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetContracts.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetAssetContracts",
+ "fully_qualified_name": "FreshserviceApi.GetAssetContracts@0.1.0",
+ "description": "Retrieve all contracts linked to a specific asset.\n\nThis tool calls the Freshservice API to retrieve a list of contracts that are linked to a specified asset. It should be used whenever detailed information about asset contracts is needed.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "asset_display_id",
+ "required": true,
+ "description": "The unique display ID of the asset to retrieve contracts for.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "display_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-asset-contracts'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/contracts",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "display_id",
+ "tool_parameter_name": "asset_display_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetDetails.json
new file mode 100644
index 00000000..d661d1ff
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetDetails.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetAssetDetails",
+ "fully_qualified_name": "FreshserviceApi.GetAssetDetails@0.1.0",
+ "description": "Retrieve details of a specific asset by ID.\n\nThis tool is used to obtain detailed information about a specific asset using its display ID in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "asset_display_id",
+ "required": true,
+ "description": "The unique display ID of the asset to retrieve details from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "display_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-asset'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "display_id",
+ "tool_parameter_name": "asset_display_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetFields.json
new file mode 100644
index 00000000..7aaa5da7
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetFields.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetAssetFields",
+ "fully_qualified_name": "FreshserviceApi.GetAssetFields@0.1.0",
+ "description": "Retrieve asset fields for a specific asset type.\n\nUse this tool to get the list of asset fields for a particular asset type in Freshservice. This includes both default fields and asset-type-specific fields, returned in the order they appear in the UI.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "asset_type_identifier",
+ "required": true,
+ "description": "The unique identifier for the asset type to retrieve its fields in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "asset_type_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-asset-type-fields'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types/{asset_type_id}/fields",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "asset_type_id",
+ "tool_parameter_name": "asset_type_identifier",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetList.json
new file mode 100644
index 00000000..a7c7617b
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetList.json
@@ -0,0 +1,277 @@
+{
+ "name": "GetAssetList",
+ "fully_qualified_name": "FreshserviceApi.GetAssetList@0.1.0",
+ "description": "Retrieve a list of all assets from Freshservice.\n\nUse this tool to get details about all assets managed in Freshservice, such as hardware and software resources.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "Specify the number of entries to retrieve per page for pagination. Not applicable with search or filter queries.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list. This is not applicable when search or filter query is present."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The page number to retrieve for paginated asset lists.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ },
+ {
+ "name": "include_asset_type_fields",
+ "required": false,
+ "description": "Specify asset type fields to include in the response. Use this to get additional data about each asset type.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to include asset type fields in response."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "include"
+ },
+ {
+ "name": "apply_asset_filter",
+ "required": false,
+ "description": "A URL-encoded string to filter the asset list. Supports parameters like asset_type_id, department_id, and more.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The simple or compound query which needs to be applied as a filter to the list of asset. This string needs to be URL encoded.
Supported Query Parameters:
asset_type_id, department_id, location_id, asset_state, user_id, agent_id, name, asset_tag, created_at, updated_at.
Sample Query: https://account.freshservice.com/api/v2/assets?filter=\"asset_type_id:12034 AND asset_tag:'HSN2323' AND created_at:>'2018-08-10'\""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "filter"
+ },
+ {
+ "name": "asset_search_query",
+ "required": false,
+ "description": "A simple query to search assets by name, asset_tag, or serial_number. Formulate queries like \"name:'dell monitor'\".",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The simple query which needs to be applied to search an asset from the list of assets.
Supported Query Parameters:
name, asset_tag, serial_number.
Sample Query: https://account.freshservice.com/api/v2/assets?search=\"name:'dell monitor'\""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "search"
+ },
+ {
+ "name": "include_trashed_assets",
+ "required": false,
+ "description": "Set to true to list assets in trash.",
+ "value_schema": {
+ "val_type": "boolean",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "List assets in trash."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "trashed"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-assets'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list. This is not applicable when search or filter query is present.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list. This is not applicable when search or filter query is present."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "trashed",
+ "tool_parameter_name": "include_trashed_assets",
+ "description": "List assets in trash.",
+ "value_schema": {
+ "val_type": "boolean",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "List assets in trash."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "include",
+ "tool_parameter_name": "include_asset_type_fields",
+ "description": "Query param to include asset type fields in response.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Query param to include asset type fields in response."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "filter",
+ "tool_parameter_name": "apply_asset_filter",
+ "description": "The simple or compound query which needs to be applied as a filter to the list of asset. This string needs to be URL encoded.
Supported Query Parameters:
asset_type_id, department_id, location_id, asset_state, user_id, agent_id, name, asset_tag, created_at, updated_at.
Sample Query: https://account.freshservice.com/api/v2/assets?filter=\"asset_type_id:12034 AND asset_tag:'HSN2323' AND created_at:>'2018-08-10'\"",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The simple or compound query which needs to be applied as a filter to the list of asset. This string needs to be URL encoded.
Supported Query Parameters:
asset_type_id, department_id, location_id, asset_state, user_id, agent_id, name, asset_tag, created_at, updated_at.
Sample Query: https://account.freshservice.com/api/v2/assets?filter=\"asset_type_id:12034 AND asset_tag:'HSN2323' AND created_at:>'2018-08-10'\""
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "search",
+ "tool_parameter_name": "asset_search_query",
+ "description": "The simple query which needs to be applied to search an asset from the list of assets.
Supported Query Parameters:
name, asset_tag, serial_number.
Sample Query: https://account.freshservice.com/api/v2/assets?search=\"name:'dell monitor'\"",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The simple query which needs to be applied to search an asset from the list of assets.
Supported Query Parameters:
name, asset_tag, serial_number.
Sample Query: https://account.freshservice.com/api/v2/assets?search=\"name:'dell monitor'\""
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypes.json
new file mode 100644
index 00000000..9aa168ee
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetAssetTypes.json
@@ -0,0 +1,145 @@
+{
+ "name": "GetAssetTypes",
+ "fully_qualified_name": "FreshserviceApi.GetAssetTypes@0.1.0",
+ "description": "Retrieve all asset types from Freshservice.\n\nUse this tool to get a comprehensive list of asset types available in Freshservice, useful for asset management and categorization.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of asset type entries to retrieve per page in the paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The page number to retrieve from the list of asset types.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-asset-types'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfig.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfig.json
new file mode 100644
index 00000000..f425c27b
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfig.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetBusinessHoursConfig",
+ "fully_qualified_name": "FreshserviceApi.GetBusinessHoursConfig@0.1.0",
+ "description": "Retrieve Freshservice Business Hours configuration by ID.\n\nUse this tool to get the Business Hours configuration from Freshservice using the specified ID. It helps in accessing detailed information about business operating hours as configured in the Freshservice system.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "business_hours_configuration_id",
+ "required": true,
+ "description": "The ID of the Business Hours configuration to retrieve from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of Business Hours configuration to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "business_hours_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-business-hours-config'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/business_hours/{business_hours_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "business_hours_id",
+ "tool_parameter_name": "business_hours_configuration_id",
+ "description": "ID of Business Hours configuration to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of Business Hours configuration to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfigs.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfigs.json
new file mode 100644
index 00000000..92c8fa50
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetBusinessHoursConfigs.json
@@ -0,0 +1,145 @@
+{
+ "name": "GetBusinessHoursConfigs",
+ "fully_qualified_name": "FreshserviceApi.GetBusinessHoursConfigs@0.1.0",
+ "description": "Retrieve a list of all Business Hours configurations from Freshservice.\n\nCall this tool to obtain the current Business Hours configurations from Freshservice. Useful for understanding operation times and support availability.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of Business Hours configurations to retrieve per page in the paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "requested_page_number",
+ "required": false,
+ "description": "Specify the page number of results you want to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-business-hours-configs'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/business_hours",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "requested_page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponse.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponse.json
new file mode 100644
index 00000000..1cf9dd56
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponse.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetCannedResponse",
+ "fully_qualified_name": "FreshserviceApi.GetCannedResponse@0.1.0",
+ "description": "Retrieve a specific Canned Response by ID from Freshservice.\n\nCall this tool to get details of a specific Canned Response using its ID. Useful for accessing predefined responses in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "canned_response_id",
+ "required": true,
+ "description": "The unique ID of the Canned Response you want to retrieve from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of Canned Response to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "canned_response_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-canned-response'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response/{canned_response_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "canned_response_id",
+ "tool_parameter_name": "canned_response_id",
+ "description": "ID of Canned Response to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of Canned Response to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponseFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponseFolder.json
new file mode 100644
index 00000000..387b0a0e
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponseFolder.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetCannedResponseFolder",
+ "fully_qualified_name": "FreshserviceApi.GetCannedResponseFolder@0.1.0",
+ "description": "Retrieve a specific canned response folder from Freshservice.\n\nUse this tool to fetch details of a specific canned response folder in Freshservice by providing the folder ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "canned_response_folder_id",
+ "required": true,
+ "description": "The ID of the canned response folder to retrieve from Freshservice. It should be an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of Canned Response to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "canned_response_folder_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-canned-response-folder'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folder/{canned_response_folder_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "canned_response_folder_id",
+ "tool_parameter_name": "canned_response_folder_id",
+ "description": "ID of Canned Response to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of Canned Response to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponses.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponses.json
new file mode 100644
index 00000000..ee49aec2
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCannedResponses.json
@@ -0,0 +1,77 @@
+{
+ "name": "GetCannedResponses",
+ "fully_qualified_name": "FreshserviceApi.GetCannedResponses@0.1.0",
+ "description": "Retrieve all canned responses from Freshservice.\n\nCall this tool to retrieve a list of all available canned responses stored in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": []
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-canned-responses'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_responses",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCatalogItemFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCatalogItemFields.json
new file mode 100644
index 00000000..40a16ec6
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCatalogItemFields.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetCatalogItemFields",
+ "fully_qualified_name": "FreshserviceApi.GetCatalogItemFields@0.1.0",
+ "description": "Retrieve all fields for a specific service catalog item.\n\nUse this tool to get detailed information about all fields associated with a particular service catalog item in Freshservice. It should be called when you need to understand the structure and content of a service item.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "service_item_id",
+ "required": true,
+ "description": "The ID of the service item to retrieve. Use an integer value representing the specific catalog item.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of service item to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "service_item_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-catalog-item-fields'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/catalog/item/{service_item_id}/fields",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "service_item_id",
+ "tool_parameter_name": "service_item_id",
+ "description": "ID of service item to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of service item to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeFormFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeFormFields.json
new file mode 100644
index 00000000..1baa0a5b
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeFormFields.json
@@ -0,0 +1,77 @@
+{
+ "name": "GetChangeFormFields",
+ "fully_qualified_name": "FreshserviceApi.GetChangeFormFields@0.1.0",
+ "description": "Retrieve all fields in the Change Object of Freshservice.\n\nCall this tool to obtain a list of all fields that make up the Change Object in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": []
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-change-form-fields'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/change_form_fields",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeTimeEntries.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeTimeEntries.json
new file mode 100644
index 00000000..e1301e1f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetChangeTimeEntries.json
@@ -0,0 +1,178 @@
+{
+ "name": "GetChangeTimeEntries",
+ "fully_qualified_name": "FreshserviceApi.GetChangeTimeEntries@0.1.0",
+ "description": "Retrieve time entries for a specific Change request.\n\nUse this tool to get the time entries associated with a particular Change request in Freshservice by providing the Change ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "change_request_id",
+ "required": true,
+ "description": "ID of the change request for which time entries should be retrieved. This is necessary to specify which change request's time entries are needed.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request for which time entries are to be retrieved"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "change_id"
+ },
+ {
+ "name": "time_entries_per_page",
+ "required": false,
+ "description": "Specify the number of time entries to retrieve per page. Helps in paginated responses.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of time entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "The page number to retrieve from the paginated list of time entries.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-change-time-entries'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/time_entries",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "time_entries_per_page",
+ "description": "The number of time entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of time entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "change_id",
+ "tool_parameter_name": "change_request_id",
+ "description": "ID of change request for which time entries are to be retrieved",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request for which time entries are to be retrieved"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetComponentTypes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetComponentTypes.json
new file mode 100644
index 00000000..c11e6d6b
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetComponentTypes.json
@@ -0,0 +1,145 @@
+{
+ "name": "GetComponentTypes",
+ "fully_qualified_name": "FreshserviceApi.GetComponentTypes@0.1.0",
+ "description": "Retrieve all component types in Freshservice.\n\nThis tool calls the Freshservice API to get a list of all component types along with the specific fields for each type. Use it when you need detailed information about the component types within Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of component type entries to retrieve per page in a paginated list. Specify an integer value.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The specific page number of component types to retrieve from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-component-types'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/component_types",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCsatSurvey.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCsatSurvey.json
new file mode 100644
index 00000000..fd6867ee
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetCsatSurvey.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetCsatSurvey",
+ "fully_qualified_name": "FreshserviceApi.GetCsatSurvey@0.1.0",
+ "description": "Retrieve a CSAT survey by its ID from Freshservice.\n\nUse this tool to get detailed information about a specific CSAT survey in Freshservice by providing the survey ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "csat_survey_id",
+ "required": true,
+ "description": "The ID of the CSAT survey to retrieve from Freshservice. It should be an integer value.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of CSAT survey to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "survey_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-survey'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/surveys/{survey_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "survey_id",
+ "tool_parameter_name": "csat_survey_id",
+ "description": "ID of CSAT survey to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of CSAT survey to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDepartmentFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDepartmentFields.json
new file mode 100644
index 00000000..d93d28aa
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDepartmentFields.json
@@ -0,0 +1,77 @@
+{
+ "name": "GetDepartmentFields",
+ "fully_qualified_name": "FreshserviceApi.GetDepartmentFields@0.1.0",
+ "description": "Retrieve department or company fields from Freshservice.\n\nUse this tool to obtain the department or company fields as displayed in Freshservice. Especially useful for understanding the available fields and their order in the user interface.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": []
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-department-fields'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/department_fields",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDeviceComponents.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDeviceComponents.json
new file mode 100644
index 00000000..2011e9e5
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetDeviceComponents.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetDeviceComponents",
+ "fully_qualified_name": "FreshserviceApi.GetDeviceComponents@0.1.0",
+ "description": "Retrieve all components of a specified device.\n\nUse this tool to get a comprehensive list of components for a specific device by its display ID. This is useful for inventory tracking, device management, or component verification.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "device_display_id",
+ "required": true,
+ "description": "The integer ID of the device whose components you want to list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "display_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-asset-components'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "display_id",
+ "tool_parameter_name": "device_display_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgents.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgents.json
new file mode 100644
index 00000000..4726c86b
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAgents.json
@@ -0,0 +1,343 @@
+{
+ "name": "GetFreshserviceAgents",
+ "fully_qualified_name": "FreshserviceApi.GetFreshserviceAgents@0.1.0",
+ "description": "Retrieve a list of all Agents in Freshservice.\n\nUse this tool to get a comprehensive list of all agents currently active in Freshservice, useful for administrative and reporting purposes.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of agent entries to retrieve in each page of a paginated list. Useful for controlling the size of paginated results.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "The specific page number of the agent list to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ },
+ {
+ "name": "requester_email",
+ "required": false,
+ "description": "The email address of the requester for which the corresponding agent needs to be listed.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The email address for which the corresponding requester needs to be listed."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "email"
+ },
+ {
+ "name": "filter_by_mobile_phone_number",
+ "required": false,
+ "description": "Filter agents by a specific mobile phone number to list the corresponding requesters.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The mobile phone number for which the corresponding requesters need to be listed."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "mobile_phone_number"
+ },
+ {
+ "name": "filter_by_work_phone_number",
+ "required": false,
+ "description": "Work phone number to filter the list of agents by their corresponding requesters.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The work phone number for which the corresponding requesters need to be listed."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "work_phone_number"
+ },
+ {
+ "name": "agent_type",
+ "required": false,
+ "description": "Filter agents by employment type: 'fulltime' or 'occasional'.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Signifies whether the agents to be listed are full-time agents or occasional agents. Supports two possible values - fulltime, occasional."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "state"
+ },
+ {
+ "name": "agent_query_filter",
+ "required": false,
+ "description": "URL-encoded string for filtering agents. Supports parameters like first_name, last_name, job_title, email, etc.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The simple or compound query which needs to be applied as a filter to the list of agents. This string needs to be URL encoded.
Supported Query Parameters:
first_name, last_name, job_title, email, work_phone_number, mobile_phone_number, department_id, reporting_manager_id, time_zone, language, location_id, created_at, updated_at, (all custom fields).
Sample Query: https://account.freshservice.com/api/v2/agents?query=\"job_titile:'HR Manager' AND created_at:>'2018-08-10'\""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "query"
+ },
+ {
+ "name": "filter_active_users",
+ "required": false,
+ "description": "Set to true to list active accounts, false to list deactivated ones, or omit to include both.",
+ "value_schema": {
+ "val_type": "boolean",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Signifies if the user accounts to be listed are active (true), or have been deactivated. Not applying this filter returns both active and deactivated accounts."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "active"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-agents'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agents",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "email",
+ "tool_parameter_name": "requester_email",
+ "description": "The email address for which the corresponding requester needs to be listed.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The email address for which the corresponding requester needs to be listed."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "mobile_phone_number",
+ "tool_parameter_name": "filter_by_mobile_phone_number",
+ "description": "The mobile phone number for which the corresponding requesters need to be listed.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The mobile phone number for which the corresponding requesters need to be listed."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "work_phone_number",
+ "tool_parameter_name": "filter_by_work_phone_number",
+ "description": "The work phone number for which the corresponding requesters need to be listed.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The work phone number for which the corresponding requesters need to be listed."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "state",
+ "tool_parameter_name": "agent_type",
+ "description": "Signifies whether the agents to be listed are full-time agents or occasional agents. Supports two possible values - fulltime, occasional.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Signifies whether the agents to be listed are full-time agents or occasional agents. Supports two possible values - fulltime, occasional."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "active",
+ "tool_parameter_name": "filter_active_users",
+ "description": "Signifies if the user accounts to be listed are active (true), or have been deactivated. Not applying this filter returns both active and deactivated accounts.",
+ "value_schema": {
+ "val_type": "boolean",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Signifies if the user accounts to be listed are active (true), or have been deactivated. Not applying this filter returns both active and deactivated accounts."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "query",
+ "tool_parameter_name": "agent_query_filter",
+ "description": "The simple or compound query which needs to be applied as a filter to the list of agents. This string needs to be URL encoded.
Supported Query Parameters:
first_name, last_name, job_title, email, work_phone_number, mobile_phone_number, department_id, reporting_manager_id, time_zone, language, location_id, created_at, updated_at, (all custom fields).
Sample Query: https://account.freshservice.com/api/v2/agents?query=\"job_titile:'HR Manager' AND created_at:>'2018-08-10'\"",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The simple or compound query which needs to be applied as a filter to the list of agents. This string needs to be URL encoded.
Supported Query Parameters:
first_name, last_name, job_title, email, work_phone_number, mobile_phone_number, department_id, reporting_manager_id, time_zone, language, location_id, created_at, updated_at, (all custom fields).
Sample Query: https://account.freshservice.com/api/v2/agents?query=\"job_titile:'HR Manager' AND created_at:>'2018-08-10'\""
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAnnouncements.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAnnouncements.json
new file mode 100644
index 00000000..7dd4925f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceAnnouncements.json
@@ -0,0 +1,178 @@
+{
+ "name": "GetFreshserviceAnnouncements",
+ "fully_qualified_name": "FreshserviceApi.GetFreshserviceAnnouncements@0.1.0",
+ "description": "Retrieve all announcements from Freshservice.\n\nUse this tool to get a list of all announcements available in Freshservice. It should be called when you need to display or review information about current announcements.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "announcement_state",
+ "required": false,
+ "description": "Specify the state of the announcements to retrieve: archived, active, scheduled, or unread.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "(archived, active, scheduled, unread)"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "state"
+ },
+ {
+ "name": "announcements_per_page",
+ "required": false,
+ "description": "Specify the number of announcements to retrieve per page for pagination.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of Announcements to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "retrieve_page_number",
+ "required": false,
+ "description": "Specify the page number of announcements to retrieve. Useful for navigating through paginated results.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-announcement'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/announcements",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "state",
+ "tool_parameter_name": "announcement_state",
+ "description": "(archived, active, scheduled, unread)",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "(archived, active, scheduled, unread)"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "per_page",
+ "tool_parameter_name": "announcements_per_page",
+ "description": "The number of Announcements to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of Announcements to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "retrieve_page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceCannedResponseFolders.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceCannedResponseFolders.json
new file mode 100644
index 00000000..ca030027
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceCannedResponseFolders.json
@@ -0,0 +1,77 @@
+{
+ "name": "GetFreshserviceCannedResponseFolders",
+ "fully_qualified_name": "FreshserviceApi.GetFreshserviceCannedResponseFolders@0.1.0",
+ "description": "Retrieve all canned response folders from Freshservice.\n\nUse this tool to retrieve a list of all canned response folders available in Freshservice. This can be useful for managing quick reply templates or automated responses within the Freshservice platform.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": []
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-canned-response-folders'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folders",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceDepartments.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceDepartments.json
new file mode 100644
index 00000000..00b503bd
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceDepartments.json
@@ -0,0 +1,145 @@
+{
+ "name": "GetFreshserviceDepartments",
+ "fully_qualified_name": "FreshserviceApi.GetFreshserviceDepartments@0.1.0",
+ "description": "Retrieve all departments from Freshservice.\n\nThis tool retrieves a list of all departments or companies (in MSP Mode) from Freshservice. It should be used when you need to access the department or company information maintained in the Freshservice platform.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of entries to retrieve per page in a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The specific page number of departments to retrieve from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-departments'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/departments",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceRequester.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceRequester.json
new file mode 100644
index 00000000..8506e7b2
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetFreshserviceRequester.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetFreshserviceRequester",
+ "fully_qualified_name": "FreshserviceApi.GetFreshserviceRequester@0.1.0",
+ "description": "Retrieve a requester by ID from Freshservice.\n\nThis tool is used to obtain information about a specific requester in Freshservice using their unique ID. Call this tool when you need details about a requester such as their profile or contact information.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "requester_id",
+ "required": true,
+ "description": "The unique integer ID of the requester to retrieve from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of requester to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "requester_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-requester'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{requester_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "requester_id",
+ "tool_parameter_name": "requester_id",
+ "description": "ID of requester to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of requester to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingRequestTickets.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingRequestTickets.json
new file mode 100644
index 00000000..ae3776bc
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetOnboardingRequestTickets.json
@@ -0,0 +1,77 @@
+{
+ "name": "GetOnboardingRequestTickets",
+ "fully_qualified_name": "FreshserviceApi.GetOnboardingRequestTickets@0.1.0",
+ "description": "Retrieve FreshService Tickets for a specific Onboarding Request.\n\nUse this tool to get detailed information about the FreshService Tickets linked to a specific Onboarding Request. It's useful for tracking the progress and details of onboarding activities.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": []
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-onboarding-request-tickets'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests/id/tickets",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemNotes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemNotes.json
new file mode 100644
index 00000000..1ea9a1ba
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemNotes.json
@@ -0,0 +1,178 @@
+{
+ "name": "GetProblemNotes",
+ "fully_qualified_name": "FreshserviceApi.GetProblemNotes@0.1.0",
+ "description": "Retrieve notes for a specific problem ID in Freshservice.\n\nThis tool retrieves the notes for a problem specified by its ID from Freshservice. It should be called when you need to access detailed notes or updates associated with a particular problem in the Freshservice system.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "problem_id",
+ "required": true,
+ "description": "The unique integer ID of the problem for which you want to retrieve notes from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem for which notes are to be retrieved"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "problem_id"
+ },
+ {
+ "name": "notes_per_page",
+ "required": false,
+ "description": "The number of notes to retrieve per page in the paginated results.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of notes to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The page number of the notes to retrieve for pagination purposes.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-problem-notes'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "notes_per_page",
+ "description": "The number of notes to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of notes to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "problem_id",
+ "tool_parameter_name": "problem_id",
+ "description": "ID of problem for which notes are to be retrieved",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem for which notes are to be retrieved"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTasks.json
new file mode 100644
index 00000000..37c387a7
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTasks.json
@@ -0,0 +1,178 @@
+{
+ "name": "GetProblemTasks",
+ "fully_qualified_name": "FreshserviceApi.GetProblemTasks@0.1.0",
+ "description": "Retrieve tasks for a specific problem from Freshservice.\n\nUse this tool to get a list of tasks associated with a specific problem by providing the problem ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "problem_id",
+ "required": true,
+ "description": "The ID of the problem for which tasks need to be retrieved from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem for which tasks are to be retrieved"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "problem_id"
+ },
+ {
+ "name": "tasks_per_page",
+ "required": false,
+ "description": "Specify the number of tasks to retrieve per page for pagination.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of tasks to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The specific page number of tasks to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-problem-tasks'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "tasks_per_page",
+ "description": "The number of tasks to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of tasks to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "problem_id",
+ "tool_parameter_name": "problem_id",
+ "description": "ID of problem for which tasks are to be retrieved",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem for which tasks are to be retrieved"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntries.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntries.json
new file mode 100644
index 00000000..ce3ba933
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntries.json
@@ -0,0 +1,178 @@
+{
+ "name": "GetProblemTimeEntries",
+ "fully_qualified_name": "FreshserviceApi.GetProblemTimeEntries@0.1.0",
+ "description": "Retrieve time entries for a specific problem by ID.\n\nUse this tool to get the time entries associated with a problem by providing its ID. Useful for tracking and managing the time spent on problem resolution.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "problem_id",
+ "required": true,
+ "description": "ID of the problem for which time entries need to be retrieved. This is an integer value.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem for which time entries are to be retrieved"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "problem_id"
+ },
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of time entries to retrieve per page in a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of time entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "The page number to retrieve in the paginated list of time entries.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-problem-time-entries'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/time_entries",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of time entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of time entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "problem_id",
+ "tool_parameter_name": "problem_id",
+ "description": "ID of problem for which time entries are to be retrieved",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem for which time entries are to be retrieved"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntry.json
new file mode 100644
index 00000000..c2cc1623
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProblemTimeEntry.json
@@ -0,0 +1,145 @@
+{
+ "name": "GetProblemTimeEntry",
+ "fully_qualified_name": "FreshserviceApi.GetProblemTimeEntry@0.1.0",
+ "description": "Retrieve time entry details for a specific problem.\n\nUse this tool to obtain information about a particular time entry associated with a problem in Freshservice. This can be useful for tracking time spent on solving issues.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "problem_id",
+ "required": true,
+ "description": "The unique identifier for the problem to retrieve a time entry from in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "problem_id"
+ },
+ {
+ "name": "time_entry_id",
+ "required": true,
+ "description": "The unique integer ID of the time entry to be retrieved.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "time_entry_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-problem-time-entry'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/time_entries/{time_entry_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "problem_id",
+ "tool_parameter_name": "problem_id",
+ "description": "ID of problem",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "time_entry_id",
+ "tool_parameter_name": "time_entry_id",
+ "description": "ID of the time entry",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProductDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProductDetails.json
new file mode 100644
index 00000000..1015ed3c
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProductDetails.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetProductDetails",
+ "fully_qualified_name": "FreshserviceApi.GetProductDetails@0.1.0",
+ "description": "Retrieve a specific Product from the Product Catalog.\n\nCall this tool to get details about a specific product by providing the product ID. It accesses the Freshservice Product Catalog to retrieve the necessary information.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "product_id",
+ "required": true,
+ "description": "The unique identifier for the product in the Freshservice Product Catalog to retrieve details.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "product_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-product'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/products/{product_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "product_id",
+ "tool_parameter_name": "product_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectTaskDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectTaskDetails.json
new file mode 100644
index 00000000..3345d77e
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetProjectTaskDetails.json
@@ -0,0 +1,145 @@
+{
+ "name": "GetProjectTaskDetails",
+ "fully_qualified_name": "FreshserviceApi.GetProjectTaskDetails@0.1.0",
+ "description": "Retrieve detailed information about a project task in Freshservice.\n\nUse this tool to get comprehensive details about a specific task within a project on Freshservice, including its status, assigned personnel, and other relevant information.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "task_id",
+ "required": true,
+ "description": "The unique identifier for the task to retrieve details.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Task id"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "id"
+ },
+ {
+ "name": "project_id",
+ "required": true,
+ "description": "The unique identifier for the project to which the task belongs.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Project id of the task"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "project_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-project-task'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}/tasks/{id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "id",
+ "tool_parameter_name": "task_id",
+ "description": "Task id",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Task id"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "project_id",
+ "tool_parameter_name": "project_id",
+ "description": "Project id of the task",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Project id of the task"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetPurchaseOrder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetPurchaseOrder.json
new file mode 100644
index 00000000..4e09b88f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetPurchaseOrder.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetPurchaseOrder",
+ "fully_qualified_name": "FreshserviceApi.GetPurchaseOrder@0.1.0",
+ "description": "Retrieve details of an existing purchase order by ID.\n\nUse this tool to fetch the details of a specific purchase order using its ID. This is useful when you need to view or verify purchase order information.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "purchase_order_id",
+ "required": true,
+ "description": "The unique identifier for the purchase order you wish to retrieve. This must be an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "purchase_order_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-purchase-order'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders/{purchase_order_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "purchase_order_id",
+ "tool_parameter_name": "purchase_order_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseDetails.json
new file mode 100644
index 00000000..9ac45ca8
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseDetails.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetReleaseDetails",
+ "fully_qualified_name": "FreshserviceApi.GetReleaseDetails@0.1.0",
+ "description": "Retrieve details of a specific release by ID in Freshservice.\n\nUse this tool to get information about a release from Freshservice by providing the release ID. It fetches the release details from the Freshservice platform.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "release_identifier",
+ "required": true,
+ "description": "The ID of the release you want to retrieve from Freshservice. Provide the specific release ID as an integer to get its details.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of Release to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "release_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-release'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/release/{release_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "release_id",
+ "tool_parameter_name": "release_identifier",
+ "description": "ID of Release to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of Release to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseFormFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseFormFields.json
new file mode 100644
index 00000000..7056fa4e
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseFormFields.json
@@ -0,0 +1,77 @@
+{
+ "name": "GetReleaseFormFields",
+ "fully_qualified_name": "FreshserviceApi.GetReleaseFormFields@0.1.0",
+ "description": "Retrieve all fields of the release object form.\n\nUse this tool to obtain all the fields that constitute a release object in the Freshservice platform.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": []
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-release-form-fields'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/release_form_fields",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseNotes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseNotes.json
new file mode 100644
index 00000000..68670592
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseNotes.json
@@ -0,0 +1,178 @@
+{
+ "name": "GetReleaseNotes",
+ "fully_qualified_name": "FreshserviceApi.GetReleaseNotes@0.1.0",
+ "description": "Retrieve release notes from Freshservice using a release ID.\n\nUse this tool to get the notes associated with a specific release in Freshservice by providing the release ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "release_id",
+ "required": true,
+ "description": "The ID of the release for which notes are to be retrieved.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release for which notes are to be retrieved"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "release_id"
+ },
+ {
+ "name": "notes_per_page",
+ "required": false,
+ "description": "The number of release notes to retrieve in each page.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of notes to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "retrieve_page_number",
+ "required": false,
+ "description": "The specific page number of release notes to retrieve. Useful for paginated results.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-release-note'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/notes",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "notes_per_page",
+ "description": "The number of notes to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of notes to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "retrieve_page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "release_id",
+ "tool_parameter_name": "release_id",
+ "description": "ID of release for which notes are to be retrieved",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release for which notes are to be retrieved"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseTimeEntries.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseTimeEntries.json
new file mode 100644
index 00000000..d41eae10
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleaseTimeEntries.json
@@ -0,0 +1,178 @@
+{
+ "name": "GetReleaseTimeEntries",
+ "fully_qualified_name": "FreshserviceApi.GetReleaseTimeEntries@0.1.0",
+ "description": "Retrieve time entries for a specific release in Freshservice.\n\nUse this tool to get detailed time entry information associated with a specific release ID from Freshservice. It should be called when you need to analyze or report on time logged for release activities.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "release_id",
+ "required": true,
+ "description": "The unique ID of the release for which time entries are to be retrieved in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release for which time entries are to be retrieved"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "release_id"
+ },
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of time entries to retrieve per page in the paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of time entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "The page number to retrieve in the paginated list of time entries.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-release-time-entries'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/time_entries",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of time entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of time entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "release_id",
+ "tool_parameter_name": "release_id",
+ "description": "ID of release for which time entries are to be retrieved",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release for which time entries are to be retrieved"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleasesList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleasesList.json
new file mode 100644
index 00000000..8bfc19f8
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetReleasesList.json
@@ -0,0 +1,178 @@
+{
+ "name": "GetReleasesList",
+ "fully_qualified_name": "FreshserviceApi.GetReleasesList@0.1.0",
+ "description": "Retrieve a list of all Releases in Freshservice.\n\nUse this tool to get information on all current and past releases managed within Freshservice. It should be called when there's a need to gather release details for projects or updates.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "fetch_releases_updated_since",
+ "required": false,
+ "description": "Retrieve releases updated since a specific date in YYYY-MM-DD format.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Retrieve the releases by when it was last updated"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "updated_since"
+ },
+ {
+ "name": "releases_per_page",
+ "required": false,
+ "description": "The number of releases to retrieve per page in the paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of releases to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "Specify the page number of release data to retrieve for pagination.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-releases'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "updated_since",
+ "tool_parameter_name": "fetch_releases_updated_since",
+ "description": "Retrieve the releases by when it was last updated",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Retrieve the releases by when it was last updated"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "per_page",
+ "tool_parameter_name": "releases_per_page",
+ "description": "The number of releases to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of releases to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetRequesterFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetRequesterFields.json
new file mode 100644
index 00000000..bf364269
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetRequesterFields.json
@@ -0,0 +1,145 @@
+{
+ "name": "GetRequesterFields",
+ "fully_qualified_name": "FreshserviceApi.GetRequesterFields@0.1.0",
+ "description": "Retrieve all requester fields from Freshservice.\n\nCall this tool to obtain a comprehensive list of requester fields available in Freshservice. Useful for understanding the structure and available fields for requesters within the system.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of entries to retrieve per page in a paginated list for requester fields.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "Specify the page number of requester fields to retrieve from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-requester-fields'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requester_fields",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItemsList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItemsList.json
new file mode 100644
index 00000000..9bfdd2a6
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetServiceItemsList.json
@@ -0,0 +1,145 @@
+{
+ "name": "GetServiceItemsList",
+ "fully_qualified_name": "FreshserviceApi.GetServiceItemsList@0.1.0",
+ "description": "Retrieve a list of all Service Items in Freshservice.\n\n",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of service items to retrieve per page in a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "The page number to retrieve for paginated service items.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-service-items'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/service_items",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareInstallationList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareInstallationList.json
new file mode 100644
index 00000000..f588a783
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareInstallationList.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetSoftwareInstallationList",
+ "fully_qualified_name": "FreshserviceApi.GetSoftwareInstallationList@0.1.0",
+ "description": "Retrieve a list of devices where specified software is installed.\n\nUse this tool to get a list of all devices with a particular software application installed by providing the application ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "software_application_id",
+ "required": true,
+ "description": "The unique identifier of the software application to fetch the installation list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "application_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-application-installations'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/applications/{application_id}/installations",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "application_id",
+ "tool_parameter_name": "software_application_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareList.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareList.json
new file mode 100644
index 00000000..b6cc952f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSoftwareList.json
@@ -0,0 +1,145 @@
+{
+ "name": "GetSoftwareList",
+ "fully_qualified_name": "FreshserviceApi.GetSoftwareList@0.1.0",
+ "description": "Retrieve all software applications in Freshservice.\n\nUse this tool to get a complete list of software applications managed in Freshservice. It accesses the Freshservice API to provide detailed information about all registered software.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "Number of software entries to retrieve per page for pagination.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The page number of the software list to retrieve. Used for pagination.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-applications'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/applications",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionArticles.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionArticles.json
new file mode 100644
index 00000000..ed54d3fa
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionArticles.json
@@ -0,0 +1,211 @@
+{
+ "name": "GetSolutionArticles",
+ "fully_qualified_name": "FreshserviceApi.GetSolutionArticles@0.1.0",
+ "description": "Retrieve a list of Solution articles from Freshservice.\n\nUse this tool to get a comprehensive list of all Solution articles available in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "Specify the number of solution articles to retrieve per page in the paginated results.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The page number of the solution articles to retrieve from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ },
+ {
+ "name": "folder_identifier",
+ "required": false,
+ "description": "The numeric ID of the folder to list solution articles from.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The ID of the folder whose solution articles have to be listed."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "folder_id"
+ },
+ {
+ "name": "solution_category_id",
+ "required": false,
+ "description": "Specify the ID of the category whose solution articles are to be retrieved.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The ID of the category whose solution articles have to be listed."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "category_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-solution-article'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "folder_id",
+ "tool_parameter_name": "folder_identifier",
+ "description": "The ID of the folder whose solution articles have to be listed.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The ID of the folder whose solution articles have to be listed."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "category_id",
+ "tool_parameter_name": "solution_category_id",
+ "description": "The ID of the category whose solution articles have to be listed.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The ID of the category whose solution articles have to be listed."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionCategories.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionCategories.json
new file mode 100644
index 00000000..9667ae24
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetSolutionCategories.json
@@ -0,0 +1,145 @@
+{
+ "name": "GetSolutionCategories",
+ "fully_qualified_name": "FreshserviceApi.GetSolutionCategories@0.1.0",
+ "description": "Retrieve a list of all solution categories in Freshservice.\n\n",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of entries to retrieve per page in the paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "The page number to retrieve in the paginated list of solution categories.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-solution-category'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketConversations.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketConversations.json
new file mode 100644
index 00000000..43a4fa73
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketConversations.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetTicketConversations",
+ "fully_qualified_name": "FreshserviceApi.GetTicketConversations@0.1.0",
+ "description": "Fetches all conversations for a specific Freshservice ticket.\n\nUse this tool to get a list of all conversations associated with a specific ticket in Freshservice. It's useful for retrieving detailed communication history related to a ticket.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "ticket_id",
+ "required": true,
+ "description": "The ID of the Freshservice ticket for which conversations need to be fetched. This should be an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the ticket for which conversations has to be fetched"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "ticket_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-ticket-conversations'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/conversations",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "ticket_id",
+ "tool_parameter_name": "ticket_id",
+ "description": "ID of the ticket for which conversations has to be fetched",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the ticket for which conversations has to be fetched"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTasks.json
new file mode 100644
index 00000000..548a6923
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTasks.json
@@ -0,0 +1,178 @@
+{
+ "name": "GetTicketTasks",
+ "fully_qualified_name": "FreshserviceApi.GetTicketTasks@0.1.0",
+ "description": "Retrieve tasks for a specific Freshservice ticket.\n\nUse this tool to obtain all tasks linked to a given ticket in Freshservice by providing the ticket ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "ticket_request_id",
+ "required": true,
+ "description": "ID of the Freshservice ticket for which tasks are to be retrieved.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of ticket request for which tasks are to be retrieved"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "ticket_id"
+ },
+ {
+ "name": "tasks_per_page",
+ "required": false,
+ "description": "Specify the number of tasks to retrieve per page in the paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of tasks to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The specific page number to retrieve from the paginated list of tasks.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-ticket-tasks'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "tasks_per_page",
+ "description": "The number of tasks to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of tasks to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "ticket_id",
+ "tool_parameter_name": "ticket_request_id",
+ "description": "ID of ticket request for which tasks are to be retrieved",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of ticket request for which tasks are to be retrieved"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntries.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntries.json
new file mode 100644
index 00000000..66476313
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntries.json
@@ -0,0 +1,178 @@
+{
+ "name": "GetTicketTimeEntries",
+ "fully_qualified_name": "FreshserviceApi.GetTicketTimeEntries@0.1.0",
+ "description": "Retrieve time entries for a given ticket ID.\n\nUse this tool to fetch all time entries associated with a specific ticket ID on Freshservice. It helps track time spent on each ticket.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "ticket_request_id",
+ "required": true,
+ "description": "The unique ID of the ticket request to retrieve time entries for.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of ticket request for which time entries are to be retrieved"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "ticket_id"
+ },
+ {
+ "name": "number_of_entries_per_page",
+ "required": false,
+ "description": "The number of time entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of time entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The page number to retrieve from the paginated list of time entries.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-ticket-time-entries'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/time_entries",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "number_of_entries_per_page",
+ "description": "The number of time entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of time entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "ticket_id",
+ "tool_parameter_name": "ticket_request_id",
+ "description": "ID of ticket request for which time entries are to be retrieved",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of ticket request for which time entries are to be retrieved"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntry.json
new file mode 100644
index 00000000..27f770c5
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetTicketTimeEntry.json
@@ -0,0 +1,145 @@
+{
+ "name": "GetTicketTimeEntry",
+ "fully_qualified_name": "FreshserviceApi.GetTicketTimeEntry@0.1.0",
+ "description": "Retrieve a time entry for a specific ticket in Freshservice.\n\nUse this tool to access details of a time entry associated with a specific ticket request in Freshservice. It is useful for monitoring or auditing time spent on ticket resolutions.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "ticket_request_id",
+ "required": true,
+ "description": "The ID of the specific ticket request for which you want to retrieve the time entry. It must be an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of ticket request"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "ticket_id"
+ },
+ {
+ "name": "time_entry_id",
+ "required": true,
+ "description": "Provide the ID of the time entry to retrieve specific details from a ticket in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "time_entry_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-ticket-time-entry'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/time_entries/{time_entry_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "ticket_id",
+ "tool_parameter_name": "ticket_request_id",
+ "description": "ID of ticket request",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of ticket request"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "time_entry_id",
+ "tool_parameter_name": "time_entry_id",
+ "description": "ID of the time entry",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetUserOnboardingRequests.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetUserOnboardingRequests.json
new file mode 100644
index 00000000..4c382aee
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetUserOnboardingRequests.json
@@ -0,0 +1,77 @@
+{
+ "name": "GetUserOnboardingRequests",
+ "fully_qualified_name": "FreshserviceApi.GetUserOnboardingRequests@0.1.0",
+ "description": "Retrieve onboarding requests for a user.\n\nThis tool fetches all onboarding requests related to a specific user from Freshservice. It should be called when you need to view or manage a user's onboarding process and details.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": []
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-onboarding-requests'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorDetails.json
new file mode 100644
index 00000000..82d1e075
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/GetVendorDetails.json
@@ -0,0 +1,112 @@
+{
+ "name": "GetVendorDetails",
+ "fully_qualified_name": "FreshserviceApi.GetVendorDetails@0.1.0",
+ "description": "Retrieve details of a specific vendor by ID.\n\nUse this tool to get detailed information about a vendor by providing the vendor ID. It is helpful for accessing vendor-related data from your Freshservice account.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "vendor_identifier",
+ "required": true,
+ "description": "The unique ID of the vendor to retrieve. This ID is an integer and identifies the vendor in the Freshservice system.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "vendor_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-vendor'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/vendors/{vendor_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "vendor_id",
+ "tool_parameter_name": "vendor_identifier",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAllProducts.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAllProducts.json
new file mode 100644
index 00000000..ccf4f323
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAllProducts.json
@@ -0,0 +1,145 @@
+{
+ "name": "ListAllProducts",
+ "fully_qualified_name": "FreshserviceApi.ListAllProducts@0.1.0",
+ "description": "Retrieve a comprehensive list of products from Freshservice.\n\nUse this tool to obtain a complete list of products managed within Freshservice. This can be useful for inventory management, product categorization, and maintaining an updated product database.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "Specify the number of entries to retrieve in each page of the product list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "Specify the page number to retrieve from the paginated list of products.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-products'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/products",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssetRequests.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssetRequests.json
new file mode 100644
index 00000000..331c6a43
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListAssetRequests.json
@@ -0,0 +1,112 @@
+{
+ "name": "ListAssetRequests",
+ "fully_qualified_name": "FreshserviceApi.ListAssetRequests@0.1.0",
+ "description": "Retrieve all requests linked to a specific asset.\n\nUse this tool to get a comprehensive list of requests associated with a particular asset by providing its display ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "asset_display_id",
+ "required": true,
+ "description": "The display ID of the asset for which to retrieve associated requests.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "display_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-asset-requests'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/requests",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "display_id",
+ "tool_parameter_name": "asset_display_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListCannedResponses.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListCannedResponses.json
new file mode 100644
index 00000000..95bb906f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListCannedResponses.json
@@ -0,0 +1,112 @@
+{
+ "name": "ListCannedResponses",
+ "fully_qualified_name": "FreshserviceApi.ListCannedResponses@0.1.0",
+ "description": "Retrieve all canned responses from a specified folder.\n\nThis tool fetches all available canned responses within a specified canned response folder in Freshservice. It is useful for accessing pre-defined replies for ticket responses.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "canned_response_folder_id",
+ "required": true,
+ "description": "ID of the canned response folder to retrieve responses from.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of canned response folder"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "canned_response_folder_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-canned-response-folders-canned-responses'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/canned_response_folders/{canned_response_folder_id}/canned_responses",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "canned_response_folder_id",
+ "tool_parameter_name": "canned_response_folder_id",
+ "description": "ID of canned response folder",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of canned response folder"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceAgentGroups.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceAgentGroups.json
new file mode 100644
index 00000000..816a224e
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceAgentGroups.json
@@ -0,0 +1,145 @@
+{
+ "name": "ListFreshserviceAgentGroups",
+ "fully_qualified_name": "FreshserviceApi.ListFreshserviceAgentGroups@0.1.0",
+ "description": "Retrieve a list of all Agent Groups in Freshservice.\n\n",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "Specify the number of entries to retrieve in each page of the list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "The specific page number to retrieve from a paginated list of agent groups.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-agent-groups'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agent_groups",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceChanges.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceChanges.json
new file mode 100644
index 00000000..606020a2
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListFreshserviceChanges.json
@@ -0,0 +1,291 @@
+{
+ "name": "ListFreshserviceChanges",
+ "fully_qualified_name": "FreshserviceApi.ListFreshserviceChanges@0.1.0",
+ "description": "Retrieve all changes from Freshservice.\n\nUse this tool to get a comprehensive list of all changes in the Freshservice system. Ideal for tracking updates and modifications within the service.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "change_filter_name",
+ "required": false,
+ "description": "Specify the filter name to retrieve changes. Possible values: 'my_open', 'unassigned', 'closed', 'release_requested', 'deleted', 'all'.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": [
+ "my_open",
+ "unassigned",
+ "closed",
+ "release_requested",
+ "deleted",
+ "all"
+ ],
+ "properties": null,
+ "inner_properties": null,
+ "description": "Retrieve the changes by the filter name"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "filter_name"
+ },
+ {
+ "name": "requester_id",
+ "required": false,
+ "description": "ID of the person who requested the changes to filter results.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Retrieve the changes by the requester id"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "requester_id"
+ },
+ {
+ "name": "requester_email",
+ "required": false,
+ "description": "Retrieve changes by the requester's email address in Freshservice.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Retrieve the changes by the requester email"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "email"
+ },
+ {
+ "name": "updated_since",
+ "required": false,
+ "description": "Retrieve changes updated after a specified date. Date format should be YYYY-MM-DD.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Retrieve the changes by when it was last updated"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "updated_since"
+ },
+ {
+ "name": "page_size",
+ "required": false,
+ "description": "Specify the number of changes to retrieve per page in a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of changes to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The specific page number to retrieve in a paginated list of changes.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-changes'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "filter_name",
+ "tool_parameter_name": "change_filter_name",
+ "description": "Retrieve the changes by the filter name",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": [
+ "my_open",
+ "unassigned",
+ "closed",
+ "release_requested",
+ "deleted",
+ "all"
+ ],
+ "properties": null,
+ "inner_properties": null,
+ "description": "Retrieve the changes by the filter name"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "requester_id",
+ "tool_parameter_name": "requester_id",
+ "description": "Retrieve the changes by the requester id",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Retrieve the changes by the requester id"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "email",
+ "tool_parameter_name": "requester_email",
+ "description": "Retrieve the changes by the requester email",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Retrieve the changes by the requester email"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "updated_since",
+ "tool_parameter_name": "updated_since",
+ "description": "Retrieve the changes by when it was last updated",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Retrieve the changes by when it was last updated"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "per_page",
+ "tool_parameter_name": "page_size",
+ "description": "The number of changes to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of changes to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListInstalledSoftware.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListInstalledSoftware.json
new file mode 100644
index 00000000..9800deb2
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListInstalledSoftware.json
@@ -0,0 +1,112 @@
+{
+ "name": "ListInstalledSoftware",
+ "fully_qualified_name": "FreshserviceApi.ListInstalledSoftware@0.1.0",
+ "description": "Retrieve all software installed on a specific device.\n\nUse this tool to get a comprehensive list of all software applications installed on a device identified by its display ID. Useful for inventory management or system audits.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "device_display_id",
+ "required": true,
+ "description": "The unique integer identifier for the device whose installed software applications are to be retrieved.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "display_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-asset-applications'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/applications",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "display_id",
+ "tool_parameter_name": "device_display_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListProjectTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListProjectTasks.json
new file mode 100644
index 00000000..1072fee7
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListProjectTasks.json
@@ -0,0 +1,258 @@
+{
+ "name": "ListProjectTasks",
+ "fully_qualified_name": "FreshserviceApi.ListProjectTasks@0.1.0",
+ "description": "Retrieve a list of all project tasks in Freshservice.\n\nUse this tool to get all tasks associated with a specific project in Freshservice. Ideal for accessing detailed task information or project management purposes.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "project_id",
+ "required": true,
+ "description": "The ID of the project for which you want to retrieve tasks.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of project to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "id"
+ },
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of entries to retrieve in each page for pagination.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The specific page number of the task list to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ },
+ {
+ "name": "task_filter",
+ "required": false,
+ "description": "Filter tasks by status. Options: all, open, in_progress, completed, overdue, unassigned.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": [
+ "all",
+ "open",
+ "in_progress",
+ "completed",
+ "overdue",
+ "unassigned"
+ ],
+ "properties": null,
+ "inner_properties": null,
+ "description": "Task filters"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "filter"
+ },
+ {
+ "name": "task_parent_id",
+ "required": false,
+ "description": "Filter tasks by parent ID for specific task hierarchy or relationships.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Task filters"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "parent_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-project-tasks'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/tasks",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "filter",
+ "tool_parameter_name": "task_filter",
+ "description": "Task filters",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": [
+ "all",
+ "open",
+ "in_progress",
+ "completed",
+ "overdue",
+ "unassigned"
+ ],
+ "properties": null,
+ "inner_properties": null,
+ "description": "Task filters"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": "all",
+ "documentation_urls": []
+ },
+ {
+ "name": "parent_id",
+ "tool_parameter_name": "task_parent_id",
+ "description": "Task filters",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Task filters"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "id",
+ "tool_parameter_name": "project_id",
+ "description": "ID of project to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of project to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListPurchaseOrders.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListPurchaseOrders.json
new file mode 100644
index 00000000..1025534d
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListPurchaseOrders.json
@@ -0,0 +1,145 @@
+{
+ "name": "ListPurchaseOrders",
+ "fully_qualified_name": "FreshserviceApi.ListPurchaseOrders@0.1.0",
+ "description": "Retrieve a list of all Purchase Orders from Freshservice.\n\nUse this tool to get a comprehensive list of all purchase orders stored in Freshservice. This can be useful for inventory management, procurement tracking, or financial analysis.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "Specify the number of entries to retrieve per page.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "Specify the page number to retrieve from the list of purchase orders. Useful for navigating paginated results.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-purchase-orders'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/purchase_orders",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSolutionFolders.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSolutionFolders.json
new file mode 100644
index 00000000..cceba48e
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ListSolutionFolders.json
@@ -0,0 +1,178 @@
+{
+ "name": "ListSolutionFolders",
+ "fully_qualified_name": "FreshserviceApi.ListSolutionFolders@0.1.0",
+ "description": "Retrieve all Solution Folders from Freshservice.\n\nUse this tool to fetch a comprehensive list of all the Solution Folders within Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "solution_category_id",
+ "required": false,
+ "description": "ID of the solution category where the folders reside.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of solution category in which the folders reside"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "category_id"
+ },
+ {
+ "name": "per_page_count",
+ "required": false,
+ "description": "Specifies the number of solution folders to retrieve per page for pagination.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "Specify the page number to retrieve from the paginated solution folders list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-solution-folders'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "category_id",
+ "tool_parameter_name": "solution_category_id",
+ "description": "ID of solution category in which the folders reside",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of solution category in which the folders reside"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "per_page",
+ "tool_parameter_name": "per_page_count",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/MergeRequesters.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/MergeRequesters.json
new file mode 100644
index 00000000..dbb6e9c0
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/MergeRequesters.json
@@ -0,0 +1,145 @@
+{
+ "name": "MergeRequesters",
+ "fully_qualified_name": "FreshserviceApi.MergeRequesters@0.1.0",
+ "description": "Merge secondary requesters into a primary requester.\n\nThis tool merges one or more secondary requesters into a specified primary requester. It is useful when consolidating duplicate or related entries under a single master requester. Use this to streamline requester management in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "secondary_requester_ids",
+ "required": true,
+ "description": "List of IDs for the secondary requesters to merge into the primary.",
+ "value_schema": {
+ "val_type": "array",
+ "inner_val_type": "integer",
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the primary requester"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "secondary_requesters"
+ },
+ {
+ "name": "primary_requester_id",
+ "required": true,
+ "description": "Specify the ID of the primary requester to merge secondary requesters into.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the primary requester"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "primary_requester_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'merge-requester'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/requesters/{primary_requester_id}/merge",
+ "http_method": "PUT",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "secondary_requesters",
+ "tool_parameter_name": "secondary_requester_ids",
+ "description": "ID of the primary requester",
+ "value_schema": {
+ "val_type": "array",
+ "inner_val_type": "integer",
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the primary requester"
+ },
+ "accepted_as": "query",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "primary_requester_id",
+ "tool_parameter_name": "primary_requester_id",
+ "description": "ID of the primary requester",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the primary requester"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveChangeTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveChangeTask.json
new file mode 100644
index 00000000..283d1d00
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveChangeTask.json
@@ -0,0 +1,145 @@
+{
+ "name": "RemoveChangeTask",
+ "fully_qualified_name": "FreshserviceApi.RemoveChangeTask@0.1.0",
+ "description": "Delete a task from a change request in Freshservice.\n\nUse this tool to remove a specific task from a change request in Freshservice by specifying the change and task IDs.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "change_request_id",
+ "required": true,
+ "description": "The unique identifier for the change request from which a task will be deleted. This should be an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "change_id"
+ },
+ {
+ "name": "task_identifier",
+ "required": true,
+ "description": "The unique integer ID of the task to delete from a change request in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of task"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "task_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-change-task'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks/{task_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "change_id",
+ "tool_parameter_name": "change_request_id",
+ "description": "ID of change",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "task_id",
+ "tool_parameter_name": "task_identifier",
+ "description": "ID of task",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of task"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveFreshserviceTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveFreshserviceTicket.json
new file mode 100644
index 00000000..77dfe2bb
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveFreshserviceTicket.json
@@ -0,0 +1,112 @@
+{
+ "name": "RemoveFreshserviceTicket",
+ "fully_qualified_name": "FreshserviceApi.RemoveFreshserviceTicket@0.1.0",
+ "description": "Remove a Freshservice support ticket by ID.\n\nUse this tool to delete a specific support ticket in Freshservice using its ticket ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "ticket_id_to_delete",
+ "required": true,
+ "description": "ID of the Freshservice support ticket to delete.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the ticket to be deleted"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "ticket_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-ticket'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "ticket_id",
+ "tool_parameter_name": "ticket_id_to_delete",
+ "description": "ID of the ticket to be deleted",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the ticket to be deleted"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveTicketConversation.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveTicketConversation.json
new file mode 100644
index 00000000..a44fde82
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RemoveTicketConversation.json
@@ -0,0 +1,145 @@
+{
+ "name": "RemoveTicketConversation",
+ "fully_qualified_name": "FreshserviceApi.RemoveTicketConversation@0.1.0",
+ "description": "Remove a conversation from a Freshservice ticket.\n\nThis tool is used to delete a specific conversation from a ticket in Freshservice. It should be called when there is a need to remove unnecessary or incorrect conversation threads from a support ticket.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "conversation_ticket_id",
+ "required": true,
+ "description": "The ID of the ticket from which the conversation should be removed.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the ticket for which conversation has to be added"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "ticket_id"
+ },
+ {
+ "name": "conversation_id_to_remove",
+ "required": true,
+ "description": "The ID of the specific reply or note to delete from a Freshservice ticket.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the reply or note that needs to be deleted"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "conversation_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'delete-ticket-conversation'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/conversations/{conversation_id}",
+ "http_method": "DELETE",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "ticket_id",
+ "tool_parameter_name": "conversation_ticket_id",
+ "description": "ID of the ticket for which conversation has to be added",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the ticket for which conversation has to be added"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "conversation_id",
+ "tool_parameter_name": "conversation_id_to_remove",
+ "description": "ID of the reply or note that needs to be deleted",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the reply or note that needs to be deleted"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreArchivedProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreArchivedProject.json
new file mode 100644
index 00000000..1d57394b
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreArchivedProject.json
@@ -0,0 +1,112 @@
+{
+ "name": "RestoreArchivedProject",
+ "fully_qualified_name": "FreshserviceApi.RestoreArchivedProject@0.1.0",
+ "description": "Restores an archived project in Freshservice.\n\nUse this tool to unarchive and restore a project that has been previously archived in Freshservice. Ideal for retrieving projects that need to be active again.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "project_id",
+ "required": true,
+ "description": "The identifier of the archived project to be restored in Freshservice. It should be an integer value.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'restore-project'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{id}/restore",
+ "http_method": "POST",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "id",
+ "tool_parameter_name": "project_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreDeletedTicket.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreDeletedTicket.json
new file mode 100644
index 00000000..08941e87
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RestoreDeletedTicket.json
@@ -0,0 +1,112 @@
+{
+ "name": "RestoreDeletedTicket",
+ "fully_qualified_name": "FreshserviceApi.RestoreDeletedTicket@0.1.0",
+ "description": "Restore a deleted Freshservice ticket.\n\nUse this tool to restore a deleted ticket in Freshservice by providing the ticket ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "ticket_id_to_restore",
+ "required": true,
+ "description": "The ID of the Freshservice ticket to be restored. This must be an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the ticket to be restored"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "ticket_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'restore-ticket'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/restore",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "ticket_id",
+ "tool_parameter_name": "ticket_id_to_restore",
+ "description": "ID of the ticket to be restored",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the ticket to be restored"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAgentFields.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAgentFields.json
new file mode 100644
index 00000000..7e755d08
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAgentFields.json
@@ -0,0 +1,145 @@
+{
+ "name": "RetrieveAgentFields",
+ "fully_qualified_name": "FreshserviceApi.RetrieveAgentFields@0.1.0",
+ "description": "Retrieve a list of all Agent Fields in Freshservice.\n\n",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "The number of entries to retrieve per page in a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "The page number to retrieve for paginated results.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-agent-fields'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agent_fields",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAllProjects.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAllProjects.json
new file mode 100644
index 00000000..2714bbfc
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAllProjects.json
@@ -0,0 +1,221 @@
+{
+ "name": "RetrieveAllProjects",
+ "fully_qualified_name": "FreshserviceApi.RetrieveAllProjects@0.1.0",
+ "description": "Retrieve a list of all projects in Freshservice.\n\nCall this tool to get a comprehensive list of all projects managed within the Freshservice platform.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "entries_per_page",
+ "required": false,
+ "description": "Specify the number of project entries to retrieve per page for pagination.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "Specify the page number to retrieve in a paginated list of projects.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ },
+ {
+ "name": "project_status_filter",
+ "required": false,
+ "description": "Filter projects by status: 'all', 'open', 'in_progress', or 'completed'.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": [
+ "all",
+ "open",
+ "in_progress",
+ "completed"
+ ],
+ "properties": null,
+ "inner_properties": null,
+ "description": "Filter to be applied in retrieving projects"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "status"
+ },
+ {
+ "name": "filter_archived_projects",
+ "required": false,
+ "description": "If true, filter for archived projects; if false, filter for active projects.",
+ "value_schema": {
+ "val_type": "boolean",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Filter archived or active projects"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "archived"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-projects'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "entries_per_page",
+ "description": "The number of entries to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of entries to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "status",
+ "tool_parameter_name": "project_status_filter",
+ "description": "Filter to be applied in retrieving projects",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": [
+ "all",
+ "open",
+ "in_progress",
+ "completed"
+ ],
+ "properties": null,
+ "inner_properties": null,
+ "description": "Filter to be applied in retrieving projects"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": "all",
+ "documentation_urls": []
+ },
+ {
+ "name": "archived",
+ "tool_parameter_name": "filter_archived_projects",
+ "description": "Filter archived or active projects",
+ "value_schema": {
+ "val_type": "boolean",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Filter archived or active projects"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": false,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetType.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetType.json
new file mode 100644
index 00000000..3bff667e
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveAssetType.json
@@ -0,0 +1,112 @@
+{
+ "name": "RetrieveAssetType",
+ "fully_qualified_name": "FreshserviceApi.RetrieveAssetType@0.1.0",
+ "description": "Retrieve details of a specific asset type by ID.\n\nUse this tool to retrieve information about a specific asset type using its ID. Ideal for obtaining detailed descriptions or attributes of an asset type in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "asset_type_id",
+ "required": true,
+ "description": "The unique integer identifier for the asset type to retrieve from Freshservice. Required for querying specific asset type details.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "asset_type_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-asset-type'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/asset_types/{asset_type_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "asset_type_id",
+ "tool_parameter_name": "asset_type_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNote.json
new file mode 100644
index 00000000..a5b18d91
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNote.json
@@ -0,0 +1,145 @@
+{
+ "name": "RetrieveChangeNote",
+ "fully_qualified_name": "FreshserviceApi.RetrieveChangeNote@0.1.0",
+ "description": "Retrieve a specific note from a change request in Freshservice.\n\nUse this tool to obtain a specific note from a change request by providing the change ID and note ID in Freshservice. It's helpful for tracking updates or comments on change requests.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "change_request_id",
+ "required": true,
+ "description": "ID of the change request to retrieve its specific note.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "change_id"
+ },
+ {
+ "name": "note_identifier",
+ "required": true,
+ "description": "The unique identifier for the note to be retrieved from a change request in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the note"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "note_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-change-note'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes/{note_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "change_id",
+ "tool_parameter_name": "change_request_id",
+ "description": "ID of change request",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "note_id",
+ "tool_parameter_name": "note_identifier",
+ "description": "ID of the note",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the note"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNotes.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNotes.json
new file mode 100644
index 00000000..600ce6a8
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeNotes.json
@@ -0,0 +1,178 @@
+{
+ "name": "RetrieveChangeNotes",
+ "fully_qualified_name": "FreshserviceApi.RetrieveChangeNotes@0.1.0",
+ "description": "Retrieve notes from a specific change request.\n\nUse this tool to retrieve the notes related to a specific change request in Freshservice by providing the change ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "change_request_id",
+ "required": true,
+ "description": "ID of the change request for which notes are to be retrieved. This is an integer value.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request for which notes are to be retrieved"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "change_id"
+ },
+ {
+ "name": "notes_per_page",
+ "required": false,
+ "description": "The number of notes to retrieve per page in a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of notes to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "The specific page number of notes to retrieve for pagination.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-change-notes'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/notes",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "notes_per_page",
+ "description": "The number of notes to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of notes to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "change_id",
+ "tool_parameter_name": "change_request_id",
+ "description": "ID of change request for which notes are to be retrieved",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request for which notes are to be retrieved"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequest.json
new file mode 100644
index 00000000..123b6f46
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequest.json
@@ -0,0 +1,112 @@
+{
+ "name": "RetrieveChangeRequest",
+ "fully_qualified_name": "FreshserviceApi.RetrieveChangeRequest@0.1.0",
+ "description": "Fetch a Change request by ID from Freshservice.\n\nUse this tool to retrieve detailed information about a specific Change request using its ID from the Freshservice platform.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "change_request_id",
+ "required": true,
+ "description": "ID of the Change request to retrieve from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "change_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-change'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "change_id",
+ "tool_parameter_name": "change_request_id",
+ "description": "ID of change request to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequestTimeEntry.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequestTimeEntry.json
new file mode 100644
index 00000000..28141fda
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeRequestTimeEntry.json
@@ -0,0 +1,145 @@
+{
+ "name": "RetrieveChangeRequestTimeEntry",
+ "fully_qualified_name": "FreshserviceApi.RetrieveChangeRequestTimeEntry@0.1.0",
+ "description": "Retrieve a time entry from a Change request by ID.\n\nUse this tool to obtain information about a specific time entry associated with a Change request in Freshservice by providing the change ID and time entry ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "change_request_id",
+ "required": true,
+ "description": "The ID of the Change request to retrieve the time entry from. This must be an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "change_id"
+ },
+ {
+ "name": "time_entry_id",
+ "required": true,
+ "description": "The numeric ID of the time entry to retrieve details for from a Change request.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "time_entry_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-change-time-entry'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/time_entries/{time_entry_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "change_id",
+ "tool_parameter_name": "change_request_id",
+ "description": "ID of change request",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "time_entry_id",
+ "tool_parameter_name": "time_entry_id",
+ "description": "ID of the time entry",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the time entry"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTaskInfo.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTaskInfo.json
new file mode 100644
index 00000000..c5eb7a2f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTaskInfo.json
@@ -0,0 +1,145 @@
+{
+ "name": "RetrieveChangeTaskInfo",
+ "fully_qualified_name": "FreshserviceApi.RetrieveChangeTaskInfo@0.1.0",
+ "description": "Retrieve details of a task in a change request.\n\nUse this tool to get detailed information about a specific task within a change request using its ID in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "change_request_id",
+ "required": true,
+ "description": "ID of the change request to retrieve the corresponding task details.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "change_id"
+ },
+ {
+ "name": "task_identifier",
+ "required": true,
+ "description": "Provide the integer ID of the task to retrieve its details.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the task"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "task_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-change-task'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks/{task_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "change_id",
+ "tool_parameter_name": "change_request_id",
+ "description": "ID of change request",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "task_id",
+ "tool_parameter_name": "task_identifier",
+ "description": "ID of the task",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the task"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTasks.json
new file mode 100644
index 00000000..76ce50c9
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveChangeTasks.json
@@ -0,0 +1,178 @@
+{
+ "name": "RetrieveChangeTasks",
+ "fully_qualified_name": "FreshserviceApi.RetrieveChangeTasks@0.1.0",
+ "description": "Retrieve tasks for a specific Change request in Freshservice.\n\nUse this tool to obtain a list of tasks associated with a specific Change request by providing the Change ID. It helps in tracking and managing tasks related to changes efficiently.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "change_request_id",
+ "required": true,
+ "description": "ID of the Change request for retrieving associated tasks from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request for which tasks are to be retrieved"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "change_id"
+ },
+ {
+ "name": "tasks_per_page",
+ "required": false,
+ "description": "Specify the number of tasks to retrieve per page in the paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of tasks to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "Specify the page number of tasks to retrieve for the Change request.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-change-tasks'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/changes/{change_id}/tasks",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "tasks_per_page",
+ "description": "The number of tasks to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of tasks to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "change_id",
+ "tool_parameter_name": "change_request_id",
+ "description": "ID of change request for which tasks are to be retrieved",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of change request for which tasks are to be retrieved"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveDepartmentDetails.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveDepartmentDetails.json
new file mode 100644
index 00000000..123be180
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveDepartmentDetails.json
@@ -0,0 +1,112 @@
+{
+ "name": "RetrieveDepartmentDetails",
+ "fully_qualified_name": "FreshserviceApi.RetrieveDepartmentDetails@0.1.0",
+ "description": "Retrieve department details using department ID.\n\nUse this tool to obtain detailed information about a specific department (or company in MSP mode) from Freshservice by providing the department ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "department_id",
+ "required": true,
+ "description": "The ID of the department to retrieve from Freshservice. Use only integer values.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of department to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "department_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-department'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/departments/{department_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "department_id",
+ "tool_parameter_name": "department_id",
+ "description": "ID of department to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of department to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceAgent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceAgent.json
new file mode 100644
index 00000000..757348d5
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceAgent.json
@@ -0,0 +1,112 @@
+{
+ "name": "RetrieveFreshserviceAgent",
+ "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceAgent@0.1.0",
+ "description": "Retrieve details of a Freshservice agent by ID.\n\nThis tool retrieves the details of a specific agent from Freshservice using their agent ID. It should be called when detailed information about an agent is needed.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "agent_id",
+ "required": true,
+ "description": "The unique integer ID of the Freshservice agent to retrieve details for.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of agent to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "agent_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-agent'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/agents/{agent_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "agent_id",
+ "tool_parameter_name": "agent_id",
+ "description": "ID of agent to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of agent to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblem.json
new file mode 100644
index 00000000..26c5f07f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblem.json
@@ -0,0 +1,112 @@
+{
+ "name": "RetrieveFreshserviceProblem",
+ "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceProblem@0.1.0",
+ "description": "Retrieve a specific problem in Freshservice by ID.\n\nThis tool fetches the details of a problem from Freshservice using the problem ID. It should be called when there's a need to access information about a particular problem within Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "problem_identifier",
+ "required": true,
+ "description": "The unique ID of the problem in Freshservice to retrieve details for.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of Problem to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "problem_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-problem'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problem/{problem_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "problem_id",
+ "tool_parameter_name": "problem_identifier",
+ "description": "ID of Problem to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of Problem to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblems.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblems.json
new file mode 100644
index 00000000..e20b1c5f
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProblems.json
@@ -0,0 +1,178 @@
+{
+ "name": "RetrieveFreshserviceProblems",
+ "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceProblems@0.1.0",
+ "description": "Retrieve all problems from Freshservice.\n\nCall this tool to get a list of all problems currently recorded in Freshservice, useful for tracking and management purposes.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "updated_since",
+ "required": false,
+ "description": "Retrieve problems updated since the specified date. Format: YYYY-MM-DD.",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Retrieve the problems by when it was last updated"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "updated_since"
+ },
+ {
+ "name": "problems_per_page",
+ "required": false,
+ "description": "The number of problems to retrieve per page in a paginated list from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of problems to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number_to_retrieve",
+ "required": false,
+ "description": "The page number of the problems list to retrieve from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-problems'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "updated_since",
+ "tool_parameter_name": "updated_since",
+ "description": "Retrieve the problems by when it was last updated",
+ "value_schema": {
+ "val_type": "string",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Retrieve the problems by when it was last updated"
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "per_page",
+ "tool_parameter_name": "problems_per_page",
+ "description": "The number of problems to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of problems to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 30,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number_to_retrieve",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProject.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProject.json
new file mode 100644
index 00000000..2e781a43
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveFreshserviceProject.json
@@ -0,0 +1,112 @@
+{
+ "name": "RetrieveFreshserviceProject",
+ "fully_qualified_name": "FreshserviceApi.RetrieveFreshserviceProject@0.1.0",
+ "description": "Retrieve project details from Freshservice by ID.\n\nUse this tool to access project information from Freshservice by providing the project ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "project_id",
+ "required": true,
+ "description": "The unique integer ID of the project to retrieve from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of project to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "project_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-project'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/projects/{project_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "project_id",
+ "tool_parameter_name": "project_id",
+ "description": "ID of project to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of project to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveOnboardingRequest.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveOnboardingRequest.json
new file mode 100644
index 00000000..db37def9
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveOnboardingRequest.json
@@ -0,0 +1,112 @@
+{
+ "name": "RetrieveOnboardingRequest",
+ "fully_qualified_name": "FreshserviceApi.RetrieveOnboardingRequest@0.1.0",
+ "description": "Retrieve details of a specific onboarding request.\n\nCall this tool to get information about a specific onboarding request using its ID. Useful for accessing details related to employee onboarding processes.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "onboarding_request_id",
+ "required": true,
+ "description": "The unique display ID of the onboarding request to retrieve details for.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Display ID of the Onboarding Request"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "request_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-onboarding-request'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/onboarding_requests/{request_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "request_id",
+ "tool_parameter_name": "onboarding_request_id",
+ "description": "Display ID of the Onboarding Request",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "Display ID of the Onboarding Request"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemNote.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemNote.json
new file mode 100644
index 00000000..2f91e7a0
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemNote.json
@@ -0,0 +1,145 @@
+{
+ "name": "RetrieveProblemNote",
+ "fully_qualified_name": "FreshserviceApi.RetrieveProblemNote@0.1.0",
+ "description": "Retrieve a specific note from a problem in Freshservice.\n\nThis tool retrieves a specific note from a problem in Freshservice using the problem and note IDs. It should be called when you need to access detailed information about a note associated with a specific problem.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "problem_identifier",
+ "required": true,
+ "description": "The unique ID of the problem to retrieve the note from. Must be an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "problem_id"
+ },
+ {
+ "name": "note_id",
+ "required": true,
+ "description": "The unique identifier for the note to be retrieved.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the note"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "note_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-problem-note'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/notes/{note_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "problem_id",
+ "tool_parameter_name": "problem_identifier",
+ "description": "ID of problem",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "note_id",
+ "tool_parameter_name": "note_id",
+ "description": "ID of the note",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the note"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTask.json
new file mode 100644
index 00000000..9902ea0e
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveProblemTask.json
@@ -0,0 +1,145 @@
+{
+ "name": "RetrieveProblemTask",
+ "fully_qualified_name": "FreshserviceApi.RetrieveProblemTask@0.1.0",
+ "description": "Retrieve details of a specific task from a problem in Freshservice.\n\nUse this tool to get information about a specific task linked to a problem in Freshservice using the task and problem IDs.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "problem_id",
+ "required": true,
+ "description": "The unique integer ID of the problem to retrieve the task from in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "problem_id"
+ },
+ {
+ "name": "task_id",
+ "required": true,
+ "description": "The unique identifier for the task to retrieve from the specified problem.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the task"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "task_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-problem-task'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/problems/{problem_id}/tasks/{task_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "problem_id",
+ "tool_parameter_name": "problem_id",
+ "description": "ID of problem",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of problem"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "task_id",
+ "tool_parameter_name": "task_id",
+ "description": "ID of the task",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the task"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTask.json
new file mode 100644
index 00000000..b02760f2
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTask.json
@@ -0,0 +1,145 @@
+{
+ "name": "RetrieveReleaseTask",
+ "fully_qualified_name": "FreshserviceApi.RetrieveReleaseTask@0.1.0",
+ "description": "Retrieve a specific task from a release in Freshservice.\n\nUse this tool to get information about a particular task within a release by specifying the release and task IDs.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "release_id",
+ "required": true,
+ "description": "The unique identifier for the release to retrieve a specific task from. This is an integer value.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "release_id"
+ },
+ {
+ "name": "task_id",
+ "required": true,
+ "description": "The unique ID of the task you want to retrieve within a release.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the task"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "task_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-release-task'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/tasks/{task_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "release_id",
+ "tool_parameter_name": "release_id",
+ "description": "ID of release",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "task_id",
+ "tool_parameter_name": "task_id",
+ "description": "ID of the task",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the task"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTasks.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTasks.json
new file mode 100644
index 00000000..24306624
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveReleaseTasks.json
@@ -0,0 +1,178 @@
+{
+ "name": "RetrieveReleaseTasks",
+ "fully_qualified_name": "FreshserviceApi.RetrieveReleaseTasks@0.1.0",
+ "description": "Retrieve tasks for a specified release in Freshservice.\n\nUse this tool to get a list of tasks associated with a particular release ID in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "release_id",
+ "required": true,
+ "description": "ID of the release for which tasks are to be retrieved in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release for which tasks are to be retrieved"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "release_id"
+ },
+ {
+ "name": "tasks_per_page",
+ "required": false,
+ "description": "Number of tasks to retrieve per page in a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of tasks to retrieve in each page of a paginated list."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "per_page"
+ },
+ {
+ "name": "page_number",
+ "required": false,
+ "description": "The page number to retrieve tasks from. Use for paginated results.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "page"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'list-release-tasks'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/releases/{release_id}/tasks",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "per_page",
+ "tool_parameter_name": "tasks_per_page",
+ "description": "The number of tasks to retrieve in each page of a paginated list.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The number of tasks to retrieve in each page of a paginated list."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 10,
+ "documentation_urls": []
+ },
+ {
+ "name": "page",
+ "tool_parameter_name": "page_number",
+ "description": "The page number to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "The page number to retrieve."
+ },
+ "accepted_as": "query",
+ "required": false,
+ "deprecated": false,
+ "default": 1,
+ "documentation_urls": []
+ },
+ {
+ "name": "release_id",
+ "tool_parameter_name": "release_id",
+ "description": "ID of release for which tasks are to be retrieved",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of release for which tasks are to be retrieved"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSoftwareApplication.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSoftwareApplication.json
new file mode 100644
index 00000000..a528276d
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveSoftwareApplication.json
@@ -0,0 +1,112 @@
+{
+ "name": "RetrieveSoftwareApplication",
+ "fully_qualified_name": "FreshserviceApi.RetrieveSoftwareApplication@0.1.0",
+ "description": "Retrieve a specific software application from Freshservice.\n\nUse this tool to get detailed information about a specific software application by providing the application ID. Ideal for accessing software details and managing applications within Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "application_id",
+ "required": true,
+ "description": "The unique identifier for the specific software application in Freshservice to be retrieved. It must be an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "application_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-application'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/applications/{application_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "application_id",
+ "tool_parameter_name": "application_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTask.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTask.json
new file mode 100644
index 00000000..6a2f65b1
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/RetrieveTicketTask.json
@@ -0,0 +1,145 @@
+{
+ "name": "RetrieveTicketTask",
+ "fully_qualified_name": "FreshserviceApi.RetrieveTicketTask@0.1.0",
+ "description": "Retrieve details of a task from a ticket in Freshservice.\n\nUse this tool to get specific information about a task associated with a ticket by providing the ticket and task IDs. It is useful for accessing task details in Freshservice.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "ticket_request_id",
+ "required": true,
+ "description": "The ID of the ticket request to retrieve the specific task from Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of ticket request"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "ticket_id"
+ },
+ {
+ "name": "task_identifier",
+ "required": true,
+ "description": "The unique identifier for the task to be retrieved. Provide this to get task details from a ticket.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the task"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "task_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-ticket-task'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/tickets/{ticket_id}/tasks/{task_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "ticket_id",
+ "tool_parameter_name": "ticket_request_id",
+ "description": "ID of ticket request",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of ticket request"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "task_id",
+ "tool_parameter_name": "task_identifier",
+ "description": "ID of the task",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of the task"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetComponent.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetComponent.json
new file mode 100644
index 00000000..03f9807e
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/UpdateAssetComponent.json
@@ -0,0 +1,145 @@
+{
+ "name": "UpdateAssetComponent",
+ "fully_qualified_name": "FreshserviceApi.UpdateAssetComponent@0.1.0",
+ "description": "Update a component in an asset.\n\nThis tool updates a specific component within an asset in Freshservice. Call this tool when you need to modify details of a component associated with an asset.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "asset_display_id",
+ "required": true,
+ "description": "The numeric identifier of the asset to be updated in Freshservice.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "display_id"
+ },
+ {
+ "name": "component_identifier",
+ "required": true,
+ "description": "The unique identifier of the component to be updated, as an integer.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "component_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'update-asset-component'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/assets/{display_id}/components/{component_id}",
+ "http_method": "PUT",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "display_id",
+ "tool_parameter_name": "asset_display_id",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": ""
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ },
+ {
+ "name": "component_id",
+ "tool_parameter_name": "component_identifier",
+ "description": "",
+ "value_schema": {
+ "val_type": "integer",
+ "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": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewServiceItem.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewServiceItem.json
new file mode 100644
index 00000000..c32bf1eb
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewServiceItem.json
@@ -0,0 +1,112 @@
+{
+ "name": "ViewServiceItem",
+ "fully_qualified_name": "FreshserviceApi.ViewServiceItem@0.1.0",
+ "description": "Retrieve details of a specific service item.\n\nThis tool is used to fetch and view details of a specific service item from Freshservice by providing its ID. It should be called when users need information about a particular service-related entry.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "service_item_id",
+ "required": true,
+ "description": "The ID of the service item you want to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of service item to retrieve"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "service_item_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-service-item'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/service_items/{service_item_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "service_item_id",
+ "tool_parameter_name": "service_item_id",
+ "description": "ID of service item to retrieve",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of service item to retrieve"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionArticle.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionArticle.json
new file mode 100644
index 00000000..b52c7422
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionArticle.json
@@ -0,0 +1,112 @@
+{
+ "name": "ViewSolutionArticle",
+ "fully_qualified_name": "FreshserviceApi.ViewSolutionArticle@0.1.0",
+ "description": "Retrieve details of a Freshservice solution article.\n\nUse this tool to get information about a specific solution article from Freshservice, identified by its article ID.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "solution_article_id",
+ "required": true,
+ "description": "The unique integer ID of the solution article to retrieve.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of solution article"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "article_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-solution-article'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/articles/{article_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "article_id",
+ "tool_parameter_name": "solution_article_id",
+ "description": "ID of solution article",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of solution article"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionCategory.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionCategory.json
new file mode 100644
index 00000000..da6d55dd
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionCategory.json
@@ -0,0 +1,112 @@
+{
+ "name": "ViewSolutionCategory",
+ "fully_qualified_name": "FreshserviceApi.ViewSolutionCategory@0.1.0",
+ "description": "Retrieve details of a specific solution category.\n\nUse this tool to fetch and view information about a specific solution category by its ID in the Freshservice system.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "solution_category_id",
+ "required": true,
+ "description": "ID of the solution category to retrieve details for.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of solution category"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "category_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-solution-category'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/categories/{category_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "category_id",
+ "tool_parameter_name": "solution_category_id",
+ "description": "ID of solution category",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of solution category"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionFolder.json b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionFolder.json
new file mode 100644
index 00000000..28906c6d
--- /dev/null
+++ b/toolkits/freshservice_api/arcade_freshservice_api/wrapper_tools/ViewSolutionFolder.json
@@ -0,0 +1,112 @@
+{
+ "name": "ViewSolutionFolder",
+ "fully_qualified_name": "FreshserviceApi.ViewSolutionFolder@0.1.0",
+ "description": "Retrieve details of a specific solution folder.\n\nUse this tool to obtain information about a particular solution folder by specifying its folder ID within the Freshservice platform.",
+ "toolkit": {
+ "name": "ArcadeFreshserviceApi",
+ "description": null,
+ "version": "0.1.0"
+ },
+ "input": {
+ "parameters": [
+ {
+ "name": "solution_folder_id",
+ "required": true,
+ "description": "The unique ID of the solution folder to retrieve details.",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of solution folder"
+ },
+ "inferrable": true,
+ "http_endpoint_parameter_name": "folder_id"
+ }
+ ]
+ },
+ "output": {
+ "description": "Response from the API endpoint 'get-solution-folder'.",
+ "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": "FRESHSERVICE_API_KEY"
+ },
+ {
+ "key": "FRESHSERVICE_SUBDOMAIN"
+ }
+ ],
+ "metadata": null
+ },
+ "deprecation_message": null,
+ "metadata": {
+ "object_type": "api_wrapper_tool",
+ "version": "1.0.0",
+ "description": "Tools that enable LLMs to interact directly with the Freshservice API."
+ },
+ "http_endpoint": {
+ "metadata": {
+ "object_type": "http_endpoint",
+ "version": "1.1.0",
+ "description": ""
+ },
+ "url": "https://{freshservice_subdomain}.freshservice.com/api/v2/solutions/folders/{folder_id}",
+ "http_method": "GET",
+ "headers": {},
+ "parameters": [
+ {
+ "name": "folder_id",
+ "tool_parameter_name": "solution_folder_id",
+ "description": "ID of solution folder",
+ "value_schema": {
+ "val_type": "integer",
+ "inner_val_type": null,
+ "enum": null,
+ "properties": null,
+ "inner_properties": null,
+ "description": "ID of solution folder"
+ },
+ "accepted_as": "path",
+ "required": true,
+ "deprecated": false,
+ "default": null,
+ "documentation_urls": []
+ }
+ ],
+ "documentation_urls": [],
+ "secrets": [
+ {
+ "arcade_key": "FRESHSERVICE_API_KEY",
+ "parameter_name": "username",
+ "accepted_as": "basic_auth_username",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ },
+ {
+ "arcade_key": "FRESHSERVICE_SUBDOMAIN",
+ "parameter_name": "freshservice_subdomain",
+ "accepted_as": "path",
+ "formatted_value": null,
+ "description": "",
+ "is_auth_token": false
+ }
+ ]
+ }
+}
diff --git a/toolkits/freshservice_api/pyproject.toml b/toolkits/freshservice_api/pyproject.toml
new file mode 100644
index 00000000..8f372d73
--- /dev/null
+++ b/toolkits/freshservice_api/pyproject.toml
@@ -0,0 +1,60 @@
+[build-system]
+requires = [ "hatchling",]
+build-backend = "hatchling.build"
+
+[project]
+name = "arcade_freshservice_api"
+version = "0.1.0"
+description = "Tools that enable LLMs to interact directly with the Freshservice API."
+requires-python = ">=3.10"
+dependencies = [
+ "arcade-tdk>=3.0.0,<4.0.0",
+ "httpx[http2]>=0.27.2,<1.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_freshservice_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_freshservice_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_freshservice_api",]
diff --git a/toolkits/freshservice_api/tests/__init__.py b/toolkits/freshservice_api/tests/__init__.py
new file mode 100644
index 00000000..e69de29b